工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

8051的记忆体

作者:dolphin时间:2011-05-05

8051程序记忆体

在下图中画出了程序记忆体较低位址的部分,当MCS-51的CPU被重置(Reset)后,会从0000H开始执行程序.每一个中断,在程序记忆体中有一个指定的位址,当中断产生且被接受时,会使CPU跳至那个指定的位址开始执行中断副程序,例如:UART的中断位置是在0023H,如果UART被使用,则它的中断服务程序必须由0023H这个位址开始.如果这个中断未被使用,则它的服务程序之位址可作一般程序记忆体使用.

中断服务程序的位址空间都规划成8位元的长度,0003H为第0号外部中断(INT0);000BH为0号计时器(TIMER0);0013H为第1号外部中断(INT1);001BH为第1号计数器(TIMER1);0023H为串列阜(UART);002BH为第2号计数器(8052才有TIMER2).如果中断服务程序够短的话(例如用在控制的场合里就是如此),则此中断服务程序可完全放在这八个位元组里.较长的服务程序可使用跳跃指令(LJMP、AJMP),以跳过其它的中断位址空间.

程序记忆体的最低4K(在8052AH为8K)位元组,可以是芯片内部的ROM或是在外部的ROM(EPROM),其选择方式是由MCS-51的EA这支接脚加以选择;若EA=VCC为内部ROM、EA=GND则为外部ROM.在8051系列里,如果EA接在VCC上,位址0000H~0FFFH的程序是由内部ROM提供,1000H~FFFFH的程序则由外部的ROM提供.

在8052H系列里,若EA接在VCC时,则0000H~1FFFH的程序是由内部ROM提供;2000H~FFFFH由外部ROM提供.如果EA接至VSS,则所有程序都由外部ROM提供.因8031、 8032AH等内部没有ROM,因此必须将它的EA接至VSS,使他们可以直接执行外部程序.


PSEN为读取外部ROM之激发信号,它是用在所有外部程序的提取;PSEN在CPU提取内部程序时不动作.执行外部程序的硬体架构如所示.请注意共有16条I/O( P0和P2)被连接成汇流排之功能,以作为外部程序的程序记忆体的读取介面.P0被当作外部位址/资料汇流排多工;它首先当作位址汇流排,以输出程序计数器的低位元组(PCL),然后进入高阻抗状态,以等待程序记忆体输出指令码(OP Code),在程序计数器低位元组(PCL)有效的同时,ALE信号会将它锁入位址闩锁器(Address Latch)里,在这同时,位址的高位元组(PCH)也会从P2输出.最后PSEN会激发EPROM,然后指令码就被读入微处理机中.

程序记忆体的位址一定是16位元宽,就算你只使用了低于64K位元组也是如此,它是使用两个八位元的I/O埠(P0和P2)以定址外部程序记忆体.


8051资料记忆体

图中使用两个字节的地址(16bit),但此时地址的高字节由P2输出、低字节由P0输出.

内部数据存储器,如图所示,其空间被分为三块;即(1)较低地址128字节数据存储器;(2)较高128字节的数据存储器(8052才有,需使用间接寻址方式存取数据);(3)特殊功能缓存器(Special Function Register 简称SFR).内部数据存储器的地址只有一个位宽,也就是只能到256字节的空间.

   7FH

 30H

 20H                     2FH

18H

R0

19H

R1

1AH

R2

1BH

R3

1CH

R4

1DH

R5

1EH

R6

1FH

R7

10H

R0

11H

R1

12H

R2

13H

R3

14H

R4

15H

R5

16H

R6

17H

R7

08H

R0

09H

R1

0AH

R2

0BH

R3

0CH

R4

0DH

R5

0EH

R6

0FH

R7

00H

R0

01H

R1

02H

R2

03H

R3

04H

R4

05H

R6

06H

R7

07H

R7

内部RAM使用状况

关键词: 记忆体

评论

技术专区