单片机的C语言编程ppt课件.ppt
《单片机的C语言编程ppt课件.ppt》由会员分享,可在线阅读,更多相关《单片机的C语言编程ppt课件.ppt(38页珍藏版)》请在三一办公上搜索。
1、单片机的C语言编程称为C51编程,应用C51编程具有以下优点: (1)C51编译器管理内部寄存器和存贮器的分配,编程时,无需考虑不同存储器的寻址和数据类型等细节问题; (2)程序有规范的结构,可分成不同的函数,这种方式具有良好的模块化结构,使已编好程序容易移植; (3)有丰富的子程序库可直接引用,具有较强的数据处理能力,从而大大减少用户编程的工作量; (4)C语言和汇编语言可以交叉使用。 汇编语言程序代码短、运行速度快、但复杂运算编程耗时。用汇编语言编写与硬件有关的部分程序,用C语言编写与硬件无关的运算部分程序,充分发挥两种语言的长处,提高开发效率。,第4章 单片机的C语言编程,4.1 C51
2、程序结构特点,同标准C一样,C51的程序是由函数组成。C语言的函数以“”开始,以“”结束。 其中必须有一个主函数main(),程序的执行从主函数main() 开始,调用其他函数后返回主函数main(),最后在主函数中结束整个程序,而不管函数的排列顺序如何。 C语言的语句规则: 1.每个变量必须先说明后引用。 2.C语言程序一行可以书写多条语句,但每个语句必须以“;”结尾,一个语句也可以多行书写。 3.C语言的注释用/*/表示。 4.“”花括号必须成对,位置随意,多个花括号可同行书写,也可逐行书写。,C语言程序的组成结构: 全局变量说明 /*可被各函数引用*/ main( ) /*主函数*/ 局
3、部变量说明 /*只在本函数引用*/执行语句(包括函数调用语句); fun1(形式参数表) /*函数1*/ 形式参数说明 局部变量说明 执行语句(包括调用其他函数语句) funn(形式参数表) /*函数n*/ 形式参数说明 局部变量说明 执行语句 ,标识符用来标识源程序中某个对象的名字,这些对象可以是语句、数据类型、函数、变量、数组等。标识符区分大小写,第一个字符必须是字母或下划线。 C51中有些库函数的标识符是以下划线开头的,所以一般不要以下划线开头命名标识符。 C51编译器规定标识符只有32个字符在编译时有效,因此在编写源程序时标识符的长度不要超过32个字符。 关键字是编程语言保留的特殊标识
4、符,在C语言的程序编写中不允许标识符与关键字相同。 Keil C51编译器的关键字除了有ANSI C标准的32个关键字外还根据51单片机的特点扩展了相关的关键字。,4.2 C51的标识符和关键字,ANSI C标准关键字(1),ANSI C标准关键字(2),Keil C51编译器扩展的关键字(1),Keil C51编译器扩展的关键字(2),4.3 C51的数据类型,C51的数据有常量和变量之分。 常量 在程序运行中其值不变的量。 变量 在程序运行中其值可以改变的量。 定义一个变量,编译系统就会自动为它安排一个存贮区,具体的地址值 ,用户不必在意。 一个变量由变量名和变量值构成. 变量名:存贮单元
5、地址的符号表示。 变量的值:变量所在地址单元存放的内容。 数据类型:数据的长度。,C51编译器支持数据类型,02:57,11,C51增加的特殊的数据类型,1bit位标量,bit位标量是C51编译器的一种扩充数据类型,利用它可定义一个位标量。它的值是一个二进制位,不是0,就是1。 bit 位变量名 例: bit lock; /*将lock定义为位变量*/ lock=1;,02:57,12,2sfr特殊功能寄存器,MCS-51系列单片机片内有21个特殊功能寄存器(SFR),分散在片内RAM区的0 x800 xFF地址范围内。对SFR的操作只能用直接寻址方式。 为了能直接访问这些特殊功能寄存器,C5
6、1提供了定义sfr的方法。 sfr是一种C51扩充数据类型,占用一个内存单元,值域为0255。语法如下: sfr 特殊寄存器名 = 寄存器地址,02:57,13,例如:sfr P1 = 0 x90 P1 = 255 定义一个特殊功能寄存器变量“P1”,0 x90是指51单片机的P1端口地址90H,变量P1即指51单片机的P1端口。 在后面的语句中可以用P1 = 255(对P1端口的所有引脚置高电平)之类的语句操作特殊功能寄存器。,02:57,14,例:sfr PSW=0 xD0;/*定义程序状态字PSW, 因MCS-51单片机的PSW 地址为D0H*/sfr TMOD=0 x89;/*定义定时
7、/计数器方式控制寄存器TMOD, 因MCS-51单片机的TMOD地址为89H*/sfr SCON=0 x98;/*定义串口控制寄存器SCON, 因MCS-51单片机的SCON地址为8H*/,02:57,15,3. sfr16 16位特殊功能寄存器,sfr16也是一种C51扩充数据类型,用于定义存在于MCS-51单片机内部RAM的16位特殊功能寄存器,如定时器T0和T1。 sfr16型数据占用2个内存单元,取值范围为065535。,02:57,16,sbit也是一种C51扩充数据类型,利用sbit访问芯片内部可寻址的特殊功能寄存器中的位。 定义方法有如下三种: (1)sbit 特殊功能寄存器位名
8、 = 位地址 将位的绝对地址赋给位变量,位地址必须位于80HFFH(特殊功能寄存器的位地址)之间。,4sbit可寻址位,02:57,17,(2)sbit 特殊功能寄存器位名= 特殊功能寄存器名位位置 当可寻址位位于特殊功能寄存器中时,可采用这种方法。位位置是一个07之间的常数。(3)sbit sbit 特殊功能寄存器位名= 字节地址位位置 这种方法是以一个常数(字节地址)作为基地址,该常数必须在80HFFH(特殊功能寄存器的字节地址)之间。位位置是一个07之间的常数。,02:57,18,例:sfr PSW=0 xD0;/*首先定义程序状态字PSW, 因MCS-51单片机的PSW地址为D0H*/
9、sbit OV=PSW2; /*在前面定义了PSW后,OV位于PSW的第2位*/sbit AC=0 xD06; /*D0H是程序状态字PSW的字节地址, 辅助进位标志位AC位于PSW的第6位*/sbit RS0=0 xD03; /*工作寄存器组控制位RS0位于PSW的第3位*/sbit CY=0 xD7; /*进位标志位Cy的绝对位地址为D7H*/,对位变量的定义,C51对位变量的定义方法有三种: 1. 定义bit类型变量 如 bit mn;mn为位变量,其值只能是“0”或“1”,其位地址C51自行安排在可位寻址区的bdata区。 2.采用字节寻址变量.位的方法 如 bdata int iba
10、se; /*ibase定义为整型变量*/ sbit mybit=ibase15; /*mybit定义为 ibase的D15位*/ 这里位是运算符 “” 相当于汇编中的 “”,其后的最大取值依赖于该位所在的变量的类型,如定义为char最大值只能为7。,3.对特殊功能寄存器的位的定义 方法1:使用头文件及sbit定义符;多用于无位名的可寻址位。 如 #include sbit P1_1=P11; /*P1_1为P1口的第1位*/ sbit ac=ACC7; /*ac定义为累加器A的第7位*/方法2:使用头文件reg51.h,再直接用位名称。 例如 #include RS1=1; RS0=0; 方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 语言 编程 ppt 课件

链接地址:https://www.31ppt.com/p-1405546.html