单片机原理及应用2版张伟3节.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文档。上传文档
查看更多
PPT研究院 POWERPOINT ACADEMY * * * * 第3章 Keil C51编译器及其应用 C51概述 MCS-51单片机的映射 Keil C51编译器的使用 C51概述 用C语言的优势: 1、寄存器的分配以及各种变量和数据的寻址都由编译器完成。 2、程序拥有了正式的结构,并且能被分成多个单独的函数。这使整个应用系统的结构变得清晰,同时让源代码变得可重复使用。 3、选择特定的操作符来操作变量的能力提高了源代码的可读性。 4、可以运用和人的思维很接近的词汇和算法表达式。 5、编写程序和调试程序的时间得到很大程度的缩短。 6、C运行连接库包含一些标准的子程序。 7、由于程序的模块结构技术,使得现有的程序段可以很容易的包含到新的程序中去。 MCS-51单片机的映射 Keil C51的数据类型 MCS-51单片机的映射 Keil C51存储类型 Code:程序空间(64 Kbytes),通过 MOVC @A+DPTR 访问。 Data:直接访问的内部数据存储器,访问速度最快(128 bytes)。 Idata:间接访问的内部数据存储器,可以访问所有的内部存储器空间。 Bdata:可位寻址的内部数据存储器,可以字节方式也可以位方式访问。 Xdata: 外部数据存储器(64 Kbytes),通过MOVX @DPTR访问。 Pdata:分页的外部数据存储器(256 bytes),通过 MOVX @Ri 访问。 MCS-51单片机的映射 存储模式 1)小(SMALL)模式:所有变量都默认在8051的内部数据存储器中。这和用data显式定义变量起到相同的作用。 2)紧凑(COMPACT)模式: 此模式中,所有变量都默认在8051的外部数据存储器的一页中。地址的高字节往往通过Port 2输出。这和用pdata显式定义变量起到相同的作用。这种限制来自于间接寻址所使用的R0,R1(MOVX @Ri)。 3)大(LARGE)模式: 在大模式下,所有的变量都默认在外部存储器中(xdata)。这和用xdata显式定义变量起到相同的作用。数据指针(DPTR)用来寻址。 MCS-51单片机的映射 Keil C51中的变量定义 1、在变量的声明中,可以包括存储器类型和signed或unsigned属性。如: 1)char data var1; 2)char code text[] = ENTER PARAMETER; 3)unsigned long xdata array[100]; 4)float idata x,y,z; MCS-51单片机的映射 Keil C51中的变量定义 5)unsigned int pdata dimension; 6)unsigned char xdata vector[10][4][4]; 7)char bdata flags; MCS-51单片机的映射 2、位变量(bit):与MCS-51硬件特性操作有关的可以定义成位变量。位变量定位在MCS-51单片机的片内RAM的位寻址空间。 3、整型变量(int):整型变量的长度为16位,占2个字节,在存储器中的存放格式为高位在低地址字节,低位在高地址字节。 4、浮点变量(float):浮点变量的长度为32位,占4个字节, MCS-51单片机的映射 5、特殊功能寄存器(sfr、sfr16、sbit) sfr:字节寻址。比如 sfr P0=0x80;表示PO口地址为80H,“=”后为80H~FFH之间的常数。 sfr16:字寻址。如sfr16 T2=0xCC;指定Timer2口地址T2L=CCH T2H=CDH。 sbit:位寻址。如sbit EA=0xAF;指定第0xAF位为EA,即中断允许。还可以有如下定义方法: sbit 0V=PSW^2;(定义0V为PSW的第2位,当然需要先有PSW定义。) sbit 0V=0XDO^2;(同上) MCS-51单片机的映射 C51中的指针 1)通用指针 通用或未定型的指针的声明和标准C语言中一样。如: char *s; 字符指针 int *numptr; 整型指针 long *state; 长整型指针 通用指针总是需要三个字节来存储。第一个字节是用来表示存储器类型,第二个字节是指针的高字节,第三字节是指针的低字节。 通用指针可以用来访问所有类型的变量,而不管变量存储在哪个存储空间中。因而许多库函数都使用通用指针。通过使用通用指针,一个函数可以访问数据,而不用考虑它存储在什么存储器中。 通用指针很方便,但是也很慢。在所指向目标的存储空间不明确的情况下,它们用的最多。 MCS-51单片机的映射 C51中的指针 2)存储器指针 存储器指针或类型确定的指针在定义时包括一个存储器类型说明,并且总是指向此说

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档