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

51单片机最小系统原理图

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 的电阻普通的电木万用板好了,有了这些东西,我们就可以把它们组合到一起做成我们的最小系统了:〕有了这些东西我们怎么焊接丫?不用着急,过一会我们把原理图给大家画出来大家就会了。

51单片机设计电子锁密码锁含代码

51单片机设计电子锁密码锁含代码

电子锁设计报告一,实验目的1. 学习8051定时器时间计时处理,键盘扫描及LED数码管显示的设计方法。

2. 设计任务及要求利用实验平台上8个LED数码管,设计带有报警功能的可掉电保存的电子密码锁。

3.通过本次实验,加强对所学知识的理解,增强编程能力及实践能力。

二,实验要求A.基本要求:1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。

2:可以自行设定或删除8位密码,能够掉电保存。

3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。

4:自由发挥其他功能.5:要求有单片机硬件系统框图,电路原理图,软件流程图B.拓展部分:无三,实验基本原理单片机密码锁是集计算机技术、电子技术、数字密码技术为一体的机电一体化高科技产品,具有安全性高,使用方便等优点。

本系统考虑到单片机密码锁成本及体积因素,在设计单片机密码锁部分时,以AT89S52单片机为核心,24C04、LED等构成外围电路。

本系统单片机密码锁硬件部分结构简单、成本低,软件部分使用电子加密提高锁的安全性,具有比较好的市场前景。

同时,由于本电子密码锁可以实现掉电保存,而且可以自行设计或者删除8位密码,所以具有较高的实用价值。

本密码锁采用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led 发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led 发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。

此项功能方便用户使用。

C51单片机看门狗程序优化设计

C51单片机看门狗程序优化设计

C51单片机看门狗程序优化设计作者:窦群来源:《中国新技术新产品》2013年第14期摘要:影响单片机构的微型计算机系统正常运作的原因很多。

比如外界电磁场干扰导致微型计算机程序运行不稳定,从而导致程序的不合理运行,从而导致了运作环境的不稳定,不利于单片机控制系统的正常运行。

为了实现单片机运行状态的良好监控,我们需要看门狗进行监控,确保其单片机程序的正常运行。

关键词:看门狗;程序设计;管理深化;方案优化中图分类号:TJ43 文献标识码:A经济的发展,促进了科学技术的不断延伸,C51系统的单片机也在不断的发展,这大大满足了实际工作的需要,也不可避免的带来了一些弊端。

比如单片及芯片的抗干扰现象,这种现象不利于智能型仪表单片机系统的稳定运行。

本文就看门狗硬件电路及其设计方案展开分析,通过采取相应的措施,解决问题。

1关于看门狗的电路系统分析在实际工作中,看门狗的电路系统的应用范围是比较广泛的,它实现了单片机系统的内部相关环节的稳定运行,确保了无人监控下的程序的正常运作。

看门狗电路系统的正常运行,离不开看门狗芯片与单片机的I/O引脚环节的正常运作。

这就需要我们针对这一环节进行具体分析,I/O引脚环节的稳定性决定了看门狗系统的正常运行,该环节如果受到内外因素的干扰,是极易导致程序的不正常发展的,容易使系统陷入不良的循环中。

为此我们要实现看门狗的引脚程序环节的稳定运行,从而保证单片机的有效复位,这样保障了程序的顺利执行,保证单片机的自动复位。

(1)为了保证看门狗电路系统的稳定运行,我们要进行看门狗电路设计方式的深化,它主要包括两种环节,硬件看门狗设计环节与软件看门狗设计环节。

前者的正常运行,离不开对定时器的有效应用,从而确保主程序的有效监控,在主程序的运作过程中,我们要确保定时器的及时复位,避免下序环节出现运行故障。

软件看门狗技术模式与硬件看门狗有类似之处,它通过对软件的利用,实现程序的稳定运行。

比如对51单片机的定时器的应用。

KeilC51的软件看门狗系统设计

KeilC51的软件看门狗系统设计
基于 Keil C51 的软件看门狗系统设计
范立南 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 单片机实现对各个传感器数据的收集,通过对数据的 处理,使单片机控制电机和显示模块输出。

基于51单片机的刷卡门禁系统

基于51单片机的刷卡门禁系统

