MAX813看门狗电路设计
飞思卡尔MC9S12G系列芯片之【看门狗】模块总结

飞思卡尔MC9S12G系列芯片之【看门狗】模块总结一、看门狗(监控芯片)1、为什么要使用看门狗?在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成各种寄存器和内存的数据混乱,会导致程序指针错误、不在程序区、取出错误的程序指令等,都会陷入死循环,程序的正常运行被打断,从而由单片机控制的系统无法继续正常工作,会造成整个系统的陷入停滞状态,发生不可预料的后果。
看门狗就是定期查看芯片内部的情况,一旦发生错误就向芯片发出重启信号的电路。
看门狗命令在程序的中断中拥有最高的优先级。
2、工作原理看门狗电路的应用,使单片机可以在无人状态下实现连续工作。
看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
看门狗,又叫watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端。
?MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位,防止MCU 死机。
在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位,所以在使用有看门狗的芯片时要注意清看门狗。
3、作用看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
采用MAX813的单片机看门狗电路图

采用MAX813的单片机看门狗电路图
MAX813L芯片特点:
上电、掉电以及供电电压下降情况下的复位输出,复位脉冲宽度典型值200ms。
独立的看门狗输出,如果看门狗输入在1.6内未被触发,其输出将由高电平变为低电平。
1.25V门限值检测器,用于电源故障报警、电池低电压检测。
低电平有效的手动复位输入。
MAX813L引脚功能如下表:
max813组成的单片机看门狗电路如下图所示。
晶体振荡器采用11.0592MHz,这是为满足9600/s的波特率而选用的.DIP8为8位地址开关,作为通信结点的地址编码.最多可编256个地址码.MAX813L是看门狗芯片,在上电、掉电期间及在通信期间及在电压降低的情况下可产生一个复位信号。
C51单片机看门狗电路及程序设计方案

C51单片机看门狗电路及程序设计案院系:信息工程学院年级:2010级电子一班禹豪电子一班训虎电子二班邓启新一、引言在由单片机构成的微型计算机系统中,程序的正常运行常常会因为来自外界的电磁场干扰等原因而被打断,从而造成程序的跑飞,而陷入死循环。
由此导致单片机控制的系统无法继续工作,造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片或程序,俗称"看门狗"(watchdog)(1)看门狗电路基本原理看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连**,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
*此处设计原理实际上为下文中硬件看门狗设计思路。
(2)看门狗电路一般设计式“看门狗”电路一般分为硬件看门狗与软件看门狗两种设计式。
硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位。
如果出现死循环,或者说PC指针不能回来,那么定时时间到后就会使单片机复位。
常用的WDT芯片如MAX813,5045,IMP 813等,价格4~10元不等.软件看门狗技术的原理和硬件看门狗类似,只不过是用软件的法实现(即利用单片机部定时器资源,通过编程模拟硬件看门狗工作式),以51系列为例:因在51单片机中有两个定时器,在利用部定时器资源来对主程序的运行进行监控时。
看门狗MAX705、706、813中文说明

