您的位置 首页 汽车

51单片机时序及延时剖析介绍

计算机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。这个脉冲是由单片机控制器中的时序电路发出的。单片机的时序就是CPU在执行指令

计算机作业时,是在一致的时钟脉冲操控下一拍一拍地进行的。这个脉冲是由单片机操控器中的时序电路宣布的。单片机的时序便是CPU在履行指令时所需操控信号的时刻次序,为了确保各部件间的同步作业,单片机内部电路应在仅有的时钟信号下严格地控时序进行作业,在学习51单片机的时序之前,咱们先来了解下时序相关的一些概念。
已然计算机是在一致的时钟脉冲操控下作业的,那么,它的时钟脉冲是怎样来的呢?
要给咱们的计算机CPU供给时序,就需求相关的硬件电路,即振动器和时钟电路。咱们学习的8051单片机内部有一个高增益反相放大器,这个反相放大器的效果便是用于构成振动器用的,但要构成时钟,外部还需求加一些附加电路。8051单片机的时钟发生有以下两种办法:
一、内部时钟方法:
使用单片机内部的振动器,然后在引脚XTAL1(18脚)和XTAL2(19脚)两头接晶振,就构成了安稳的自激振动器,其宣布的脉冲直接送入内部时钟电路,外接晶振时,晶振两头的电容一般挑选为30PF左右;这两个电容对频率有微调的效果,晶振的频率规模可在1.2MHz-12MHz之间挑选。为了削减寄生电容,更好地确保振动器安稳、可靠地作业,振动器和电容应尽或许装置得与单片机芯片接近。(提示一下,本站供给的学习套件悉数选用的便是这种时钟方法)。
二、外部时钟方法:
此方法是使用外部振动脉冲接入XTAL1或XTAL2。HMOS和CHMOS单片机外时钟信号接入方法不同,HMOS型单片机(例如8051)外时钟信号由XTAL2端脚注入后直接送至内部时钟电路,输入端XTAL1应接地。由于XTAL2端的逻辑电平不是TTL的,故主张外接一个上接电阻。关于CHMOS型的单片机(例如 80C51),因内部时钟发生器的信号取自反相器的输入端,故选用外部时钟源时,接线方法为外时钟信号接到XTAL1而XTAL2悬空。如下图


外接时钟信号经过一个二分频的触发器而成为内部时钟信号,要求高、低电平的持续时刻都大于20ns,一般为频率低于12MHz的方波。片内时钟发生器便是上述的二分频触发器,它向芯片供给了一个2节拍的时钟信号。
前面已说到,计算机作业时,是在一致的时钟脉冲操控下一拍一拍地进行的。由于指令的字节数不同,取这些指令所需求的时刻也就不同,即使是字节数相同的指令,由于履行操作有较大的不同,不同的指令履行时刻也不一定相同,即所需的拍节数不同。为了便于对CPU时序进行剖析,一般按指令的履行进程规则了几中周期,即时钟周期、机器周期和指令周期,也称为时序守时单位,下面别离予以解说。
时钟周期
时钟周期也称为振动周期,界说为时钟脉冲的倒数(能够这样来了解,时钟周期便是单片机外接晶振的倒数,例如12M的晶振,它的时刻周期便是1/12 us),是计算机中最根本的、最小的时刻单位。
在一个时钟周期内,CPU仅完结一个最根本的动作。关于某种单片机,若选用了1MHZ的时钟频率,则时钟周期为1us;若选用4MHZ的时钟频率,则时钟周期为250us。由于时钟脉冲是计算机的根本作业脉冲,它操控着计算机的作业节奏(使计算机的每一步都一致到它的步骤上来)。明显,对同一种机型的计算机,时钟频率越高,计算机的作业速度就越快。可是,由于不同的计算机硬件电路和器材的不完全相同,所以其所需求的时钟周频率规模也不一定相同。咱们学习的8051单片机的时钟规模是1.2MHz-12MHz。
在8051单片机中把一个时钟周期界说为一个节拍(用P表明),二个节拍界说为一个状况周期(用S表明)。请咱们参看后边的时序图。
机器周期
在计算机中,为了便于管理,常把一条指令的履行进程划分为若干个阶段,每一阶段完结一项作业。例如,取指令、存储器读、存储器写等,这每一项作业称为一个根本操作。完结一个根本操作所需求的时刻称为机器周期。一般状况下,一个机器周期由若干个S周期(状况周期)组成。8051系列单片机的一个机器周期同6个S周期(状况周期)组成。前面已说过一个时钟周期界说为一个节拍(用P表明),二个节拍界说为一个状况周期(用S表明),8051单片机的机器周期由6个状况周期组成,也便是说一个机器周期=6个状况周期=12个时钟周期。拜见后边的时序图。
指令周期
指令周期是履行一条指令所需求的时刻,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同。关于一些简略的的单字节指令,在取指令周期中,指令取出到指令寄存器后,当即译码履行,不再需求其它的机器周期。关于一些比较复杂的指令,例如搬运指令、乘法指令,则需求两个或许两个以上的机器周期。
时钟周期、机器周期、指令周期之间的联系图如下。



