MCS单片机的指令时序

上传人:206****923 文档编号:40281281 上传时间:2018-05-25 格式:DOC 页数:9 大小:123KB
返回 下载 相关 举报
MCS单片机的指令时序_第1页
第1页 / 共9页
MCS单片机的指令时序_第2页
第2页 / 共9页
MCS单片机的指令时序_第3页
第3页 / 共9页
MCS单片机的指令时序_第4页
第4页 / 共9页
MCS单片机的指令时序_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《MCS单片机的指令时序》由会员分享,可在线阅读,更多相关《MCS单片机的指令时序(9页珍藏版)》请在金锄头文库上搜索。

1、MCS-51MCS-51 单片机的指令时序单片机的指令时序时序是用定时单位来描述的,MCS-51 的时序单位有四个,它们分别是节拍、状态、机器周期和指令周期,接下来我们分别加以说明。节拍与状态:我们把振荡脉冲的周期定义为节拍(为方便描述,用 P 表示),振荡脉冲经过二分频后即得到整个单片机工作系统的时钟信号,把时钟信号的周期定义为状态(用 S 表示),这样一个状态就有两个节拍,前半周期相应的节拍我们定义为 1(P1),后半周期对应的节拍定义为 2(P2)。机器周期:MCS-51 有固定的机器周期,规定一个机器周期有 6 个状态,分别表示为 S1-S6,而一个状态包含两个节拍,那么一个机器周期就

2、有 12 个节拍,我们可以记着 S1P1、S1P2S6P1、S6P2,一个机器周期共包含 12 个振荡脉冲,即机器周期就是振荡脉冲的 12 分频,显然,如果使用 6MHz 的时钟频率,一个机器周期就是 2us,而如使用 12MHz 的时钟频率,一个机器周期就是 1us。指令周期:执行一条指令所需要的时间称为指令周期,MCS-51 的指令有单字节、双字节和三字节的,所以它们的指令周期不尽相同,也就是说它们所需的机器周期不相同,可能包括一到四个不等的机器周期(这些内容,我们将在下面的章节中加以说明)。MCS-51 的指令时序:MCS-51 指令系统中,按它们的长度可分为单字节指令、双字节指令和三字

3、节指令。执行这些指令需要的时间是不同的,也就是它们所需的机器周期是不同的,有下面几种形式:单字节指令单机器周期单字节指令双机器周期双字节指令单机器周期双字节指令双机器周期三字节指令双机器周期单字节指令四机器周期(如单字节的乘除法指令)下图是 MCS-51 系列单片机的指令时序图:上图是单周期和双周期取指及执行时序,图中的 ALE 脉冲是为了锁存地址的选通信号,显然,每出现一次该信号单片机即进行一次读指令操作。从时序图中可看出,该信号是时钟频率 6 分频后得到,在一个机器周期中,ALE 信号两次有效,第一次在 S1P2 和 S2P1 期间,第二次在 S4P2 和 S5P1 期间。接下来我们分别对

4、几个典型的指令时序加以说明。单字节单周期指令:单字节单周期指令只进行一次读指令操作,当第二个 ALE 信号有效时,PC 并不加 1,那么读出的还是原指令,属于一次无效的读操作。双字节单周期指令:这类指令两次的 ALE 信号都是有效的,只是第一个 ALE 信号有效时读的是操作码,第二个 ALE 信号有效时读的是操作数。单字节双周期指令:两个机器周期需进行四读指令操作,但只有一次读操作是有效的,后三次的读操作均为无效操作。单字节双周期指令有一种特殊的情况,象 MOVX 这类指令,执行这类指令时,先在 ROM 中读取指令,然后对外部数据存储器进行读或写操作,头一个机器周期的第一次读指令的操作码为有效

5、,而第二次读指令操作则为无效的。在第二个指令周期时,则访问外部数据存储器,这时,ALE 信号对其操作无影响,即不会再有读指令操作动作。上页的时序图中,我们只描述了指令的读取状态,而没有画出指令执行时序,因为每条指令都包含了具体的操作数,而操作数类型种类繁多,这里不便列出,有兴趣的读者可参阅有关书籍。外部程序存储器(ROM)读时序右图 8051 外部程序存储器读时序图,从图中可看出,P0 口提供低 8 位地址,P2 口提供高8 位地址,S2 结束前,P0 口上的低 8 位地址是有效的,之后出现在 P0 口上的就不再是低 8 位的地址信号,而是指令数据信号,当然地址信号与指令数据信号之间有一段缓冲

