对单片机存储分配新的认识

  一、存储器结构

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

51存储器可以分为

  1. 程序存储器ROM:用于存放程序和表格之类的固定常识。C51编程中用code关键词声明。
  2. 内部数据存储器RAM:51子系列有128字节RAM,52子系列有256字节RAM
  3. 特殊功能寄存器SFR:80H-FFH字节地址的RAM
  4. 位地址空间:片内RAM0x20-0x2f空间,本空间允许按位或者字节寻址。可用bdata进行声明。
  5. 外部数据寄存器RAM:片外的RAM,最大寻址空间2^16即是64K大RAM。Pdata用于声明片外第一页RAM空间为0-255;xdata用于声明外部RAM空间为0-65535.

                       

                                  内部可直接寻址RAM结构图

  此外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;       

  此外,在编译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。

posted @ 2013-01-30 17:20  灰色的鱼  阅读(1138)  评论(0编辑  收藏  举报