MCS51-存储结构.ppt_第1页
MCS51-存储结构.ppt_第2页
MCS51-存储结构.ppt_第3页
MCS51-存储结构.ppt_第4页
MCS51-存储结构.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2.3 .0MCS51的存储器,Intel的MCS51系列单片微机采用哈佛结构。 在物理上设有4个存储器空间 程序存储器:片内程序存储器; 片外程序存储器。 数据存储器:片内数据存储器; 片外数据存储器。 在逻辑上设有3个存储器地址空间 片内、片外统一的64KB程序存储器地址空间; 片内256B数据存储器地址空间; 片外64 KB的数据存储器地址空间。 在访问这3个不同的逻辑空间时,应选用不同形式的指令。,冯.诺伊曼结构:一般通用计算机通常只有一个逻辑空间,即其程序存储器和数据存储器是统一编址的,访问存储器时,同一地址对应唯一的存储空间,可以是ROM,也可以是RAM,并用同类访问指令,这种存储

2、器结构成为冯.诺伊曼结构:,哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度。,33 80C51的存储器,331 存储器结构和地址空间,在逻辑上设有3个存储器地址空间 片内、片外统一编址的64KB程序存储器地址空间;(16位地址) 片内256B数据存储器地址空间;(00HFFH) 片外64 KB的数据存储器地址空间。,图 80C51单片微机存储器映象图,80C51的程序存储器(program

3、memory)用于存放经调试正确的应用程序和表格之类的固定常数。由于采用16位的程序计数器 PC和16位的地址总线,因而其可扩展的地址空间为64 KB。 整个程序存储器可以分为片内和片外两部分。 EA引脚接高电平时,程序从片内程序存储器0000H开始执行,即访问片内存储器;当PC值超出片内ROM容量时,会自动转向片外程序存储器空间执行。 EA引脚接低电平时,迫使系统全部执行片外程序存储器0000H开始存放的程序。,2.3.1 程序存储器,1. MCS51单片机信号引脚简介,P3口线的第二功能,VCC,VSS,XTAL2XTAL1,RST,P0. 0P0.1P0.2 P0.3 P0.4 P0.5

4、 P0.6 P0.7,P1. 0P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7,P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2. 0,ALE,P3. 0P3.1P3.2 P3.3 P3.4 P3.5 P3.6 P3.7,(2)、振荡电路:XTAL1、XTAL2,(3)、复位引脚:RST,(4)、并行口:P0、P1、P2、P3,(7)、ALE:地址锁存控制信号,(1)、电源引脚:VCC(+5V)、VSS(地),1、管脚图,2.3.2 MCS-51单片机的引脚定义及功能,80C51的程序存储器, 程序存储器的某些单元被保留用于特定的程序入口地址。 由

5、于系统复位后的PC地址为0000H,故系统从0000H单元开始取指,执行程序。一般在该单元设置一条无条件转移指令,使之转向用户主程序处执行。因此,0000H0002H单元被保留用于初始化。,从0003H002BH单元被保留用于 6个中断源的中断服务程序的入口地址。 以下7个特定地址被保留: 复位 0000H 外部中断0 0003H 计时器T0溢出 000BH 外部中断1 0013H 计时器T1溢出 001BH 串行口中断 0023H 计时器 T2/T2EX 002BH 在程序设计时,通常在这些中断入口处设置绝对跳转指令,使之转向对应的中断服务程序段处执行。,程序存储器,(PC),程序存储器资源

6、分布,中断入口地址,如果在程序运行中碰到有中断申请时,程序将自动转到中断处去执行,根据申请中断标志来判断转到那个中断处执行程序,计算机在运行过程中,有时因为操作的需要或因程序较复杂,程序指令往往不能按顺序逐条运行,需要改变程序运行方向,即将程序跳转到某个指定的地址处再执行。 某些指令具有修改PC的功能,因为PC的内容总是指向将要执行的下一条指令地址,所以计算机执行这一类指令就能控制程序转移到新的PC地址去执行。,数据存储器(data memory)由随机存取存储器RAM构成,用来存放随机数据。 在80C51中,数据存储器又分片内数据存储器(internal data memory)和片外数据存

7、储器(external data memory)两部分。 片内数据存储器(IRAM)地址只有8位,因而最大寻址范围为256个字节。 在80C51中,设置有一个专门的数据存储器的地址指示器数据指针DPTR,用于访问片外数据存储器(ERAM)。数据指针DPTR也是16位的寄存器,这样,就使80C51具有64 KB的数据存储器扩展能力。,2.3.3 内部数据存储器, 片内数据RAM区 工作寄存器区:用寄存器直接寻址的区域,指令的数量最多,均为单周期指令,执行的速度最快。 位寻址区:这16个字节单元,既可进行字节寻址,又可位寻址。 字节寻址区:从片内数据RAM区的48127(30H7FH),共80个字

