[理学]第3章 Cx51数据与运算.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]第3章 Cx51数据与运算

第三章 Cx51数据与运算 3.1 数据与数据类型 3.2 常量与变量 3.3 Cx51数据的存储结构 3.4 SFR及其Cx51定义 3.5 并行接口及其Cx51定义 3.6 位变量及其Cx51定义 3.7 Cx51的运算规则 3.1 数据与数据类型 3.2 常量与变量 3.3 Cx51数据的存储结构 3.4 特殊功能寄存器SFR及其Cx51定义 3.5 并行接口及其Cx51定义 3.6 位变量及其Cx51定义 3.7 Cx51的运算规则 习题参考答案(P.79) 习题3. 8051主要的存储空间是什么?为什么两个RAM的空间不同? 习题4. 编一段程序,把8位口新的输入值和前一次的输入值进行比较,然后产生一个8位数。这个数中的位为“1”的条件是:仅当新输入的位为“0”,而前一次输入的位为“1”。 习题6. 按给定的存储类型和数据类型,写出下列变量的说明形式: up,down 整数,使用堆栈存储; first,last 浮点数,使用外部数据存储器存储; cc,ch 字符,使用内部数据存储器存储。 习题7. 判断下列关系表达式或逻辑表达式的运算结果(1或0) 习题8. 设x=4,y=8,说明下列各题运算后,x,y和z的值分别是多少? 习题9. 分析下列运算表达运算顺序。 答:设该8位口为P1,新产生的8位数为x: unsigned char x; x=P1; x=~P1; 答:堆栈只能存储内部RAM字节内容,必须在idata区: int idata up,down; float xdata first,last; char idata cc,ch; 答: 1、10==9+1; ?1 2、00; ?0 3、108; ?1 4、8||0; ?1 5、!(3+2); ?0 6、设x=10,y=9;x=8y=x; ?1 答: 1、z=(x++)*(--y); ? x=5,y=7,z=28 2、z=(++x)-(y--); ? x=5,y=7,z=-3 3、z=(++x)*(--y); ? x=5,y=7,z=35 4、z=(x++)+(y--); ? x=5,y=7,z=12 答: 1、c=a|| (b); ? b,若a=0则a|| (b),结果赋给c 2、x+=y-z; ? y-z,x+(y-z),结果赋给x 3、-b2; ? -b,结果右移2位 4、c=++a%b--;? a=a+1,a%b,b=b-1,%结果赋给c 5、!mn; ? !m,若结果为1再和n相与 6、ab||cd; ? ab,若结果为0则cd,结果相或 5、存储器模式 Cx51提供了3种存储器模式来存储变量过程参数和分配再入函数堆栈: 参数及局部变量放入xdata区,默认存储类型是xdata,模拟堆栈位于片外xdata(片外RAM) large 参数及局部变量放入pdata区,默认存储类型是pdata,堆栈位于片内idata(片内RAM) compact 参数及局部变量放入data区,默认存储类型是data,堆栈位于片内idata(片内RAM) small 说明 存储模式 一般来说如果系统所需要的内存数小于内部RAM数时,都应以small模式进行编译。 在这种模式下,data段是所有内部变量和全局变量的默认存储段,所有参数传递都发生在data段中。 如果有函数被声明为再入函数,编译器会在内部RAM中为他们分配空间。 这种模式的优势就是数据的存取速度很快,但只有1个字节寻址的存储空间供你使用(总共有128,但至少有8个字节被寄存器组使用)。 (1)small模式。 如果你的系统有256字节或更少的外部RAM,你可以使用compact模式,这样一来,如果不加说明,这种模式将扩充你能够使用的RAM数量。对xdata段以外的数据存储仍然是很快的,变量的参数传递将在内部RAM中进行,这样存储速度会比较快。对pdata段的数据的寻址是通过R0和R1进行间接寻址的,比使用DPTR要快一些。 (2)compact模式 在large模式中所有变量的默认存储区是xdata段,Keil C尽量使用内部寄存器组进行参数传递。在寄存器组中可以传递参数的数量和compact模式一样,再入函数的模拟栈将在xdata中。对xdata段数据的访问是最慢的,所以要仔细考虑变量应存储的位置,使数据的存储速度得到优化。 (3)lar

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档