《存储器结构.ppt》由会员分享,可在线阅读,更多相关《存储器结构.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 2.2.2 存储器结构存储器结构 8051单片机在结构上采用了哈佛型,将程序数据分别放在两个存储器内:一个称为程序存储器(ROM);另外一个称为数据存储器(RAM)。两个存储器共有四个物理上相互独立的存储空间:片内ROM、片外ROM、片内RAM、片外RAM。即:存储器的结构图存储器的结构图 一、程序存储器 80518051单片机内部有单片机内部有4KB4KB的掩膜的掩膜ROMROM、87518751单片机内部有单片机内部有4KB4KB的的EPROMEPROM,而,而80318031内内部没有程序存储器,必须外接程序存储器。部没有程序存储器,必须外接程序存储器。片内ROM(4kB)0000H0
2、FFFH片外ROM(64kB)0000HFFFFH 两者统一编址!对 于 8051来 说,程 序 存 储 器(ROM)的 内 部 地 址 为 0000H0FFFH,共 4 KB;外部地址为 1000HFFFFH,共 60 KB。当程序计数器由内部 0FFFH执行到外部 1000H 时,会自动跳转。对于 8751 来说,内部有 4 KB的EPROM,将它作为内部程序存储器;8031 内部无程序存储器,必须外接程序存储器。8031 最多可外扩 64 KB程序存储器,其中 6 个单元地址具有特殊用途,是保留给系统使用的。0000H是系统的启动地址,一般在该单元中存放一条绝对跳转指令。0003H、00
3、0BH、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)从中断地址区首地址开始,在中断地址区中直接)从中断地址区首地址开始,在中断地址区中直接存放;存放;(2)从中断地址区首地址开
4、始,存放一条无条件转移)从中断地址区首地址开始,存放一条无条件转移指令,指令,以便中断响应后,通过中断地址区,再转到中断以便中断响应后,通过中断地址区,再转到中断服务程序的服务程序的实际入口地址实际入口地址区去。区去。二、数据存储器 MCS-51系列单片机数据存储器分内部数据存储器(即片内RAM)和外部数据存储器(即片外RAM)。内部数据存储器内部数据存储器内部数据存储器内部数据存储器 低低128单元是单片机的真单元是单片机的真正正RAM存储器。存储器。1 1、内部数据存储器低、内部数据存储器低128128单元单元分为三个区域:分为三个区域:A、寄存器区:、寄存器区:4组寄存器(寄存器阵列)。
5、即组寄存器(寄存器阵列)。即4个工作寄存器个工作寄存器0区区3区。区。每组每组 8个寄存单元(每单元个寄存单元(每单元8位),以位),以R0R7作寄存器名,暂存运作寄存器名,暂存运算数据和中间结果。字节地址为算数据和中间结果。字节地址为00H1FH。B、位寻址区、位寻址区:字节地址为字节地址为20H2FH,既可作既可作RAM,也可位操作。共有也可位操作。共有16个个RAM单元,共单元,共128位,位地址为位,位地址为00H7FH。C、用户、用户RAM区:区:32个单元,地址为个单元,地址为30H7FH,在一般应用中常作,在一般应用中常作堆栈区堆栈区。用用PSW中的两位中的两位PSW.4和和PS
6、W.3来切换工作寄存来切换工作寄存器区,选用一个工作寄存器区进行读写操作器区,选用一个工作寄存器区进行读写操作。字字节节地地址址位地址位地址2 2、内部数据存储器高、内部数据存储器高128128单元单元 内部内部RAM的高的高128单元单元 专用寄存器专用寄存器(SFR)区区 地址为地址为80HFFH(也称特殊功能寄存器)(也称特殊功能寄存器)其字节地址可被其字节地址可被8整除。整除。专用寄存器:专用寄存器:A、B、PSW、DPTR、SP。I/O接口寄存器:接口寄存器:P0、P1、P2、P3、SBUF、TMOD、TCON、SCON 有有2套地址套地址字节地址:字节地址:只只2121个有效(其中
7、仅个有效(其中仅1111个有位地址)个有位地址)位地址:位地址:只只8383位有效位有效(1)SFR(80HFFH)介绍:)介绍:字字节节地地址址位地址位地址 A A、程序计数器程序计数器PC(16位):位):CPU总是按总是按PC的指示读取程序的指示读取程序。PC是一个是一个16位的计位的计数器。其内容为将要执行的指令地址(即下一条指令地址)数器。其内容为将要执行的指令地址(即下一条指令地址),可自动加,可自动加1。因此。因此CPU执行程序一般是顺序方式。当发生执行程序一般是顺序方式。当发生转移、子程序调用、中断和复位等操作,转移、子程序调用、中断和复位等操作,PC被强制改写,被强制改写,程
8、序执行顺序也发生改变。程序执行顺序也发生改变。复位时,复位时,PC=0000H。B B、累加器累加器Acc(8位):位):需要需要ALU处理的数据和计算结果多数要经过累加器处理的数据和计算结果多数要经过累加器A。C C、寄存器寄存器B(8位):位):与与A累加器配合执行乘、除运算。也可用作通用寄累加器配合执行乘、除运算。也可用作通用寄存器。存器。D D、程序状态字程序状态字PSW(8位):位):存放存放ALU运算过程的标志状态。运算过程的标志状态。E E、数据指针数据指针DPTR (16位):位):存放片外存储器地址,作为片外存储器的指针。存放片外存储器地址,作为片外存储器的指针。可分成两个可
9、分成两个8位寄存器位寄存器DPHDPH、DPLDPL使用。使用。位位位位 序序序序B B7 7B B6 6B B5 5B B4 4B B3 3B B2 2B B1 1B B0 0位符号位符号位符号位符号C CY YACACF F0 0RSRS1 1RSRS0 0OVOVF F1 1P P(2)专用寄存器的字节寻址)专用寄存器的字节寻址 注意:注意:21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,共83个可寻址位。尽管还剩余许多空闲单元,但用户并不能使用。在22个专用寄存器中,唯一一个不可寻址的PC。PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。对专用
10、寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器单元地址。MCS-51的寄存器在片内的寄存器在片内RAM都有映像地址。都有映像地址。使用时,既可用使用时,既可用寄存器名寄存器名,也可用对应,也可用对应单元地址单元地址。字字节节地地址址位地址位地址字字节节地地址址 3.外部数据存储器外部数据存储器 外部数据存储器一般由静态RAM构成,其容量大小由用户根据需要而定,最大可扩展到 64 KB RAM,地址是 0000H0FFFFH。CPU通过MOVX指令访问外部数据存储器,用间接寻址方式,R0、R1和 DPTR都可作间接寄存器。注意,外部RAM和扩展的I/O接口是统一编址的,所有
11、的外扩I/O 口都要占用 64 KB中的地址单元。三、堆栈操作三、堆栈操作1 1 1 1、堆栈的类型、堆栈的类型、堆栈的类型、堆栈的类型 向上生长型向上生长型(向地址增大的方向生成):(向地址增大的方向生成):MCS51 系列系列堆栈类型堆栈类型 向下生长型(向地址较低的方向生成):向下生长型(向地址较低的方向生成):MCS96 系列系列复位时复位时 SP=07H。但在程序设计时应将但在程序设计时应将SP值初始化为值初始化为30H以以后,以免占用宝贵的寄存器区和位地址区。后,以免占用宝贵的寄存器区和位地址区。2 2、SPSP的操作规则的操作规则堆栈指针堆栈指针SP SP(8 8位):位):MCSMCS5151系列的堆栈是按系列的堆栈是按“先进后出先进后出”原则存取数据的存储区。原则存取数据的存储区。MCSMCS5151堆栈设在堆栈设在片内片内RAMRAM区区。数据入栈时:先数据入栈时:先SPSP自动加自动加1 1,后写入数据,后写入数据,SPSP始终指向栈顶地址。始终指向栈顶地址。“先加后压先加后压”数据出栈时:先读出数据,后数据出栈时:先读出数据,后SPSP自动减自动减 1 1,SPSP始终指向栈顶地址。始终指向栈顶地址。“先弹后减先弹后减”3 3、SPSP的使用方式的使用方式 A、自动方式 B、指令方式四、小结1、程序存储器2、数据存储器3、堆栈操作
限制150内