MCS-51单片机原理及接口技术第7章第1部分_第1页
MCS-51单片机原理及接口技术第7章第1部分_第2页
MCS-51单片机原理及接口技术第7章第1部分_第3页
MCS-51单片机原理及接口技术第7章第1部分_第4页
MCS-51单片机原理及接口技术第7章第1部分_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

7.1C51数据类型与运算一、C51数据类型C51数据类型与标准C数据类型的最大不同之处:位型。位型(bit)字符型(char)整型(int)长整型(long)浮点型(float)双精度浮点型(double)数组类型(array)结构体类型(struct)共用体(union)枚举(enum)基本类型构造类型指针类型空类型数据类型7.1C51数据类型与运算C51数据类型的取值范围:数据类型长度(bit)长度(byte)值域范围bit1——0,1unsignedchar810~255signedchar81–128~127unsignedint1620~65535signedint162–32768~32767unsignedfloat3240~4294967295signedfloat324–2147483648~2147483647float324±1.176E-38~±3.40E+38(6位数字)double648±1.176E-38~±3.40E+38(10位数字)一般指针243存储空间0~655357.1C51数据类型与运算二、C51数据存储类型

1.C51存储类型与MCS-51单片机存储空间的对应关系

存储类型与存储空间的对应关系data直接寻址片内数据存储区,访问速度快(128字节)bdata可位寻址片内数据存储区,允许位与字节混合访问(16字节)idata间接寻址片内数据存储区,可访问片内全部RAM地址空间(256字节)pdata分页寻址片外数据存储区(256字节),由MOVX@Ri访问xdata寻址片外数据存储区(64K字节),有MOVX@DPTR访问code寻址代码存储区(64K字节),有MOVC@DPTR访问7.1C51数据类型与运算2.C51存储类型及其大小和值域存储类型长度(bit)长度(byte)值域范围data810~255idata810~255pdata810~255xdata1620~65535code1620~655357.1C51数据类型与运算3.51单片机的存储模式

存储模式说明SMALL参数及局部变量放入可直接寻址的片内存储器(最大128字节,默认存储类型是data),因此访问十分方便。另外所有对象,包括栈,都必须嵌入片内RAM。栈长很关键,因为实际栈长依赖于不同函数的嵌套层数COMPACT参数及局部变量放入分页片外存储区(最大256字节,默认的存储类型是pdata),通过寄存器R0和R1间接寻址,栈空间位于内部数据存储区中LARGE参数及局部变量直接放入片外数据存储区(最大64KB,默认存储类型为xdata),使用数据指针DPTR来进行寻址。用此数据指针访问的效率较低,尤其是对二个或多个字节的变量,这种数据类型的访问机制直接影响代码的长度,另一不方便之处在于这种数据指针不能对称操作7.1C51数据类型与运算三、C51定义SFR定义方法:两个关键字:sfr和sbit1.定义特殊功能寄存器用sfr例如:sfrPSW=0xD0;/*定义程序状态字PSW的地址为D0H*/sfrTMOD=0x89;/*定义定时器/计数器方式控制寄存器TMOD的地址为89H*/sfrP1=0x90;/*定义P1口的地址为90H*/2.定义可位寻址的特殊功能寄存器的位用sbit例如:sbitCY=0xD7;/*定义进位标志CY的地址为D7H*/sbitAC=0xD0^6;/*定义辅助进位标志AC的地址为D6H*/sbitRS0=0xD0^3;/*定义RS0的地址为D3H*/7.1C51数据类型与运算标准SFR在reg51.h、reg52.h等头文件中已经被定义,只要用文件包含做出申明即可使用。例如:#include”reg51.h”sbitP10=P1^0;sbitP12=P1^2;main(){P10=1;P12=0;PSW=0x08;……}7.1C51数据类型与运算四、C51定义并行口

单片机内部并行口用sfr定义,外部并行口的定义如何定义?用指针定义,指针的定义在absacc.h头文件中例如:#include“absacc.h”#definePAXBYTE[0xffec]main(){PA=0x3A;/*将数据3AH写入地址为0xffec的存储单元或I/O端口*/}XBYTE是一个指针,它将PA定义为一个外部并行口,其地址是FFECH。7.1C51数据类型与运算五、C51定义位变量 使用关键字bit

例如:

bitlock;/*将lock定义为位变量*/ bitdirention;/*将direction定义为位变量*/

注意:不能定义位变量指针;也不能定义位变量数组。7.1C51数据类型与运算六、C51运算符、表达式及其规则

1.算术运算符 +——加法运算符 -——减法运算符 *——乘法运算符 /——除法运算符 %——模运算或取余运算符 ++——为自增运算符 --——为自减运算符。⒉关系运算符 <——小于 <=——小于等于 >——大于 >=——大于等于 ==——等于 !=——不等于double←floatint←charlongunsigned高低这四个运算符的优先级相同,处于高优先级这两个运算符的优先级相同,处于低优先级7.1C51数据类型与运算⒊逻辑运算符

&&——逻辑与

||——逻辑或 !——逻辑非⒋位运算符

&——按位与 相当于ANL指令

|——按位或 相当于ORL指令 ^——按位异或 相当于XRL指令 ~——按位取反 相当于CPL指令

<<——左移 相当于RL指令

>>——右移 相当于RR指令7.1C51数据类型与运算⒌赋值运算符

赋值运算符就是赋值符号“=”

⒍复合赋值运算符

十种:+=,-=,*=,/=,%=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论