看门狗MAX705/706/8131 概述MAX705/706/813L是一组CMOS监控电路,能够监控电源电压、电池故障和微处理器(MPU或mP)或微控制器(MCU或mC)的工作状态。
将常用的多项功能集成到一片8脚封装的小芯片内,与采用分立元件或单一功能芯片组合的电路相比,大大减小了系统电路的复杂性和元器件的数量,显著提高了系统可靠性和精确度。
该系列产品采用3种不同的8脚封装形式:DIP、SO和mMAX。
主要应用于:微处理器和微控制器系统;嵌入式控制器系统;电池供电系统;智能仪器仪表;通信系统;寻呼机;蜂窝移动电话机;手持设备;个人数字助理(PDA);电脑电话机和无绳电话机等等。
2 功能说明2.1 RESET/RESET操作复位信号用于启动或者重新启动MPU/MCU,令其进入或者返回到预知的循环程序并顺序执行。
一旦MPU/MCU处于未知状态,比如程序“跑飞”或进入死循环,就需要将系统复位。
对于MAX705和MAX706而言,在上电期间只要Vcc大于1.0V,就能保证输出电压不高于0.4V的低电平。
在Vcc上升期间RESET维持低电平直到电源电压升至复位门限(4.65V或4.40V)以上。
在超过此门限后,内部定时器大约再维持200ms后释放RESET,使其返回高电平。
无论何时只要电源电压降低到复位门限以下(即电源跌落),RESET引脚就会变低。
如果在已经开始的复位脉冲期间出现电源跌落,复位脉冲至少再维持140ms。
在掉电期间,一旦电源电压Vcc降到复位门限以下,只要Vcc不比1.0V还低,就能使RESET维持电压不高于0.4V的低电平。
MAX705和MAX706提供的复位信号为低电平RESET,而MAX813L提供的复位信号为高电平RESET,三者其它功能完全相同。
有些单片机,如INTEL的80C51系列,需要高电平有效的复位信号。
2.2 看门狗定时器MAX705/706/813L片内看门狗定时器用于监控MPU/MCU的活动。
MAX813L芯片中文资料(看门狗及复位专用芯片)

MAX813L芯片中文资料(看门狗及复位专用芯片)1 MAX813L芯片及其工作原理1.1 MAX813L芯片特点· 加电、掉电以及供电电压下降情况下的复位输出,复位脉冲宽度典型值为200 ms。
· 独立的看门狗输出,如果看门狗输入在1.6 s未被触发,其输出将变为高电平。
· 1.25 V门限值检测器,用于电源故障报警、电池低电压检测或+5 V 以外的电源*。
· 门限电压为4.65V· 低电平有效的手动复位输入。
· 8引脚DIP封装。
1.2 MAX813L的引脚及功能1.2.1 MAX813L芯片引脚排列见图1—11.2.2 引脚功能及工作原理说明(1)手动复位输入端()当该端输入低电平保持140 ms以上,MAX813L就输出复位信号.该输入端的最小输入脉宽要求可以有效地消除开关的抖动。
与TTL/CMOS兼容。
(2)工作电源端(VCC):接+5V电源。
(3)电源接地端(GND):接0 V参考电平。
(4)电源故障输入端(PFI)当该端输入电压低于1.25 V时,5号引脚输出端的信号由高电平变为低电平。
(5)电源故障输出端()电源正常时,保持高电平,电源电压变低或掉电时,输出由高电平变为低电平。
(6)看门狗信号输入端(WDI)程序正常运行时,必须在小于1.6 s的时间间隔向该输入端发送一个脉冲信号,以清除芯片部的看门狗定时器。
若超过1.6 s该输入端收不到脉冲信号,则部定时器溢出,8号引脚由高电平变为低电平。
(7)复位信号输出端(RST)上电时,自动产生200 ms的复位脉冲;手动复位端输入低电平时,该端也产生复位信号输出。
(8)看门狗信号输出端()正常工作时输出保持高电平,看门狗输出时,该端输出信号由高电平变为低电平。
2 MAX813L典型电路设计2.1 基本工作原理工业环境中的干扰大多是以窄脉冲的形式出现,而最终造成微机系统故障的多数现象为“死机”。
MAX813看门狗电路