中图分类号:密级:UDC:编号:毕业设计设计题目名称:基于51单片机的刷卡门禁系统学生姓名:张贵专业名称:电子信息工程班级:电子11-1学制: 3学号:1150213119学历层次:专科指导教师:杨东评阅人:论文(设计)提交日期:2014年 5 月 31 日论文(设计)答辩日期:2014年 6 月 3 日江苏建筑职业技术学院二○一四年五月三十一日毕业设计成绩评定书专业、班级电子11-1 姓名张贵日期1、设计题目基于51单片机的刷卡门禁系统2、设计指导教师(签名)杨东3、设计评阅人(签名)评阅日期4、评定意见及成绩年月日本文详细介绍了刷卡门禁系统的硬件组成和系统的软件开发过程。

给出了刷卡门禁系统的电路原理图,以及主程序设计的设计框图和程序。

主要分析了单片机与FM1702高频读卡器频模块的接口电路、报警电路、门锁继电器电路、液晶12864电路以及单片机最小系统。

读卡器由读卡模块、单片机控制模块、射频天线以及智能IC卡组成。

读卡器能读写荷兰Philips公司的Mifare非接触式射频卡。

当有卡进入时,读卡器内数据后台通过单片机进行处理程序判断是不是合法IC卡,并且将卡号传送到液晶12864上显示。

读卡器的软件部分主要包括程序设计,包括询卡、选择卡片、读取卡片、判断IC 卡是否合法等。

读卡器采用内部集成有8K字节Flash程序存贮器的STC89C52单片机作控制器,系统完全采用SPI通信,其接口管脚少、连线简单,有利于缩小读卡器的体积。

关键词:门禁系统,FM1702, STC89C52,IC卡第一章绪论 (1)1.1门禁系统概括 (2)1.1.1门禁系统组成 (2)1.1.2门禁系统功能 (2)1.1.3门禁系统的发展过程 (2)1.1.4门禁系统的优越性 (3)1.1.5门禁系统的国内外现状 (3)1.2课题背景及意义 (4)第二章系统结构与设计原则 (5)2.1门禁读卡器 (5)2.2非接触式IC卡 (6)2.3智能门禁系统的设计原则 (7)2.4毕业设计要求 (8)2.5门禁系统模块 (9)第三章系统硬件电路设计 (10)3.1各模块选用的硬件介绍 (10)3.1.1 STC89C52单片机介绍 (10)3.1.2USB供电接口 (16)3.2 STC89C52的电路连接 (15)3.3 12864液晶显示屏的使用 (17)3.3.2刷卡模块 (18)3.4电子锁控制 (21)3.5报警模块 (22)3.6射频卡读卡器块的复位电路 (23)第四章读卡器的调试 (24)4.1各个模块硬件调试 (24)4.2单片机的调试 (24)第五章射频读卡器软件设置 (25)5.1寻卡 (25)5.2防冲突 (25)5.3选择卡片 ............................................................................................错误!未定义书签。

第5章80C51内核衍生型单片机芯片及应用

第5章80C51内核衍生型单片机芯片及应用
第5章 80C51内核衍生型单片机芯片及应用
第5章 MCS-51内核衍生型单片机芯片及应用
增强型MCS-51作内核的衍生型嵌入式单片机芯片品种很多: 8XC51RX(如P89C51RX、P89V51RD2、SST89E(V)XXRD2、 AT89C51RD2及AT89C51ED2)、LPC系列(如P87LPC76X系列、 P89LPC900系列、AT89LPC21X系列、W79E8XX系列、 STC12C54XX系列) ,以及Infeon的XC866与XC886芯片
P A N 2020/4/15
单片机原理与应用
第5章 80C51内核衍生型单片机芯片及应用
P A N 2020/4/15
图5-4 可编程计数器阵列PCA
单片机原理与应用
第5章 80C51内核衍生型单片机芯片及应用
5.4.1 PCA结构及控制
在P89C51RX中,为简化硬件结构,PCA单元电路内 五个计数模块共用一个16位加法计数器(CH和CL)作为 记时基准,计数脉冲来源由PCA模式寄存器CMOD的 CPS1、CPS0位决定,允许/禁止PCA计数器计数由PCA 控制寄存器CCON的CR位控制,如图5-5所示。
五个模块共用一个16位加法计数器(CH和CL),计数脉冲来源由
CMOD寄存器的CPS1、CPS0位决定:
CPS1、 CPS1、CPS0
计数脉冲源
00
0 0 内部时钟信号fosc/6(6时钟模式)或fosc/12(12时
钟模式)
01
0 1内部时钟信号fosc/2(6时钟模式)或fosc/4(12时钟
模式)
(
(可见,PCA模块最高计数频率比T0、T1、T2高了3倍
)
10
1 0 定时器T0的溢出脉冲。
  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引脚的复位信号(输出由低电平变为高电平)应通过一电容与电阻组成的微分电路,将波转化为脉冲波。

相关文档
最新文档