历史上的今天
今天是:2024年11月28日(星期四)
2019年11月28日 | PIC16F877A 看门狗定时器(WDT)
2019-11-28 来源:eefocus
//PIC.H中定义了宏 #define CLRWDT() asm("clrwdt")因此在PICC的c语言中可以直接使用CLRWDT()对WDT清0
//若单片机WDT使能,在适当位置加入CLRWDT(),程序进入正常运行时,每隔一定时间均会执行CLRWDT()语句对WDT清0,芯片不会复位
//如果程序陷入死循环,不会执行到CLRWDT()语句,则超出所设定的时间后,WDT溢出使芯片复位,从头(000H)开始执行,单片机恢复正常运行
//PIC16F单片机,看门狗定时器的启用只能在芯片的烧写时确定,即无法用软件来开启或关闭WDT,但在PIC16f88X中可以。
//PIC16单片机的WDT基本溢出时间为18MS,由RC充放电时间确定,在-40~85度之间变化时,WDT基本溢出时间在7-33ms变化
#include
__CONFIG(0X3F3D);//开启WTD
void DELAY(unsigned int);
#define LED1 RB1
main(void)
{
TRISB=0B11111101;
OPTION=0B11111011; //WDT的分频比为1:8,最大复位时间为18*8=144ms
if(TO==0)// 若写成T0,则编译出错。。。
{
LED1=1; //看门狗定时器溢出,仿真时溢出TO不会清零
}
else
LED1=0;
while(1)
{
DELAY(100);//模拟一个运行100ms的子程序
CLRWDT();
DELAY(200);//模拟一个运行200ms的子程序,此时会产生溢出(200ms>144ms)
CLRWDT();
};
}
void DELAY(unsigned int n)
{
unsigned int j;
char k;
for(j=0;j
NOP();
}
下一篇:PIC开发工具详细说明
史海拾趣
|
利用C51接收10位UART,使用51汇编集成开发系统仿真时为什么显示定时器1未启动?那怎么启动?谢谢,程序如下 ORG 0000H MAIN: MOV TMOD,#20H ;设置波特率,定时器工作于方式2 MO ...… 查看全部问答> |
|
在vs.net2003中用C#,mscomm32控件编写通信程序如何与SQL Server2000同步更新 在vs.net2003中用C#,mscomm32控件编写winform通信程序与下位机通信,其上使用datagrid控件并增加数据集,更改数据可保存到SQL Server2000数据库中. 我的问题是:我想把保存到数据库中的数据发到下位机中去,接收时也先保存到数据库再显示,请问应该怎么 ...… 查看全部问答> |
|
我的USB插上后,电脑提示无法识别的USB设备,是怎么回事啊?各位高手请指点一下。网上大概查了一下出现这种提示的原因:一是USB连接线供电不足,二是驱动软件的问题。我还没检验过。还会不会有其他的原因啦。… 查看全部问答> |
|
芯片资料没看到如何设置过滤器ID和掩码,结果弄了好久才搞清楚,原来固件库的接口还需要自己加工一下才行。 CP_VOID CanSetFilter(CAN_NUM_TypeDef byDevNo,CP_BYTE byFilterNumber,CP_DWORD dwId,CP_DWORD dwMask,CP_BYTE bIsStdId) { & ...… 查看全部问答> |
|
TI工程师为您介绍TI LP5900系列LDO的最新产品LP5907,它提供了市面上最好的纹波抑制比以及瞬态响应的功能.video platformvideo managementvideo solutionsvideo player复制代码… 查看全部问答> |
|
求助:ZigBeeCC2530传感器组网采集终端串口接收丢包 如题,我用两块开发板(一个作为协调器,一个作为终端节点)组网采集位移计信号,可是终端节点和位移计通过485进行通信时丢包严重,一直不知道问题出在哪里。现把我在协议中添加的代码附上,求大神指点,感激不尽! 终端初始化代码: void Generi ...… 查看全部问答> |




