80C51单片机指令的取指、执行时序
以PSEN信号作为扩展程序存储器的读选通信号,在读外部ROM是PSEN是低电平有效,以实现对ROM 的读操作。
以EA信号作为内外程序存储器的选择控制信号,当其为低电平时,对ROM的读操作限定在外部的程序存储器,当其为高电平时, 对ROM的读操作是从内部存储器开始的,并可延至外部程序存储器。
由RD和WR信号作为扩展数据存储器和I/O口的读选通、写选通信号。
EA信号是表示是当前指令是读内,还是外存储器的控制信号。如:当选用无片内存储器的单片机,或者不打算用片内存储器时,EA必须接低电平,此外,片外程序存储器的起始地址应该安排在片内存储器之后。
RD和WR信号就相对好理解,就是当读数据时(不分内外、RAM、ROM)它就有效。WR也是这样的。
现按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问答#include
80c51用了单片机材料。单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存...
80c51单片机 中程序存储器最大访问空间由什么决定?这是由PC(程序地址指针)的位数决定的。51单片机的PC为16位,所以能访问的最大程序存储器空间是64k字节,也就是0000~FFFFH。国外厂商生产的51单片机有一个PSEN...
80c51单片机 p0口地址数据分时复用如何实现的?P0在前一个时刻输出地址的低8位,然后由ALE信号将它们锁存到外面的逻辑芯片(例如74LS245之类)里,之后再从P0输出或输入数据,就实现了分时复用.在这两个期间,地...