—— —— —— 技术资料下载中心

>> PIC单片机原理 \

PIC单片机16F84的内部硬件资源（七）
10 复位 复位是单片机的初始化操作。其主要功能是把程序计数器PCL初始化为000H，可使16F84单片机从000H单元开始执行程序。 PIC16F84芯片有下列几种不同的复位方式。 (1)芯片上电复位POR。 (2)正常工作状态下通过外部MCLR引脚加低电平复位。
(3)在省电休眠状态下通过外部MCLR引脚加低电平复位。
(4)监视定时器WDT超时溢出复位。
PIC16F84片内集成有“上电复位”POR电路，对于一般应用，只要把MCLR引脚接高电位即可。
在正常工作或休眠状态下用MCLR复位，只需在MCLR引脚上加一按键瞬间接地即可。
单片机16F84复位操作，对其它一些寄存器会有影响，如表1所示。
11监视定时器WDT
单片机系统常用于工业控制，在操作现场通常会有各种干扰，可能会使执行程序弹飞到一种死循环，从而导致整个单片机控制系统瘫痪。如果操作者在场，就可进行人工复位，摆脱死循环。但操作者不能一直监视着系统，即使监视着系统，也往往是引起不良后果之后才进行人工复位。由于PIC16F84中具有程序运行自动监视系统，即监视定时器WDT(Watch Dog Time)，直译为“看门狗”定时器。这好比是主人养了一条狗，主人在正常干活时总不忘每隔一段时间就给狗喂食，狗就保持安静，不影响主人干活。如果主人打嗑睡，不干活了，到一定时间，狗饿了，发现主人还没有给它吃东西，就会大叫起来，把主人唤醒。由此可见，WDT有如下特性：
(1)本身能独立工作，基本上不依赖CPU。
(2)CPU在一个固定的时间间隔中和WDT打一次交通(如使其清零，即喂一次狗)，以表明系统目前工作正常。
(3)当CPU落入死循环后，能被WDT及时发觉(如WDT计数溢出)，并使系统复位。
PIC16F84内的WDT，其定时计数的脉冲序列由片内独立的RC振荡器产生，所以它不需要外接任何器件就可以工作。而且这个片内RC振荡器与OSC1/CLKIN(引脚{16})上的振荡电路无关，即使OSC1和OSC2上的时钟不工作，WDT照样可以监视定时。例如：当PIC16F84在执行SLEEP指令后，芯片进入休眠状态，CPU不工作，主振荡器也停止工作，但是，WDT照样可监视定时。当WDT超时溢出后，可激活(唤醒)芯片继续正常的操作。而在正常操作期间，WDT超时溢出将产生一个复位信号。如果不需要这种监视定时功能，在固化编程时，可关闭这个功能。附图是监视定时器的结构框图。表2是与WDT有关的寄存器。
WDT的定时周期在不加分频器的情况下，其基本定时时间是18ms，这个定时时间还受温度、VDD和不同元器件的工艺参数等的影响。如果需要更长的定时周期，还可以通过软件控制OPT/ON寄存器把预分频器配置给WDT，这个预分频器的最大分频比可达到1∶128。这样就可把定时周期扩大128倍，即达到23秒。
如果把预分频器配置给WDT，用CLRWDT和SLEEP指令可以同时对WDT和预分频器清零，从而防止计时溢出引起芯片复位。所以在正常情况下，必须在每次计时溢出之前执行一条CLRWDT指令(即喂一次“狗”)，以避免引起芯片复位。当系统受到严重干扰处于失控状态时，就不可能在每次计时溢出之前执行一条CLR WDT指令，WDT就产生计时溢出，从而引起芯片复位，从失控状态又重新进入正常运行状态。
当WDT计时溢出时，还会同时清除状态寄存器中的D4位T0，检测T0位即可知道复位是否由于WDT计时溢出引起的。　　

成都　卫东

知识竞赛试题：
24简述PIC单片机中看门狗WDT的作用和功能。

[ 返回 ]