此声明没有存储类或类型说明符_对单片机存储分配新的认识

51单片机存储器采用的是哈佛结构,即是程序存储器空间和数据存储器空间分开,程序存储器和数据存储器各自有自己的寻址方式、寻址空间和控制系统。

51存储器可以分为

程序存储器ROM:用于存放程序和表格之类的固定常识。C51编程中用code关键词声明。

内部数据存储器RAM:51子系列有128字节RAM,52子系列有256字节RAM

特殊功能寄存器SFR:80H-FFH字节地址的RAM

4b64f610ab5607af17e5edf083ccb888.png

位地址空间:片内RAM0x20-0x2f空间,本空间允许按位或者字节寻址。可用bdata进行声明。

外部数据寄存器RAM:片外的RAM,最大寻址空间2^16即是64K大RAM。Pdata用于声明片外第一页RAM空间为0-255;xdata用于声明外部RAM空间为0-65535.

内部可直接寻址RAM结构图

51e85d0800d8ba2a3601d80c36f15170.png

此外data用于片内直接寻址RAM空间0-127;idata用于片内间接寻址RAM空间0-255。

二、C51增加的修饰符说明

C51变量声明方式:

存储类说明符 类型说明符 修饰符 标识符;

例如:static unsigned char idata temp;

存储类说明符:包括auto、extern、static、register;

符号说明符:包括unsigned char、char、unsigned int、int、long、unsigned long、float、bit、sfr、sft16、sbit;

修饰符:包括data、idata、pdata、xdata、bdata、code;

cfb2ea96dfeeb596f6747cd427511c7f.png

此外,在编译C51源程序时可选用三种存储模式之一:即小模式(small)、紧凑模式(compact)、大模式(large)。三种模式的ROM空间相同,而三种模式的默认RAM空间:对small模式来说,就是片上RAM的所用空间data和idata;对compact模式来说,是片外pdata空间;large模式,为片外xdata空间;

以上就是对这几天对8051的重新认识,当然不是很全面。在此之前,一直对其存储结构不是太明了。现在多少有一些许了解了,很是兴奋。另外,现在市场上的51内核芯片与之前传统的还是有些许不同的,具体不同之处就需要认真读读供应商的文档资料了。举个例子来说,STC的89c51系列单片机,其ROM空间可以根据信号来判别,其RAM最小的型号89C51,就有256字节内部RAM和扩展的256字节外部RAM,其内部还有4K的EEPROM。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值