C51单片机看门狗电路及程序设计方案

合集下载

MCS-51单片机应用系统设计

MCS-51单片机应用系统设计

6 通信电路的设计 单片机应用系统一般需要其具有数据通信的能力,通常采用RS-
232C、RS-485、I2C、CAN、工业以太网、红外收发等通信标准。
7 印刷电路板的设计与制作 电路原理图和印制电路板常采用专业设计软件进行设计, 如
Protel、Proteus、OrCAD等。设计印制电路板需要有很多的技巧和经 验。设计好印制电路板图后,应送到专业厂家制作生产,在生产出来 的印制电路板上安装好元件,则完成硬件设计和制作。
3. 程序设计 1 建立数学模型:描述出各输入变量和各输出变量之间 的数 学关系。
2 绘制程序流程图:以简明直观的方式对任务进行描述。 3 程序的编制:选择语言、数据结构、控制算法、存储 空间 分配,系统硬件资源的合理分配与使用,子程序的入/出口 参 数的设置与传递。
4. 软件装配 各程序模块编辑之后,需进行汇编或编译、调试,当满足设
单 片 机 应 用 系 统 设 计 的 一 般 过 程
7.1 MCS-51单片机应用系统设计过程
1. 总体设计 2. 硬件设计 3. 软件设计 4. 可靠性设计 5. 单片机应用系统的调试、测试
7.1.1 总体设计
1.明确设计任务 单片机应用系统的设计是从确定目标任务开始的。 认真进行目标分析,根据应用场合、工作环境、具体用途,
2. 程序设计技术
软件结构实现结构化,各功能程序实行模块化、子程序化。 一般有以下两种设计方法:
1 模块程序设计:优点是单个功能明确的程序模块的设 计和 调试比较方便,容易完成,一个模块可以为多个程序所共 享 。其缺点是各个模块的连接有时有一定难度。
2 自顶向下的程序设计:优点是比较符合于人们的日常 思维 ,设计、调试和连接同时按一个线索进行,程序错误可以 较早的发现。缺点是上一级的程序错误将对整个程序产生影响, 一处修改可能引起对整个程序的全面修改。

单片机原理及应用第四章课后题答案

单片机原理及应用第四章课后题答案

第四章作业答案16.MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突?解:数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突;程序存储器访问指令为MOVC,数据存储器访问指令为MOVX。

程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于二者访问指令不同,控制信号不同,所以两者虽然共处于同一地址空间,不会发生总线冲突。

18.某单片机应用系统,需扩展2片8KB的EPROM和2片8KB的RAM,采用地址译码法,画出硬件连接图,并指出各芯片的地址范围。

解:硬件连接电路图如图4.18所示。