看门狗电路设计在工业现场运行的单片机应用系统,由于坏境恶劣,常有强磁场、电源尖峰、电火花等外界干扰,这些干扰可能造成仪表中单片机的程序运行出现“跑飞”现象,引起程序混乱,输出或显示不正确,甚至“死机”。
系统无法继续正常的运行,处在一种瘫痪状态,它的硬件电路并没有损坏,只是内部程序运行出现了错误,这时,即使干扰消失,系统也不会恢复正常,这就需要采取一些措施来保障系统失控后能自动恢复正常,“程序运行几天来视系统”(Watchdog看门狗)就是常用的一种抗干扰措施,用以保证系统因干扰失控后能自动复位。
为了提高仪表可靠性及抗干扰能力,通常在智能仪表中采用“看门狗”技术。
看门狗电路它实质上是一个可由CPU复位的定时器,它的定时时间是固定不变的,一旦定时时间到,电路就产生复位信号或中断信号。
当程序正常运行时,在小于定时时间隔内,单片机输出一信号刷新定时器,定时器处于不断的重新定时过程,因此看门狗电路就不会产生复位信号或中断信号,反之,当程序因出现干扰而“跑飞”时,单片机不能刷新定时器,产生复位信号或产生中断信号使单片机复位或中断,在中断程序中使其返回到起始程序,恢复正常。
它的工作原理如同图3-4所示的两个计时周期不同的定时器T1和T2是两个时钟源相同的定时器,设T1=1.0s,T2=1.1s,而用T1定时器的溢出脉冲P1同时对T1和T2定时器清零,只要T1定时器工作正常,则定时器T2永远不可能计时溢出。
当T1定时器不在计时,定时器T2则会计时溢出,并产生溢出脉冲P2。
一旦产生溢出脉冲P2,则表明T1出了故障。
这里的T2即是看门狗。
利用溢出脉冲P2并进行巧妙的程序设计,可以检测系统的出错,而后使“飞掉”的程序重新恢复运行。
图3-4 看门狗工作原理示意图看门狗电路的应用,使单片机可以在无人关态下实现连续工作。
看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其它控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段不进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
看门狗工作原理、应用和设计思路解析

看门狗工作原理、应用和设计思路解析看门狗,又叫watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
此狗非彼狗工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。
所以在使用有看门狗的芯片时要注意清看门狗。
硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。
那么定时时间到后就会使单片机复位。
常用的WDT芯片如MAX813 ,5045, IMP 813等,价格4~10元不等.软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。
我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。
对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1 的定时中断就会使单片机复位。
在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。
而T1的中断正常与否我们再由。
单片机看门狗(Watchdog)的工作原理及其应用

