- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章C51基本语法
5.1 C51数据类型 C51基本数据类型包括标准C语言支持的基本数类型和C51扩展的数据类型两部分。 其中标准C语言支持的数据类型有: unsigned charchar、unsigned int、int、 unsigned long、long、float和指针类型 ; 扩展的C51基本类型有 bit、 sbit、 sfr、 sfr16。 此外,C51也支持数组、结构体、联合体、枚举等构造数据类型。表9-1是C51支持的基本数据类型。 5.1.1 常量 在程序运行中其值不能改变的量称为常量。在C51中常量一般存储在程序存储器ROM中。 整型常量。 浮点型常量 字符型常量和字符串型常量 5.1.2 变量 5.2.一般变量的定义 [存储种类] 数据类型 [存储器类型] 变量名(或变量名列表); 定义格式中方括号部分[ ]是可选项,可有可无。 存储种类有:动态(auto)、外部(extern)、静态(static)和寄存器(register)。若该项缺省,则默认为auto。 定义变量时如果省略存储器类型,默认存储器类型去指定变量的存储区域(见表9-3)。 例如: unsigned int data Count; int idata i; char xdata j; float k; 5.3.C51扩展数据类型对应变量定义 (1)普通位变量bit bit [存储器类型] 变量名; bit bdata bVoltHighFlag; (2)特殊功能寄存器sfr sfr 特殊功能寄存器名= 特殊功能寄存器地址常数 sfr P1 = 0x90; //定义P1口,地址90H sfr P2 = 0xA0; //定义P1口,地址A0H 对定时器T1的定义如下: sfr16 T2= 0XCC; (3)特殊位变量sbit 特殊位变量的类型符为sbit,有三种定义 ①sbit 位变量名=位地址 sbit P1_1 = Ox91; ②sbit 位变量名=变量名位置 sfr P3 = 0xB0; sbit P3_1 = P3 ^ 1; ③sbit 位变量名=字节地址^位位置 sbit P3_1 = 0xB0 ^ 1; sbit flag=0X20^7 ; 5.4.C51绝对地变量的访问 (1)绝对宏 #include absacc.h #define 变量名 XBYTE[绝对地址]; #define 变量名 XWORD[绝对地址]; #define 变量名 CBYTE[绝对地址]; #define 变量名CWORD [绝对地址]; #define 变量名 PBYTE[绝对地址]; #define 变量名 PWORD [绝对地址]; #define 变量名 DBYTE[绝对地址]; #define 变量名 DWORD [绝对地址]; 例如:#include absacc.h #define COM8155 XBYTE[0x200]; COM8155=0x06; //命令字写8155 (2)_at_关键字 [变量类型] [存储类型] 变量名 _at_ 地址常数; idata int x _at_ 0x40; voilate uchar PA8155 _at_ 0x201; a= PA8155; //A口数据读出 (3)绝对指针 unsigned char xdata * COM8155;//定义一个指针变量 COM8155=(uchar xdata *)0x200;// * COM8155=0x06;// 给COM8155端口赋值。 5.5 运算符与表达式 C51的运算符有以下几类: 算术运算符、逻辑运算符、位操作运算符、 赋值运算符,条件运算符、逗号运算符 . 由运算符根据C51规则将不同对象连接起来就构成了C51的表达式, 在表达式后加上分号就构成了C51语句。 5.5.1赋值运算 变量 = 表达式; 例如: int a,b,c,d,e,f; a = 0x10 //将常数十六进制数10赋于变量a b = c = 2; //同时将2赋值给变量b,c d = e; //将变量e的值赋于变量d f = d-e; //将变量d-e的值赋于变量f
文档评论(0)