各芯片的地址范围为:2764(1#):0000H~1FFFH 2764(2#):2000H~3FFFH6264(1#):4000H~5FFFH 6264(2#):6000H~7FFFH图4.18 4.18题硬件连接电路图21.8255A的端口地址为7F00H~7F03H,试编程对8255A初始化,使A口按方式0输入,B口按方式1输出。

解:程序如下:ORG 0000HLJMP STARTORG 0030HSTART:MOV SP, #60HMOV DPTR,#7F03HMOV A,#10010100BMOVX @DPTR,ASJMP $END25.使用8255A或者8155的B端口驱动红色和绿色发光二极管各4只,且红、绿发光二极管轮流发光各1s,不断循环,试画出包括地址译码器、8255A或8155与发光管部分的接口电路图,并编写控制程序。

解:使用8255A,电路连接图如图4.25所示。

图4.25 4.25题硬件连接电路图其中,PB0~PB3接红色发光二极管,PB4~PB7接绿色发光二极管。

设MCS-51单片机主频为12MHz。

程序如下:ORG 0000HLJMP STARTORG 0030HSTART:MOV SP, #60HMOV DPTR, #7FFFH ; 数据指针指向8255A控制口MOV A, #80HMOVX @DPTR, A ; 工作方式字送8255A控制口MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口MOV A, #0FH ; 置红色发光二极管亮LP1:MOVX @DPTR, A ; 置红色发光二极管亮LCALL DELAY ; 调用1S延时子程序CPL A ; 置发光二极管亮反色SJMP LP1 ; 循环执行DELAY:MOV R7,#10 ; 1s延时子程序D1:MOV R6,#200D2:MOV R5,#248D3:NOPDJNZ R5,D3DJNZ R6,D2DJNZ R7,D1RETEND采用定时器T0方式1中断实现1s定时。

基于51单片机的智能家居控制系统设计

基于51单片机的智能家居控制系统设计

基于51单⽚机的智能家居控制系统设计摘要智能家居是时代发展的产物,是住户想享受快速⽹上冲浪、便捷实时的通讯、安全防范、丰富娱乐⽣活、便捷的⽣活家居管理,优质物业管理等智能化住宅所特有的⽣活⽅式,使忙碌⼀天的⼈们真正体会到智慧家带来的⽣活乐趣。

本设计以STC89C52RC单⽚机为核⼼设计数字时钟和智能窗帘:通过光敏电阻检测光线强弱,当光线强度达到⼀定的程度时,通过单⽚机控制电机将窗帘拉上,否则打开窗帘。

另外⽤点阵显⽰时间和当前室内温度,由于下午⼗点后基本属于睡眠时间,故忽略光线强度,拉上窗帘并⾃动切换到⼿动模式,以节约电能,待第⼆天起床再将其切换⾄⾃动模式。

由于⼀般电机⽆法⾃主精确定位,需要辅助器件构成⼀个闭环系统才能精确的控制窗帘的张合程度,故本设计采⽤步进电机控制,通过齿轮变速,精确控制窗帘的张合程度,避免窗帘由于过度的张合造成损害,同时由于减少了辅助器件,节省了能源。

同时,本设计还选⽤DS12C887时钟芯⽚,该芯⽚内部⾃带锂电池,即使在断电的情况下仍然能继续⼯作。

该芯⽚有内置晶振,能够提供准确的时间,正常⼯作状态下⼯作⼀个⽉误差为+ 1分钟。

芯⽚内部带有闹钟功能,带有世纪寄存器,能够解决世纪问题,还有闰年补偿能多项功能。

⽐只利⽤晶振驱动的电⼦时钟功能更强⼤,时间更准确。

关键词:单⽚机;智能窗帘;时钟芯⽚AbstractIntelligent furniture is outcome of the developing time. It is a special lifestyle with which residents can enjoy fast online surfing, convenient communication, safety guard and which can enrich residents’ entertainment, make their furnishing management more convenient and which can optimize their property management. It can provide people who have been busy for a whole day with entertainment that intelligent ones bring to them. These are designs called digital clock and intelligent curtain that center on STC89C52RC MCU. It detects whether the light is hard or not through photosensitive electric resistance. When light is hard to some level, the curtain is closed under the control of the MCU on the generator, and is opened on the contrary. In addition, it shows time and the present indoor’s temperature with dot matrix. Light can be neglected after 10 o’clock pm when most people have fallen asleep. At this time, the curtain is closed and get to be under manual mode, so as to cut down electricity consumption, it was not turned to automatic mode until residents’ getting up in the morning. Commonly seen generators are not able to fix precisely, they can form a closed loop system to realize precise control on curtains only with the help of some assistant devices. Thus, this design precisely controls curtains under the control of steering engines and with gears to alter the speed. By that, curtains are protected from damages by over-operation. At the same time, less assistant devices are used and energy consumption is cut down. Meanwhile, the design selectsDS12C887 chips which contain lithium cells themselves and which can continue operating even when it is out of electricity. Such chips contain some internally installed crystal that can provide precise time with only one minute’s error within one month when operating normally. Such chips also have alarm function and century register. Thus, they can solve century problem. This design is much stronger and preciser than any electric clocks using only crystal to operate.Keywords: MCU; intelligent curtain; clock chip设计说明基于单⽚机的智能家居控制系统设计是在指导⽼师给出的任务书并在其指导下完成的。

基于MAX706的可靠看门狗电路设计方法

基于MAX706的可靠看门狗电路设计方法

基于MAX706的可靠看门狗电路设计方法摘要:单片机控制系统“看门狗”电路的有效性,除硬件电路的可靠性以外,主要取决于如何正确给“看门狗”电路进行复位(即“喂狗"),文章在介绍了一种采用MAX706和89C52构成的硬件电路的基础上,给出了一种新颖可靠的“看门狗”电路软件设计方法。

关键词:抗干扰单片机看门狗 MAX706 89C52随着MCS-51系列单片机的发展,其芯片价格在不断下降,但同时也带来了单片机芯片的抗干扰问题,该问题可能导致一些智能型仪器仪表单片机工业控制系统发生“死机".笔者通过近几年的设计实践及不断试验,总结了一套可靠的“看门狗"硬件电路及软件设计方法。

由于一些专业期刊曾经刊登过许多关于“看门狗”硬件电路构成的文章,同时也详细的关于“看门狗”电路非正常失效故障原因的分析及针对性软件设计技巧[1],本文给出了一个采用MAX706和89C52构成的“看门狗"硬件电路,并且从新的角度说明了如何确保“看门狗"电路的正常工作,同时给出了它的软件设计方法。

1 “看门狗"硬件电路简述现以MAX706监控电路为例(见图1)来说明“看门狗”硬件电路的工作过程,我们知道,MAX706是一种性能优良的低功耗CMOS监控电路芯片,其内部电路由上电复位、可重触发“看门狗”定时器及电压比较器等组成[2]。

MAX706只要在1.6秒时间内检测到WCI引脚有高低电平跳变信号,则“看门狗”定时器清零并重新开始计时;若超出1.6秒后,WCI引脚仍无高低电平跳变信号,则“看门狗”定时器溢出,WDO引脚输出低电平,进而触发MR手动复位引脚,使MAC706复位,从而使“看门狗”定时器清零并重新开始计时,WDO 引脚输出高电平,MAX706的RST复位输出引脚输出大约200毫秒宽度的低电平脉冲,使单片机控制系统可靠复位,重新投入正常运行。

2 “看门狗”电路软件设计方法以往的“看门狗"电路复位指令(即“喂狗”)一般总是插入在主程序中,而且“喂狗”指令一般是脉冲式,可以连续用两条取反指令(如CPL P1。

8051单片机“看门狗”原理、详解和C语言演示程序

8051单片机“看门狗”原理、详解和C语言演示程序
~2~
值得提一下: 由于现在 AT89S52 应用比较广泛,所以我先说说 ATMEL 的看门狗;再说
说本次试验用的 STC89C52RC 的看门狗;注意两个丌一样!!! AT89S52 单片机看门狗定时器是 14 位的,最大计数 214=16384 个数,每计
16384 个时钟周期就溢出一次。也就是说如果使用 12M 晶振的话,至少应该在 16.384ms 内喂一次狗。
~5~
程序代码:
/*************************************************************************** 程序功能:本程序演示 STC51 单片机看门狗程序 程序设计:燕山大学 鲁信琼 晶振选择:11.0592MHz, 如果晶振不匹配,请修改延时函数参数
候一直亮着;用于指示系统是否重启
uchar timer0_ctr,i;
const uchar str[]="I love MCU!"; //定义一句话,让他从串口输出,只有系统重启的时候才输 出一次,所以也是用于********************************************************************/ //延时函数,11.0592MHz 晶振下延时约 xms 毫秒 void delay_ms(unsigned xms) {
//初始化时两盏灯都熄灭 LED=1; LED_busy=1;
TMOD=0x21; 为串行口波特率发生器
TH0=0x4C; TL0=0x00; IE=0x82; TR0=1;
//定时器 0 工作在方式 1,作为 16 位定时器;定时器 1 工作在方式 2,作
//定时器 0 装初值:每隔 50ms 溢出一次

单片机看门狗(Watchdog)的工作原理及其应用

单片机看门狗(Watchdog)的工作原理及其应用

单片机看门狗(Watchdog)的工作原理及其应用2010年05月16日星期日 23:00在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环。

程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果。

所以,出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)。

看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行。

这个时候,看门狗电路就会由于得不到单片机送来的信号。

便在它和单片机复位引脚相连的引脚上送出一个复位信号。

使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。

看门狗,又叫 watchdog timer,是一个定时器电路。

一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU 正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零。

如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,是MCU复位,防止MCU死机。

看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。

所以,在使用有看门狗的芯片时要注意清看门狗。

1_5011722_毕业设计(论文)-基于51单片机的智能LED照明控制系统设计1

1_5011722_毕业设计(论文)-基于51单片机的智能LED照明控制系统设计1

基于51单片机的智能LED照明控制系统设计摘要随着社会的发展人们对生活质量的要求越来越高,照明在能耗中所占的比例日益增加,因而照明节能也日显重要。

现在国内外普及使用的节能开关基本有声控型、触摸型、感光型等。

这几种开关各有自己的弊端,如声控型不适合环境嘈杂场所、感光型开关在无人期间不能自动关闭。

本设计通过AT89C51单片机结合LED照明技术、红外传感技术、光感技术、延时技术、处理等技术来实现对照明设备的智能控制。

单片机通过继电器控制照明设备的打开或者关闭、通过光照检测电路对照明设备周边亮度进行检测,如果亮度不够则单片机同时检测BIS0001芯片是否采集到了人体热释电传感信号,根据有无人体热释电传感信号单片机立刻控制照明设备打开或关闭。

关键词:单片机;传感器;BIS0001;照明控制;节能AbstractWith the development of society people of the quality of life in demand is higher and higher, lighting in the proportion of energy consumption, thus increasing illumination energy conservation also more and more importantly. Now universal use energy-saving switch at home and abroad have sonic basic type, touch type, photographic type and so on. This several switch have their own disadvantages, such as sonic type is not suitable for environmental noisy places, photographic switch in one period can't shut automatically. This design combined by A T89C51 LED lighting technology, infrared sensing technology, light sensor technology, the delay technique and processing technology to realize the intelligent control of lighting equipment. Microcomputer controls lighting equipment open or closed, by the relay ,through the light detection circuit for lighting equipment testing, if surrounding brightness is not enough then microcomputer detect the BIS0001 chip whether collected to human pyroelectric sensing signals, according to whether have pyroelectric sensing signals microcontroller redirected immediately control lighting equipment open or closed.Keywords: microcontroller;sensor;BIS0001;lighting control;energy-saving目录摘要 (I)ABSTRACT (III)前言 (1)1 概述 (2)1.1 课题研究背景 (2)1.2 课题研究的目的与意义 (2)1.2.1 良好的节能效果和延长灯具寿命 (2)1.2.2 改善工作环境,提高工作效率 (2)1.2.3 提高管理水平 (3)1.2.4 较好的投资收益效果 (3)2 系统设计方案 (4)2.1 单片机的选择 (4)2.2光照检测方式 (5)2.3 人体感应方式 (5)2.4 延时参数设置电路 (6)2.5 照明设备驱动电路 (6)3 硬件电路设计与实现 (7)3.1 系统硬件总述 (7)3.2 CPU性能介绍 (7)3.3 主控制机电路设计 (7)3.4 菲涅尔透镜 (8)3.5 热释电传感器及处理电路 (9)3.5.1 热释电红外线传感器 (9)3.5.2 信号处理电路 (10)3.6 光照检测电路 (11)3.7 控制电路 (11)3.7.1 延时时间选择电路 (11)3.7.2 输出控制电路 (12)3.8 时钟电路 (12)4 系统软件设计及实现 (13)4.1 系统软件流程图 (13)4.2 仿真环境介绍 (14)4.2.1 Keil介绍 (14)4.2.2 Proteus介绍 (14)5 系统可靠性技术 (15)5.1干扰产生的后果 (15)5.2 单片机应用系统的硬件抗干扰设计 (16)5.3 软件抗干扰技术 (17)毕业设计总结......................................... 错误!未定义书签。

基于51单片机的看门狗程序

基于51单片机的看门狗程序
/*写入一个字节,cData为写入的数,cAddress为写入地址,bRegion为页*/
{
while((ReadReg()&0x01)==1); //the device is busy
CS=0;
WriteByte(WREN); //when write the wren , the cs must have a high level
CS=1;
CS=0;
if(bRegion==0)
{ WriteByte(WRITE0);} //write the page addr
else
{WriteByte(WRITE1);}
WriteByte(cAddress);
WriteByte(cData);
SCK=0; //
CS=1;
}
uchar ReadEpm(uchar cAddress,bit bRegion)
{
uchar ucLoop;
for(ucLoop=0;ucLoop<8;ucLoop++)
{
if((ucData&0x80)==0) //the MSB send first
{SI=0;}
else
{SI=1;}
Hale Waihona Puke SCK=0;SCK=1;ucData<<=1;
}
}
uchar ReadReg() //read register
/*读入一个字节,cAddress为读入地址,bRegion为页*/
{
uchar cData;
while((ReadReg()&0x01)==1);//the device is busy
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C51单片机看门狗电路及程序设计案院系:信息工程学院年级:2010级电子一班禹豪电子一班训虎电子二班邓启新一、引言在由单片机构成的微型计算机系统中,程序的正常运行常常会因为来自外界的电磁场干扰等原因而被打断,从而造成程序的跑飞,而陷入死循环。

由此导致单片机控制的系统无法继续工作,造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片或程序,俗称"看门狗"(watchdog)(1)看门狗电路基本原理看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连**,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。

*此处设计原理实际上为下文中硬件看门狗设计思路。

(2)看门狗电路一般设计式“看门狗”电路一般分为硬件看门狗与软件看门狗两种设计式。

硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位。

如果出现死循环,或者说PC指针不能回来,那么定时时间到后就会使单片机复位。

常用的WDT芯片如MAX813,5045,IMP 813等,价格4~10元不等.软件看门狗技术的原理和硬件看门狗类似,只不过是用软件的法实现(即利用单片机部定时器资源,通过编程模拟硬件看门狗工作式),以51系列为例:因在51单片机中有两个定时器,在利用部定时器资源来对主程序的运行进行监控时。

可以对T1(或T0)设定一定的定时时间(设定的定时值要小于主程序的运行时间),当产生定时中断的时候对一个变量进行赋值(此变量在主程序运行的开始已有一个初值)。

当主程序运行至最后时对此变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。

考虑到设计要求,本设计采用软件看门狗设计思路。

二、看门狗电路整体设计思路根据设计要求,本设计利用C51单片机部自带的定时器1进行编程,并配合少量电路实现“看门狗“电路功能。

整个设计分为软件部分与硬件部分,如下:(1)软件部分设计原理:软件设计分为三部分:“看门狗“定时器设置程序、溢出中断服务程序和喂狗代码。

1.1设计思路:1)在主程序开头,“看门狗“定时器设置程序设置定时器1计时50ms。

2)当定时达50ms时,定时器1产生溢出中断,溢出中断服务程序开始工作,将看门狗标志num加1。

