51单片机的时钟电路与时序以及 复位电路和电源模式

2023-12-13 06:54:20

51单片机的时钟电路与时序以及 复位电路和电源模式

本文主要涉及51单片机的时钟电路以及相关时序的知识,也讲解了了51单片机的复位电路以及电源模式。

一、时钟电路与时序

时钟电路产生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 空闲模式
  1. 空闲模式进入
    如把PCON中的IDL位置“1”,通往CPU的时钟信号关断,便进入空闲模式。虽然振荡器运行,但是CPU进入空闲状态。所有外围电路(中断系统、串行口和定时器)仍继续工作,SP、PC、PSW、A、P0–P3端口等所有其他寄存器、内部RAM和SFR中内容均保持进入空闲模式前状态

  2. 空闲模式退出
    两种方法退出,响应中断方式,硬件复位方式。

空闲模式下,若任一个允许的中断请求被响应时,IDL位被片内硬件自动清“0”,从而退出空闲模式。当执行完中断服务程序返回时,将从设置空闲模式指令的下一条指令(断点处)继续执行程序。

当使用硬件复位退出空闲模式时,在复位逻辑电路发挥控制作用前,有长达两个机器周期时间,单片机要从断点处(IDL位置“1”指令的下一条指令处)继续执行程序。在这期间,片内硬件阻止CPU对片内RAM的访问,但不阻止对外部端口(或外部RAM)的访问。为了避免在硬件复位退出空闲模式时出现对端口(或外部RAM)的不希望的写入,在进入空闲模式时,紧随IDL位置1指令后的不应是写端口(或外部RAM)的指令。

2.2 掉电运行模式
  1. 掉电模式的进入
    用指令把PCON寄存器的PD位置1,便进入掉电模式。在掉电模式下,进入时钟振荡器的信号被封锁振荡器停止工作
    由于没有时钟信号,内部的所有功能部件均停止工作,但片内RAM和SFR的原来的内容都被保留,有关端口的输出状态值保存在对应的特殊功能寄存器中。

  2. 掉电模式的退出
    两种方法:硬件复位外部中断
    硬件复位时要重新初始化SFR,但不改变片内RAM的内容。只有当Vcc恢复到正常工作水平时,只要硬件复位信号维持10ms,便可使单片机退出掉电运行模式。

2.3 掉电和空闲模式下的WDT

掉电模式下振荡器停止,意味着WDT也就停止计数。用户在掉电模式下不需操作WDT。

当用硬件复位退出掉电模式时,对WDT的操作与正常情况一样。

在系统进入掉电模式前先对寄存器WDTRST复位。在中断服务程序中复位寄存器WDTRST。

在进入空闲模式前,应先设置AUXR中的WDIDLE位,以确认WDT是否继续计数。
当WDIDLE=0,空闲模式下的WDT保持继续计数。为防止复位单片机,用户可设计一定时器。该定时器使器件定时退出空闲模式,然后复位WDTRST,再重新进入空闲模式。
当WDIDLE=1,WDT在空闲模式下暂停计数,退出空闲模式后,方可恢复计数。

文章来源:https://blog.csdn.net/qq_63831368/article/details/134868371
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。