采用89C51单片机和X25045组成的看门狗电路,X25045硬件连接图如图2所示。X25045芯片内包含有一个看门狗定时器,可通过软件预置系统的监控时间。在看门狗定时器预置的时间内若没有总线活动,则X25045将从RESET输出一个高电平信号,经过微分电路C2、R3输出一个正脉冲,使CPU复位。图2电路中,CPU的复位信号共有3个:上电复位(C1、R2),人工复位(S、R1、R2)和Watchdog复位(C2、R3),通过或门综合后加到RESET端。C2、R3的时间常数不必太大,有数百微秒即可,因为这时CPU的振荡器已经在工作。
图2 X25045看门狗电路硬件连接图
看门狗定时器的预置时间是通过X25045的状态寄存器的相应位来设定的。如表2所示,X25045状态寄存器共有6位有含义,其中WD1、WD0和看门狗电路有关,其余位和EEPROM的工作设置有关。
表2 X25045状态寄存器
WD1=0,WD0=0,预置时间为1.4s。
WD1=0,WD0=1,预置时间为0.6s。
WD1=1,WD0=0,预置时间为0.2s。
WD1=1,WD0=1,禁止看门狗工作。
看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正常工作时最大循环周期的时间略长即可。编程时,可在软件的合适地方加一条喂狗指令,使看门狗的定时时间永远达不到预置时间,系统就不会复位而正常工作。当系统跑飞,用软件陷阱等别的方法无法捕捉回程序时,则看门狗定时时间很快增长到预置时间,迫使系统复位。[page]
以下是C语言编写的看门狗程序部分。
#include reg51.h
sbit cs=P1^2;/*片选信号由P1.2产生*/
sbit sck=P1^3; /*时钟信号由P1.3 产生*/
sbit si=P1^0; /*SI由P1.0产生*/
sbit so=P1^1; /*SO由P1.1产生*/
sbit c=ACC^7; /*定义位变量*/
bdata unsigned char com;
void tran() /*发送一字节数据子函数*/
{
unsigned char i;
for(i=0; i<8; i++)
{ ACC=com; /*将数据放入a中*/
si=c;
sck=0; /*sck产生一个上跳变*/
sck=1;
com=com<<1; /*左移一位*/
}
return;
}
main()
{
com=0x06; /*发写读使能命令*/
cs=0;
tran();
cs=1;
com=0x01; /*发写状态字命令*/
cs=0;
tran();
com=0x00; /*定时1.4s*/
tran();
cs=1;
...;系统正常运行的程序部分
}
需要注意的是,在程序正常运行的时候,应该在适当的地方加一条喂狗指令,使系统正常运行时的定时时间达不到预置时间。系统就不会复位。喂狗指令如下。
main()
{
...;系统正常运行的程序部分
{
cs=0; /*产生cs脉冲*/
cs=1;
}
}
X25045的看门狗电路使用十分方便。X25045内部还集成了512BEEPROM和电压运行监视系统,只需这样一块芯片,外加晶振和复位电路就可以组成单片机的应用系统,非常适合于便携式仪器和嵌入式系统的设计。
关键字:51单片机 看门狗 X25045
引用地址:
51单片机看门狗电路简介
推荐阅读最新更新时间:2024-03-16 13:05
C8051F020与80C51单片机的异同点
1 引言 80C51系列单片机及其衍生产品在我国乃至全世界范围获得了非常广泛的应用。单片机领域的大部分工作人员都熟悉80C51单片机,各大专院校都采用80C51系列单片机作为教学模型。随着单片机的不断发展,市场上出现了很多高速、高性能的新型单片机,基于标准8051内核的单片机正面临着退出市场的境地。为此,一些半导体公司开始对传统8051内核进行大的构造,主要是提高速度和增加片内模拟和数字外设,以期大幅度提高单片机的整体性能。其中美国Cygnal公司推出的C8051F系列单片机把80C51系列单片机从MCU时代推向SoC时代,使得以8051为内核的单片机上了一个新的台阶。 C8051F系列单片机是完全集成的混合信号系统级芯片,具
[单片机]
51单片机实现在数码管中实现iphone4S开机密码锁的程序
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: LED-74HC595 ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200627 ---- @ModifiedTime: 20200627
[单片机]
51单片机水塔原理图与源程序
单片机源程序如下: #include reg52.h //定义一个数组,使数码管显示的数字和数组元素的下标相等 unsigned char code table ={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; sbit shuiman=P1^0;//水满 sbit sw5=P1^1;//水位5 sbit sw4=P1^2;//水位4 sbit sw3=P1^3;//水位3 sbit sw2=P1^4;//水位2 sbit sw1=P1^5;//水位1 sbit shougong=P1^6;//手工上水 sbit dianji=P1^7;//
[单片机]
51单片机(AT89C52)控制蜂鸣器
#include reg52.h #define uchar unsigned char #define uint unsigned int sbit beep=P0^0; void delay(uint z) { uint x,y; for(x=z;x 0;x--) for(y=111;y 0;y--); } void main() { while(1) { beep=0; delay(500); beep=1; delay(500); } }
[单片机]
基于51单片机8音键电子琴DIY制作
单片机源程序如下: /************************************************************** 程序名称:模拟电子琴 **************************************************************/ #include reg52.h //定义头文件 #define uchar unsigned char //宏定义 #define led P0 //定义LED等位P0口 #define sw_port P1
[单片机]
MSP430单片机看门狗的基本用法解析
看门狗是为了防止程序跑飞而设定的,但是由于看门狗是一个类似于定时器,因此可以把他当作定时器来使用 示例代码:用看门狗定时器使一个led闪烁 #include void main( void ) { // Stop watchdog timer to prevent TIme out reset WDTCTL = WDT_MDLY_32;//宏定义 IE1 |=WDTIE; //允许看门狗定时器中断 P2DIR |= BIT7; _BIS_SR(LPM0_bits+GIE);//在这里的话将cpu进入低功耗模式 } #pragma vector = WDT_VECTOR __interrupt void watchdag_TIm
[单片机]
51单片机IO口模拟串口通讯C源程
51 IO口模拟串口通讯C源程 #include reg51.h sbit BT_SND =P1^0; sbit BT_REC =P1^1; #define MODE_QUICK #define F_TM F0 #define TIMER0_ENABLE TL0=TH0; TR0=1; #define TIMER0_DISABLE TR0=0; sbit ACC0= ACC^0; sbit ACC1= ACC^1; sbit ACC2= ACC^2; sbit ACC3= ACC^3; sbit ACC4= ACC^4; sbit ACC5= ACC^5; sbit ACC6= ACC^6; sbit ACC7= ACC^
[单片机]
一种用于51单片机的红外串行通信接口
引言
在很多单片机应用系统中,常常利用非电信号(如光信号、超声波信号等)传送控制信息和数据信息,以实现遥控或遥测的功能。例如在单相电度表抄表系统中,就是使用手持抄表器通过遥控的方式,来完成电度表用电量的抄录、设置表底数、电度表校时等工作。红外通信具有控制简单、实施方便、传输可靠性高的特点,是一种较为常用的通信方式。实现单片机系统红外通信的关键在于红外接口电路的设计以及接口驱动程序的设计。
1 红外通信的基本原理
红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。发送端采用脉时调制(PPM)方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外发射管以光脉冲的形式发送出去;接收端将接收到的光脉
[单片机]