当num的值等于100时,说明看门狗定时器已经计时5s,此时,单片机I/O端口P1.0输出高电平,对程序进行复位。

3)在此过程中,喂狗代码将被穿插于程序中循环体末尾。

当循环体结束时,喂狗代码执行,关闭定时器1、清空num并重新初始化定时器设置。

若循环体进入死循环,喂狗代码无法执行,num将一直累加至100,此时程序复位。

注:喂狗代码放置位置可根据num预计数值进行调整:当num门限值较小,即看门狗计数时间较短时,喂狗代码可放于程序中各循环体之后或均匀分布于整个主程序中。

当num门限值较大,即看门狗计数时间较长时,喂狗代码可放于程序主循环体末尾。

但是需注意看门狗计数时间必须长于正常工作时间,以免非正常复位。

1.2软件设计流程图:以下为三部分详细程序设计1.3“看门狗“定时器设置程序:“看门狗“定时器设置程序对定时器1进行设置。

设定时器1为工作式1。

设M 为工作式1下,定时器最大计数值,可知M=65536。

所以,设定时器1的初值为X ,则初值X 与机器期I 机及定时时间T 的关系为:(M-X)T 机 = T (1)其中:T 机 =12个时钟期 =12 /fosc 。

所以,定时器1的初值为:X = M -T/ T 机 (2)因此,当T1工作于式1,定时时间为50ms ,时钟频率fosc=12MHz 时,可知:X=M- T/ T 机 = 65536-50000/1 =15536=3CB0H所以,“看门狗“定时器设置程序清单(c 语言)如下:TMOD=0x10; //设置TMOD 寄存器,定时器1设为式1TL1=0xB0; //设置定时器初值低8位TH1=0x3C; //设置定时器初值高8位,设置为计时50ms ET1=1; //开定时器1溢出中断EA=1; //开总中断控制TF1=0; //定时器1溢出中断标志清零TR1=1; //开定时器11.4溢出中断服务程序:溢出中断服务程序为定时器1溢出中断服务程序,每执行一次,num 加1,并判断num 是否达到100,即计时5s 。