单片机看门狗(Watchdog)的工作原理及其应用2010年05月16日星期日 23:00在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环。
程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果。
所以,出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)。
看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行。
这个时候,看门狗电路就会由于得不到单片机送来的信号。
便在它和单片机复位引脚相连的引脚上送出一个复位信号。
使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
看门狗,又叫 watchdog timer,是一个定时器电路。
一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU 正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零。
如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,是MCU复位,防止MCU死机。
看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。
所以,在使用有看门狗的芯片时要注意清看门狗。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
看门狗电路设计在工业现场运行的单片机应用系统,由于坏境恶劣,常有强磁场、电源尖峰、电火花等外界干扰,这些干扰可能造成仪表中单片机的程序运行出现“跑飞”现象,引起程序混乱,输出或显示不正确,甚至“死机”。
系统无法继续正常的运行,处在一种瘫痪状态,它的硬件电路并没有损坏,只是内部程序运行出现了错误,这时,即使干扰消失,系统也不会恢复正常,这就需要采取一些措施来保障系统失控后能自动恢复正常,“程序运行几天来视系统”(Watchdog看门狗)就是常用的一种抗干扰措施,用以保证系统因干扰失控后能自动复位。
为了提高仪表可靠性及抗干扰能力,通常在智能仪表中采用“看门狗”技术。
看门狗电路它实质上是一个可由CPU复位的定时器,它的定时时间是固定不变的,一旦定时时间到,电路就产生复位信号或中断信号。
当程序正常运行时,在小于定时时间隔内,单片机输出一信号刷新定时器,定时器处于不断的重新定时过程,因此看门狗电路就不会产生复位信号或中断信号,反之,当程序因出现干扰而“跑飞”时,单片机不能刷新定时器,产生复位信号或产生中断信号使单片机复位或中断,在中断程序中使其返回到起始程序,恢复正常。
它的工作原理如同图3-4所示的两个计时周期不同的定时器T1和T2是两个时钟源相同的定时器,设T1=1.0s,T2=1.1s,而用T1定时器的溢出脉冲P1同时对T1和T2定时器清零,只要T1定时器工作正常,则定时器T2永远不可能计时溢出。
当T1定时器不在计时,定时器T2则会计时溢出,并产生溢出脉冲P2。
一旦产生溢出脉冲P2,则表明T1出了故障。
这里的T2即是看门狗。
利用溢出脉冲P2并进行巧妙的程序设计,可以检测系统的出错,而后使“飞掉”的程序重新恢复运行。
图3-4 看门狗工作原理示意图看门狗电路的应用,使单片机可以在无人关态下实现连续工作。
看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其它控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段不进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
“看门狗”技术既可由硬件实现,也可由软件实现。
在系统成本允许的情况下,就选择专门的看门狗芯片或片内带看门狗的单片机。
若条件不允许,应加软件“看门狗”。
所谓软件“看门狗”,就是对程序中可能出现这种条件不满足而无法退出的一个模块、一个非正常结束的任务等,在运行时间上进行约束,将理论计算得到的最大时间跨度,作为这个模块或任务的最大执行时间,如果超过了这个时间跨度,则强制退出(结束)本模块、本次任务,把MCU的时间交给下一个模块或恢复有关资源的初始状态,供下一次任务使用。
“看门狗”电路可以分为内“看门狗”和外“看门狗”电路两大类。
内“看门狗”电路是指“看门狗”的硬件电路包含在单片要内部。
对于没有内“看门狗”定时器的单片机或认为内“看门狗”不可靠时,可以采用外部“看门狗”定时器。
外部“看门狗”电路既可以用专用“看门狗”芯片,也可用普通芯片搭成。
专用硬件看门狗是指一些集成化的或集成在单片机内的专用看门狗电路,它实际上是一个特殊的定时器,当定时时间到时,发出溢出脉冲。
从实现角度上看,该方式是一种软件与片外专用电路相结合的技术,硬件电路连接好以后,在程序中适当地插入一些看门狗复位的指令(即“喂狗”指令),保证单片机的RESET 引脚使单片机复位。
在这种方式中,看门狗能否可靠有效地工作,与硬件组成及软件的控制策略都有密切的关系。
目前常用的集成看门狗电路很多,如MAX705~708、MAX791、MAX813L、X5043/5045等。
本系统采用MAX813L看门狗电路监控单片机的工作,如果单片机工作不正常,看门狗电路在规定时是内得不到刷新复位,就输出信号强制单片机复位重新启动工作,保证仪器正常工作。
1.MAX813L芯片功能原理MAX813L主要有以下几个功能:(1)上电、掉电以及降压情况下具有RESET输出。
(2)独立的“看门狗”电路。
“看门狗”定时时间为1.6s。
(3)1.25V门限检测器,用于低压报警,适时监视+5V以外的电源电压。
(4)具有手工复位输入端。
MAX813L是MAXIM公司推出的低成本微处理器监控芯片,封装形式为8脚双列直插式(DIP)和小型(SO)式封装,引脚图如图3-5所示。
MAX813L引脚说明如下:○1脚(MR̅̅̅̅̅):手动复位输入端(MR̅̅̅̅̅),当该端输入低电平保持140ms以上,MAX813L就输出复位信号。
该输入端的最小输入脉宽要求可以有效地消除开关̅̅̅̅̅与TTL/CMOS兼容。
的抖动。
MR○2脚(VCC):5V电源。
○3脚(GND):电源地。
○4脚(PFI):电源检测输入端。
可将需要检测的电源连接于此,不用时接地或电源。
̅̅̅̅̅):电源检测输出端。
被检测电源正常时,输出高电平,否则输○5脚(PFO出低电平。
○6脚(WDI):“看门狗”输入端,俗称“喂狗”信号。
程序正常运行时,必须在小于1.6s的时间间隔内向该输入端发送一个脉冲信号,以清除芯片内部的看门狗定时器。
若超过1.6s该输入端收到脉冲信号,则内部定时器溢出,8号引脚由高电平变为低电平。
○7脚(RESET):上电时自动产生200ms的复位脉冲;手动复位端输入低电平时,该端也产生复位信号输出。
̅̅̅̅̅̅̅):“看门狗”输出端“喂狗”信号在1.6s内不能及时送入时,○8脚(WDO该脚即产生1个低电平信号。
2.硬件实现电路图图3-6给出了MAX813L 在系统中的线路图。
此电路可以实现上电、瞬时掉电以及程序运行出现“死机”时的自动复位和随时的手动复位;并且可以实时地监视电源故障,以便及时地保存数据。
本电路巧秒地利用了MAX813L 的手动复位输入端。
只要程序一旦跑飞引起程序“死机”,WDO ̅̅̅̅̅̅̅端电平由高到低,当WDO̅̅̅̅̅̅̅变低超过140ms ,将引起MAX813L 产生一个200ms 的复位脉冲。
同时使看门狗定时器清0和使WDO̅̅̅̅̅̅̅脚变成高电平。
也可以随时使用手动复位按扭使MAX813L 产生复位脉冲,由于为产生复位脉冲MR̅̅̅̅̅端要求低电平至少保持140ms 以上,故可以有效地消除开关抖动。
该电路可以适时地监控电源故障(掉电、电压降低等)。
图3-6中RI 的一端接未经稳压的直流电源。
电源正常时,确保R2上的电压高于 1.26V ,即保证MAX813L 的PFI 输入端电平高于1.26V 。
当电源发生故障,PFI 输入端的电平低于1.25V 时,电源故障输出端PFO ̅̅̅̅̅电平由高变低,引起单片机INTO̅̅̅̅̅̅̅中断,CPU 响应中断,执行相应的中断服务程序,保护数据,断开外部用电电路等。
3. 软件设计(1) 程序运行“死机”及相应对策程序正常运行时,由主程序在小于1.6s 的时间间隔内周期性地从P1.7端向MAX813L 的P1.7输入端发送一个脉冲信号,以消除芯片内部的看门狗定时器。
实现指令为:若超过1.6s 该输入端收不到脉冲信号,则内部看门狗定时器溢出,8号引脚由高电平变为低电平。
引起MAX813L 产生一个200ms 的复位脉冲。
同时使看门狗定时器清零和使8号引脚变成高电平。
需要引起注意的是,整个单片机系统完成复位后,在PC 指针的指针下整个程序将从0000H 地址处重新开始初始化运行,而这在很多情况下是不允许的(如连续的工艺流程),为此必须采取相应的措施。
首先在对单片机系统完成复位后,程序应该先判断是开机运行(冷启动)还是运行过程中“死机”之后的重新加载运行(热启动)。
因此一般情况下在这两种启动方式下,系统程序在进入主流程在进入主流程前所要做的工作往往不同。
如冷启动后,系统程序在初始化程序往往要进行系统资源的自检以及将各外围设备修改设置,只是对单片机系统本身的一些资源进行必要的设置工作。
其次,在大多数情况下,我们总可以把一个连续的过程分解开来,把它变成一个个独立的子过程(状态)组成的连续过程。
在主程序运行过程中,适时保存相应状态和该状态下的相关参数。
这样当程序运行出现“死机”,在MAX813L作用下系统复位和初始化后,将首先查询事先保存的状态参数,然后根据此参数决定程序的流向。
同时把该状态下事先保存的参数取出,对系统外围设备进行必要的恢复设置工作和引导程序继续运行。
根据这一思想设计的系统程序流程图如图3-7所示。
图3-7 看门狗软件流程图(2)电源故障及相应对策̅̅̅̅̅̅̅中断,CPU响应中断,执行相应的中当电源发生故障时,引起单片机INTO̅̅̅̅̅̅̅中断服务程序,保护数据,断开外部用电电路等。
为了做到这一点必须把INTO断优先级(PX0)设为最高,特别是系统中还有其它中断时,更应该如此。
中断优先级的设置可通过中断优先寄存器实现,此外还要设置中断允许寄存器的总允许位(EA)及外部中断0中断允许位(EX0)。
实现指令为:SETB IP.0:设置PX0=1SETB IE.7:设置EA=1SETB IE.0:设置EX0=1。