第九章单片机的C51编程 第一节概述 第二节程序的格式 第三节数据类型和存储类型 第四节运算符和表达式 第五节指针与函数 第六节片内硬件资源的定义 第七节程序的基本结尥 第八节C51程序举例 第九节 Windows环境下C51编译器的操作 Micro Controller unit
第九章 单片机的C51编程 第一节 概述 第二节 程序的格式 第三节 数据类型和存储类型 第四节 运算符和表达式 第五节 指针与函数 第六节 片内硬件资源的定义 第七节 程序的基本结构 第八节 C51程序举例 第九节 Windows环境下C51编译器的操作
本章要点 介绍C语言的基础知识 掌握C语言程序的基本结构,学会编制 些简单的单片机应用程序,并能在 Windows环境下使用C51编译器进行编译 操作。 了解C51编译器与标准C语言在存储模 式、片内硬件资源使用等方面的差别
本章要点 • 介绍C语言的基础知识。 • 掌握C语言程序的基本结构,学会编制 一些简单的单片机应用程序,并能在 Windows环境下使用C51编译器进行编译 操作。 • 了解C51编译器与标准C语言在存储模 式、片内硬件资源使用等方面的差别
第一节概述 随着开发工具及集成电路技术的发展,在开 发大型的单片机应用系统时,使用高级语言更 加有利。 专门针对8051系列单片机开发出来的C51编 译器(简称C51)可编译生成能够在8051系列单 片机上运行的目标程序。 目前针对8051系列单片机开发出来的编译器 有多种,包括 Franklin C51、 Keil c51for windowS寺。 返回本章首页
第一节 概述 随着开发工具及集成电路技术的发展,在开 发大型的单片机应用系统时,使用高级语言更 加有利。 专门针对8051系列单片机开发出来的C51编 译器(简称C51) 可编译生成能够在 8051系列单 片机上运行的目标程序。 目前针对8051系列单片机开发出来的编译器 有 多 种 , 包 括 Franklin C51、Keil C51 for windows等。 返回本章首页
第二节程序的格式 先从几个实例,了解C语言的程序格式。 例9-1能输出“ Welcome to using C51〃的C语言程序 # includestdio.h〃 maino printf Welcome to using C51 \n) 其中main()为主函数, printf为输出函数, stdio.h 为头文件,执行这个程序的目的,是在屏幕上输出以下 行信息: Welcome to using C51
第二节 程序的格式 先从几个实例,了解C语言的程序格式。 例9-1 能输出“Welcome to using C51”的C语言程序 #include“stdio.h” main() { printf(“Welcome to using C51 \n”); } 其中main( )为主函数,printf为输出函数,stdio.h 为头文件,执行这个程序的目的,是在屏幕上输出以下 一行信息: Welcome to using C51
例92求三个数a、b、c的和。 #includestdio. h main /*主函数*/ lint a, b, c, sum; /*定义变量*/ a=12;b=34;c=56: /*给变量赋值*/ sum=a十b+c; /*求和米/ printf( sum S%d\n",sum);/*显示结果*/ 执行以上程序,可在屏幕上输出a、b、c的和,并显示: sum is 102
例9-2 求三个数a、b、c的和。 #include“stdio.h” main() /*主函数*/ {int a,b,c,sum; /*定义变量*/ a=12;b=34;c=56; /*给变量赋值*/ sum=a十b十c; /*求和*/ printf(“sum is %d\n” ,sum);/*显示结果*/ } 执行以上程序,可在屏幕上输出a、b、c的和,并显示: sum is 102
例9-3从输入的两个数a,b中,求出较大的数的程序。 #includestdio. h int max(int x, int y) /*定义max函数,函数返回值为 整型;x,y为形式参数,整型*/ i int z if (x>y) else z=y return(z) /*将z的值返回到调用处*/ main /*主函数* finta, b, m: /*定义三个整型变量*/ scanf(w%d,%d,"&a,&b);/*输入变量a和b的值*/ m=max(a, b) /*调用max函数,将返回值m*/ printf(max=%d〃,m) /*输出m的值*/ 程序执行结果是在输入a,b值后,可求出较大的数并赋予变 量m。如输入a=3,b=5,则执行结果可显示出m=5
例9-3 从输入的两个数a,b中,求出较大的数的程序。 #include“stdio.h” int max(int x,int y) /*定义max函数,函数返回值为 整型;x,y为形式参数,整型*/ { int z; if(x>y) z=x; else z=y; return(z); /*将z的值返回到调用处*/ } main() /*主函数*/ {inta,b,m; /*定义三个整型变量*/ scanf(“%d,%d,”&a,&b);/*输入变量a和b的值*/ m=max(a,b); /*调用max函数,将返回值m*/ printf(“max=%d”,m); /*输出m的值*/ } 程序执行结果是在输入a,b值后,可求出较大的数并赋予变 量m 。如输入a=3,b=5,则执行结果可显示出 m=5
从三个例子可看出C语言或C51源程序的基本 格式有如下特点: 1.C语言程序的书写格式比较自由,一行可 以写若干条语句,一个语句也可以写成几行, 不管一行写几个语句,每个语句须以“;”结尾。 2.程序由一个主函数和若干个其他函数组成, 主函数的名字必须为main。程序的执行总是从 main函数开始的,其位置无特殊规定 3.C语言程序通过函数调用去执行指定的工 作。源程序文件需要包含其他源程序文件的内 容时,则要在本程序文件头部用包含命令 # include进行“文件包含”处理。 返回本章首页
从三个例子可看出C语言或C51源程序的基本 格式有如下特点: 1. C语言程序的书写格式比较自由,一行可 以写若干条语句,一个语句也可以写成几行, 不管一行写几个语句,每个语句须以“;”结尾。 2.程序由一个主函数和若干个其他函数组成, 主函数的名字必须为main。程序的执行总是从 main函数开始的,其位置无特殊规定。 3.C语言程序通过函数调用去执行指定的工 作。源程序文件需要包含其他源程序文件的内 容时,则要在本程序文件头部用包含命令 #include进行“文件包含”处理。 返回本章首页
第三节数据类型和存储类型 数据类型 C语言中的数据分为常量和变量,不论常量还 是和变量都有几种不同类型,不同类型的数据占 用的存储长度不同。 1.常量和符号常量的类型 常量指程序运行时其值不能被改变的量,常 量可以用一个标识符表示,并称为符号常量。C 语言中的常量分为如下几种类型: 整型、实型、字符、字符串
第三节 数据类型和存储类型 一、数据类型 C语言中的数据分为常量和变量,不论常量还 是和变量都有几种不同类型,不同类型的数据占 用的存储长度不同。 1.常量和符号常量的类型 常量指程序运行时其值不能被改变的量,常 量可以用一个标识符表示,并称为符号常量。C 语言中的常量分为如下几种类型: 整型、实型、字符、字符串
2.变量类型 表C51变量类型 变量名称符号类型 数据长度」值域范围 位型量 bit 1位 0.1 有符号 SIgned char 8位 128~+127 字符型 无符号 unsigned char 8位 32768~+32767 整数型 有符号 signed int 16位 0≈255 无符号 unsigned int16位 0~65535 长整型 有符号 signed long 32位 231~232-1 无符号 unsigned long|32位 32二 浮点型 float 32位 34E38~34E+38 指针型 指针 824 对象地址 特殊位型 sbit 0或1 8位特殊功能寄存器型 sfr 8 0≈255 16位特殊功能寄存器型 sfrl6 16 0~65535
2.变量类型 变量名称 符号 类型 数据长度 值域范围 位型量 bit 1位 0,1 字符型 有符号 signed char 8位 -128~+127 无符号 unsigned char 8位 -32768~+32767 整数型 有符号 signed int 16位 0~255 无符号 unsigned int 16位 0~65535 长整型 有符号 signed long 32位 -2 31~2 32-1 无符号 unsigned long 32位 2 32-1 浮点型 float 32位 3.4E-38~3.4E+38 指针型 指针 8~24 对象地址 特殊位型 sbit 1 0或1 8位特殊功能寄存器型 sfr 8 0~255 16位特殊功能寄存器型 sfr16 16 0~65535 表 C51变量类型
二、存储类型 存储类型是指该数据在单片机系统中存放的位置,也 就是数据的定位方式 表C51存储类型 存储类型 与存储空间的对应关系 data 直接寻址片内数据存储区,访问速度快(128字节) bdata 可位寻址片内数据存储区,允许位与字节混合访问(16字节) idata 间接寻址片内数据存储区,可访问片内全部RAM地址空间 (256字节) pdata 分页寻址片外数据存储区(256字节)由MOVX@R0,A指令 访问 data 片外数据存储区(64K),由MOX@DPTR,A指令访问 code 代码存储区(64K),由 MOVC A,@A+DPTR指令访问
二、存储类型 存储类型是指该数据在单片机系统中存放的位置,也 就是数据的定位方式。 存储类型 与存储空间的对应关系 data 直接寻址片内数据存储区,访问速度快(128字节) bdata 可位寻址片内数据存储区,允许位与字节混合访问(16字节) idata 间接寻址片内数据存储区,可访问片内全部RAM地址空间 (256字节) pdata 分页寻址片外数据存储区(256字节)由MOVX @R0,A指令 访问 xdata 片外数据存储区(64K),由MOVX @DPTR,A指令访问 code 代码存储区(64K),由MOVC A,@A+DPTR指令访问 表 C51存储类型