1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,2.2.2,存储器结构,8051,单片机在结构上采用了哈佛型,将程序数据分别放在两个存储器内:一个称为程序存储器,(ROM),;另外一个称为数据存储器,(RAM),。,两个存储器共有四个物理上相互独立的存储空间,:,片内,ROM,、片外,ROM,、片内,RAM,、片外,RAM,。,即:,存储器的结构图,一、程序存储器,8051,单片机内部有,4KB,的掩膜,ROM,、,8751,单片机内部有,4KB,的,EPROM,,而,8031,内部没有程序存储器,必须外接程序存储器。,片内,ROM,(,4kB,),00
2、00H,0FFFH,片外,ROM,(,64kB,),0000H,FFFFH,两者统一编址,!,对于,8051,来说,程序存储器(,ROM,),的内部地址为,0000H0FFFH,共,4 KB;,外部地址为,1000HFFFFH,共,60 KB,。,当程序计数器由内部,0FFFH,执行到外部,1000H,时,会自动跳转。对于,8751,来说,内部有,4 KB,的,EPROM,将它作为内部程序存储器,;8031,内部无程序存储器,必须外接程序存储器。,8031,最多可外扩,64 KB,程序存储器,其中,6,个单元地址具有特殊用途,是保留给系统使用的。,0000H,是系统的启动地址,一般在该单元中存
3、放一条绝对跳转指令。,0003H,、,000BH,、,000BH,、,001BH,和,0023H,对应,5,种中断源的中断服务入口地址。,两组特殊单元,1,、,0000H-0002H,(复位后:,PC=0000H,),2,、,0003H-002AH,(,中断入口),0003H-000AH,(,INT0,中断地址区),000BH-0012H,(,T/C0,中断地址区),0013H-001AH,(,INT1,中断地址区),001BH-0022H,(,T/C1,中断地址区),0023H-002AH,(串行口中断地址区),中断服务程序存放方法:,(,1,)从中断地址区首地址开始,在中断地址区中直接存放
4、2,)从中断地址区首地址开始,存放一条无条件转移指令,,以便中断响应后,通过中断地址区,再转到中断服务程序的,实际入口地址,区去。,二、数据存储器,MCS-51,系列单片机数据存储器分内部数据存储器(即片内,RAM,),和外部数据存储器(即片外,RAM,)。,内部数据存储器,低,128,单元是单片机的真正,RAM,存储器。,1,、内部数据存储器低,128,单元,分为三个区域:,A,、寄存器区:,4,组寄存器(寄存器阵列)。即,4,个工作寄存器,0,区,3,区。每组,8,个寄存单元(每单元,8,位),以,R,0,R,7,作寄存器名,暂存运算数据和中间结果。字节地址为,00H,1FH,。,
5、B,、位寻址区:,字节地址为,20H,2FH,,,既可作,RAM,,,也可位操作。共有,16,个,RAM,单元,共,128,位,位地址为,00H,7FH,。,C,、用户,RAM,区:,32,个单元,地址为,30H,7FH,,在一般应用中常作,堆栈区,。,用,PSW,中的两位,PSW.,4,和,PSW.,3,来切换工作寄存器区,选用一个工作寄存器区进行读写操作,。,字节地址,位地址,2,、内部数据存储器高,128,单元,内部,RAM,的高,128,单元,专用寄存器,(,SFR,),区,地址为,80H,FFH,(也称特殊功能寄存器),其字节地址可被,8,整除。,专用寄存器:,A,、,B,、,PSW
6、DPTR,、,SP,。,I/O,接口寄存器:,P0,、,P1,、,P2,、,P3,、,SBUF,、,TMOD,、,TCON,、,SCON,有,2,套地址,字节地址:,只,21,个有效(其中仅,11,个有位地址),位地址:,只,83,位有效,(,1,),SFR,(,80H,FFH,)介绍:,字节地址,位地址,A,、,程序计数器,PC,(,16,位):,CPU,总是按,PC,的指示读取程序,。,PC,是一个,16,位的计数器。其内容为将要执行的指令地址(即下一条指令地址),可自动加,1,。因此,CPU,执行程序一般是顺序方式。当发生转移、子程序调用、中断和复位等操作,,PC,被强制改写,程序
7、执行顺序也发生改变。,复位时,,PC=0000H,。,B,、,累加器,Acc,(,8,位):,需要,ALU,处理的数据和计算结果多数要经过累加器,A,。,C,、,寄存器,B,(,8,位):,与,A,累加器配合执行乘、除运算。也可用作通用寄存器。,D,、,程序状态字,PSW,(,8,位):,存放,ALU,运算过程的标志状态。,E,、,数据指针,DPTR,(,16,位):,存放片外存储器地址,作为片外存储器的指针。可分成两个,8,位寄存器,DPH,、,DPL,使用。,位 序,B,7,B,6,B,5,B,4,B,3,B,2,B,1,B,0,位符号,C,Y,AC,F,0,RS,1,RS,0,OV,F,
8、1,P,(,2,)专用寄存器的字节寻址,注意:,21,个可字节寻址的专用寄存器是,不连续,地分散在内部,RAM,高,128,单元之中,共,83,个可寻址位。尽管还剩余许多空闲单元,但用户并不能使用。,在,22,个专用寄存器中,,唯一,一个不可寻址的,PC,。,PC,不占据,RAM,单元,它在物理上是独立的,因此是不可寻址的寄存器。,对专用寄存器只能使用,直接寻址,方式,书写时既可使用寄存器符号,也可使用,寄存器单元地址,。,MCS-51,的寄存器在片内,RAM,都有映像地址。使用时,既可用,寄存器名,,也可用对应,单元地址,。,字节地址,位地址,字节地址,3.,外部数据存储器,外部数据存储器一
9、般由静态,RAM,构成,其容量大小由用户根据需要而定,最大可扩展到,64 KB RAM,地址是,0000H0FFFFH,。,CPU,通过,MOVX,指令访问外部数据存储器,用间接寻址方式,R0,、,R1,和,DPTR,都可作间接寄存器。注意,外部,RAM,和扩展的,I/O,接口是统一编址的,所有的,外扩,I/O,口都要占用,64 KB,中的地址单元。,三、堆栈操作,1,、堆栈的类型,向上生长型(向地址增大的方向生成):,MCS51,系列,堆栈类型,向下生长型(向地址较低的方向生成):,MCS96,系列,复位时,SP=07H,。,但在程序设计时应将,SP,值初始化为,30H,以后,以免占用宝贵的寄存器区和位地址区。,2,、,SP,的操作规则,堆栈指针,SP,(,8,位):,MCS,51,系列的堆栈是按,“,先进后出,”,原则存取数据的存储区。,MCS,51,堆栈设在,片内,RAM,区,。,数据入栈时:先,SP,自动加,1,,后写入数据,,SP,始终指向栈顶地址。,“,先加后压,”,数据出栈时:先读出数据,后,SP,自动减,1,,,SP,始终指向栈顶地址。,“,先弹后减,”,3,、,SP,的使用方式,A,、自动方式,B,、指令方式,四、小结,1,、程序存储器,2,、数据存储器,3,、堆栈操作,






