版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C51单片机看门狗电路及程序设计案院系:信息工程学院年级:2010级电子一班禹豪电子一班训虎电子二班邓启新Word文档引言在由单片机构成的微型计算机系统中, 扰等原因而被打断, 从而造成程序的跑飞, 继续工作,造成整个系统的陷入停滞状态, 程序的正常运行常常会因为来自外界的电磁场干 而陷入死循环。由此导致单片机控制的系统无法 发生不可预料的后果, 所以出于对单片机运行状态进行实时监测的考虑, 便产生了一种专门用于监测单片机程序运行状态的芯片或程序,俗 称看门狗(watchdog)(1)看门狗电路基本原理看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一
2、个I/O引脚相连*,该I/O引脚通过程序控制它定时地往看门狗的这个引 脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。此处设计原理实际上为下文中硬件看门狗设计思路。(2 )看门狗电路一般设计式“看门狗”电路一般分为 硬件看门狗 与软件看门狗 两种设计式。硬件看门狗 是利用了一个定时
3、器, 来监控主程序的运行, 也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位。如果出现死循环,或者说PC指针不能回来,那么定时时间到后就会使单片机复位。 常用的 WDT芯片如MAX813,5045,IMP 813 等, 价格410元不等.软件看门狗技术的原理和硬件看门狗类似,只不过是用软件的法实现(即利用单片机部定时器资源,通过编程模拟硬件看门狗工作式),以51系列为例:因在 51单片机中有两个定时器,在利用部定时器资源来对主程序的运行进行监控时。可以对T1 (或T0 )设定一定的定时时间(设定的定时值要小于主程序的运行时间),当产生定时中断的时候对一个变量进行赋值(此变量
4、在主程序运行的开始已有一个初值)。当主程序运行至最后时对此变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。考虑到设计要求,本设计采用软件看门狗设计思路。二、看门狗电路整体设计思路根据设计要求,本设计利用C51单片机部自带的定时器 1进行编程,并配合少量电路实 现“看门狗“电路功能。整个设计分为软件部分 与硬件部分,如下:(1)软件部分设计原理:软件设计分为三部分:“看门狗“定时器设置程序、溢出中断服务程序 和喂狗代码。1.1设计思路:1)在主程序开头,“看门狗“定时器设置程序 设置定时器1计时50ms。2) 当定时达50ms时,定时器1产生溢出中断,
5、溢出中断服务程序 开始工作,将 看门狗标志num加1。当num的值等于100时,说明看门狗定时器已经计时 5s,此时, 单片机I/O端口 P1.0输出高电平,对程序进行复位。3)在此过程中,喂狗代码 将被穿插于程序中循环体末尾。当循环体结束时,喂狗 代码执行,关闭定时器 1、清空num并重新初始化定时器设置。若循环体进入死循环, 喂狗代码无法执行,num将一直累加至100,此时程序复位。注:喂狗代码放置位置可根据 num预计数值进行调整:当num门限值较小,即看门狗计数时间较短时,喂狗代码可放于程序中各循环体之后或均匀分布于整个主程序 中。当num门限值较大,即看门狗计数时间较长时,喂狗代码可
6、放于程序主循环体末 尾。但是需注意看门狗计数时间必须长于正常工作时间,以免非正常复位。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-5000
7、0/1 =15536=3CB0H所以,“看门狗“定时器设置程序清单( c语言)如下:TMOD=0x10;/设置TMOD寄存器,定时器1设为式1TL仁 0xB0;/设置定时器初值低8位TH1=0x3C;/设置定时器初值高 8位,设置为计时50msET1=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_T
8、1() interrupt 3 using 3/定时器1溢出中断服务程序num+;/每溢出一次标志加 1if (num=100)/当标志等于100时,即计时 5sP仁(0x01);/P1.0 输出 1 1.5喂狗代码:喂狗代码主要功能为暂时关定时器1,定时器1寄存器清零,看门狗标志num清零和重新开启定时器1.喂狗代码程序清单(c语言)如下:TR1=0;/喂狗代码,关定时器 1TL1=0xB0;/重新设置定时器初值TH1=0x3C;TF1=0;TR1=1;/定时器1溢出中断标志清零/开定时器11.6完整测试程序清单完整测设程序分为两部分,以一个正向运行一次的流水灯程序和逆向无限循环流水灯程序组
9、成。在正向进行一次流水灯程序时,看门狗代码不会复位单片机;逆向无限循环流水灯程序时,延时5s,看门狗复位单片机。完整测试程序清单(c语言)如下:#i nclude reg51.h#in elude stdio.hun sig ned int i,num; un sig ned char temp;/设置变量void delay (un sig ned int t);/声明delay函数int mai n()num=0;P仁 (0x00);TMOD=0x10;TL1=0xB0;TH1=0x3C;ET1=1;EA=1;TF1=0;TR1=1;/看门狗复位标志/将P1 口赋值为0/设置TMOD寄存器
10、,定时器1设为式1/设置定时器初值低 8位/设置定时器初值高 8位,设置为计时50ms/开定时器1溢出中断/开总中断控制/定时器1溢出中断标志清零/开定时器1temp=0x01; for(i=0;i8;i+) P0=temp; delay(100); temp=1;/流水灯状态标志/流水灯程序(1)/点亮P0 口对应的LED点亮的LED灯前移一位TR1=0;TL1=0xB0; TH1=0x3C; TF1=0;TR1=1;/喂狗代码,关定时器1/重新设置定时器初值/定时器1溢出中断标志清零/开定时器1while(1)temp=0x80;/流水灯程序(2)/倒序,无限循环for(i=0;i=1;/
11、喂狗代码TR1=0;TL1=0xB0;TH1=0x3C;TF1=0;TR1=1;num=0;return 0;/延时子程序void delay (un sig ned int t) register un sig ned int bt; for(;t;t-) for(bt=0;bt255;bt+);void in t_T1() in terrupt 3 using 3 nu m+;if (n um=100)P仁 (0x01);/定时器1溢出中断服务程序 /每溢出一次标志加 1/当标志等于100时,即计时5s/P1.0 输出 1完整测试程序清单(c语言反汇编版)如下:Q0000:Q0003:LJ
12、MP Q00ABPUSH ACCINC 0AHMOV A,0AHJNZ Q000DINC 09HQ000D:XRL A,#64HORL A,09HJNZ Q0016MOV P1,#0FEHQ0016:Q001E:Q003E:Q004F:Q0064:Q006C:POPACCRETINOPNOPLJMPQ0003CLRAMOV09H,AMOV0AH,AMOVP1,#0FFHMOVTMOD,#1OHMOVTL1,#0B0HMOVTH1,#3CHSETBET1SETBEACLRTF1SETBTR1MOV08H,#01HMOV0BH,AMOV0CH,ALCALL Q0089MOVA,08HADDA,AC
13、CMOV08H,AINC0CHMOVA,0CHJNZQ004FINC0BHCLRCSUBBA,#08HMOVA,0BHSUBBA,#00HJCQ003ECLRTR1MOVTL1,#0B0HMOVTH1,#3CHCLRTF1SETBTR1MOV08H,#80HCLRAMOV0BH,AMOV0CH,ALCALL Q0089MOVA,08HCLRCRRCAMOV08H,AINC0CHMOVA,0CHJNZQ007DINC0BHQ007D:CLRCSUBBA,#08HMOVA,0BHSUBBA,#00HJCQ006CSJMPRETQ0064Q0089:MOVA,08HCPLAMOVP0,AMOVR7,#64HMOVR6,#00HQ0092:MOVA,R7ORLA,R6JZQ00AACLRAMOVR5,AMOVR4,AQ0099:INCR5CJNER5,#00H,Q009EINCR4Q009E:MOVA,R5CPLAORLA,R4JNZQ0099MOVA,R7DECR7JNZQ0092DECR6SJMPQ0092Q00AA:RETQ00A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某环保企业2024年度废物处理合同
- 2024年度柑桔购销合同与柑橘购销合同质量保证3篇
- 基于二零二四年度的企业管理咨询服务合同
- 空调设备采购的合同范本
- 解除担保协议范本版
- 2024年度钢结构工程招投标与合同签订合同
- 2024年度房地产项目融资与投资合同2篇
- 二零二四年知识产权许可合同期限规定2篇
- 学校课程合作协议书范本
- 2024年度企业股权转让及投资协议
- 建设新型能源体系提高能源资源安全保障能力
- GB/T 22082-2024预制混凝土衬砌管片
- 江苏省无锡市锡山区天一中学2025届高一物理第一学期期末质量检测试题含解析
- 《IC品质控制》课件
- 2024年事业单位招聘考试计算机基础知识复习题库及答案(共700题)
- 阿尔茨海默病的诊断
- 2024年时事政治题库附参考答案(综合题)
- 2024-2030年中国度假酒店行业未来发展趋势及投资经营策略分析报告
- 德勤-集团信息化顶层规划方案
- 部编版五年级语文上册第六单元习作《我想对您说》教学课件
- 华北理工大学《人工智能导论A》2022-2023学年期末试卷
评论
0/150
提交评论