8、节单元,可以采用直接字节寻址的方法访问。,7FH 真正RAM区 00H,MCS-51 单片机片内RAM的配置图,FFH SFR区 80H,89C51内有256B的RAM单元,其地址范围为00HFFH,分为两大部分: 低 128 字节(00H7FH)为真正的RAM区;片内数据RAM区高 128 字节(80HFFH)为特殊功能寄存器区SFR。,7FH 真正RAM区 00H,MCS-51 单片机片内RAM的配置图,FFH SFR区 80H,返回,7FH 真正RAM区 00H,MCS-51 单片机片内RAM的配置图,FFH SFR区 80H,89C51内有256B的RAM单元,其地址范围为00HFFH

9、,分为两大部分: 低 128 字节(00H7FH)为真正的RAM区; 高 128 字节(80HFFH)为特殊功能寄存器区SFR。,7FH 普通RAM区 30H,2FH 位寻址区 20H,1FH 工作寄存器区 00H,返回,07H 0组 00H,0FH 1组 08H,17H 2组 10H,1FH 3组 18H,1、工作寄存器区 是指00H1FH区, 共分4个组, 每组有8个单元, 共32个内部RAM单元。 2、每次只能有1组作为工作寄存器使用。 3、作为工作寄存器使用的8个单元,又称为R0R7 4、程序状态字PSW中的PSW.3(RS0)和PSW.4(RS1)两位来选择哪一组作为工作寄存器使用。

10、CPU通过软件修改PSW中RS0和RS1两位的状态, 就可任选一个工作寄存器工作。,RS1、 RS0与片内工作寄存器组的对应关系,工作寄存器和RAM地址对照表,返回,7FH 真正RAM区 00H,MCS-51 单片机片内RAM的配置下图 所示:,FFH SFR区 80H,7FH 普通RAM区 30H,2FH 位寻址区 20H,1FH 工作寄存器区 00H,20H,21H,22H,23H,24H,25H,26H,27H,2FH,1、位寻址区是指 20H2FH单元,共16个单元。 2、位寻址区的每1位都可当作软件触发器, 由程序直接进行位处理。 3、 位寻址区的 16个单元(共计128位)的每1位

11、都有一个8位表示的位地址, 位地址范围为00H7FH。 4、 同样, 位寻址的RAM单元也可以按字节操作作为一般的数据缓冲 区。,返回,内部RAM中位地址表,返回, 字节寻址区(用户RAM区 堆栈、数据缓冲)从片内数据RAM区的48127(30H7FH),共80个字节单元,可以采用直接字节寻址的方法访问。 堆栈是在片内数据RAM区中,数据先进后出或后进先出的区域。, 特殊功能寄存器 SFR区 特殊功能寄存器SFR(Special Function Register)是80C51中各功能部件所对应的寄存器,用以存放相应功能部件的控制命令、状态或数据的区域。这是80C51系列单片机中最有特色的部分

12、。现在所有80C51系列功能的增加和扩展几乎都是通过增加特殊功能寄存器来达到的。 80C51设有128 B片内数据RAM结构的特殊功能寄存器空间区。除程序计数器PC和4个通用工作寄存器组外,其余所有的寄存器都在这个地址空间之内。,程序计数器PC(Program Counter)是一个独立的计数器,不属于内部的特殊功能寄存器。PC中存放的是下一条将要从程序存储器中取出的指令的地址。,MCS-51内部安排有21个特殊功能寄存器各特殊功能寄存器的符号及地址见表3.4。分别由于以下各个功能单元: CPU:ACC、B、PSW、SP、DPTR(由两个8位寄存器DPL、DPH组成) 并行口:P0、P1、P2

13、、P3 中断系统:IE、IP 定时/计数器:TMOD、TCON、TH1、TL1、TH0、TL0 串行口:SCON,SBUF,PCON,高128个单元,离散分布有21个特殊功能寄存器SFR。, 11个可以进行位寻址:ACC、B、PSW、IE、IP、P0、P1、P2、P3、SCON、TCON,特别提示:对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。,1.程序状态字寄存器PSW,PSW(Program Status Word)是一个逐位定义的8位寄存器,其内容的主要部分是算术逻辑运算单元(ALU)的输出。其中有些位是根据指令执行结果,由硬件自动生成,而有些位状态可用软件

14、方法设定。,一些条件转移指令就是根据PSW中的相关标志位的状态,来实现程序的条件转移。其中,除PSW1(保留位)、RS1和RS0(工作寄存器组选择控制位)及用户标志F0之外,其他四位:奇偶校验位P、溢出标志位OV、辅助进位标志位AC及进位标志位CY都是ALU运算结果的直接输出。 P (PSW0) 奇偶标志位。 用以表示累加器A中值为1的个数的奇偶性:若累加器值为1的位数是奇数,P置位(奇校验);否则P清除(偶校验) 。 在串行通信中,常以传送奇偶校验位来检验传输数据的可靠性。通常将P置入串行帧中的奇偶校验位。,P(PSW.0)奇偶标志位。 当A中1的个数为奇数时, P =1; 当A中1的个数为

