MCS-51单片机在物理结构上有四个存储空间: 1、片内程序存储器2、片外程序存储器3、片内数据存储器4、片外数据存储器 但在逻辑上,即从用户的角度上,单片机有三个存储空间: 1、片内外统一编址的64K的程序存储器地址空间(MOVC)2、B的片内数据存储器的地址空间(MOV)3、以及64K片外数据存储器的地址空间(MOVX)在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。 程序内存ROM 寻址范围:H~FFFFH容量64KBEA=1,寻址内部ROM;EA=0,寻址外部ROM地址长度:16位作用:存放程序及程序运行时所需的常数。七个具有特殊含义的单元是:H——系统复位,PC指向此处;H——外部中断0入口BH——T0溢出中断入口H——外中断1入口BH——T1溢出中断入口H——串口中断入口BH——T2溢出中断入口
注意: ①但要注意的是内部数据存储器是byte(字节)。访问低B可以直接寻址也可以间接寻址,访问内部数据存储器高B时只能间接寻址(MOV R0、R1、DPTR),访问特殊功能寄存器区SFR时只能直接寻址(MOVA,80H)。
②外部RAM是通过单片机外部总线连接的,有可能在片内。如STC89C58RD+有0B(字节)位于片内的外部SRAM。再可以通过这个图了解51单片机的存储器结构
变量定义及其存储模式
C语言中变量要“先声明后使用”。
变量定义格式: [存储种类]数据类型[存储器类型]变量名表; 存储种类:自动(auto)、外部(extern)、静态(static)、寄存器(register) 存储器类型: data可直接寻址的片内数据存储器RAM(字节)。1个或2个指令周期,访问速度较快。 bdata可位寻址的片内数据存储器RAM(16字节)。 idata间接访问的片内数据存储器RAM(字节)。 pdata分页寻址的片外存储器RAM(字节)——不常用。 xdata片外数据存储器RAM(64k字节)至少3个指令周期。 code程序存储器ROM(64k字节)
注意:访问片内数据存储器(data,bdata,idata)比访问片外数据存储器(xdata,pdata)相对要快一些,因此可将经常使用的变量至于片内数据储存器,而将规模较大的,或不常使用的数据至于片外数据储存器中。 如果在变量定义时略去存储类型标识符,编译器会自动选择默认的存储类型。编译时使用的存储器模式small、北京哪里白癜风医院比较好北京中科医院
|