电工文库|C51单片机存储类型及存储模式

   更新日期:2017-03-26     来源:建材之家    作者:水电之家    浏览:18    评论:0    
核心提示:1.C51存储类型<?XML:NAMESPACE PREFIX = O /> 对于在片外扩充的接口,可以根据硬件形成的地址,用#define语句进行定义,例如: #define unsigned char xdata adAddr_at_0x2000; C51编译器支持80C51及其派生系列的体系结构,

合格PE管材应达到的要求

推荐简介:(1)使用寿命:在特定的环境温度、压力的情况下(由施工标准觉定),PE管材可以具有产品标准的使用寿命(一般为50年)。(2)耐腐性能:厂家生产的PE管材能够耐大多数化学物品(酸碱盐)以及承受PH值范围在1-14的高浓度酸和碱的腐蚀的腐蚀,可以在浓度小于80%的浓盐酸中应用,在浓度小于75%的硫酸、浓度小于20%的硝酸中性能相当稳定。(3)抗磨性能:PE管材应具有一定的耐磨要求,即抗滑动摩擦能力......
水电之家讯:1.C51存储类型<?XML:NAMESPACE PREFIX = O />

对于在片外扩充的接口,可以根据硬件形成的地址,用#define语句进行定义,例如:

#define unsigned char xdata adAddr_at_0x2000;

C51编译器支持80C51及其派生系列的体系结构,并提供对80C51所有存储区的访问。每个变量可以用表1中所列的存储器类型明确地分配到指定的存储空间。

表1 C51存储类型与80C51存储空间的关系

数据类型



字节

值的范围

char

8

1

-128~127

unsigned char

8

1

0~255

enum

16

2

-32768~32767

short

16

2

-32768~32767

unsigned short

16

2

0~65535

int

16

2

-32768~32767

unsigned int

16

2

0~65535

long

32

4

-2147483648~2147483647

unsigned long

32

4

0~4294967295

float

32

4

±1.175494E-38~±3.402823E+38

bit

1



0,1

sbit

1



0,1

sfr

8

1

0~255

sfr16

16

2

0~65535

对内部数据存储器的访问比对外部数据存储器的访问快许多,因此应当将频繁使用的变量放在内部数据存储器,而把较少使用的变量放在外部数据存储器中。 下面用实例说明各种存储器变量的声明。

(1)程序存储器变量:程序存储器的数据不能修改,通常将跳转向量或表格存放在该区,存储器类型标识符为code。

例如:unsigned char code text[] = “ENTER PARAMETER”;

(2)直接寻址内部数据存储器变量:可在一个机器周期直接寻址,因此将常用的变量放在data区。存储器类型标识符为data。

例如:unsigned char data flag;

(3)间接寻址内部数据存储器变量:用8位寄存器作为指针寻址内部存储器。存储器类型标识符为idata。

例如:unsigned char idata buffer[8];

(4)位寻址内部数据存储器变量:是内部数据存储器的位寻址区,位变量对需要位操作的数据十分有用,其存储器类型标识符为bdata。

注意:位寻址变量应声明为全局变量,否则编译将出错。

例如:unsigned char bdata bStatue;

sbit statue_0 = bStatue^0;

bit数据类型可以用来访问用bdata存储器类型标识声明的变量的位。

外部数据存储器的声明与前面例子相似,这里不再说明。

如果变量声明中遗漏存储器类型标识符,则自动选择默认的存储器类型。默认的存储器类型应用到所有全局变量、静态变量、函数自变量和不能分配寄存器的自动变量。默认的存储器类型取决于编译时的存储器模式。这都是不同于一般C语言的地方。

2.C51的存储器模式

存储器模式确定了用于函数自变量、自动变量和无明确存储类型变量的默认存储器类型。可用编译器控制指令Small,Compact和Large指定编译时的存储器模式。用存储器类型标识符明确声明一个变量,优先于默认存储器类型。

(1)Small模式

所有变量默认位于80C51内部数据存储器,这和使用data存储器类型标识符明确声明是相同的。该模式变量访问非常有效,但所有数据对象和堆栈必须适合内部RAM。因为使用的堆栈空间决定于不同函数嵌套的深度,故对堆栈的尺寸要求严格。

(2)Compact模式

所有变量默认位于外部数据存储器的一页(256B)内,这和使用pdata存储器类型标识符明确声明是相同的。地址高字节通常设置P2,编译器无法设置这个端口,故必须在启动代码中手工设置。该模式能容纳最多256B的变量,这个限制是用R0、R1间接寻址造成的。该模式的效率不如Small模式的效率,变量访问速度不如Small模式的快,但比Large模式快。

(3)Large模式

所有变量默认位于外部数据存储器,这和使用xdata存储器类型标识符明确声明是相同的。寻址使用数据指针(DPRT),变量访问效率低,特别是对多字节变量,该模式的数据访问比Small模式和Compact模式生成的代码多。

一般经常使用Small模式,它可生成最快、最紧凑和最有效的代码。通常可以明确指定变量的存储位置。仅当使用Small模式时不适合应用或操作才上升到Compact模式和Large模式。水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
小程序码
 
打赏
 
更多>文章标签:管材
更多>同类水电电工资讯
0相关评论

老姚之家 | 全景头条 | 照明之家 | 防水之家 | 防盗之家 | 区快洞察 | 潜江建材 | 仙桃建材 | 恩施建材 | 随州建材 | 咸宁建材 | 黄冈建材 | 荆州建材 | 孝感建材 | 荆门建材 | 鄂州建材 | 襄樊建材 | 宜昌建材 | 十堰建材 | 黄石建材 | 长沙建材 | 湘西建材 | 娄底建材 | 怀化建材 | 永州建材 | 郴州建材 |
建材 | 720全景 | 企业之家 | 移动社区 | 关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图 | 排名推广 | 广告服务 | 积分换礼 | RSS订阅 | sitemap | 粤ICP备14017808号-1
(c)2015-2017 BYBC.CN SYSTEM All Rights Reserved
Powered by 电工之家