/********************************************************************
汇诚科技
实现功能:此版配套测试程序
使用芯片:STC12C2052AD
晶振:11.0592MHZ
波特率:9600
编译环境:Keil
作者:zhangxinchunleo
网站:www.ourhc.cn
淘宝店:汇诚科技 http://shop36330473.taobao.com
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
/*********************************************************************
注意事项:
1. 单片机的看门狗必须由程序激活后才开始工作。所以必须保证CPU有可靠的上电复位。否则看门狗也无法工作。
2. 看门狗使用的是CPU的晶振。在晶振停振的时候看门狗也无效。
**********************************************************************/
#include<reg52.h> /*看门狗应用*/
sfr WDT_CONTR = 0xe1; //看门狗声明
unsigned char i;
unsigned char temp;
unsigned char a,b;
/********************************************************************
延时函数
*********************************************************************/
delay()//延时程序
{unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
/********************************************************************
主函数
*********************************************************************/
main()
{
/*********************************初始化看门狗*************************************/
WDT_CONTR = 0x3c;//EN_WDT = 1,CLR_WDT = 1,IDLE_WDT = 1,PS2 = 1,PS1 = 0,PS0 = 0
/*********************************初始化看门狗*************************************/
while(1)
{
/************************************喂狗指令*************************************/
WDT_CONTR = 0x3c;
/********************************************************************
广告灯函数
*********************************************************************/
temp=0xfe;
P1=temp;//直接对1/0口P1赋值,使批输出低电平。
delay();//延时
for(i=1;i<8;i++)//实现广告灯的从右到左移动
{
a=temp<<i;
b=temp>>(8-i);
P1=a|b;
delay();
}
for(i=1;i<8;i++)//实现广告灯的从左到右移动
{
a=temp>>i;
b=temp<<(8-i);
P1=a|b;
delay();
}
}
}
/********************************************************************
结束
*********************************************************************/
|