C51单片机看门狗电路及程序设计方案
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 自顶向下的程序设计:优点是比较符合于人们的日常 思维 ,设计、调试和连接同时按一个线索进行,程序错误可以 较早的发现。缺点是上一级的程序错误将对整个程序产生影响, 一处修改可能引起对整个程序的全面修改。
MSC51系列单片机交通灯控制器设计毕业论文
MSC-51系列单片机交通灯控制器设计摘要十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。
那么靠什么来实现这井然秩序呢?靠的是交通信号灯的自动指挥系统。
交通信号灯控制方式很多。
本系统采用MSC-51系列单片机Intel8051和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;为了系统稳定可靠采用了MAX629“看门狗”芯片,避免了系统因为死机而停止工作的情况发生;显示时间直接通过8255的PA、PB口输出;交通灯信号通过PC口输出;交通灯的点亮采用VT双向晶闸管来控制,直接采用220V交流电源驱动,系统实用性强、操作简单、扩展性强。
关键词:单片机,交通灯,控制器,设计,实现目录摘要 (1)1 引言 (2)2 交通灯的总体方案设计与论证 (2)单片机与外围接口部件 (3)电源提供 (3)倒计时显示界面 (3)输入键盘 (3)交通灯显示 (5)理论分析与计算 (5)交通灯显示时序的理论分析与计算 (5)交通灯显示时间的理论分析与计算 (7)东西和南北方向的放行时间的长短是依据路口的各个方向平时的车流量来设定,并且S1、S2、S3、S4各个状态保持的时间之有严格的对应关系,其公式如下所示:T-S1+T-S2=T-S3T-S2=T-S4T-S1=T-S3我们可以依据上述的标准来改变车辆的放行时间。
按照一般的规则,一个十字路口可分为主干道和次干道,主干道的放行时间大于次干道的放行时间,我们设定值时也应以此为参考。
电路图及设计文件(1)灯控制电路设计由于32个LED 来实现红绿灯状态,若直接接在单片机的口线,路口倒计时的显示就不能实现,所以本次设计中采用一种新型的电路如图3-1 所示。
(7)2 硬件的选择与简介 (9)8051芯片简介 (9)8051内部结构8051是MCS-51系列单片机的典型产品,其内部结构图如右所示: (9)8051的引脚说明: (10)8255芯片简介 (10)2.2.1内部结构 (11)2.2.2引脚功能说明 (11)其他器件 (12)2.3.1数码管与交通信号灯 (12)2.3.2看门狗MAX692 (12)3 控制器硬件系统设计 (13)系统硬件设计方案 (13)系统工作原理 (15)结论 (17)致谢 (18)参考文献 (19)摘要随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。
C51单片机看门狗电路及程序设计方案
C51单片机看门狗电路及程序设计案院系:信息工程学院年级:2010级电子一班禹豪电子一班训虎电子二班邓启新一、引言在由单片机构成的微型计算机系统中,程序的正常运行常常会因为来自外界的电磁场干扰等原因而被打断,从而造成程序的跑飞,而陷入死循环。
由此导致单片机控制的系统无法继续工作,造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片或程序,俗称"看门狗"(watchdog)(1)看门狗电路基本原理看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连**,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
*此处设计原理实际上为下文中硬件看门狗设计思路。
(2)看门狗电路一般设计式“看门狗”电路一般分为硬件看门狗与软件看门狗两种设计式。
硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位。
如果出现死循环,或者说PC指针不能回来,那么定时时间到后就会使单片机复位。
常用的WDT芯片如MAX813,5045,IMP 813等,价格4~10元不等.软件看门狗技术的原理和硬件看门狗类似,只不过是用软件的法实现(即利用单片机部定时器资源,通过编程模拟硬件看门狗工作式),以51系列为例:因在51单片机中有两个定时器,在利用部定时器资源来对主程序的运行进行监控时。
基于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。
单片机看门狗(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死机。
看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。
所以,在使用有看门狗的芯片时要注意清看门狗。
C51单片机看门狗电路及程序设计方案解读
C51单片机看门狗电路及程序设计方案院系:信息工程学院年级:2010级电子一班刘禹豪电子一班赵训虎电子二班邓启新一、引言在由单片机构成的微型计算机系统中,程序的正常运行常常会因为来自外界的电磁场干扰等原因而被打断,从而造成程序的跑飞,而陷入死循环。
由此导致单片机控制的系统无法继续工作,造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片或程序,俗称"看门狗"(watchdog)(1)看门狗电路基本原理看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连**,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。
(2)看门狗电路一般设计方式“看门狗”电路一般分为硬件看门狗与软件看门狗两种设计方式。
硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位。
如果出现死循环,或者说PC指针不能回来,那么定时时间到后就会使单片机复位。
常用的WDT芯片如MAX813,5045,IMP 813等,价格4~10元不等.软件看门狗技术的原理和硬件看门狗类似,只不过是用软件的方法实现(即利用单片机*此处设计原理实际上为下文中硬件看门狗设计思路。
内部定时器资源,通过编程模拟硬件看门狗工作方式),以51系列为例:因在51单片机中有两个定时器,在利用内部定时器资源来对主程序的运行进行监控时。
单片机应用系统中的_看门狗_电路及低成本实现
, 看 门 狗 电路 如 图 1 所 示. 图 中
! 63!
2008 年
商丘职业技术学院学报
74LS123 触发器的输入端接高电平 , 负脉冲触发 . 第一个触发器工作状态由单片机 P1 口的 P1 . 7 控制, 系统 开始工作时 , P1 . 7 向 2A 端输入一个负脉冲, 使 2Q 端产生一个正跳变, 但并不能触发第二个单稳态触发器 动作, 1Q 端仍为低电平. P1 . 7负触发脉冲的时间间隔取决于系统控制主程序运行周期 . 在单片机应用系统 应用程序设计中 , 软件流程要设计成循环结 构. 发出喂狗信号的指令包 含在主程序中, 使用 CLR P1 . 7和 SETB P1. 7 两条指令. 如果主程序运行周期小于单稳态触发器的暂态时间 , 则当单片机正常运行时 , 将不断 重新触发第二个单稳态触发器, 其输出端 2Q 端始终保持高电平, 1A 端保持高电平 , 第一个单稳态触发器就 不会产生动作. 如果单片机受到干扰 , 产生了死循环, 那么第二单稳态触发器的暂态时间内 , 就不会出现送 给 2A 端的负脉冲 , 第二个单稳态触发器脱离暂态 , 2Q 端回到低电平触发第一个单稳态触发器翻转到暂态 , 1Q 端产生脉冲信号, 使单片机可靠复位, 系统运行的可靠性大大提高.
[ 2 ] 374- 375
.
图 2 由计数器构成的 看门狗 电路
2 . 3 由门电路构成 看门狗 电路 在电路的设计中往往会有多余的门电路, 这时可以用作 看门狗 电路 , 既降低了成本, 又提高了电路的 可靠性 . 电路形式可以有很多种 , 特别在 89C1051 / 2051 的应用电路中, 利用其 P1 . 0 /P1. 1 口没有上拉电阻 的特点 , 可以用两个 CMOS 门电路 ( 本例中是六反相器 CD4069 中的两个空余反相器 ) 设计一个极简单的低 成本 看门狗 电路, 如图 3 . 由于需要的定时时间比较长 , 因此只能使用输入阻抗高的 CMOS 门电路, 当然也 ! 64!
基于CD4060的硬件看门狗技术
基于CD4060的硬件看门狗技术引言多年来,围绕着单片机应用系统的抗干扰技术以及其受干扰后的自我恢复,在硬件和软件等方面积累了多种方法,这些方法相互结合,配合使用,有效地提高了系统的可靠性与抗干扰性。
看门狗(Watch Dog Timer,简称为WDT)技术就是最常见的抗干扰技术。
看门狗WDT有硬件看门狗和软件看门狗之分,无论是硬件看门狗还是软件看门狗实际上都是一个可清零的定时计数器。
如果该定时计数器用MCU芯片外部电路实现,则为硬件看门狗,如果该定时计数器用MCU芯片内部定时器/计数器实现,则称为软件看门狗。
本文介绍硬件看门狗技术,并给出了实用的基于CD4060的硬件看门狗电路。
1 硬件看门狗电路及其工作原理基于CD4060的硬件看门狗电路如图1所示,它是针对工程项目所设计的一个实用电路,并且该电路实际使用情况良好。
下面介绍电路的组成及其工作原理。
看门狗电路由14位二进制计数器CD4060和三极管VT1、VT2等组成。
单片机AT89C51的P1.7口设计成输出口,由AT89C51的CPU向看门狗电路发送喂狗信号——正脉冲,在两个正脉冲间隔内,P1.7保持为低电平(此功能要结合软件才能实现,相应的软件设计在下面介绍)。
我们知道,单片机AT89C51的I/O口带灌电流负载的能力比较大,每个引脚低电平时的吸入电流为20 mA,带拉电流负载的能力却很小,实测情况是,每个引脚高电平时的输出电流仅25μA,现在P1.7口被设计成带拉电流负载的方式,为了提高P1.7口带拉电流负载的能力,所以,电路中设置了上拉电阻R3。
14位二进制计数器CD4060的计数脉冲由其内部振荡器和外接阻容元件R1、R2、C1组成的电路产生,振荡周期为T0SC=2.2×R1×C1=0.22 ms振荡器产生的计数脉冲(矩形波)可以直接引出,同时还可以从CD4060的10个输出端Q4~Q10和Q12~Q14得到不同分频系数的方波输出,各方波输出信号的周期如表1所示。
51单片机最小系统原理图
接触过单片机的朋友们都时常会听到别人提"最小系统"这个词.那到底什么是最小系统,有怎样设计称上"最小"呢?下面让依依电子来告诉大家:单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,单片机+晶振电路+复位电路,便组成了一个最小系统.但是一般我们在设计中总是喜欢把按键输入、显示输出等加到上述电路中,成为小系统。
应用89C51(52)单片机设计并制作一个单片机最小系统,达到如下基本要求:1、具有上电复位和手动复位功能。
2、使用单片机片内程序存储器。
3、具有基本的人机交互接口。
按键输入、LED显示功能。
4、具有一定的可扩展性,单片机I/O口可方便地与其他电路板连接。
51单片机学习想学单片机,有一段时间了,自己基础不好,在网上提了许多弱智的问题,有一些问题网友回答了,还有一些为题许多人不屑一顾。
学来学去,一年多过去了,可是还是没有入门,现在我就把我学习中遇到的一些问题和大家分享一下,希望在大虾的帮助下能快速的入门:)在学习之前我在网上打听了一下atmel公司的单片机用的人比较多,avr 系列这几年在国内比较流行,但是考虑到avr还是没有51系列用的人多,51系列的许多技术在实践中都已经的到了前人的解决,遇到问题后,有许多高人可以帮助解决,所以这次学习,选用了atmel公司的at89s52,来进行学习。
学习单片机是需要花费时间实践的;学之前我们先准备好所需的东西一、所需硬件at89s52一片;8m晶振一个,30pf的瓷片电容两个;10uf电解电容一个,10k的电阻一个;万用板(多孔板)一块;其他的器件如电烙铁一把30w的,松香,焊锡若干,如果是第一次学习,不知道这些东西,没关系,以下是它们的照片:Atmel公司生产的at89s528m晶振22pf瓷片电容电解电容图1/4 w 10k 的电阻普通的电木万用板好了,有了这些东西,我们就可以把它们组合到一起做成我们的最小系统了:)有了这些东西我们怎么焊接丫?不用着急,过一会我们把原理图给大家画出来大家就会了。
STC89系列单片机看门狗的使用及应用程序
STC89 系列单片机看门狗的使用及应用程序
看门狗概念及其应用在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统便无法继续工作,这样会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称看门狗(watch dog)。
加入看门狗电路的目的是使单片机可以在无人状态下实现连续工作,其工作过程如下:看门狗芯片和单片机的一个I/O 引脚相连,该I/O 引脚通过单
片机的程序控制,使它定时地往看门狗芯片的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,给看门狗引脚送电平的程序便不能被执行到,这时,看门狗电路就会由于得不到单片机送来的信号,便将它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,从而单片机将从程序存储器的起始位置重新开始执行程序,这样便实现了单片机的自动复位。
通常看门狗电路需要一个专门的看门狗芯片连接单片机来实现,这在我们的单片机教程网51hei 以前做过相关的电路介绍。
不过这样会给电路设计带
来复杂,STC 单片机内部自带有看门狗,通过对相应特殊功能寄存器的设置
就可实现看门狗的应用,STC89 系列单片机内部有一个专门的看门狗定时器
寄存器,Watch Dog Timer 寄存器,其相应功能见下个知识点。
毕业设计52单片机看门狗
目录第一章概述 (3)1.1 单片机的发展 (3)1.2单片机的应用 (3)第二章多功能转速表硬件电路 (5)2.1 转速信号获取电路 (6)2.2 M/T法测速原理 (6)2.3转速计算及误差分析 (7)2.4转速测量 (9)第三章产生脉冲的硬件部分介绍 (10)3.1 光电转换电路 (10)3.1.1 光电探测器的介绍 (10)3.1.2 光检测器的设定 (11)3.2运算放大器基本特性 (11)3.2.1常用运算放大器类型 (11)3.2.2运算放大器的基本参数 (12)3.3 555施密特触发器结构图 (14)3.3.1 施密特触发器的电路特点 (16)3.3.2 施密特触工作原理 (16)3.3.3 施密特触发器的应用 (17)第四章单片机 (18)4.1 单片机AT89C51的了解 (18)4.2 AT89C51的硬件部分简述 (19)第五章显示部分 (21)5.1 键盘接口: (21)5.2 显示器接口: (23)5.3 LED显示器 (26)5.3.1 数码管结构 (26)5.3.2 数码管工作原理 (27)5.3.3 LED七段数码管显示方法 (27)第六章直流稳压电源的研制 (29)6.1+ 5V 直流稳压电路原理 (29)6.2+ 5V 直流稳压电路参数设计 (30)第七章看门狗电路 (32)7.1 抗干扰与看门狗 (32)7.2硬件方式和软件方式看门狗 (32)7.2.1硬件看门狗 (32)7.2.2软件看门狗 (33)7.3硬件方式看门狗MAX831L (33)7.3.1 MAX813L的封装及引脚功能 (33)7.3.2 MAX813L与单片机AT89C51接口电路图 (35)7.3.3 MAX813L对直流的监控作用 (35)第八章报警电路: (36)8.1声音报警电路 (36)第九章软件设计思路及方案 (37)9.1软件设计概述 (37)9.2 软件设计方案 (37)9.2.1 主程序框图及程序编程 (37)9.2.2 按键框图及程序编程 (46)9.2.3 显示程序框图及程序编程 (49)9.2.4、报警框图及程序编程 (52)第十章单片机软件和硬件抗干扰设计 (54)10.1抗干扰的设计原则 (54)10.1.1干扰的来源: (54)10.2 软件抗干扰设计 (54)10.3硬件抗干扰的设计 (55)第十一单片机应用系统调试和维护 (56)11.1 系统调试 (56)11.1.1硬件调试 (56)11.1.2软件调试 (56)11.1.3计算程序的调试方法 (57)11.1.4综合调试 (57)11.2系统维护和维修 (57)11.2.1 故障形成的原因 (57)11.2.2 系统自检程序 (58)第十二章打印机的设计 (59)12.1 P-μP-40/16A微型打印机的接口信号 (59)12.2 TP-μP-40/16A微型打印机与单片机的连接 (59)12.3 打印机程序编程 (60)总结 (62)参考文献: (63)致谢 (63)第一章概述1.1单片机的发展单片微型计算机(简称单片机)也叫做微型控制器,自从20世纪70年代问世以来,得到了快速发展,从早期的8位机到现在的32位机,其硬件资源和软件资源在不断丰富与完善。
MCS-51单片机“看门狗”软件设计的两种方法010903
为了减少外围器件,可以采用微处理机内部闲置的定时/计数器,配合以适当的程序就可以方便地构成“看门狗”,在PC异常时能够及时有效地强制“软复位”而恢复系统的正常运行。
2.1 基本原理
微处理机片内的一个定时器单元接收内部时钟提供的稳定脉冲,当此定时器溢出(加法型)或者为零(减法型)时提出中断请求;对应的中断服务程序使PC回到初始化程序的第一行,从而实现强制性“软复位”。程序正常运行时,软件每隔一定的时间(小于定时器的溢出周期)给定时器清零或置数,即可预防溢出中断而引起的误复位。例如:W77E58型单片机,兼容51系列单片机,它有一个很重要的特点,就是能提供一个看门狗定时器。
uchar WDTmainCount;
uint WDTintCount;
void main(void)
{
EA=0;
WDTmainCount=0;
WDTintCount=0;
//其它初始化
……
EA=1;
While(1)
{
……
WDTintCount++;
if (WDTintCount<INT_COUNT)
为了解决上述问题,可以在中断服务程序中和主程序中加上“喂狗”指令,但不能把取反指令直接放到中断服务程序和主程序中去,笔者的解决办法是把“喂狗”指令分开(如:P10=1和P10=0),然后分别插入到中断服务程序和主程序中,注意,在主程序中只能用其中一条,中断服务只能用另一条,不能混合使用
用C51举例如下:
If (WDTmainCount<MAIN_COUNT)
{
/*“喂狗”*/
////////////////////
TA=0xaa;
第2章 MCS-51单片机系统结构
对外部时钟的占空比要求不高,但要有一定的幅度.
2.3.2
时钟电路
C1
XTAL1
NC
XTAL1
MCS-51单片机
MCS-51单片机 外部振荡信号
XTAL2
C2
XTAL2
内部振荡方式Biblioteka 外部振荡方式2.3.3
复位电路
所有单片机在启动运行时都需要复位,以使CPU和系统中的其 它部件处于一个确定的初始状态,并从这个状态开始工作。
2.4.1
程序存储器
ISP技术(下载):在单片机上固化一些用户看不到的程序,单片 机上电后自动运行这些程序,并检查单片机的工作模式。当单片机处 于下载模式时,这些程序就控制单片机经由串口从PC机接收用户应用 程序,并将之写入程序存储器,这个过程称为下载;若单片机处于正 常工作模式,就按普通方式从程序存储器中取出指令来运行。
2.3.3
复位电路
典型的复位电路:
(1)上电自动复位电路 (2)人工复位电路
(3)看门狗复位电路
2.3.3
复位电路
+5V Vcc
+5V Vcc
C
MCS-51单片机 RST
R2 MCS-51单片机 RST
R1
GND
GND
RC上电自动复位电路
人工复位电路
51单片机的看门狗
“看门狗〞概念及其应用在由单片机构成的系统中,由于单片机的工作有可能会受到来自外界电磁场的干扰,造成程序的跑飞,从而陷入死循环,程序的正常运行被打断,由单片机控制的系统便无法继续工作,这样会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进展实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗〞(watch dog)。
参加看门狗电路的目的是使单片机可以在无人状态下实现连续工作,其工作过程如下:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过单片机的程序控制,使它定时地往看门狗芯片的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,给看门狗引脚送电平的程序便不能被执行到,这时,看门狗电路就会由于得不到单片机送来的信号,便将它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,从而单片机将从程序存储器的起始位置重新开场执行程序,这样便实现了单片机的自动复位。
通常看门狗电路需要一个专门的看门狗芯片连接单片机来实现,不过这样会给电路设计带来复杂,STC单片机内部自带有看门狗,通过对相应特殊功能存放器的设置就可实现看门狗的应用,STC89系列单片机内部有一个专门的看门狗定时器存放器,Watch Dog Timer 存放器,其相应功能见下个知识点。
看门狗定时器存放器(WDT_CONTR)STC单片机看门狗定时器存放器在特殊功能存放器中的字节地址为E1H,不能位寻址,该存放器用来管理STC单片机的看门狗控制局部,包括启停看门狗、设置看门狗溢出时间等。
单片机复位时该存放器不一定全部被清0,在STC下载程序软件界面上可设置复位关看门狗或只有停电关看门狗的选择,大家根据需要可做出适合自己设计系统的选择。
其各位的定义如表4.2.1所示。
表1看门狗定时器存放器(WDT_CONTR)EN_WDT:看门狗允许位,当设置为“1〞时,启动看门狗。
C51单片机看门狗程序优化设计
C51单片机看门狗程序优化设计作者:窦群来源:《中国新技术新产品》2013年第14期摘要:影响单片机构的微型计算机系统正常运作的原因很多。
比如外界电磁场干扰导致微型计算机程序运行不稳定,从而导致程序的不合理运行,从而导致了运作环境的不稳定,不利于单片机控制系统的正常运行。
为了实现单片机运行状态的良好监控,我们需要看门狗进行监控,确保其单片机程序的正常运行。
关键词:看门狗;程序设计;管理深化;方案优化中图分类号:TJ43 文献标识码:A经济的发展,促进了科学技术的不断延伸,C51系统的单片机也在不断的发展,这大大满足了实际工作的需要,也不可避免的带来了一些弊端。
比如单片及芯片的抗干扰现象,这种现象不利于智能型仪表单片机系统的稳定运行。
本文就看门狗硬件电路及其设计方案展开分析,通过采取相应的措施,解决问题。
1关于看门狗的电路系统分析在实际工作中,看门狗的电路系统的应用范围是比较广泛的,它实现了单片机系统的内部相关环节的稳定运行,确保了无人监控下的程序的正常运作。
看门狗电路系统的正常运行,离不开看门狗芯片与单片机的I/O引脚环节的正常运作。
这就需要我们针对这一环节进行具体分析,I/O引脚环节的稳定性决定了看门狗系统的正常运行,该环节如果受到内外因素的干扰,是极易导致程序的不正常发展的,容易使系统陷入不良的循环中。
为此我们要实现看门狗的引脚程序环节的稳定运行,从而保证单片机的有效复位,这样保障了程序的顺利执行,保证单片机的自动复位。
(1)为了保证看门狗电路系统的稳定运行,我们要进行看门狗电路设计方式的深化,它主要包括两种环节,硬件看门狗设计环节与软件看门狗设计环节。
前者的正常运行,离不开对定时器的有效应用,从而确保主程序的有效监控,在主程序的运作过程中,我们要确保定时器的及时复位,避免下序环节出现运行故障。
软件看门狗技术模式与硬件看门狗有类似之处,它通过对软件的利用,实现程序的稳定运行。
比如对51单片机的定时器的应用。
KeilC51的软件看门狗系统设计
范立南 1 李震 1,2 周胜来 1 李荃高 1
(1.沈阳大学信息工程学院,辽宁 沈阳 110044;
2.东北大学信息科学与工程学院,辽宁 沈阳 110006)
摘要:本文介绍了一种基于 Keil C51 环境的软件看门狗设计方法。通过设置程序、喂狗程
序和中断服务程序的有效配合,解决软件模块的稳定性问题。设置程序在模块开始处对看门
enhance the stability of software modules, especially for the software which has a sequential structure.
Keywords:software module;watch dog; Keil C51
0 引言 单片机在工业生产中已经被广泛应用,但由于其工作现场常常受到大功率器件干扰、电
when software module runs to end.T0 interrupting serve program monitors software module, T1 interrupting serve
program monitors T0 counter,and setting program monitors T0 and T1.This cycling monitoring system can
4
} 在 MODULE2()程序段中使用以上所说的 WD_SET()和 WD_FOOD_SET()程序,并在上 述中断服务程序中将 MODULE()替换为 MODULE_ALL(),这样无论系统受到什么干扰,程 序总会运行到最末尾位置。如果需要循环到程序的开头位置,可以在最末尾位置处通过 I/O 口线向 RESET 引脚发出信号,重新复位单片机。 如果想在一个系统中使用两个不同的看门狗,可以用两个不同的定时器,用第三个定 时器监视前两个定时器的工作。设定两套相应的看门狗设置程序、喂狗程序和看门狗关闭程 序,分别应用到不同的程序段。以 AT89C52 为例,可以用 T1、T2 监视不同的程序模块, 而用 T0 监视 T1、T2。但要注意的是两套系统的嵌套,避免调用时出现混乱。 4 结束语 在笔者开发的智能小车中,应用了上述方法,并取得了很好的效果。所设计的智能小车 结构框图如图 5 所示,通过 AT89C52 单片机实现对各个传感器数据的收集,通过对数据的 处理,使单片机控制电机和显示模块输出。
软件看门狗
看门狗,又叫 watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT定时超过,就回给出一个复位信号到MCU,是MCU复位.防止MCU死机.看门狗的作用就是防止程序发生死循环,或者说程序跑飞。
工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。
所以在使用有看门狗的芯片时要注意清看门狗。
硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。
那么定时时间到后就会使单片机复位。
常用的WDT芯片如MAX813 ,5045, IMP 813等,价格4~10元不等.软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。
我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。
对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1的定时中断就会使单片机复位。
在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。
而T1的中断正常与否我们再由T0定时中断子程序来监视。
这样就够成了一个循环,T0监视T1,T1监视主程序,主程序又来监视T0,从而保证系统的稳定运行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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计时50ms。
2)当定时达50ms时,定时器1产生溢出中断,溢出中断服务程序开始工作,将看门狗标志num加1。
当num的值等于100时,说明看门狗定时器已经计时5s,此时,单片机I/O端口输出高电平,对程序进行复位。
3)在此过程中,喂狗代码将被穿插于程序中循环体末尾。
当循环体结束时,喂狗代码执行,关闭定时器1、清空num并重新初始化定时器设置。
若循环体进入死循环,喂狗代码无法执行,num将一直累加至100,此时程序复位。
注:喂狗代码放置位置可根据num预计数值进行调整:当num门限值较小,即看门狗计数时间较短时,喂狗代码可放于程序中各循环体之后或均匀分布于整个主程序中。
当num门限值较大,即看门狗计数时间较长时,喂狗代码可放于程序主循环体末尾。
但是需注意看门狗计数时间必须长于正常工作时间,以免非正常复位。
软件设计流程图:以下为三部分详细程序设计“看门狗“定时器设置程序:“看门狗“定时器设置程序对定时器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; 3C喂狗代码程序清单(c语言)如下:TR1=0; //喂狗代码,关定时器1TL1=0xB0; //重新设置定时器初值TH1=0x3C;TF1=0; //定时器1溢出中断标志清零TR1=1; //开定时器1完整测试程序清单完整测设程序分为两部分,以一个正向运行一次的流水灯程序和逆向无限循环流水灯程序组成。
在正向进行一次流水灯程序时,看门狗代码不会复位单片机;逆向无限循环流水灯程序时,延时5s,看门狗复位单片机。
完整测试程序清单(c语言)如下:#include ""#include ""unsigned int i,num; //设置变量unsigned char temp;void delay(unsigned int t); //声明delay函数int main(){num=0; //看门狗复位标志P1=~(0x00); //将P1口赋值为0TMOD=0x10; //设置TMOD寄存器,定时器1设为方式1 TL1=0xB0; //设置定时器初值低8位TH1=0x3C; //设置定时器初值高8位,设置为计时50ms ET1=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; //喂狗代码,关定时器1 TL1=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); //输出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 Q003EMOV 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,#00HSJMP 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,R7JNZ Q0092DEC R6SJMP Q0092Q00AA: RETQ00AB: MOV R0,#7FHCLR AQ00AE: MOV @R0,ADJNZ R0,Q00AEMOV SP,#0CHLJMP Q001E(2)硬件部分设计原理因C51单片机复位端RST接收到一正脉冲时,单片机复位,所以引脚的复位信号(输出由低电平变为高电平)应通过一电容与电阻组成的微分电路,将方波转化为脉冲波。
整个复位电路包括上电复位、手动复位和看门狗复位三部分,如图:。