产品选型

80c51单片机编程 80C51单片机指令的取指,执行时序

小编 2025-07-01 产品选型 23 0

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。

2.单字节单周期指令

对单字节单周期指令,由于操作码只有一个字节,因此第一次读操作码有效,而第二次读的操作码将被丢弃,即:读1丢1,且程序计数器PC不加1。

3.单字节双周期指令

对单字节双周期指令,由于操作码只有一个字节,而执行时间长达2个机器周期,因此除第1次读操作码有效外,其余三次读的操作码均被放弃,即:读1丢3。

4.访问外部存储器指令MOVX

执行访问外部存储器指令MOVX时,首先从程序存储器中取出指令,然后从外部数据存储器中取出数据,因此该指令执行时序图与前三类指令不同。由于MOVX是单字节双周期指令,所以在取指令阶段(即第一个机器周期的S1P1到S4P2)是读1丢1,而在执行指令读数据阶段(即第一个机器周期的S5到第二个机器周期的S3)所完成的操作如下:

(1)先将外部数据存储单元的地址ADDR由DPTR从P0与P2口输出,即时序图中的S5P1到S6P2阶段。并在S4P2到S5P2阶段,发ALE信号将地址锁存。

(2)在第二个机器周期S1P2到S2P2内取消ALE与程序选通信号PSEN (即取消取指操作),使P0口专门用于传送数据。同时发读信号,通过P0口将外部数据存储单元中的数据传送到累加器A中。即:时序图的S6P2到S4P1阶段。

(3)由于锁存的地址为外部数据存储单元的地址,所以在第二个机器周期S4取消取指令的操作,即:不再发程序选通信号PSEN 。

注:由于执行MOVX指令时,在第二个机器周期中要少发一次ALE信号,所以ALE的频率是不稳定的。

51单片机C语言教程大全(PDF资料可在线学习)

c语言是一种非常容易使用的结构化语言。20世纪80年代以后,C语言也可以在单片机上使用。很多编程语言都是扩展和C语言,所以如果你能先学好C语言,然后再学习其他语言,入门会更容易。单片机c语言具有移植性好、易于理解、使用方便的特点。国内有大量的C语言程序员,重新学习单片机会非常容易。所以,虽然汇编语言更精炼,使用C语言也是大势所趋!---资 料 看文末

51单片机C语言教程大全都有哪些资料?

C语言设计.pdf

C语言设计.pdf 2.3M

C语言书写规范.pdf

C语言书写规范.pdf 254KB

51使用技巧及实战.pdf

51使用技巧及实战.pdf1M

单片机C语言教程.pdf

单片机C语言教程.pdf1.6M

C语言设计陷阱.pdf

C语言设计陷阱.pdf4.8M

单片机C语言编程与实例.pdf

单片机C语言编程与实例.pdf25.7M

单片机基础知识C51版.pdf

单片机基础知识C51版.pdf 529KB

下 载 资 料 需 戳 这 ↓↓↓

【下载】51单片机C语言教程大全PDF资料

相关问答

计数器,有种工作方式.15、 80C51单片机 片内ROM的容量为,片...

[最佳回答]13、51系列单片机地址总线是16位,数据总线是8位.14、89C51单片机有2个16位可编程定时器/计数器,有4种工作方式.15、80C51单片机片内ROM的容...

C 语言写 51单片机 闹钟程序 - 132****9191 的回答 - 懂得

#include"reg51.h"chartab1[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsigned...

80C51单片机 引脚图及引脚功能介绍?

本文着手从集成电路角度去认识单片机,主要介绍了单片机的引脚图及引脚功能,以及单片机简易编程。接下来创客学院从集成电路角度认识单片机首先,先看下80C51单...

80C51单片机 有5个中断源,但只能设置两个中断优先级。因此...

[最佳回答](1)可能。ET0、ET1设为高优先级。(2)可能。ES设为高优先级。(3)不可能。ET1、EX1、ET0顺序完全颠倒,两个优先级无法满足。(4)可能。EX0、ET1、ES设...

80c51单片机 定时器如何选择工作方式?

51单片机的定时计数器可以配置成定时器模式或计数器状态,以及每个状态下的工作模式,这个配置是通过模式寄存器TMOD进行操作的。TMOD的C/T位等于0时,相应的定...

80C51单片机 的控制总线信号有哪些?

80C51单片机的控制总线信号有以下4个,各信号的作用为:RST/VPD:复位信号输入引脚/备用电源输入引脚;单片机(Microcontrollers)是一种集成电路芯片,是采用超...

肿么用 C 语言编写 51单片机 测脉宽的程序~ 跪求完整程序!-ZOL问答

#includetypedefunsignedcharint8;typedefunsignedintint16;sbitled=P1^0;//P1^0...

80c51 用了什么材料?

80c51用了单片机材料。单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存...

80c51单片机 中程序存储器最大访问空间由什么决定?

这是由PC(程序地址指针)的位数决定的。51单片机的PC为16位,所以能访问的最大程序存储器空间是64k字节,也就是0000~FFFFH。国外厂商生产的51单片机有一个PSEN...

80c51单片机 p0口地址数据分时复用如何实现的?

P0在前一个时刻输出地址的低8位,然后由ALE信号将它们锁存到外面的逻辑芯片(例如74LS245之类)里,之后再从P0输出或输入数据,就实现了分时复用.在这两个期间,地...

猜你喜欢