若已达到5s ,I/O 口P1.0输出复位信号。

溢出中断服务程序清单(c 语言)如下:void int_T1() interrupt 3 using 3 //定时器1溢出中断服务程序{num++; //每溢出一次标志加1if (num==100) //当标志等于100时,即计时5s{P1=~(0x01); //P1.0输出1}}1.5喂狗代码:喂狗代码主要功能为暂时关定时器1,定时器1寄存器清零,看门狗标志num 清零和重新开启定时器1.喂狗代码程序清单(c 语言)如下:TR1=0; //喂狗代码,关定时器1TL1=0xB0; //重新设置定时器初值TH1=0x3C;TF1=0; //定时器1溢出中断标志清零TR1=1; //开定时器11.6完整测试程序清单完整测设程序分为两部分,以一个正向运行一次的流水灯程序和逆向无限循环流水灯程序组成。

在正向进行一次流水灯程序时,看门狗代码不会复位单片机;逆向无限循环流水灯程序时,延时5s,看门狗复位单片机。

完整测试程序清单(c语言)如下:#include "reg51.h"#include "stdio.h"unsigned int i,num; //设置变量unsigned char temp;void delay(unsigned int t); //声明delay函数int main(){num=0; //看门狗复位标志P1=~(0x00); //将P1口赋值为0TMOD=0x10; //设置TMOD寄存器,定时器1设为式1TL1=0xB0; //设置定时器初值低8位TH1=0x3C; //设置定时器初值高8位,设置为计时50msET1=1; //开定时器1溢出中断EA=1; //开总中断控制TF1=0; //定时器1溢出中断标志清零TR1=1; //开定时器1temp=0x01; //流水灯状态标志for(i=0;i<8;i++) //流水灯程序(1){P0=~temp; //点亮P0口对应的LEDdelay(100);temp<<=1; //点亮的LED灯前移一位}TR1=0; //喂狗代码,关定时器1TL1=0xB0; //重新设置定时器初值TH1=0x3C;TF1=0; //定时器1溢出中断标志清零TR1=1; //开定时器1while(1) //流水灯程序(2){ //倒序,无限循环temp=0x80;for(i=0;i<8;i++){P0=~temp;delay(100);temp>>=1;}}TR1=0; //喂狗代码TL1=0xB0;TH1=0x3C;TF1=0;TR1=1;num=0;return 0;}void delay(unsigned int t) //延时子程序{register unsigned int bt;for(;t;t--)for(bt=0;bt<255;bt++);}void int_T1() interrupt 3 using 3//定时器1溢出中断服务程序{num++; //每溢出一次标志加1if (num==100) //当标志等于100时,即计时5s {P1=~(0x01); //P1.0输出1}}完整测试程序清单(c语言反汇编版)如下:Q0000: LJMP Q00ABQ0003: PUSH ACCINC 0AHMOV A,0AHJNZ Q000DINC 09HQ000D: XRL A,#64HORL A,09HJNZ Q0016MOV P1,#0FEHQ0016: POP ACCRETINOPNOPLJMP Q0003Q001E: CLR AMOV 09H,AMOV 0AH,AMOV P1,#0FFHMOV TMOD,#10HMOV TL1,#0B0HMOV TH1,#3CHSETB ET1SETB EACLR TF1SETB TR1MOV 08H,#01HMOV 0BH,AMOV 0CH,AQ003E: LCALL Q0089MOV A,08HADD A,ACCMOV 08H,AINC 0CHMOV A,0CHJNZ Q004FINC 0BHQ004F: CLR CSUBB A,#08HMOV A,0BHSUBB A,#00HJC Q003ECLR TR1MOV TL1,#0B0HMOV TH1,#3CHCLR TF1SETB TR1Q0064: MOV 08H,#80HCLR AMOV 0BH,AMOV 0CH,AQ006C: LCALL Q0089MOV A,08HCLR CRRC AMOV 08H,AINC 0CHMOV A,0CHJNZ Q007DINC 0BHQ007D: CLR CSUBB A,#08HMOV A,0BHSUBB A,#00HJC Q006CSJMP Q0064RETQ0089: MOV A,08HCPL AMOV P0,AMOV R7,#64HMOV R6,#00HQ0092: MOV A,R7ORL A,R6JZ Q00AACLR AMOV R5,AMOV R4,AQ0099: INC R5CJNE R5,#00H,Q009EINC R4Q009E: MOV A,R5CPL AORL A,R4JNZ Q0099MOV A,R7DEC R7JNZ Q0092DEC R6SJMP Q0092Q00AA: RETQ00AB: MOV R0,#7FHCLR AQ00AE: MOV R0,ADJNZ R0,Q00AEMOV SP,#0CHLJMP Q001E(2)硬件部分设计原理因C51单片机复位端RST接收到一正脉冲时,单片机复位,所以P1.0引脚的复位信号(输出由低电平变为高电平)应通过一电容与电阻组成的微分电路,将波转化为脉冲波。

相关文档
最新文档