PIC16F87X系列单片机的复位功能设计得比较完善,根据引起单片机内部复位的条件和原因,可以将PIC单片机复位系统分为五个模块进行介绍:
1.上电复位
每次单片机加电时,上电复位电路都要对电源电压VDD的上升过程进行检测,当VDD值上升到规定值1.6~1.8V时,就产生一个有效的复位信号,需经过72ms加1024个时钟周期的延时,才会使单片机复位。
2.人工复位(单片机在执行程序期间)
无论是单片机在按预先设定的正常顺序运行程序,还是出现单片机进入不可预知的某一个死循环,都必须认为单片机在执行程序。单片机在执行程序期间,只要在人工复位端MCLR加入一个低电平信号,就会令其复位。
3.人工复位(单片机在睡眠期间)
单片机处在睡眠状态之下(时钟停振,单片机停止执行程序),只要在人工复位端MCLR加入一个低电平信号,就会令其复位。
4.看门狗复位
不论何种原因,只要没有对看门狗定时器WDT周期性清0,WDT就会出现超时溢出,也就会引发单片机复位。依据单片机在看门狗超时溢出之前所处的状态是睡眠还是执行程序,又可以将看门狗超时溢出分为两种情况。
一种情况只有在单片机执行程序期间,看门狗发生超时溢出,才会引发单片机的复位;而另一种情况对于PIC16F87X单片机而言则不会引发单片机的复位。
5.电源欠压复位
在上电延时之后,该电路再提供1024个时钟周期的延迟,目的是让振荡电路有足够的时间产生稳定的时钟信号。
注:为了满足上述人工复位的需要,通常单片机都设置一个外接复位引脚,来接收外部输入的人工复位信号。