2016 - 2024

感恩一路有你

STC89C52单片机入门-看门狗

浏览量:2330 时间:2024-08-12 11:37:54 作者:采采

引言

在电脑系统中,为了防止系统在异常情况下受到干扰,MCU/CPU程序跑飞,导致系统长时间异常工作,通常会引进看门狗。看门狗是一种特殊的定时器,如果MCU/CPU不在规定的时间内按要求访问看门狗,就认为MCU/CPU处于异常状态。看门狗将强迫MCU/CPU复位,使系统重新从头开始按规律执行用户程序。这样的设计可以使单片机系统的可靠性变得更加方便和简洁。

WDT_CONTR: 看门狗控制寄存器

看门狗控制寄存器(WDT_CONTR)用于设置看门狗的工作模式和定时器预分频值。具体功能如下表所示:

| 符号 | 功能 |

|--------|--------------|

| DIV | 分频 |

| EN_WDT | 启用看门狗 |

| CLR_WDT| 清除看门狗计数 |

设置定时器为50MS

为了实现一个稳定的看门狗功能,我们需要将定时器设置为50毫秒。这可以通过设置WDT_CONTR寄存器为0x37来实现,即00110111。

看门狗溢出时间和清零次数

在设置看门狗的过程中,需要考虑看门狗溢出时间和清零次数的问题。根据前面的设置,看门狗的溢出时间为9.1022秒。而每次累加165次就是8.250秒,所以需要在这个时间范围内进行一次看门狗的清零操作,这样可以留出一定的余量。

设置定时器中断函数和优先级

如果你的程序中有外部中断或其他中断存在,一般应该将看门狗定时器的优先级设置为最高优先级。在主程序main中,可以通过在while(1)循环之前写入IP2; IPH2;来设置T0为最高优先级。

结论

通过正确设置和使用看门狗定时器,可以有效防止单片机系统在异常情况下失控和工作异常。这种设计使得系统的可靠性变得更加方便和简洁,对于电脑系统的稳定运行起到了重要的作用。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。