基本信息
文件名称:第三部分单片机语文程序设计.ppt
文件大小:2.85 MB
总页数:73 页
更新时间:2025-06-23
总字数:约1.06万字
文档摘要

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