80C51单片机指令的取指、执行时序
- 格式:docx
- 大小:11.67 KB
- 文档页数:2
80c51汇编语言指令格式80C51汇编语言是一种低级编程语言,主要用于对8051系列单片机进行编程。
在80C51汇编语言中,指令格式基本上由操作码、操作数和注释组成。
下面将详细介绍80C51汇编指令的格式。
1.操作码(Opcode):操作码是指令的基本操作,决定了执行指令时处理器应该进行的具体操作。
80C51汇编指令的操作码包括一字节,可以是直接指令,也可以是扩展指令。
-直接指令:直接在指令中给出操作数,可以是寄存器、立即数、或者存储器地址。
指令的操作码如MOV、ADD等。
-扩展指令:扩展指令需要使用扩展二字节的形式,扩展二字节包括操作码和相关的操作数。
扩展指令的操作码如JMP、CALL等。
2.操作数(Operand):操作数位于指令的操作码之后,在指令中给出具体的数据或者数据的地址。
操作数的格式可以是直接给出的数据,也可以是通过地址访问的数据。
-立即数(Immediate value):直接给出的数据,一般用来作为常数或者立即加载到寄存器中的数据。
-寄存器(Register):指令操作数为特定的寄存器,分为通用寄存器和特殊功能寄存器两种。
-存储器(Memory):通过给出地址的方式访问存储器中的数据,可以是位于内部RAM或外部存储器中的数据。
3.注释(Comments):注释是对指令的解释和说明,用于增加代码的可读性。
在80C51汇编语言中,注释以分号(;)开头,并紧跟在指令或数据的后面。
下面是一些80C51汇编指令的例子以加深理解:1. MOV指令的格式:MOV A, #10 ;将立即数10加载到累加器A中MOV R1, R0 ;将R0的值复制到R1中2. ADD指令的格式:ADD A, R1 ;将累加器A与R1中的值相加,并将结果存回A中ADD A, #5 ;将累加器A与立即数5相加,并将结果存回A中3. JMP指令的格式:JMP 1000 ;无条件跳转到内存地址为1000的位置继续执行指令4. CALL指令的格式:CALL 2000 ;调用一个子程序,跳转到内存地址为2000的位置执行指令,并在子程序执行完成后返回到指令的下一条指令继续执行5. SJMP指令的格式:SJMP label ;有条件跳转指令,根据条件跳转到指定标签处执行指令6. RET指令的格式:RET ;用于从子程序返回主程序,并继续执行主程序的下一条指令总结:80C51汇编语言指令的格式主要由操作码、操作数和注释组成。
51单片机指令周期,机器周期,时钟周期详解51单片机有指令周期,机器周期,时钟周期的说法,看似相近,但是又都不太一样,很容易混淆。
还是详细分析一下。
时钟周期:单片机外接的晶振的振荡周期就是时钟周期,时钟周期=振荡周期。
比方说,80C51单片机外接了一个11.0592M的晶体振荡器,那我们就说这个单片机系统的时钟周期是1/11.0592M,这里要注意11.0592M是频率,周期是频率的倒数。
机器周期:单片机执行指令所消耗的最小时间单位。
我们都知道51单片机采用的CISC(复杂指令指令集),所以有很多条指令,并且各条指令执行的时间也可能不一样(有一样的哦),但是它们执行的时间必须是机器周期的整数倍,这就是机器周期的意义所在。
8051系列单片机又在这个基础上进行细分,将一个机器周期划分为6个状态周期,也就是S1-S6,每个状态周期又由两个节拍组成,P1和P2,而P1=P2=时钟周期。
这也就是经常说的8051系列单片机的的时钟频率是晶振频率的12分频,或者是1/12,就是这个意思。
现在(截至2012)新的单片机已经能做到不分频了,就是机器周期=时钟周期。
指令周期:指令周期执行某一条指令所消耗的时间,它等于机器周期的整数倍。
传统的80C51单片机的指令周期大多数是单周期指令,也就是指令周期=机器周期,少部分是双周期指令。
现在(截至2012)新的单片机已经能做到不分频了,并且尽量单指令周期,就是指令周期=机器周期=时钟周期。
来看这张8051单片机外部数据,这里ALE和$PSEN$的变化频率已经小于一个机器周期,如果使用C语言模拟这个信号是没有办法做到的一一对应的,所以只能尽量和上面的时序相同,周期延长。
1 、如何理解51单片机存储空间在物理结构上可分为4个,而逻辑上又可划分为3个答:MCS-51在物理上有四个存储空间:1、片内程序存储器2、片外程序存储器、3、片内数据存储器4、片外数据存储器。
从逻辑上划分有三个存储器地址空间:1、片内外统一编址的64K字节程序存储器(0000H~0FFFFH)2、内部256字节数据存储器地址空间(包括128字节片内RAM和128字节的SFR)3、外部64K字节数据存储器地址空间(0000H~0FFFFH))2 、MCS-51片内RAM的容量8051最大可配置的RAM/ROM容量答:1)MCS-51片内RAM的容量:51子系列:128B52子系列:256B2)其ROM最大可扩展到64KB注:片内数据存储区=片内RAM+SFR,51和52子系列的SFR容量都是128B3 、8051的/PSEN、/RD、/WR的作用答:1)/PSEN(外部程序存储器读选通信号): CPU访问片外ROM时,使/PSEN低电平有效,可实现片外ROM的读操作,其他情况下此引脚为高电平封锁状态。
·2)/RD:外部RAM读信号3)/WR:外部RAM写信号4 、ALE线的作用当8051不和RAM/ROM相连时,ALE线的输出频率是多少答:1)ALE(地址锁存控制信号):访问片外ROM,RAM时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存,实现低位地址和数据的分时传送。
不访问片外存储器时,可做为外部时钟使用。
2)当8051不和RAM/ROM相连时,ALE线的输出频率等于时钟周期的倒数<5 、MCS-51的工作寄存区包含几个通用工作寄存器组每组的地址是什么如何选用开机复位后,CPU使用的是哪组工作寄存器答:1)MCS-51的工作寄存区包含4个通用工作寄存器组2)第0组通用寄存器区地址:00H~07H第1组通用寄存器区地址:08H~0FH第2组通用寄存器区地址:10H~17H第3组通用寄存器区地址:18H~1FH3)选择哪个工作寄存器组是通过软件对程序状态字寄存器PSW的第4、3位进行设置实现的4(6、MCS-51的内部RAM地址空间是如何安排的共有多少个单元可以位寻址位地址又是如何排列的答:1)MCS-51的内部RAM地址的空间安排:00H~1FH 寄存器区20H~2FH 位寻址区30H~7FH 数据缓冲区80H~FFH 专用寄存器区2)位寻址的单元个数:16B*8位/B=128位3)位地址排列方式:|位地址为:00H~7FH字节地址:20H~2FH7 、MCS-51的程序计数器PC是几位寄存器它是否为专用寄存器PC 的内容是什么信息答1)MCS-51的程序计数器PC是16位寄存器2)它不是专用寄存器3)PC的内容为将要执行的指令地址{8 、什么是堆栈堆栈指针SP的作用是什么在程序设计时,有时为什么要对SP重新赋值如果CPU在操作中要使用两组工作寄存器,SP 的初值应设为多少答:1)堆栈是一种数据结构,专门存放向上生长堆栈的栈顶位置。
80C51单片机上电复位和复位延时的时序分析1.上电复位时序分析:当单片机通电时,其内部电路经过一系列的过程,最终实现上电复位。
具体的时序如下:a.当电源供电稳定后,单片机内部开始运行,在此之前,通过电源上的电感元件(电源滤波电感)将电源的浪涌电流限制在一定范围内,避免对器件造成损害。
b.在电源稳定后,单片机内部的复位电路开始工作,将复位引脚(RST)拉低。
复位引脚通常由一个上拉电阻连接到电源电压,当复位引脚被拉低时,单片机内部复位逻辑电路开始工作。
c.单片机内部的复位逻辑电路通过一系列的电路操作,包括对寄存器、内存等的清零操作,实现对整个系统的复位。
同时,系统时钟和各个外设模块(如定时器、串口等)被禁止,确保整个系统进入复位状态。
d.完成复位操作后,复位引脚会逐渐恢复高电平,此时单片机开始退出复位状态,系统可以开始正常运行。
2.复位延时时序分析:在单片机复位后,必须等待一段时间,直到内部电路完全稳定,才能恢复正常运行。
此时间段被称为复位延时。
具体的时序如下:a.当复位引脚恢复高电平时,复位逻辑电路停止工作,但系统内部的各个模块以及外设模块的电路需要一定时间来稳定,此时单片机处于复位延时状态。
b.在复位延时期间,系统时钟和各个外设模块仍然被禁止,保证系统内部不会发生意外的操作。
c.复位延时的具体时间取决于单片机的工作频率,通常在给定的单片机规格书中可以找到相关的参数或公式。
复位延时可以使用一个定时器或延时循环实现,保证系统稳定后再进行正常的操作。
总结:80C51单片机的上电复位和复位延时时序分析是单片机运行的基础,关系到系统的稳定性和可靠性。
通过了解上电复位和复位延时的时序分析,可以更好地理解单片机的工作原理,并合理地设计系统硬件电路和软件逻辑,保证系统的正常运行。
80c51汇编语言指令80C51汇编语言是一种常用的低级程序设计语言,广泛应用于嵌入式系统中。
它是基于Intel 8051系列单片机的指令集架构,具有高效、灵活、可靠的特点。
本文将介绍80C51汇编语言的一些常用指令。
一、MOV指令MOV指令是80C51汇编语言中最基本、最常用的指令之一,用于将数据从一个寄存器或内存位置复制到另一个寄存器或内存位置。
例如,MOV A, #25H表示将立即数25H复制到A寄存器中。
二、ADD指令ADD指令用于执行两个操作数的相加运算,并将结果存储在目标操作数中。
例如,ADD A, R0表示将A寄存器和R0寄存器中的数据相加,并将结果存储在A寄存器中。
三、SUBB指令SUBB指令用于执行两个操作数的减法运算,并将结果存储在目标操作数中。
与ADD指令不同的是,SUBB指令会考虑进位位的值。
例如,SUBB A, R1表示将A寄存器中的数据减去R1寄存器中的数据,并将结果存储在A寄存器中。
四、MUL指令MUL指令用于执行两个操作数的乘法运算,并将结果存储在累加器A和可选的乘法寄存器B中。
例如,MUL AB表示将累加器A和B 中的数据相乘,并将结果存储在A和B中。
五、DIV指令DIV指令用于执行两个操作数的除法运算,并将结果存储在累加器A和可选的余数寄存器B中。
例如,DIV AB表示将累加器A和B 中的数据相除,并将商存储在A中,余数存储在B中。
六、JC、JNC指令JC指令用于在条件跳转时执行跳转操作,如果进位标志位(C)为1,则执行跳转。
JNC指令则相反,只有当进位标志位为0时才执行跳转。
七、JZ、JNZ指令JZ指令用于在条件跳转时执行跳转操作,如果零标志位(Z)为1,则执行跳转。
JNZ指令则相反,只有当零标志位为0时才执行跳转。
八、CJNE指令CJNE指令用于在条件跳转时执行跳转操作,它比较两个操作数的值,并根据比较结果来确定是否执行跳转。
如果两个操作数相等,则不执行跳转;如果不相等,则执行跳转。
(C 语言版)绝密版 C51 单片机复习题及答案一填空题1、计算机中最常用的字符信息编码是( ASCII 码)。
2、MCS-51 系列单片机为( 8 )位单片机。
3、若不使用 MCS-51 片内存储器引脚( /EA )必须接(地)。
4、8031 内部有 ( 128 )个 RAM; 8051 内部有 (4K ROM )和( 128 个 RAM)。
5 、堆栈的地址由 ( SP ) 内容确定,其操作规律是“(先 ) 进(后)出”。
6 、在单片机扩展时, ( P0 ) 口和 ( P2 ) 口为地址线, (P0 ) 口又分时作为数据线。
7 、在 MCS-51 单片机中,如采用 6MHZ 晶振,一个机器周期为( 2us )。
8、当 80C51 的 RST 引脚上保持 ( 2 ) 个机器周期以上的低电平时,80C51 即发生复位。
9、当 P1 口做输入口输入数据时,必须先向该端口的锁存器写入( 1 ),否则输入数据可能出错。
10、若某存储芯片地址线为 12 根,那么它的存储容量为( 4K B )。
11、程序状态寄存器 PSW 的作用是用来保存程序运行过程中的各种状态信息。
其中 CY 为 (进位) 标志,用于无符号数加 (减) 运算,当进行(位)操作时作为位累加器。
OV 为(溢出)标志,用于有符号数的加(减)运算。
12、消除键盘抖动常用两种方法,一是采用(硬件去抖电路),用基本 RS 触发器构成;二是采用(软件去抖程序),既测试有键输入时需延时 ( 约大于 10 毫秒) 后再测试是否有键输入,此方法可判断是否有键抖动。
13、若 MCS-51 单片机采用 12MHz 的晶振频率,它的机器周期为( 1us ),ALE 引脚输出正脉冲频率为(2 MHZ )。
14 、 8051 有两个 16 位可编程定时/计数器,T0 和 T1。
它们的功能可由两个控制寄存器( TCON ) 、 ( TMOD ) 的内容决定,且定时的时间或计数的次数与( TH)、 ( TL)两个寄存器的初值有关。
80C51单片机原理RAM地址寄存器 RAM 128B 程序地址寄存器P0驱动器 P2锁存器 P2驱动器P1锁存器 暂存器2 B 寄存器 4KB ROM暂存器1ACC SP P0锁存器 PC PC 增1 缓冲器 P3锁存器 OSC中断、串行口及定时器PSW ALU DPTRP1驱动器 P3驱动器XTAL1XTAL2 P0.0~P0.7 P2.0~P2.7 P3.0~P3.7 P1.0~P1.7 RST ALEV CCV SS定时控制 指令译码器 指令寄存器 PSEN EA表2-1 P3口各引脚与第二功能表PSW 的各位定义见表80C51 P0~P3接口功能简见大多数口线都有双重功能,介绍如下: 1、P0口具有双重功能:(1) 作为通用I/O ,外接I/O 设备。
(2) 作为地址/数据总线。
在有片外扩展存储器的系统 中,低8位地址和数据由P0口分时传送。
PSW 位地址 PS W.7PSW .6PSW .5 PSW .4 PSW .3 PSW .2 PSW .1 PSW .0 位标志CY ACF0RS1RS0OVF1P2、P1口是唯一的单功能口:作为输入/输出口,P1口的每一位都可作为输入/输出口。
3、P2口具有双重功能:(1)作为输入/输出口。
(2)作为高8位地址总线。
在有片外扩展存储器的系统中,高8位地址由P2口传送。
4、P3口具有双重功能:(1)作第一功能使用时,其功能为输入/输出口。
(2)作第二功能使用时,每一位功能定义如表2.1所示。
80C51单片机的4个I/O口都是8位双向口,这些口在结构和特性上是基本相同的,但又各具特点,以下将分别介绍之。
图2-9 P0口某位的结构图2-10 P1口某位的结构图2-11 P2口某位的结构图2-12 P3口某位的结构P0~P3口使用时应注意事项1、如果80C51单片机内部程序存贮器ROM够用,不需要扩展外部存贮器和I/O接口,80C51的四个口均可作I/O口使用。
第三章-80C51单片机的指令系统80C51单片机是一种常用的微控制器,广泛应用于嵌入式系统中。
其指令系统是该单片机的核心组成部分,决定了其功能和特性。
在本文中,我们将深入探讨80C51单片机的指令系统,包括其指令格式、指令集以及指令的执行过程。
一、指令格式80C51单片机的指令格式通常由若干个字节组成,每个字节又分为几个字段。
具体而言,一条指令通常包括操作码、目标操作数和源操作数等字段。
其中,操作码表示指令的类型和功能,目标操作数表示指令操作的目标寄存器或内存单元,源操作数表示指令操作的源寄存器或内存单元。
以MOV指令为例,其指令格式如下:| 操作码 | 目标操作数 | 源操作数 |其中,操作码为一个字节,表示MOV指令;目标操作数和源操作数也为一个字节,分别表示指令操作的目标和源。
二、指令集80C51单片机的指令集丰富多样,包括数据传送指令、算术运算指令、逻辑运算指令、分支指令等等。
这些指令可以实现各种功能,满足不同的应用需求。
1. 数据传送指令数据传送指令用于将数据从一个寄存器或内存单元复制到另一个寄存器或内存单元。
例如,MOV指令可以实现数据传送操作。
2. 算术运算指令算术运算指令用于进行加法、减法、乘法和除法等运算。
例如,ADD指令可以实现两个操作数的相加操作。
3. 逻辑运算指令逻辑运算指令用于进行与、或、非、异或等逻辑运算。
例如,AND 指令可以实现两个操作数的与运算。
4. 分支指令分支指令用于实现循环、条件判断和跳转等功能。
例如,JMP指令可以无条件跳转到指定的地址。
除了上述指令之外,80C51单片机还支持位操作指令、移位指令、输入输出指令等。
三、指令执行过程在80C51单片机中,指令的执行过程包括取指、译码、执行以及访问存储器等阶段。
1. 取指阶段取指阶段是指令执行的第一步,其目的是从存储器中读取指令。
取指的过程通常涉及到程序计数器的操作,确定下一条要执行的指令地址。
2. 译码阶段译码阶段是将取到的指令进行解码,将其转换为内部指令表示形式,以便后续的执行。
80C51系列单片机指令表80C51系列单片机指令以A开头的指令有18条,分别为:ACALL addr11ADD A,RnADD A,directADD A,@RiADD A,#dataADDC A,RnADDC A,directADDC A,@RiADDC A,#dataAJMP addr11ANL A,RnANL A,directANL A,@RiANL A,#dataANL direct,AANL direct,#dataANL C,bitANL C,/bit1. ACALL addr11指令名称:绝对调用指令指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0指令功能:构造目的地址,进行子程序调用。
其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。
操作内容:PC←(PC)+2SP←(SP)+1(SP)←(PC)7~0SP←(SP)+1(SP)←(PC)15~8PC10~0←addrl0~0字节数:2机器周期:2使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。
2. ADD A,Rn指令名称:寄存器加法指令指令代码:28H~2FH指令功能:累加器内容与寄存器内容相加操作内容:A←(A)+(Rn),n=0~7字节数:1机器周期:1影响标志位:C,AC,OV3. ADD A,direct指令名称:直接寻址加法指令指令代码:25H指令功能:累加器内容与内部RAM单元或专用寄存器内容相加操作内容:A←(A)+(direct)字节数:2机器周期:1影响标志位:C,AC,OV4. ADD A,@Ri指令名称:间接寻址加法指令指令代码:26H~27H指令功能:累加器内容与内部RAM低128单元内容相加操作内容:A←(A)+((Ri)),i=0,1字节数:1机器周期:1影响标志位:C,AC,OV5. ADD A,#data指令名称:立即数加法指令指令代码:24H指令功能:累加器内容与立即数相加操作内容:A←(A)+data字节数:2机器周期:1影响标志位:C,AC,OV6. ADDC A,Rn指令名称:寄存器带进位加法指令指令代码:38H~3FH指令功能:累加器内容、寄存器内容和进位位相加操作内容:A←(A)+(Rn)+(C),n=0~7字节数:1机器周期:1影响标志位:C,AC,OV7. ADDC A,direct指令名称:直接寻址带进位加法指令指令代码:35H指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加操作内容:A←(A)+(direct)+(C)字节数:2机器周期:1影响标志位:C,AC,OV8. ADDC A,@Ri指令名称:间接寻址带进位加法指令指令代码:36H~37H指令功能:累加器内容、内部RAM低128单元内容及进位位相加操作内容:A←(A)+((Ri))+(C),i=0,1字节数:1机器周期:1影响标志位:C,AC,OV9. ADDC A,#data指令名称:立即数带进位加法指令指令代码:34H指令功能:累加器内容、立即数及进位位相加操作内容:A←(A)+data+(C)字节数:2机器周期:1影响标志位:C,AC,OV10. AJMP addr11指令名称:绝对转移指令指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0指令功能:构造目的地址,实现程序转移.其方法是以指令提供的11位地址,取代PC的低11位,而PC的高5位保持不变.操作内容:PC←(PC)+2PCl0~0←addrll字节数:2机器周期:2使用说明:由于addrll的最小值是000H,最大值是7FFH,因此地址转移范围是2KB.11. ANL A,Rn指令名称:寄存器逻辑与指令指令代码:58H~5FH指令功能:累加器内容逻辑与寄存器内容操作内容:A←(A)∧(Rn),n=0~7字节数:1机器周期:112. ANL A,direct指令名称:直接寻址逻辑与指令指令代码:55H指令功能:累加器内容逻辑与内部RAM低128单元或专用寄存器内容操作内容:A←(A)∧(diret)字节数:2机器周期:113. ANL A,@Ri指令名称:间接寻址逻辑与指令指令代码:56H~57H指令功能:累加器内容逻辑与内部RAM低128单元内容操作内容:A←(A)∧((Ri))i=0,1字节数:1机器周期:114. ANL A,#data指令名称:立即数逻辑与指令指令代码:54H指令功能:累加器内容逻辑与立即数操作内容:A←(A)∧data字节数:2机器周期:115. ANL direct,A指令名称:累加器逻辑与指令指令代码:52H指令功能:内部RAM低128单元或专用寄存器内容逻辑与累加器内容操作内容:direct←(A)∧(direct)字节数:2机器周期:116. ANL direct,#data指令名称:逻辑与指令指令代码:53H指令功能:内部RAM低128单元或专用寄存器内容逻辑与立即数操作内容:direct←(direct)∧data字节数:3机器周期:217. ANL C,bit指令名称:位逻辑与指令指令代码:82H指令功能:进位标志逻辑与直接寻址位操作内容:C←(C)∧(bit)字节数:2机器周期:218. ANL C,/bit指令名称:位逻辑与指令指令代码:B0H指令功能:进位标志逻辑与直接寻址位的反操作内容:C←(C)∧(bit)字节数:2机器周期:280C51系列单片机指令以C开头的指令有10条,分别为: CJNE A,dircet,relCJNE A,#data,relCJNE Rn,#data,relCJNE @Ri,#data,relCLR ACLR CCLR bitCPL ACPL CCPL bit1. CJNE A,dircet,rel指令名称:数值比较转移指令指令代码:B5H指令功能:累加器内容与内部RAM低128字节或专用寄存器内容比较,不等则转移。
80C51单片机指令的取指、执行时序来源:21ic作者:关键字:80C51单片机指令时序使用ALE信号作为低8位地址的锁存控制信号。
ALE接到外部锁存器时,高电平期间,51的p0输出地址,低电平时锁存器将地址锁存,在ALE低电平时,(PSEN为低)p0口可以传输数据(指令),这样就可以地址/数据复用了。
以PSEN信号作为扩展程序存储器的读选通信号,在读外部ROM是PSEN是低电平有效,以实现对ROM 的读操作。
以EA信号作为内外程序存储器的选择控制信号,当其为低电平时,对ROM的读操作限定在外部的程序存储器,当其为高电平时, 对ROM的读操作是从内部存储器开始的,并可延至外部程序存储器.由RD和WR信号作为扩展数据存储器和I/O口的读选通、写选通信号。
EA信号是表示是当前指令是读内,还是外存储器的控制信号。
如:当选用无片内存储器的单片机,或者不打算用片内存储器时,EA必须接低电平,此外,片外程序存储器的起始地址应该安排在片内存储器之后。
RD和WR信号就相对好理解,就是当读数据时(不分内外、RAM、ROM)它就有效。
WR也是这样的。
80C51单片机指令的取指、执行时序现按4类指令介绍CPU时序。
因为CPU工作的过程就是取指令与执行指令的过程,所以CPU必须先取出指令,然后才能执行指令。
1.双字节单周期指令由于双字节单周期指令必须在一个周期内取机器码二次,所以必须在一个机器周期内安排二次读操作码的操作,分别发生在S1P2与S4P2。
在S1P2读入机器码74并送入指令寄存器IR,在S4P2读入数据03送入累加器A,即读2取2。
在指令的执行过程中,P0口要分时传送地址与数据,因此当操作码的地址从P0口输出后,必须发地址锁存信号ALE给74LS373锁存器,将地址锁存在74LS373内,腾出P0口读入机器码74。
在取数据03时同样要发ALE信号。
因此,在一个机器周期内地址锁存信号二次有效,见80C51时序图2-13。
80C51单片机指令的取指、执行时序
使用ALE 信号作为低8 位地址的锁存控制信号。
ALE 接到外部锁存器时,高电平期间,51 的p0 输出地址,低电平时锁存器将地址锁存,在ALE 低电平时,(PSEN 为低)p0 口可以传输数据(指令),这样就可以地址/数据复用了。
以PSEN 信号作为扩展程序存储器的读选通信号,在读外部ROM 是PSEN
是低电平有效,以实现对ROM 的读操作。
以EA 信号作为内外程序存储器的选择控制信号,当其为低电平时,对ROM
的读操作限定在外部的程序存储器,当其为高电平时, 对ROM 的读操作是从内部存储器开始的,并可延至外部程序存储器.
由RD 和WR 信号作为扩展数据存储器和I/O 口的读选通、写选通信号。
EA 信号是表示是当前指令是读内,还是外存储器的控制信号。
如:当选用无片内存储器的单片机,或者不打算用片内存储器时,EA 必须接低电平,此外,片外程序存储器的起始地址应该安排在片内存储器之后。
RD 和WR 信号就相对好理解,就是当读数据时(不分内外、RAM、ROM)它
就有效。
WR 也是这样的。
80C51 单片机指令的取指、执行时序
现按4 类指令介绍CPU 时序。
因为CPU 工作的过程就是取指令与执行指令
的过程,所以CPU 必须先取出指令,然后才能执行指令。
1.双字节单周期指令
由于双字节单周期指令必须在一个周期内取机器码二次,所以必须在一个机器周期内安排二次读操作码的操作,分别发生在S1P2 与S4P2。
在S1P2 读入
机器码74 并送入指令寄存器IR,在S4P2 读入数据03 送入累加器A,即读2
取2。
在指令的执行过程中,P0 口要分时传送地址与数据,因此当操作码的地。