- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 Keil-c51 ㈠ C-51简介 C-51与ASM-51相比,有如下优点: ㈡ C-51的程序结构 ㈢ C-51的数据类型 常用的数据类型有: ㈣ C-51数据的存储类型 ㈤ C-51的包含的头文件 通常有:reg51.h math.h ctype.h stdio.h stdlib.h 常用有:reg51.h (定义特殊功能寄存器和位寄存器); math.h (定义常用数学运算); ㈥ C-51的运算符 ㈦ C-51的基本语句 关键字 at far sbit alien idata sfr bdata interrupt sfr16 bit large small code pdata task compact priority using data reentrant xdata 存储区 程序存储区 程序CODE 存储区是只读的他不能写程序存储区可能在8051CPU内或者在外部或者都有根据8051派生的硬件决定。 最多可以有64K字节的程序存储区程序代码包括所有的函数和库保存在程。 序存储区常数变量也是8051可执行程序只保存在程序存储区。 可用code存储区类型标识符来访问程序存储区 内部数据存储区 RAM 特殊功能寄存器SFR 存储区 外部数据存储区 内部数据存储区 data:存储类型标识符通常指低128字节的内部数据区存储的变量直接寻址 idata:存储类型标识符指内部的256个字节的存储区但是只能间接寻址速度比直接寻址慢 bdata:存储类型标识符指内部可位寻址的16字节存储区20H到2FH 可以在本区域定义可位寻址的数据类型 特殊功能寄存器SFR 存储区 8051 系列微处理器提供一个特别的存储区作为特殊功能寄存器SFR 这些寄存器可控制中断、计时器、计数器、串口并口和外围设备 SFR 的地址从0x80 到0xFF, 可以以位、字节和字访问。 外部数据区 外部数据区可读写访问外部数据区比内部数据区慢因为外部数据区是通过一个数据指针加载一个地址来间接访问的。 xdata存储类型标识符指外部数据区64K字节内的任何地址。 pdata 存储类型标识符仅指256 字节的外部数据区。 存储类型 code 程序存储区64K字节,用MOVC @A+DPTR访问 data 直接寻址内部数据区,访问变量速度最快,128字节 idata 间接寻址内部数据区可访问全部内部地址空间256字节 bdata 位寻址内部数据区支持位和字节混合访问16字节 xdata 外部数据区64K字节由MOVX @DPTR访问 far 扩展的RAM和ROM存储空间最多16MB 由用户定义程序或特定的芯片扩展PHILIPS 80C51MX DALLAS 390 访问 pdata 256字节外部数据区由MOVX @Rn访问 数据类型 bit 供一个bit 数据类型,定义一个位变量。 一个位不能被定义为一个指针例如 bit *ptr; /* invalid */ 不能用一个bit类型的数组例如 bit ware[5]; /* invalid */ 可位寻址目标 位可寻址目标是可可以是字或位,只能在8051 内部存储区可位寻址区 用bdata 存储类型定义变量。 而且用bdata 存储类型定义的变量必须是全局的 sbit bdata变量是位可寻址的,因此这些变量的每个位是可直接访问和修改的。 用sbit 关键词声明新的变量可访问用bdata 声明的变量的位。 sbit 定义的变量后的=不能省略。 sbit可用于位可寻址的sfr变量 SFR sfr用于定义一个变量,该变量将代表一个特殊功能寄存器。 sfr定义的变量后面的=不能省略 reg51.h 绝对变量定位 在C 程序中用_at_关键词变量可以定位在绝对存储地址用法如下 type [memory_space] variable_name _at_ constant 1.绝对变量不能初始化,是全局变量。 2.bit 类型的函数和变量不能定位到一个绝对地址 C语言作为一种非常方便的语言而得到广泛的支持, C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。 C提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。 1.??对单片机的指令系统不要求了解,仅要求对8051 的存贮器结构有初步了解; 2.??寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理; 3.??程序有规范的结构,可分成不同的函数,这种方式可使程序结构化; 4.??具有将可变的
文档评论(0)