51单片机 c语言看门狗程序怎么写

51单片机 c语言看门狗程序怎么写,第1张

在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)

看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程虚让做序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段 进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。

编辑本段基本原理

看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给 WDT 清零滑世,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。 工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断差衡,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。

开机时,如果按下了 K1,即可启动T0。

T0定时中断,即可自动喂狗,程序即可正常执行while中的内容。

其中就有:

LED2=1DelayMs(100)

LED2=0DelayMs(100)

即:LED2就闪烁。

按森型猛下 K2,就关闭了 T0,停止了喂狗。

单片机此桥系统,16ms 后,自动复位。

复位后,如果租兆没有按下 K1,不能自动喂狗,就会频繁的自动复位。

频繁的复位,总是执行开始处的:

LED1=0 DelayMs(100)

LED1=1 DelayMs(100)

所以,就是按key2 LED1闪烁。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12532504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存