6、的过度时间,这就要求,在 S2 其间必须把低 8 位的地址信号锁存起来,这时是用 ALE 选通脉冲去控制锁存器把低 8 位地址予以锁存,而 P2 口只输出地址信号,而没有指令数据信号,整个机器周期地址信号都是有效的,因而无需锁存这一地址信号。 从外部程序存储器读取指令,必须有两个信号进行控制,除了上述的 ALE 信号,还有一个 PSEN(外部 ROM 读选通脉冲),上图显然可看出,PSEN 从 S3P1 开始有效,直到将地址信号送出和外部程序存储器的数据读入 CPU 后方才失效。而又从 S4P2 开始执行第二个读指令操作。外部数据存储器(RAM)读时序右图 8051 外部数据存储器读写时序图,

7、从ROM 中读取的需执行的指令,而 CPU 对外部数据存储的访问是对 RAM 进行数据的读或写操作,属于指令的执行周期,值得一提的是,读或写是两个不同的机器周期,但他们的时序却是相似的,我们只对 RAM 的读时序进行分析。上一个机器周期是取指阶段,是从 ROM 中读取指令数据,接着的下个周期才开始读取外部数据存储器 RAM 中的内容。 在 S4 结束后,先把需读取 RAM 中的地址放到总线上,包括 P0 口上的低 8 位地址 A0-A7 和 P2 口上的高 8 位地址 A8-A15。当 RD 选通脉冲有效时,将 RAM 的数据通过 P0 数据总线读进 CPU。第二个机器周期的 ALE 信号仍然

