⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wdts.c

📁 433.92m无线模块的接收到有效数据后
💻 C
字号:
/****************************************************************
;文件名WDT_TEST.C
;功能CPU设置使用WDT使能然后用KEY键让系统进入死循环等待WDT复位
;说明CPU配置WDTE=1WDSE=0
;***************************************************************/
#include <Reg935.h>
#include<intrins.h>
/////////////////////////////////////////////////////////////////
sbit KEY = P0^0;
sbit LEDCON = P1^6; //定义KEY和LED控制端口
void init_wdt();
void clrwdt(); //函数说明
main()
{
  int i,j;
  P1M1 = 0x00;
  P1M2 = 0xC0;
  P0M1 = 0x00;
  P0M2 = 0x00; //设置端口输出模式
  init_wdt(); //调用看门狗初始化子程序
  while(1)
     {
      i = 0x400;
      while(i)
        {
         i--;
         j = 0x50;
         while(j)j--;
         clrwdt(); //周期性的调用清零序列喂狗
       if(KEY==0)
         {
          LEDCON = 1; //熄灭LED
          while(1); //等待看门狗复位
         }
       }
    LEDCON = ~LEDCON; //取反LEDCON控制LED闪烁
   }
}
/*****************************
;看门狗初始化子程序
;注意初始化后启动看门狗
*****************************/
void init_wdt()
{
//WDCON=0xe1;
ACC = WDCON; //读取WDT控制寄存器
ACC = ACC|0x04; //置位ACC.2准备启动WDT
WDL = 0xff; //设置8位倒计时器初值
WDCON = 0xe5; //启动WDT
WFEED1 = 0xA5; //清零第一部分
WFEED2 = 0x5A; //清零第二部分
}
/*****************************
;喂狗子程序
;注意程序中开启中断
*****************************/
void clrwdt()
{
EA = 0; //关闭中断
WFEED1 = 0xA5; //执行清零第一部分
WFEED2 = 0x5A; //执行清零第二部分
EA = 1; //开中断
}
//************************************************************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -