原创 AT89S5x看门狗定时器原理浅析

2008-8-28 17:15 3165 12 12 分类: MCU/ 嵌入式

         单片机应用一直以来工作的稳定性方面是我们的一个研究最多的话题,做为工控首当其冲的就是系统的稳定性。


        因此,一定要有一个可靠的复位电路,以使单片机在受到干扰后能重新启动工作。现在已经有专门的复位电路芯片供我们使用,专用的复位芯片具有快速上电复位,欠电压复位等。


       新型的AT89S5X已在内部集成了看门狗定时器,在一些简单的系统中,可以直接使用AT89S5X片内看门狗定时器,无需外设复位电路。


     AT89S5X内部看门狗定时器实际是一个14位的计数器,其地址位于A6H,第一次激活时,需依次向其写入01EH,0E1H。


       在看门狗定时器启动后,依次点亮D0-D7,每位LED保持3MS,每点亮4位LED,将看门狗清除,防止溢出后复位单片机。


        #include <reg52.h>


       #include  uchar unsigned char


       #include   uint  unsigned int


       sfr WDT = 0xa6;


       #define reset() {WDT = 0x1e; WDT = 0xe1;}


       #define   D0_ON   0xfe


       #define   D1_ON   0xfd


       #define   D2_ON   0xfb


       #define   D3_ON   0xf7


        #define   D4_ON   0xef


       #define   D5_ON   0xdf


       #define   D6_ON   0xbf


       #define   D7_ON   0x7f


   void  delay(uint k)


{


    uint   data,i,j;


  for(i=0;i<k;i++)


{


  for(j=0;j<121;j++);


}


}


int main(void)


{


reset();


while(1)


{


P0 = D0_ON;


delay(1);


P0 = D1_ON;


delay(1);


P0 = D2_ON;


delay(1);


P0 = D3_ON;


delay(1);


P0 = D4_ON;


delay(1);


P0 = D5_ON;


delay(1);


P0 = D6_ON;


delay(1);


P0 = D7_ON;


delay(1);


reset();


}


}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
12
关闭 站长推荐上一条 /1 下一条