8、出现,进行一次外部 ROM 的读操作,但是这一次的读操作属于无效操作。对外部 RAM 进行写操作时,CPU 输出的则是 WR(写选通信号),将数据通过 P0 数据总线写入外部存储使用使用 ALE 信号作为低信号作为低 8 位地址的锁存控制信号。位地址的锁存控制信号。ALE 接到外部锁存接到外部锁存器时,高电平期间,器时,高电平期间,51 的的 p0 输出地址,低电平时锁存器将地址锁存,输出地址,低电平时锁存器将地址锁存,在在 ALE 低电平时,(低电平时,(PSEN 为低为低)p0 口可以传输数据(指令),这口可以传输数据(指令),这样就可以地址样就可以地址/数据复用了。数据复用了。以以 PS

9、EN 信号作为扩展程序存储器的读选通信号,信号作为扩展程序存储器的读选通信号,在读外部 ROM 是PSEN 是低电平有效,以实现对 ROM 的读操作。以 EA 信号作为内外程序存储器的选择控制信号,当其为低电平时,对ROM 的读操作限定在外部的程序存储器,当其为高电平时, 对 ROM 的读操作是从内部存储器开始的,并可延至外部程序存储器.由 RD 和 WR 信号作为扩展数据存储器和 I/O 口的读选通、写选通信号。EA 信号是表示是当前指令是读内,还是外存储器的控制信号。如:当选用无片内存储器的单片机,或者不打算用片内存储器时,EA 必须接低电平,此外,片外程序存储器的起始地址应该安排在片内存

10、储器之后。RD 和 WR 信号就相对好理解,就是当读数据时(不分内外、RAM、ROM)它就有效。WR 也是这样的。 80C51 单片机指令的取指、执行时序 现按 4 类指令介绍 CPU 时序。因为 CPU 工作的过程就是取指令与执行指令的过程,所以 CPU 必须先取出指令,然后才能执行指令。1双字节单周期指令 由于双字节单周期指令必须在一个周期内取机器码二次,所以必须在一个机器周期内安排二次读操作码的操作,分别发生在 S1P2 与S4P2。在 S1P2 读入机器码 74 并送入指令寄存器 IR,在 S4P2 读入数据03 送入累加器 A,即读 2 取 2。在指令的执行过程中,P0 口要分时传送

11、地址与数据,因此当操作码的地址从 P0 口输出后,必须发地址锁存信号 ALE 给 74LS373 锁存器,将地址锁存在 74LS373 内,腾出 P0 口读入机器码 74。在取数据 03 时同样要发 ALE 信号。因此,在一个机器周期内地址锁存信号二次有效,见 80C51 时序图 2-13。2单字节单周期指令 对单字节单周期指令,由于操作码只有一个字节,因此第一次读操作码有效,而第二次读的操作码将被丢弃,即:读 1 丢 1,且程序计数器 PC 不加 1。3单字节双周期指令 对单字节双周期指令,由于操作码只有一个字节,而执行时间长达2 个机器周期,因此除第 1 次读操作码有效外,其余三次读的操作

12、码均被放弃,即:读 1 丢 3。4访问外部存储器指令 MOVX 执行访问外部存储器指令 MOVX 时,首先从程序存储器中取出指令,然后从外部数据存储器中取出数据,因此该指令执行时序图与前三类指令不同。由于 MOVX 是单字节双周期指令,所以在取指令阶段(即第一个机器周期的 S1P1 到 S4P2)是读 1 丢 1,而在执行指令读数据阶段(即第一个机器周期的 S5 到第二个机器周期的 S3)所完成的操作如下:(1)先将外部数据存储单元的地址 ADDR 由 DPTR 从 P0 与 P2 口输出,即时序图中的 S5P1 到 S6P2 阶段。并在 S4P2 到 S5P2 阶段,发 ALE信号将地址锁存

13、。(2)在第二个机器周期 S1P2 到 S2P2 内取消 ALE 与程序选通信号PSEN (即取消取指操作),使 P0 口专门用于传送数据。同时发读信号,通过 P0 口将外部数据存储单元中的数据传送到累加器 A 中。即:时序图的 S6P2 到 S4P1 阶段。(3)由于锁存的地址为外部数据存储单元的地址,所以在第二个机器周期 S4 取消取指令的操作,即:不再发程序选通信号PSEN 。注:由于执行 MOVX 指令时,在第二个机器周期中要少发一次 ALE信号,所以 ALE 的频率是不稳定的。晶振电路单片机的心脏 2011-06-03 12:59 晶振电路的原理晶振是晶体振荡器的简称,在电气上它可以

14、等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。一般的晶振振荡电路都是在一个反相放大

15、器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般 IC 的引脚都有等效输入电容,这个不能忽略。一般的晶振的负载电容为 15p 或 12.5p ,如果再考虑元件引脚的等效输入电容,则两个 22p 的电容构成晶振的振荡电路就是比较好的选择。晶体振荡器也分为无源晶振和有源晶振两种类型。无源晶振与有源晶振(谐振)的英文名称不同,无源晶振为 crystal(晶体),而有源晶振则叫做 oscillator(振荡器)。无源晶振需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法

16、并不准确;有源晶振是一个完整的谐振振荡器。谐振振荡器包括石英(或其晶体材料)晶体谐振器,陶瓷谐振器,LC 谐振器等。晶振与谐振振荡器有其共同的交集有源晶体谐振振荡器。石英晶片所以能做振荡电路(谐振)是基于它的压电效应,从物理学中知道,若在晶片的两个极板间加一电场,会使晶体产生机械变形;反之,若在极板间施加机械力,又会在相应的方向上产生电场,这种现象称为压电效应。如在极板间所加的是交变电压,就会产生机械变形振动,同时机械变形振动又会产生交变电场。一般来说,这种机械振动的振幅是比较小的,其振动频率则是很稳定的。但当外加交变电压的频率与晶片的固有频率(决定于晶片的尺寸)相等时,机械振动的幅度将急剧增加,这种现象称为压电谐振,因此石英晶体又称为石英晶体谐振器。 其特点是频率稳定度很高。石英晶体振荡器与石英晶体谐振器都是提供稳定电路频率的一种电子器件。石英晶体振荡器是利用石英晶体的压电效应来起振,而石英晶体谐振器是利用石英晶体和内置 IC 来共同作用来工作的。振荡器直接应用于电路中,谐振器工作时一般需要提供 3.3V 电压来维持工作。振荡器比谐振器

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号