51单片机的时钟电路与时序以及 复位电路和电源模式
本文主要涉及51单片机的时钟电路以及相关时序的知识,也讲解了了51单片机的复位电路以及电源模式。
文章目录
- 51单片机的时钟电路与时序以及 复位电路和电源模式
- 一、时钟电路与时序
- 1、 时钟电路设计
- 1.1 内部时钟方式
- 1.2 外部时钟方式
- 1.3 时钟信号的输出
- 2、机器周期、指令周期与指令时序
- 二、 复位电路和电源模式
- 1、 复位操作和复位电路
- 1.1 复位操作
- 1.2 复位电路设计
- 2、低功耗节电模式
- 2.1 空闲模式
- 2.2 掉电运行模式
- 2.3 掉电和空闲模式下的WDT
一、时钟电路与时序
时钟电路产生AT89S51工作时所必需
的控制信号,在时钟信号的控制下,严格按时序执行指令。
执行指令时,CPU首先到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号完成指令所规定的操作。
CPU发的时序信号两类,一类用对片内各个功能部件控制
,用户无须了解;另一类用于对片外存储器或I/O端口的控制
,这部分时序对于分析、设计硬件接口电路至关重要。
1、 时钟电路设计
时钟频率直接影响单片机的速度
,时钟电路的质量
也直接影响单片机系统的稳定性
。常用的时钟电路有两种方式,一种是内部时钟
方式,另一种是外部时钟
方式。
1.1 内部时钟方式
AT89S51内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,图2-8是AT89S51内部时钟方式的电路。
电路中的电容 C1和 C2 的典型值通常选择为 30pF。晶体振荡频率的范围通常是在1.2~12MHz
。
AT89S51单片机常选择振荡频率6MHz或12MHz的石英
晶体。
1.2 外部时钟方式
用现成的外部振荡器产生脉冲信号,常用于多片AT89S51同时工作,以便于多片AT89S51单片机之间的同步。
外部时钟源直接接到XTAL1端,XTAL2端悬空
,见图2-9。
1.3 时钟信号的输出
当使用片内振荡器,XTAL1、XTAL2引脚还能为应用系统中的其他芯片提供时钟,但需增加驱动能力。其引出的方式有两种,如图2-10。
2、机器周期、指令周期与指令时序
各种指令时序与时钟周期相关。
1.时钟周期
时钟控制信号的基本时间单位
。若晶振频率为fosc,则时钟周期Tosc=1/fosc
。
如fosc=6MHz,Tosc=166.7ns。
2.机器周期
CPU完成一个基本操作所需时间为机器周期。执行一条指令分为几个机器周期。每个机器周期完成一个基本操作,如取指令、读或写数据等。每12个时钟周期为1个机器周期
1个机器周期包括12个时钟周期,分6
个状态:S1~S6
。每个状态又分两拍
:P1和P2
。
因此,一个机器周期中的12个时钟周期表示为S1P1、S1P2、S2P1、S2P2、…、S6P2,如图2-11。
3.指令周期
执行一条指令所需的时间
。简单的
单字节指令,取出指令立即执行,只需一个机器周期
的时间。而有些复杂的
指令,如转移
、乘
、除
指令则需两个或多个
机器周期。
从指令执行时间看:
- 单字节和双字节指令一般为
单机器周期
和双机器周期
; 三字节指
令都是双机器周期
;乘、除
指令占用4个机器周期
。
二、 复位电路和电源模式
1、 复位操作和复位电路
单片机的初始化操作,给复位脚RST
加上大于2个机器周期
(即24个时钟振荡周期)的高电平
就使AT89S51复位。
1.1 复位操作
复位时,PC初始化为0000H,程序从0000H单元开始执行。
除系统的正常初始化外,当程序出错(如程序跑飞)或操作错误使系统处于死锁状态时,需按复位键使RST脚为高电平
,使AT89S51摆脱
“跑飞”或“死锁”状态而重新启动程序。
复位操作还对其他一些寄存器有影响,这些寄存器复位时的状态如表2-8。
1.2 复位电路设计
由复位电路实现。AT89S51片内复位电路结构见图2-12。
复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,在每个机器周期的S5P2,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
复位电路采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路
如图2-13所示。
上电自动复位是给电容C充电加给RST引脚一个短的高电平信号,此信号随着VCC对电容C的充电过程而逐渐回落,即RST引脚上的高电平持续时间取决于电容C充电时间。为保证系统可靠复位,RST引脚上的高电平必须维持足够长的时间。
除了上电复位外,有时还需要按键手动复位
。按键手动复位有电平
和脉冲
两种方式。
2、低功耗节电模式
两种低功耗节电工作模式:空闲模式
(idle mode)和掉电保持
模式(power down mode)。
掉电保持模式下,Vcc可由后备电源供电
。图2-17为两种节电模式的内部控制电路。
两种节电模式可通过PCON
的位IDL和位PD的设置来实现。
格式如图2-18。
PCON寄存器各位定义:
SMOD:串行通信波特率选择。
━ :保留位。
GF1、GF0:通用标志位,两个标志位用户使用。
PD: 掉电保持模式控制位,PD=1,则进入掉电保持模式。
IDL:空闲模式控制位,若IDL=1,则进入空闲运行模式。
2.1 空闲模式
-
空闲模式进入
如把PCON中的IDL位置“1”
,通往CPU的时钟信号关断,便进入空闲模式。虽然振荡器运行
,但是CPU进入空闲状态
。所有外围电路(中断系统、串行口和定时器)仍继续工作
,SP、PC、PSW、A、P0–P3端口等所有其他寄存器、内部RAM和SFR
中内容均保持
进入空闲模式前状态
。 -
空闲模式退出
两种方法退出,响应中断
方式,硬件复位
方式。
空闲模式下,若任一个允许的中断请求被响应时,IDL位被片内硬件自动清“0”,从而退出空闲模式。当执行完中断服务程序返回时,将从设置空闲模式指令的下一条指令(断点处)继续执行程序。
当使用硬件复位退出空闲模式时,在复位逻辑电路发挥控制作用前,有长达两个机器周期时间,单片机要从断点处(IDL位置“1”指令的下一条指令处)继续执行程序。在这期间,片内硬件阻止CPU对片内RAM的访问,但不阻止对外部端口(或外部RAM)的访问。为了避免在硬件复位退出空闲模式时出现对端口(或外部RAM)的不希望的写入,在进入空闲模式时,紧随IDL位置1指令后的不应是写端口(或外部RAM)的指令。
2.2 掉电运行模式
-
掉电模式的进入
用指令把PCON寄存器的PD位置1
,便进入掉电模式。在掉电模式下,进入时钟振荡器的信号被封锁
,振荡器停止工作
。
由于没有时钟信号,内部的所有功能部件均停止工作
,但片内RAM和SFR
的原来的内容都被保留
,有关端口的输出状态值
都保存
在对应的特殊功能寄存器中。 -
掉电模式的退出
两种方法:硬件复位
和外部中断
。
硬件复位时要重新初始化SFR,但不改变片内RAM的内容。只有当Vcc恢复到正常工作水平时,只要硬件复位信号维持10ms,便可使单片机退出掉电运行模式。
2.3 掉电和空闲模式下的WDT
掉电模式下振荡器停止,意味着WDT也就停止计数。用户在掉电模式下不需操作WDT。
当用硬件复位退出掉电模式时,对WDT的操作与正常情况一样。
在系统进入掉电模式前先对寄存器WDTRST复位。在中断服务程序中复位寄存器WDTRST。
在进入空闲模式前,应先设置AUXR中的WDIDLE位,以确认WDT是否继续计数。
当WDIDLE=0,空闲模式下的WDT保持继续计数。为防止复位单片机,用户可设计一定时器。该定时器使器件定时退出空闲模式,然后复位WDTRST,再重新进入空闲模式。
当WDIDLE=1,WDT在空闲模式下暂停计数,退出空闲模式后,方可恢复计数。