单片机的组成与工作原理:单片机的储存结构

来自:幼稚
4年前
已收藏
收藏
阅读数
112
回复数
0

1.8051单片机的存储空间配置。 8051单片机存储器分为四个存储空间,分别为片内ROM(4KB)、片外ROM(64KB)、片内RAM(256B)、片外RAM(64KB),其存储空间配置如图3-4所示。 由于片内与片外ROM统一编址,因此,从用户使用的角度看,8051单片机的存储器地址空间有三个:片内外统一编址的64K字节程序存储器地址空间、片内256字节的数据存储器地址空间和片外64K字节的数据存储器地址空间。 访问不同的逻辑空间时,应使用不同类型的指令。片内数据存储器使用MOV指令访问,片外数据存储器使用MOWX指令访问,而片内、外程序存储器使用MOVC指令访问。


2.程序存储器(ROM)。 (1)程序存储器ROM的访问方式。 片内、片外程序存储器均使用MOVC指令访问,程序计数器(PC)产生访问ROM的地址码。如果EA=1,访问从片内ROM开始,即程序从片内ROM开始执行,当程序计数器PC的地址码超出片内ROM的容量(>0FFF)时,则自动转向访问片外ROM;如果EA=0则只能访问片外ROM。 (2)程序存储器(ROM)的访问地址。 程序计数器PC为16位,因此可访问64KB的地址空间。当访问了ROM的一个存储单元(执行了一条指令后),CPU使PC+1,因此,读取ROM中的程序是按各存储单元的地址从低到高的顺序进行的。当需要跳转到其他的存储单元读取相应的程序或数据时,通过相应的指令修改PC即可。 (3)程序存储器ROM的空间结构。 64KB的ROM中设有特殊存储区,用户不能按排其他内容。单片机在复位后PC值为0000H,所以0000H是系统的启动地址,所以用户在设计程序时一般会在该存储单元存放条绝对跳转指令,跳转到放主程序的存储区入口地址。其他5个用作中断指令存放的地址区为:
3.数据存储器(RAM数据存储器(RAM)分为内部数据存储和外部数据存储,访问片内RAM用“MOVX”指令,访问片外RAM用“MOVX”指令。RAM用于存放运算的中间结果、过程数据和数据缓冲,数据存储器均可读写,部分单元还可以位寻址。 (1)片内数据存储器。 8051单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间:数据存储器空间(低128单元)和特殊功能寄存器空间(高128单元)。这两个空间是相连的,对用户而言,低128单元才是真正的数据存储器。 1)低128单元RAM(00H~7FH):由工作寄存器区、位寻址区和数据缓冲区组成,如图3-5所示。 工作寄存器区(00H~1FH)占32字节,有4组工作寄存器,每组有8个工作寄存器(RO~R7),共占32个存储单元。R0~R7用来储存数据或中间结果,使用灵活任一时刻CPU只能使用其中的一组寄存器区,由程序状态寄存器(PSW)中RS1、RS0的状态决定当前工作寄存器组。 位寻址区(20H~2FH)占16字节,既可以按字节寻址,作为一般的RAM单元使用,又可以按位寻址。即该区各单元有字节地址,且字节中每位还有位地址。位寻址位操作是指按位地址对该位进行置1、清零、求反或判转等布尔操作。 数据缓冲区(30H~7FH)占80字节,是供用户使用的数据区,用户的大量数据存放在此区域,在实际使用时,常把堆栈开辟在此。 2)高128单元RAM(80H~FFH)。该存储区为具有特殊功能的专用寄存器(SFR)区,8051单片机将CPU中的专用寄存器、并行端口锁存器、串行口与定时器/计数器内的控制寄存器集中安排到一个区域,离散地分布在80H~FFH的范围内。特殊功能寄存器只能通过直接寻址的方式进行访问,其字节地址分配情况见表3-1。
(2)常用特殊功能寄存器简介。 累加器ACC:通常用A表示。它是一个实现各种寻址及运算的寄存器,而不是一个仅做加法的寄存器,在MCS51指令系统中所有算术运算、逻辑运算几乎都要使用它,而对程序存储器和外部数据存储器的访问只能通过它进行。 程序状态字寄存器(PSW):用来表示程序运行的状态,如当前累加器(ACC)中数据的奇偶性(P)、做加减法时的进位与借位(CY)、四个工作区的选择(RS1、RS0)以及辅助进位(AC)和溢出标志位(OV)等。它是编程时需要特别关注的一个寄存器。 通用寄存器B:在做乘除运算时需要用到该寄存器,也是一个具有专用功能的寄存器。 数据指针(DPTR,包括DPL和DPH):DPH为DPTR的高8位,DPL为DPTR的低8位。访问外部数据存储器和程序存储器时,必须以DPTR为数据指针通过ACC进行访问。 堆栈指针SP:进栈时SP加1,出栈时SP减1。 端口锁存器P0、P1、P2、P3:8051单片机有四个双向10口PO、P1、P2、P3,如果需要从指定端口输岀一个数据,只需将数据写入指定端口锁存器即可;如果需要从指定端口输人一个数据,只需先将数据0FFH(全部为1)写入指定端口锁存器,然后再读指定端口即可。如果不先写入0FFH(全部为1),则读入的数据有可能不正确。 (3)片外数据存储器。 片外RAM的读写控制信号是P3口中的WR和RD,是访问外部数据存储器,可以用16位数据存储器地址指针DPTR,用P2口输出地址高8位,用PO口输出地址低8位,用ALE(30脚)输出地址锁存信号。单片机CPU通过产生相应的RD和WR控制信号来控制读写操作。 外部数据存储器的容量最大可扩展到64KB。最常采用的外部数据存储器芯片是静态RAM。

上一篇下一篇
参与回答(0条评论)
用户头像
上传
用户头像
{{item.nickname}}{{item.pubtime}}回复
回复图片
用户头像
上传
用户头像
{{item1.nickname}}回复 {{item1.othername}} {{item1.pubtime}} 回复
回复图片
用户头像
上传
查看全部回复{{item.replylist_count}}条 查看全部
收起回复 收起全部
{{isLoadList==1?'加载中...':(isLoadList==2&&(list.length <=3||(list.length>3&&!is_hidden))?'没有更多内容了':'查看更多回答')}}
返回顶部

返回顶部