C语言应用要点.ppt(恢复).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言应用要点.ppt(恢复)

* * C语言应用要点 MCS—51单片机存储器空间结构图 (a) 程序存储器; (b) 内部数据存储器; (c) 外部数据存储器     程序存储区使用MOVC A,@DPTR 访问 CODE 外部存储区使用MOVX A,@DPTR 访问 XDATA 外部存储区的256 个字节通过P0 口的地址对其寻址使用指令MOVX @Rn,需要两个指令周期 PDATA 间接寻址片内数据存储区,可访问片内RAM 区的256个字节 IDATA DATA 区的16 个字节的可位寻址区 BDATA RAM 的低128 个字节可在一个周期内直接寻址 DATA C51存储类型与8051存储空间的对应关系 C51数据类型长度 24 bit generic pointer 64 bit double 32 bit Float 32 bit long/unsigned long 16 bit int/unsigned char 8 bit char/unsigned char 1 bit bit 大小 数据类型 8051单片机内部资源使用 8051单片机内部资源都是由特殊功能寄存器实现的。 特殊功能寄存器要先定义再使用,其C51定义如下: 特殊功能寄存器用sfr 来定义 特殊功能寄存器的可位寻址用sbit来定义。 sfr P0=0x80; sbit CY = 0xD7; 8051的特殊功能寄存器定义在reg51.h中定义 #include reg51.h main() { P1=0x01; } 8051单片机扩展资源使用 8051的扩展资源与外部存储器占用相同的地址空间,因此可同等对待。单片机的扩展资源的地址都是固定的,因此要用绝对地址访问的方法来访问。 有三种方法可以进行绝对地址访问。 (1)使用预定义,包含在absacc.h中。 #include absacc.h #define PORTA XBYTE[0x8000]; main() { PORTA=0x55; } (2)使用指针 unsigned char *pPortA; main() { pPortA=0x8001; *pPortA =0x55; } (3)使用_at_ 指定绝对地址空间 unsigned char xdata PortB _at_ 0x8007; main() { pPortA=0x8000; *pPortA =0x55; } #include reg51.h //特殊功能寄存器定义 #include absacc.h //绝对地址访问 #define PortA XBYTE[0x8000] //三种方式访问外部设备 unsigned char xdata PortB _at_ 0x8007; //三种方式访问外部设备 unsigned char xdata *pPort; //三种方式访问外部设备 main() { unsigned char i; unsigned char x[6]; PortA=0x55; pPort=0x8001; PortB=0x66; for(i=0;i6;i++) { *(pPort+i)=i+1; } } 1、使用单片机内部资源,加入reg51.h 2、使用外部扩展资源,加入absacc.h 3、定义变量时尽可能指定变量的存储空间。 4、变量存储空间安排要合理,使用最频繁的变量放在DATA区,最不频繁的放在XDATA区。 5、常量及表格尽量放在CODE代码区。 6、尽可能多使用查表方式(数组)代替数学运算。 7、变量尽可能使用无符号整数,尽可能使用char型变量 8、使用指针时要注意指针所指向变量的存储空间不要溢出。 9、主程序总是一个死循环。 10、尽可能使用函数完成特定功能,以保证程序的结构化。 用一个光敏开关(天暗断开,天亮导通)控制迷虹灯,天暗时,迷红灯虹灯亮,如果发生报警状态时,不亮。 #include reg51.h unsigned char code

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档