15、偶数时, P =0。,1.程序状态字寄存器PSW,OV (PSW2) 溢出标志位。 当执行运算指令时,由硬件置位或清除,以指示运算是否产生溢出,OV置位表示运算结果超出了目的寄存器A所能表示的带符号数的范围(一128127)。 对于MUL乘法,当A、B两个乘数的积超过255时OV置1位;否则,OV0。因此,若OV0时,乘积就在A中,只需从A寄存器中取积;若OV1时,则积的高8位在B中,低8位在A中。需从B、A寄存器对中取积。 对于DIV除法,若除数为0时,OV=1;否则,OV=0。,OV(PSW.2)溢出标志位。 当运算结果产生溢出时, OV =1; 当运算结果没有产生溢出时, OV =0。,

16、RS1、RS0 (PSW.4、PSW.3) 工作寄存器组选择位 用于设定当前工作寄存器的组号。工作寄存器共有四组。 AC (PSW6) 辅助进位标志位。 当进行加法或减法运算时,若低4位向高4位数发生进位或借位时AC将被硬件置位;否则,被清除。 在十进制调整指令DA中要用到AC标志位状态。,AC(PSW.6)辅助进位(或称半进位)标志。 当运算结果的D3向D4产生进位时, AC =1; 当运算结果的D3向D4没有产生进位时, AC =0。,CY (PSW7) 进位标志位。 在进行算术运算时,可以被硬件置位或清除,以表示运算结果中高位是否有进位或借位。 F0 (PSW5) 用户标志位。 开机时该

17、位为“0”。用户可根据需要,通过位操作指令置“l”或者清“0”。,Cy(PSW.7)进位标志位。 当运算结果产生进位时, Cy =1; 当运算结果没有产生进位时, Cy =0。,A,TMP,PSW,B,SP,DPTR,RAM,PC,ROM,P1,P2,P3,P0,定时,中断,串口,IR,P L A,ID,振 荡,X1 X2,PSEN RST ALE EA,P0 P1 P2 P3,ALU,返回,ALU有两个输出: 数据经过运算后,其结果又通过内部总线送回到累加器中; 数据运算后产生的标志位输出至程序状态字 PSW。,2. 累加器A 累加器A是CPU中使用最频繁的一个八位专用寄存器,简称ACC或A

18、寄存器。主要功能:累加器A存放操作数,是ALU单元的输入之一,也是ALU运算结果的暂存单元。 在80C51中只有一个累加器A,而单片微机中大部分数据操作都要通过累加器A进行,容易产生“瓶颈”现象。,3. 数据指针 DPTR DPTR是一个16位的特殊功能寄存器,主要功能是作为片外数据存储器或I/O寻址用的地址寄存器(间接寻址),故称为数据存储器地址指针。见P50 访问片外数据存储器或I/O的指令为: MOVX A,DPTR 读 MOVX DPTR,A 写 DPTR寄存器也可以作为访问程序存储器时的基址寄存器。这时寻址程序存储器中的表格、常数等单元,而不是寻址指令。 MOVCA,ADPTR JM

19、PADPTR DPTR寄存器既可以作为一个16位寄存器处理,也可以作为两个8位寄存器处理,其高8位用DPH表示,低8位用DPL表示。, 执行调用子程序或发生中断时,CPU会自动将当前 PC值压入堆栈,将子程序入口地址或中断入口地址装入PC;子程序返回或中断返回时,恢复原有被压入堆栈的PC值,继续执行原顺序程序指令。,程序计数器PC, PC不属于特殊功能寄存器,不可访问,在物理结构上是独立的。 PC是一个16位的地址寄存器,用于存放将要从ROM中读出的下一字节指令码的地址,因此也称为地址指针。 PC的基本工作方式有:, 自动加1。CPU从ROM中每读一个字节,自动执行 PC+1PC;, 执行转移

20、指令时,PC会根据该指令要求修改下一次 读ROM新的地址;,4B寄存器 B寄存器在乘法和除法指令中作为ALU的输入之一。乘法中,ALU的两个输入分别为A、B,运算结果存放在AB寄存器对中A中放积的低8位,B中放积的高8位。 除法中,被除数取自A,除数取自B,商数存放于A,余数存放于B。 在其它情况下,B寄存器可以作为内部RAM中的一个单元来使用。, 堆栈区及堆栈指示器SP: 堆栈是在片内数据RAM区中,数据先进后出或后进先出的区域。堆栈指示器SP(stack pointer)在80C51中存放当前的堆栈栈顶所指存储单元地址的一个8位寄存器。 80C51的堆栈区域可用软件设置堆栈指示器(SP)的值,在片内数据RAM区中予以定义。 系统复位后SP内容为07

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论