汽车单片机应用技术(第2版)
上QQ阅读APP看书,第一时间看更新

1.4 时钟电路与复位电路

时序:即时间的顺序。一个由人组成的单位尚且要有一定的时序,计算机当然更要有严格的时序。计算机要完成的事更复杂,因此它的时序也更复杂。我们已知,计算机工作时,是一条一条地从ROM中取指令,然后一步一步地执行。我们规定:计算机访问一次存储器的时间,称为一个机器周期。

时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。

1.4.1 时钟电路与时序

1.时钟信号的产生

(1)内部时钟方式 内部时钟方式如图1-11所示。在8051单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。

一般电容C1和C2取30pF左右,晶体的振荡频率范围是1.2~12MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。MCS-51在通常应用情况下,使用振荡频率为6MHz或12MHz。

(2)外部时钟方式 在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入唯一的公用外部脉冲信号作为各单片机的振荡脉冲。这时外部的脉冲信号是经XTAL2引脚注入,其连接如图1-12所示。

2.时序

时序是用定时单位来说明的。MCS-51的时序定时单位共有4个,从小到大依次是:节拍、状态、机器周期和指令周期,下面分别加以说明。

图1-11 内部时钟方式

图1-12 外部时钟方式

(1)节拍与状态 把振荡脉冲的周期定义为节拍(用P表示)。振荡脉冲经过二分频后,就是单片机的时钟信号的周期,定义为状态(用S表示)。

这样,一个状态就包含两个节拍,前半周期对应的节拍叫节拍1(P1),后半周期对应的是节拍2(P2)。

(2)机器周期MCS-51采用定时控制方式,因此它有固定的机器周期。规定一个机器周期的宽度为6个状态,并依次表示为S1~S6。由于一个状态又包括两个节拍,因此一个机器周期总共有12个节拍,分别记作S1P1、S1P2……S6P1、S6P2。由于一个机器周期共有12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。

当振荡脉冲频率为12MHz时,一个机器周期为1μs。

当振荡脉冲频率为6MHz时,一个机器周期为2μs。

(3)指令周期 指令周期是最大的时序定时单位,执行一条指令所需要的时间称为指令周期。它一般由若干个机器周期组成。不同的指令,所需要的机器周期数也不相同。通常,包含1个机器周期的指令称为单周期指令,包含2个机器周期的指令称为双周期指令。

指令的运算速度和指令所包含的机器周期有关,机器周期数越少的指令执行速度越快。MCS-51单片机通常可以分为单周期指令、双周期指令和四周期指令。四周期指令只有乘法和除法指令两条,其余均为单周期和双周期指令。

单片机执行任何一条指令时都可以分为取指令阶段和执行指令阶段。ALE引脚上出现的信号是周期性的,在每个机器周期内两次出现高电平。第一次出现在S1P2和S2P1期间,第二次出现在S4P2和S5P1期间。ALE信号每出现一次,CPU就进行一次取指操作,但由于不同指令的字节数和机器周期数不同,因此取指令操作也随指令不同而有小的差异。

按照指令字节数和机器周期数,8051的111条指令可分为六类,分别是单字节单周期指令、单字节双周期指令、单字节四周期指令、双字节单周期指令、双字节双周期指令、三字节双周期指令。

图1-13a、b所示分别为单字节单周期和双字节单周期指令的时序。单周期指令的执行始于S1P2,这时操作码被锁存到指令寄存器内。若是双字节则在同一机器周期的S4读第二字节。若是单字节指令,则在S4仍有读出操作,但被读入的字节无效,且程序计数器PC并不增量。

图1-14给出了单字节双周期指令的时序,两个机器周期内进行4次读操作码操作。因为是单字节指令,后三次读操作都是无效的。

图1-13 MCS-51单周期指令时序

a)单字节指令 b)双字节指令

图1-14 MCS-51单字节双周期指令时序

1.4.2 单片机的复位电路

单片机复位如同计算机在启动运行前需要复位一样,也是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。例如:复位后PC=0000H,使单片机从第一个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。所以我们必须弄清楚MCS-51型单片机复位的条件、复位电路和复位后的状态。

单片机复位的条件是必须使RST引脚(9)加上持续2个机器周期(即24个振荡周期)的高电平。例如:若时钟频率为12MHz,每机器周期为1μs,则只需2μs以上时间的高电平。在RST引脚出现高电平后的第二个机器周期执行复位。单片机常见的复位电路如图1-15a、b所示。

图1-15 单片机常见的复位电路

a)上电自动复位电路 b)按键复位电路

图1-15a为上电自动复位电路,它是利用电容充电来实现的。在加电瞬间,RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。只要保证RST为高电平的时间大于2个机器周期,便能正常复位。

图1-15b为按键复位电路。该电路除具有上电复位功能外,还有按键复位功能,只需按图1-15b中的RESET键,此时电源VCC经电阻R1、R2分压,便会在RST端产生一个复位高电平。

单片机复位期间不产生ALE和信号,即ALE=1和。这表明单片机复位期间不会有任何取指操作。复位后,内部各专用寄存器状态如下。

其中*表示无关位。请注意:

1)复位后PC值为0000H,表明复位后程序从0000H开始执行。

2)SP值为07H,表明堆栈底部在07H。一般需重新设置SP值。

3)P0~P3口值为FFH。P0~P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0~P3口每一端线为“1”,为这些端线用作输入口做准备。