第三部分单片机语文程序设计.ppt

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

3.4C51变量定义举例4)定义存储在bdata区域的动态unsignedchar变量: unsignedcharbdataoperate,operate1; //定义指示操作的可位寻址的变量5)定义存储在idata区域的动态unsignedchar数组: unsignedcharidatatemp[20];6)定义在pdata区域的动态有符号int数组: intpdatasend_data[30]; //定义存放发送数据的数组第30页,共73页,星期日,2025年,2月5日3.4C51变量定义举例7)定义存储在xdata区域的动态unsignedint数组: unsignedintxdatareceiv_buf[50]; //定义存放接受数据的数组8)定义存储在code区域的unsignedchar数组: unsignedcharcodedis_code[10]= {0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; //定义共阴极数码管段码数组第31页,共73页,星期日,2025年,2月5日3.5C51变量的存储模式 存储模式:如果在定义变量时缺省了存储区属性,则编译器会自动选择默认的存储区域,也就是存储模式。 变量的存储模式也就是程序(或函数)的编译模式。 编译模式分为三种:小模式(small)、紧凑模式(compact)和大模式(large)。编译模式由编译控制命令决定。 存储模式(编译模式)决定了变量的默认存储区域和参数的传递方法。第32页,共73页,星期日,2025年,2月5日3.5C51变量的存储模式一、small模式 在small模式下,变量的默认存储区域是“data”、“idata”,即未指出存储区域的变量保存到片内数据存储器中,并且堆栈也安排在该区域中。 small模式的特点:存储容量小,但速度快。small模式参数的传递:通过寄存器、堆栈或片内数据存储区完成的。第33页,共73页,星期日,2025年,2月5日3.5C51变量的存储模式二、compact模式 在compact模式下,变量的默认存储区域是“pdata”,即未指出存储区域的变量保存到片外数据存储器的一页中,最大变量数为256字节,并且堆栈也安排在该区域中。 compact模式特点:是存储容量较small模式大,速度较small模式稍慢,但比large模式要快。compact模式下参数传递:通过片外数据区的一个固定页完成的。第34页,共73页,星期日,2025年,2月5日3.5C51变量的存储模式三、large模式 在large模式下,变量的默认存储区域是“xdata”,即未指出存储区域的变量保存到片外数据存储器,最大变量数可达64KB,并且堆栈也安排在该区域中。 large模式的特点:存储容量大,速度慢 large模式下参数的传递方式:参数的传递也是通过片外数据存储器完成的。第35页,共73页,星期日,2025年,2月5日3.5C51变量的存储模式 C51支持混合模式:即可以对函数设置编译模式,所以在large模式下,可以对某些函数设置为compact模式或small模式,从而提高运行速度。 默认编译模式:如果文件或函数未指明编译模式,则编译器按small模式处理。 编译模式控制命令:“#pragmasmall(或compact、large)”应放在文件的开始。第36页,共73页,星期日,2025年,2月5日3.6C51变量的绝对定位C51有三种方式可以对变量(I/O端口)绝对定位:绝对定位关键字_at_、指针、库函数的绝对定位宏。对于后两种方式,在后面指针一节介绍C51扩展的关键字_at_专门用于对变量作绝对定位,_at_使用在变量的定义中,其格式为:[存储类型]数据类型[存储区]变量名1_at_地址常数[,变量名2…]第37页,共73页,星期日,2025年,2月5日3.6C51变量的绝对定位举例说明_at_的使用方法 1)对data区域中的unsignedchar变量aa作绝对定位: unsigned char dataaa_at_0x30; 2)对pdata区域中的unsignedint数组cc作绝对定位: unsigned i

文档评论(0)

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

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档