宏晶看门狗
/********************************************************************
* 描述 ? ?: ?实现了看门狗功能。如果到了设定时间还没有“喂狗”,那么单片机将复位。
***********************************************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint ?unsigned int
sfr WDT_CONTR = 0xE1;?? ??? ? ? //声明寄存器
uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar Count;
/********************************************************************
* 名称 : Time0_Init()
* 功能 : 定时器的初始化,定时时间可用光碟中软件计算,11.0592MZ晶振,10ms
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Time0_Init()
{
?? ?TMOD = 0x01;
?? ?IE ?? ? = 0x82;
?? ?TH0 ?= 0x4c;
?? ?TL0 ?= 0x00;?? ?
?? ?TR0 = 1;?? ??? ?
}
/********************************************************************
* 名称 : Delay_1ms()
* 功能 : 延时,延时时间为 10ms * del
* 输入 : del
* 输出 : 无
***********************************************************************/
void Delay_1ms(uint i)
{
?? ?uchar x,j;
?? ?for(j=0;j<i;j++)
?? ?for(x=0;x<=148;x++);?? ?
}
/********************************************************************
* 名称 : Time0_Int()
* 功能 : 定时器中断,中断中实现 Count 加一
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Time0_Int() interrupt 1
{
?? ?TH0 = 0x4c;
?? ?TL0 = 0x00;
?? ?Count++;?? ??? ??? ?//长度加1
}
/********************************************************************
* 名称 : Main()
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void main()
{
?? ?uchar LED_Buffer;?
?? ?Time0_Init();
?? ?WDT_CONTR = 0x3f;
?? ?while(1)
?? ?{
?? ??? ?Count = 0;
?? ??? ?while(Count<20)
?? ??? ?{
?? ??? ??? ?P0 = table[LED_Buffer % 10];
?? ??? ??? ?P2 = 1;
?? ??? ??? ?Delay_1ms(5);
?? ??? ??? ?P0 = table[LED_Buffer / 10 % 10];
?? ??? ??? ?P2 = 0;
?? ??? ??? ?Delay_1ms(5);
?? ??? ?}
?? ??? ?LED_Buffer++;?
?? ??? ?//WDT_CONTR = 0x3f;?? ? ?? ?//没有这条语句时,当看门狗溢出时(这里设的是9秒),看门狗会复位。 ?? ??? ??? ??? ??? ??? ??? ?
?? ?} ?? ??? ??? ?
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!