第10章 复位省电方式与时钟

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/4/30
(2)看门狗定时器的使用
WDT的使用主要涉及WDT控制寄存器的设置以及WDT的定期复位。
使用WDT的汇编语言程序如下: $INCLUDE (STC12C5A.INC) ;包含STC12C5A60S2单片机寄存器定义文件
ORG 0000H
LJMP Initial … ;其他入口定义

;其他程序代码
MOV WDT_CONTR,#00111100B ;复位WDT
… ;其他代码
LJMP Main_Loop
2020/4/30
使用WDT的C语言程序如下: #include “stc12c5a.h” void main(void) {
… //其他初始化代码 WDT_CONTR=0x3c;
ISP/IAP控制寄存器IAP_CONTR
位号 D7
D6
D5
D4
D3 D2
D1
D0
位名称 IAPEN SWBS SWRST CMD_FAIL 1 WT2 WT1 WT0
1)IAPEN:ISP/IAP 功能允许位。可由软件置1或清0。 0:禁止ISP/IAP编程改变Flash。 1:允许编程改变Flash。
WDT溢出时间的计算方法: WDT的溢出时间 =(12 × 预分频系数 × 32768 ) / 时钟频率 例如,时钟为12MHz时,WDT的溢出时间=(12 × 预分频系数 × 32768) / 12000000= 预分频系数 × 393216 / 12000000 时钟频率为20MHz、12MHz和11.0592MHz时,预分频系数设置和WDT溢出时间如表 10-2所示(见教材P248)。 当启用WDT后,用户程序必须周期性的复位WDT,以证明程序正常运行。如果用户程 序在一段时间之后不能复位WDT,WDT就会溢出,将强制CPU自动复位,从而确保程序不 会进入死循环,或者执行到无程序代码区。复位WDT的方法是重写WDT控制寄存器的内容。
MR 1 VCC 2 GND 3
PFI 4
8 WDO
7 6
RESET WDI
5 PFO
传统8051 单片机
RST /VPD P0.0
传统8051单片机使用看门狗电路的典型电路
STC12C5A60S2单片机内部集成了看门狗定时器(Watch Dog Timer,WDT),使单片机系统可靠性设计变得更加方便、简洁。通 过设置和使用WDT控制寄存器WDT_CONTR(地址为C1H,复位值 为XX000000B)来使用看门狗功能。
//EN_WDT=1,CLR_WDT=1,IDLE_WDT= 1,PS2=1,PS1=0,PS0= while(1) {
display( ); keyboard( ); … //其他代码 WDT_CONTR=0x3c; //复位WDT } }
看门狗复位的完整实例请见例10-1
2020/4/30
5.软件寄存器复位
第10章 复位、电源和时钟
10.1 复位 10.2 省电方式 10.3 时钟
2020/4/30
10.1 复位
复位是单片机的初始化工作,复位后中央处理 器CPU及单片机内的其它功能部件都处在一确定的初 始状态,并从这个状态开始工作。复位分为热启动
复位和冷启动复位两种,它们的区别如表10-1所 示(见教材)。
电压检测复位功能,当检测到外部供电电压低
P4.6/RST2
于门槛电压时,将单片机复位,从而保证系统 R2 正常工作。外部低电压检测的典型电路连接如 10KΩ
图10-1所示。
GND
2020/4/30
图10-1 外部低电压检测典型电路连接
4.看门狗复位
(1)看门狗定时器复位
Vcc
C1 0.1uF
MAX813L
2.外或部不R用ST。引脚复位
外部RST引脚复位就是从外部向RST引脚施加一定宽度的复位脉
冲,从而实现单片机的复位。外接上电复位、外接看门狗定时器复位
以及手动复位电路都属于这一类。
Vcc
3.外部低电压检测复位
当外部供电电压过低时,无法保证单片
R1 20KΩ
机正常工作。此时,可以利用单片机的外部低
STC12C5A60S2
ORG 0060H
Initial:
MOV WDT_CONTR,#00111100B ;WDT控制寄存器初始化
;EN_WDT=1,CLR_WDT=1,IDLE_WDT=1,PS2=1,PS1=0,PS0=0
… ;其他初始化代码
Main_来自百度文库oop:
LCALL Display ;调用显示子程序
LCALL Keyboard ;调用键盘扫描子程序
在系统运行过程中,有时会根据特殊需求,需要实现单片机系统软复位(热启动之 一),传统的8051单片机由于硬件上未支持此功能,用户必须用软件模拟实现,实现起 来较麻烦。STC12C5A60S2单片机利用ISP/IAP控制寄存器IAP_CONTR(地址为C7H, 复位值为0000X000B)实现了此功能。用户只需简单的控制IAP_CONTR的其中两位 SWBS/SWRST就可以系统复位了。
STC12C5A60S2单片机有5种复位模式:上电 复位、外部RST引脚复位、外部低电压检测复位、 看门狗复位、软件寄存器复位。
2020/4/30
1 上电复位
STC12C5A60S2单片机内部集成了MAX810专用复位电路。晶振频率在 12MHz以下时,可以不用外部复位电路,原复位电路可以保留,也可以不 用,不用时复位脚可经过1K电阻短接到地,或者直接短接到地。不过, 建议设计时PCB板上保留图2-3所示的R/C复位电路,实际使用时再决定用
2020/4/30
位号
D7
D6
位名称 WDT_FLAG -
D5 EN_WDT
D4 CLR_WDT
D3
D2 D1 D0
IDLE_WDT PS2 PS1 PS0
1)WDT_FLAG:看门狗溢出标志位,溢出时,该位由硬件置1,可用软件将其清0。 2)EN_WDT:看门狗允许位,当设置为“1”时,看门狗启动。 3)CLR_WDT:看门狗清“0”位,当设为“1”时,看门狗将重新计数。硬件将自动清 “0”此位。 4)IDLE_WDT:看门狗“IDLE”模式(即空闲模式)位,当设置为“1”时,WDT在 “空闲模式”计数;当清“0”该位时,WDT在“空闲模式”时不计数。 5)PS2、PS1、PS0:WDT预分频系数控制位。
相关文档
最新文档