您当前的位置:首页 > 自动化 > 单片机

8051的记忆体

发布时间:2008-12-21 16:58:07  来源:    作者:   更新20250114 070337

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使用状况

如图所示,MCS-51的所有版本都有较低的128位元组.其中最低的32位元组(00H~1FH),被分成四组(每组八个位元组)暂存器库(Register Bank),程序指令称这些暂存器为,R0、R1、R2、R3、R4、R5、R6和R7.在程序状态字语暂存器(PSW)里.其中有两个位元(RS1 、RS0)可以选择那一个暂存器库被使用.这种安排方式可以使得程序记忆体的使用效率大增,因为暂存器指令较直接指定址法更短.
四个暂存器库的下面16位元组(20H~2FH)被规划成可用位元定址(bit-addressable,每一个位元有一位址)的记忆体.MCS-51的指令集里有很多可以处理单个位元的指令,而在这16位元组的128个位元可以直接被这些指令加以定址.在这一区的位元位址00H~7FH(例如20H.0的位元位址为00 、2FH.7这个位元的位址为7FH).
在较低的128个位元组都可以可使用直接定址或间接定址加以存取;但较高位址的128位元组(前图)只能使用间接定址法.但是8051内部没有较高128位元组,仅8052AH内部才有.
特殊功能暂存器(SFR)内包含有I/O阜的闩锁(Latch) 、计数器和周边控制暂存器等.而这些暂存器只能使用直接定址法加以存取.一般说来,所有8051系列微处理机的SFR都相同,且位址也相同.但是增强型的8051(如8052AH)里所增加的SFR,可能其他的8051没有.
在SFR里有16个位址可以使用位元组(byte)定址或位元(bit)定址,这些可以使用位元定址的地方是:位址以0H或8H结束的位址(如:80H、 88H、90H、98H…..等);这些位元组的位元位址是80H~FFH(例如:80H.0的位元位址为80H 、 88H.2的位元位址为8AH).


SFR中各暂存器位置图

        F8-FFH
B
       F0-F7H
        E8-EFH
ACC
       E0-E7H
        D8-DFH
PSW
       D0-D7H
T2CON
 RCAP2LRCAP2H
TL2
TH2
  C8-CFH
        C0-C7H
IP
       B8-BFH
P3
       B0-B7H
IE
       A8-AFH
P2
       A0-A7H
SCON
SBUF
      98-9FH
P1
       90-97H
TCON
TMOD
TL0
TL1
TH0
TH1
  88-8FH
P0
SP
DPL
DPH
   PCON
80-87H


特殊功能暂存器功能说明

请注意,并非SFR的所有位址都被使用,其中未使用的位址在芯片内不可使用,若去读这些位址时,通常会读到一些不定值,而写入资料时则不会有任何反应。

A暂存器(Accumulator,Acc)-在MCS-51中做算数逻辑运算时都必须透过此暂存器。

B暂存器-用于使用在乘法(MUL AB)和除法(DIV AB)指令.在其他的指令时,它可以被当成一般暂存器处理,不使用乘除运算则为通用暂存器。乘法运算时,存放乘数及相乘后乘积的高位元。除法运算时,存放除数及相除后的余数。

PSW暂存器(Program Status Word)-记录CPU执行的状态。

SP暂存器(Stack Pointer)-指出堆叠空间的起始位址,CPU reset时,SP的内含值是07h,表示堆叠从08h开始。堆叠指标暂存器只有八位元宽,它会在PUSH和CALL指令存入资料前先加1,因为SP的内容可由指令改变,因此堆叠区可以在内部RAM里的任一个位址。

DPTR暂存器(Data Pointer)-是一个16 bit的暂存器,由两个8 bit的DPH,DPL组成,用来指定外部资料记忆体存取时的位址。

P0,P1,P2,P3暂存器-输出/输入port的闩锁(Latch)暂存器,储存输出入的资料。

IE暂存器(Interrupt Enable)-中断致能暂存器,指定中断致能或禁能,8051有五个中断源, bit7为EA,若是0的话,则表示禁止所有的中断要求。

IP暂存器(Interrupt Priority)-设定中断源的优先权-对应的位元为1时,表示有较高的优先权。

TMOD暂存器(Timer/Counter Mode Control Register)-设定第0个和第1个计时/记数器的工作模式,较高和较低的4位元完全相同,高位元记录Timer1,低位元记录Timer0。

串列资料缓冲器(SBUF)-实际上是两个分开的暂存器,一个为传送缓冲器,另一个为接收缓冲器。当资料写入串列缓冲器时,它是被送到传送缓冲器,此资料将被转换成串列信号传送出去,若从SBUF读出资料,这个资料就是从接收缓冲器来。

计时器暂存器-暂存器对(TH0,TL0)、(TH1,TL1)和(TH2,TL2)是16位元计数暂存器,它们分别是计时/计数器0、1和2的计数产生器。

捕捉暂存器(Capture Register)-暂存器对(RCAP2H,RCAP2L)是第2计时器在捕捉模式时的捕捉暂存器,在这个模式下,在8052S和T2EX接脚上有信号转移时, TH2和TL2的内容会被拷贝到RCAP2H和RCAP2L中。第2计时器也有16位元自动重新载入(auto-reload)的功能,在此模式下RCAP2H和RCAP2L保持着这被重新载入的值。

控制暂存器-特殊功能暂存器里的IP、IE、TMOD、TCON、SCON和PCON内包含有中断系统、计时器/计数器、和串列埠的控制位元和旗号位元,在中断单元中会将它们做详细的分析。


来顶一下
近回首页
返回首页

上一篇:8051单片机特性

下一篇:8051的指令

分享到:
发表评论

 共有人参与,请您也说几句看法

 
   验证码: 看不清楚,点击刷新 看不清楚,点击刷新