- 单片机原理与工程应用
- 向敏等
- 972字
- 2021-04-12 17:18:17
2.2 MCS-51单片机时钟电路与总线时序
无论是通用微型计算机还是单片机,CPU所有的工作都是在时钟信号控制下进行的,每执行一条指令,CPU的控制器就要发出一系列特定的控制信号,这些控制信号在时间上的先后次序就是CPU的工作时序。
2.2.1 时钟电路
MCS-51单片机的时钟连接有两种方式,一种是内部时钟方式,但须在XTAL1和XTAL2引脚外接石英晶体(2~24MHz)和振荡电容,电容C1和C2对频率有微调作用,电容量的选择范围为5~30pF,如图2-7(a)所示。另一种是采用外部时钟方式,即将XTAL2引脚悬空,外部时钟信号(外部振荡器提供的信号)从XTAL1引脚输入,如图2-7(b)所示。
图2-7 MCS-51单片机的时钟连接方式
在单片机应用电路设计中,时钟电路器件应该尽可能靠近CPU对应引脚。如果CPU无法正常工作,可通过示波器检测CPU时钟引脚是否有一定幅值的时钟信号,如果有,则时钟电路正常。
2.2.2 总线时序
MCS-51单片机的振荡频率经过内部二分频以后得到的信号周期,称为状态周期,即一个状态周期包括两拍的时钟周期。机器周期就是计算机完成一种基本操作所需的时间。MCS-51单片机的机器周期由6个状态周期组成,即S1~S6,而每个状态又分为两拍,称为P1和P2,因此一个机器周期中的12个振荡周期常可表示为S1P1、S1P2、…、S6P1、S6P2。若采用12MHz的晶体振荡器,则每个机器周期为12×106/(12×106)=1μs,若采用6MHz晶体振荡器,则每个机器周期为2μs。
在MCS-51单片机指令系统中,有单字节指令、双字节指令和三字节指令。每条指令的执行时间分别占用1个或几个机器周期。单字节指令和双字节指令都可能是单机器周期和双机器周期的,而三字节指令都是双机器周期的,只有乘、除法指令占用4个机器周期。
每一条指令的执行都包括取指令和执行指令两个阶段。在取指令阶段,CPU从程序存储器中取出指令操作码及操作数,然后执行这条指令的逻辑功能。对于绝大部分指令,在整个指令执行过程中,ALE是周期性的信号,如图2-8所示。在每个机器周期中,ALE信号出现两次:第一次在S1P2和S2P1期间,第二次在S4P2和S5P1期间。ALE信号的有效宽度为1个S状态。每出现一次ALE信号,CPU就进行一次取指令操作。
图2-8 MCS-51单片机的机器周期
对于单机器周期指令,从S1P2开始把指令码读到指令寄存器。如果是双字节指令,则在同一个机器周期的S4读入第二字节。对单字节指令,在S4仍有一次读指令码的操作,但读入的内容被忽略(不处理),并且程序计数器不加1,这种无效的读取称为假读。在下一个机器周期的S1才真正读取此指令码。