标题单片机使程序跑飞或进入死循环,如何利用看门狗摆脱困境
所以在使用有看门狗的芯片时要注意清看门狗。\x0d\x0a硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。
AT89S51已经有内部看门狗了,所以在程序中,要在恰当的位置放喂狗代码,这样当程序跑死后,看门狗就起作用了。也可以外接看门狗芯片,比如SP706,DS1232,X25045,等都可以用。
给单片机设置看门狗电路,是为了在单片机电路死机或程序跑飞的情况下对单片机进行强制复位,从而重新开始正常运行。而在单片机正常工作时是不需要频繁复位的,这会干扰单片机的正常工作。
程序跑飞的时候很危险的,比如说控制锅炉温度的单片机,在高温和现场复杂的电磁环境中程序跑飞了,锅炉温度过高单片机却因程序跑飞没检测到,可能会出现锅炉爆炸……所以要用看门狗功能。
加看门狗电路和喂狗程序。喂狗程序放置得当,可以使飞走的程序复位,从头开始执行。
关于51单片机中得看门狗程序
1、看门狗在51单片机电路里的作用是防止程序***“跑飞”、“死机”后,系统不动作,而采取复位的办法“唤醒”系统。
2、看门狗(WDT)是一个定时器,开启看门狗定时器之后(比如定时200ms),在单片机程序中每隔一定的时间(小于200ms)要“喂狗”一次,即将看门狗定时器清零。看门狗分硬件看门狗和软件看门狗。
3、在程序初始化中向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H。即可激***活看门狗。ORG***0000H***LJMP***begin***Begin:MOV***0A6H,#01EH***;先送1E***MOV***0A6H,#0E1H***;后送E1***;在程序初始化中激活看门狗。
4、给单片机设置看门狗电路,是为了在单片机电路死机或程序跑飞的情况下对单片机进行强制复位,从而重新开始正常运行。而在单片机正常工作时是不需要频繁复位的,这会干扰单片机的正常工作。
5、单片机中的看门狗指的是一个定时器电路,有一个输入和一个输出,其中输入叫做喂狗,输出连接到另外一个部分的复位端。看门狗的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。
6、单片机有不同厂商提供不同型号芯片,看门狗设计并非标准配置,所以看门狗的实现也不一致,这个没有统一的函数。
单片机中看门狗定时器的初始化程序应该放在主程序什么地方以及喂狗程...
1、主程序一般有个无限循环while(1){...}***WDT初始化程序应该放在这个循环的前面;喂狗程序一般放在这个循环内部。
2、AT89S51单片机喂狗指令应该放在程序主循环的位置,如果程序跑飞了在设定时间内回不到主循环,看门狗就会履行职责。
3、是的,刚开始需要初始化,配置分频系数和触发功能等等。之后在主循环的适当位置放置喂狗的语句。某些易超时的任务/进程中也需要适当放置喂狗语句。原则上禁止在中断里放置喂狗语句。
4、在程序初始化中向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H。即可激***活看门狗。ORG***0000H***LJMP***begin***Begin:MOV***0A6H,#01EH***;先送1E***MOV***0A6H,#0E1H***;后送E1***;在程序初始化中激活看门狗。
单片机中说的看门狗是什么
1、看门狗(WDT)是一个定时器,开启看门狗定时器之后(比如定时200ms),在单片机程序中每隔一定的时间(小于200ms)要“喂狗”一次,即将看门狗定时器清零。看门狗分硬件看门狗和软件看门狗。
2、看门狗(WDT)是一个定时器。看门狗是用来防止万一单片机程序出错造成重大损失的。防错的原理很简单,它在硬件上就是一个定时器,当它溢出的时候就会让单片机强制复位使程序重新开始执行。
3、看门狗就是定期的查看晶片内部的情况,一旦发生错误就向晶片发出重启信号的电路。看门狗命令在程式的中断中拥有最高的优先权。
本文转载自互联网,如有侵权,联系删除