AT89S51的时钟电路与时序

时钟电路用于产生AT89S51单片机工作时所必需的控制信号 。AT89S51单片机的内部电路正是在时钟信号的控制下 , 严格地按时序执行指令进行工作 。
在执行指令时 , CPU首先到程序存储器中取出需要执行的指令操作码 , 然后译码 , 并由时序电路产生一系列控制信号完成指令所规定的操作 。CPU发出的时序信号有两类 , 一类用于对片内各个功能部件的控制 , 用户无需了解;另一类用于对片外存储器或I/O口的控制 , 这部分时序对于分析、设计硬件接口电路至关重要 , 这也是单片机应用系统设计者普遍关心和重视的问题 。
时钟电路设计
AT89S51单片机各功能部件的运行都以时钟控制信号为基准 , 有条不紊、一拍一拍地工作 。
因此 , 时钟频率直接影响单片机的速度 , 时钟电路的质量也直接影响单片机系统的稳定性 。常用的时钟电路有两种方式 , 一种是内部时钟方式 , 另一种是外部时钟方式 。
1.内部时钟方式
AT89S51内部有一个用于构成振荡器的高增益反相放大器 , 它的输入端为芯片引脚XTAL1 , 输出端为引脚XTAL2 。这两个引脚跨接石英晶体和微调电容 , 构成一个稳定的自激振荡器 , 图2-13是AT89S51内部时钟方式的电路
【AT89S51的时钟电路与时序】
电路中的电容C1和C2的典型值通常选择为30pF 。该电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性 。晶体振荡频率的范围通常是在1.2~12MHz 。晶体的频率越高 , 系统的时钟频率越高 , 单片机的运行速度也就越快 。但反过来 , 运行速度快对存储器的速度要求就高 , 对印制电路板的工艺要求也高 , 即要求线间的寄生电容要小 。晶体和电容应尽可能安装得与单片机芯片靠近 , 以减少寄生电容 , 更好地保证振荡器稳定、可靠地工作 。为了提高温度稳定性 , 应采用温度稳定性能好的电容 。
AT89S51常选择振荡频率6 MHz或12MHz的石英晶体 。随着集成电路制造工艺技术的发展 , 单片机的时钟频率也在逐步提高 , AT89S51和AT89S52芯片的时钟最高频率已达33MHz 。
2.外部时钟方式
外部时钟方式使用现成的外部振荡器产生脉冲信号 , 常用于多片AT89S51单片机同时工作 , 以便于多片AT89S51单片机之间的同步 , 一般为低于12MHz的方波 。
外部时钟源直接接到XTAL1端 , XTAL2端悬空 , 其电路如图2-14所示

3.时钟信号的输出
当使用片内振荡器时 , XTAL1、XTAL2引脚还能为应用系统中的其他芯片提供时钟 , 但需增加驱动能力 。其引出的方式有两种 , 如图2-15所示

机器周期、指令周期与指令时序
单片机执行的指令均是在CPU控制器的时序控制电路的控制下进行的 , 各种时序均与时钟周期有关 。
1.时钟周期
时钟周期是单片机时钟控制信号的基本时间单位 。若时钟晶体的振荡频率为fosc , 则时钟周期Tosc= l/fosc如fosc=6 MHz , Tosc=166.7ns 。
2.机器周期
CPU完成一个基本操作所需要的时间称为机器周期 。单片机中常把执行一条指令的过程分为几个机器周期 。每个机器周期完成一个基本操作 , 如取指令、读或写数据等 。AT89S51单片机的每12个时钟周期为一个机器周期 , 即Tcy=12/fosc 。若fosc=6MHz , Tcy=2 μs; fosc=12 MHz , Tcy=1μs 。
AT89S51的一个机器周期包括12个时钟周期 , 分为6个状态:Sl~S6 。每个状态又分为两拍:Pl和P2 。因此 , 一个机器周期中的12个时钟周期表示为SIP1、SIP2、S2Pl、S2P2、…、S6P2 , 如图2-16所示

3.指令周期
指令周期是执行一条指令所需的时间 。AT89S51单片机中指令按字节来分 , 可分为单字节、双字节、三字节指令 , 因此执行一条指令的时间也不同 。对于简单的单字节指令 , 取出指令立即执行 , 只需一个机器周期的时间 。而有些复杂的指令 , 如转移、乘、除指令则需两个或多个机器周期 。
从指令的执行时间看 , 单字节和双字节指令一般为单机器周期和双机器周期 , 三字节指令都是双机器周期 , 只有乘、除指令占用4个机器周期 。

    推荐阅读