- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C51程序设计完整
C51数据类型与运算
C51数据类型
C51的数据类型如下所示:
C51编译器支持的数据类型、长度和值域如下表1-1所示。
与面向数学运算的计算机相比,51单片机对变量类型或数据类型的选择更具有关键性意义。如果在程序设计中使用大量而不必要的变量类型,这会导致C编译器调用库函数的数量,以处理大量的变量类型和数据类型。所以必须特别慎重地进行变量和数据类型的选择。
表1-1 C51的数据类型
数据类型 长度(bit) 长度(Byte) 值域范围 bit
unsigned char
signed char
unsigned int
signed int
unsigned long
signed long
float
double
一般指针 1
8
8
16
16
32
32
32
64
24 —
1
1
2
2
4
4
4
8
3 0,1
0~255
-128~127
0~65535
-32768~32767
0~4 294 967 295
-2 147 483 648~2 147 483 647
±1.176E-38~±3.40E+38(6位数字)
±1.176E-38~±3.40E+38(10位数字)
存储空间0~65535
C51数据存储类型
C51编译器还可以通过将变量、常量定义成不同的存储类型(data,bdata,idata,pdata,xdata,code)的方法,将它们定义在不同的存储区中。
存储类型与51单片机实际存储空间的对应关系如表1-2所示。
表1-2 C51存储类型与51单片机实际存储空间的对应关系
存储类型 与存储空间的对应关系 data
bdata
idata
pdata
xdata
code 直接寻址片内数据存储区,访问速度快(128B)
可位寻址片内数据存储区,允许位与字节混合访问(16B)
间接寻址片内数据存储区,可访问片内全部RAM地址空间(256B)
分页寻址片外数据存储区(256B),由MOVX @Ri访问
寻址片外数据存储区(64KB),由MOVX @DPTR访问
寻址代码存储区(64KB),由MOVC @DPTR访问 当使用存储类型data、bdata定义常量和变量时,C51编译器会将它们定位在片内数据存储区中。片内RAM是存放临时性传递变量或使用频率较高变量的理想场所。访问片内数据存储器(data、bdata、idata)比访问片外数据存储器(xdata、pdata)相对快一些,因此可将经常使用的变量置于片内数据存储器,而将规模较大的或不常使用的数据置于片外数据存储器中。
C51存储类型及其大小和值域如表1-3所示。例如:
表1-3 C51存储类型及其大小和值域
存储类型 长度(bit) 长度(Byte) 值域范围 data
idata
pdata
xdata
code 8
8
8
16
16 1
1
1
2
2 0~255
0~255
0~255
0~65 535
0~65 535 char data var1; /*字符变量var1被定义为data存储类型,定位在片内RAM中*/
bit bdata flags; /*位变量flags被定义为data存储类型,定位在片内RAM中的位寻址区*/
/*(20H~2FH)*/
float idata x,y,z; /*浮点变量x,y,z被定义为idata存储类型,定位在片内RAM中,并只能用间接寻址的方法进行访问*/
unsigned int pdata dimension; /*无符号整型变量dimension被定义为pdata存储类型,定位在片外RAM中,并用MOVX @Ri访问*/
unsigned char xdata vector[10][4][4]; /*无符号字符三维数组变量vector[10][4][4] 被定义为xdata存储类型,定位在片外RAM中,占据10×4×4=160个字节空间*/
如果在变量定义时省略存储类型标志符,编译器会自动默认存储类型。默认的存储类型进一步由SMALL、COMPACT和LARGE存储模式指令限制,见表1-4所示。
存储模式决定了变量的默认存储类型、参数传递区和无明确存储类型的说明。例如,char var1在SMALL存储模式下,var1被定位在data存储区;在COMPACT模式下,var1被定位在表1-4 存储模式及说明
存储模式 说明 SMALL 参数及局部变量放入可直接寻址的片内存储器(最大128B,默认存储类型是data),因此访问十分方便。另外所有对象,包括栈,都必须嵌入片内RAM。栈长很关键,因为实际栈长依赖于不同函数的嵌套层数。 COMPACT 参数及局部变量放入分页片外存储区(最大256B,默认存储类型是pdata),通过寄存器R0和
您可能关注的文档
- 2011福建省福州三中高三高中毕业班模拟(理综)原版.doc
- 2011考研英语经典复习资料:考研长难句分析经典100句.doc
- 2011计算机考研大纲可以打印版.docx
- 2011高三政治总复习课件:专题14 辩证唯物论与辩证唯物主义认识论(第2轮浙江专用).ppt
- 2011高中生物必修二新课标人教版:第四章基因的表达 综合检测题.doc
- 2011高三政治二轮复习课件(生活与哲学):专题十一唯物辩证法.ppt
- 2011高考化学第一轮课件第1章1节氧化还原反应.ppt
- 2011高考物理教案全集(经典实用):第1章《力 物体的平衡》.doc
- 2012MBA词汇特训蒋军虎(打印版).doc
- 2012●QMS审核知识历年考题题库最强大题库.doc
文档评论(0)