- 1、本文档共114页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MCS-51单片机原理及接口技术(第2版)[汪德彪][电子教案]第8章.ppt
第8章 C51程序设计语言及程序设计 8.1 C51数据类型与运算 8.2 C51流程控制语句 8.3 C51构造数据类型 8.4 C51函数 8.5 C51应用编程实例 8.1 C51数据类型与运算 8.1.1 C51数据类型 8.1.2 C51数据存储类型 8.1.3 C51定义SFR 8.1.4 C51定义并行口 8.1.5 C51定义位变量 8.1.6 C51运算符、表达式及其规则 8.1.1 C51数据类型 C51具有标准C语言的所有标准数据类型,针对51单片机内部结构增加了以下特殊数据类型: (1)bit 位变量。 (2)sbit 可独立寻址的位变量。 (3)sfr 8位特殊功能寄存器。 (4)sfr16 16位特殊功能寄存器。 8.1.1 C51数据类型 1.char字符类型 char类型的数据长度是一个字节,通常用于定义处理字符数据的变量或常量。分无符号字符类型unsigned char 和有符号字符类型signed char,默认值为 signed char 类型。 2.int整型 int整型长度为两个字节,用于存放一个双字节数据。分有符号整型数signed int和无符号整型数unsigned int,默认值为signed int类型。 8.1.1 C51数据类型 3.long长整型 long长整型长度为四个字节,用于存放一个四字节数据。分有符号长整型signed long 和无符号长整型unsigned long,默认值为signed long 类型。 4.float浮点型 float浮点型在十进制中具有7位有效数字,是符合IEEE?754标准的单精度浮点型数据,占用四个字节。 8.1.1 C51数据类型 5.指针型 指针型本身就是一个变量,在这个变量中存放的数据是指向另一个数据的地址。这个指针变量要占据一定的内存单元,对不一样的处理器长度也不尽相同,在C51中它的长度一般为1~3个字节。 6.bit位变量 bit位变量是C51编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,类似一些高级语言中的Boolean 类型中的True和False。 8.1.1 C51数据类型 7.sfr特殊功能寄存器 sfr也是一种扩充数据类型,占用一个内存单元,值域为 0~255。利用它能访问51单片机内部的所有特殊功能寄存器。 8.sfr16 16位特殊功能寄存器 sfr16占用两个内存单元,值域为 0~65535。sfr16和sfr一样用于操作特殊功能寄存器,不同的是它用于操作占两个字节的寄存器,如定时器T2。 8.1.1 C51数据类型 9.sbit 可寻址位 sbit同样是单片机C语言中的一种扩充数据类型,利用它能访问芯片内部的RAM中的可寻址位或特殊功能寄存器中的可寻址位。 8.1.1 C51数据类型 8.1.2 C51数据存储类型 C51编译器可以通过将变量、常量定义为不同的存储类型(data,bdata,idata,pdata,xdata,code)的方法,将它们定义在不同的存储区中。 C51数据存储类型与MCS-51单片机实际存储空间的对应关系如表8.2所示。 当使用存储类型data,bdata定义常量和变量时,C51编译器会将它们定位在片内数据存储区中。片内RAM是存放临时性传递变量或使用频率较高变量的理想场所。访问片内数据存储器(data,bdata,idata)比访问片外数据存储器(xdata,pdata)相对快一些,因此可将经常使用的变量置于片内数据存储器,而将规模较大的,或不常使用的数据置于片外数据存储器中。 C51存储类型及其大小和值域如表8.3所示。 如果在变量定义时略去存储类型标志符,编译器会自动默认存储类型。默认的存储类型进一步有SMALL、COMPACT和LARGE存储模式指令限制。见表8.4。 8.1.3 C51定义SFR 在C51中,特殊功能寄存器及其可位寻址的位是通过关键字sfr和sbit来定义的,这种方法与标准C不兼容,只适用于C51。 (1)sfr:定义为8位特殊功能寄存器。例如, sfr PSW=0xD0; //定义程序状态字PSW的地址为D0H sfr TMOD=0x89; //定义定时器/计数器方式控制寄存器 TMOD的地址为89H sfr P1=0x90; //定义P1口的地址为90H “sfr”后面必须跟一个特殊寄存器名;“=”后面的地址必须为常数,常数值的范围必须在特殊功能寄存器地址范围内,即位于地址0x80到0xff之间,不允许带有运算符的表达式。
文档评论(0)