一般含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。
MCS-51指令系统中,按它们的长度可分为单字节指令、双字节指令和三字节指令。履行这些指令需求的时刻是不同的,也便是它们所需的机器周期是不同的,有下面几种方式:
·单字节指令单机器周期
·单字节指令双机器周期
·双字节指令单机器周期
·双字节指令双机器周期
·三字节指令双机器周期
·单字节指令四机器周期(如单字节的乘除法指令)
下图是MCS-51系列单片机的指令时序图:

上图是单周期和双周期取指及履行时序,图中的ALE脉冲是为了锁存地址的选通信号,明显,每呈现一次该信号单片机即进行一次读指令操作。从时序图中可看出,该信号是时钟频率6分频后得到,在一个机器周期中,ALE信号两次有用,第一次在S1P2和S2P1期间,第2次在S4P2和S5P1期间。
接下来咱们别离对几个典型的指令时序加以阐明。
·单字节单周期指令:
单字节单周期指令只进行一次读指令操作,当第二个ALE信号有用时,PC并不加1,那么读出的仍是原指令,归于一次无效的读操作。
·双字节单周期指令:
这类指令两次的ALE信号都是有用的,仅仅第一个ALE信号有用时读的是操作码,第二个ALE信号有用时读的是操作数。
·单字节双周期指令:
两个机器周期需进行四读指令操作,但只要一次读操作是有用的,后三次的读操作均为无效操作。
单字节双周期指令有一种特别的状况,象MOVX这类指令,履行这类指令时,先在ROM中读取指令,然后对外部数据存储器进行读或写操作,头一个机器周期的第一次读指令的操作码为有用,而第2次读指令操作则为无效的。在第二个指令周期时,则拜访外部数据存储器,这时,ALE信号对其操作无影响,即不会再有读指令操作动作。
上页的时序图中,咱们只描绘了指令的读取状况,而没有画出指令履行时序,由于每条指令都包含了详细的操作数,而操作数类型品种繁复,这儿不方便列出,有爱好的读者可参看有关书本。
·外部程序存储器(ROM)读时序

右图8051外部程序存储器读时序图,从图中可看出,P0口供给低8位地址,P2口供给高8位地址,S2完毕前,P0口上的低8位地址是有用的,之后呈现在P0口上的就不再是低8位的地址信号,而是指令数据信号,当然地址信号与指令数据信号之间有一段缓冲的过度时刻,这就要求,在S2其间有必要把低8位的地址信号锁存起来,这时是用ALE选通脉冲去操控锁存器把低8位地址予以锁存,而P2口只输出地址信号,而没有指令数据信号,整个机器周期地址信号都是有用的,因此无需锁存这一地址信号。
从外部程序存储器读取指令,有必要有两个信号进行操控,除了上述的ALE信号,还有一个PSEN(外部ROM读选通脉冲),上图明显可看出,PSEN从S3P1开端有用,直到将地址信号送出和外部程序存储器的数据读入CPU后刚才失效。而又从S4P2开端履行第二个读指令操作。
·外部数据存储器(RAM)读时序
右图8051外部数据存储器读写时序图,从ROM中读取的需履行的指令,而CPU对外部数据存储的拜访是对RAM进行数据的读或写操作,归于指令的履行周期,值得一提的是,读或写是两个不同的机器周期,但他们的时序却是类似的,咱们只对RAM的读时序进行剖析。
上一个机器周期是取指阶段,是从ROM中读取指令数据,接着的下个周期才开端读取外部数据存储器RAM中的内容。
在S4完毕后,先把需读取RAM中的地址放到总线上,包含P0口上的低8位地址A0-A7和P2口上的高8位地址A8-A15。当RD选通脉冲有用时,将RAM的数据经过P0数据总线读进CPU。第二个机器周期的ALE信号依然呈现,进行一次外部ROM的读操作,可是这一次的读操作归于无效操作。
对外部RAM进行写操作时,CPU输出的则是WR(写选通信号),将数据经过P0数据总线写入外部存储中。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/262533.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部