C51单片机看门狗电路及程序设计方案
- 格式:doc
- 大小:78.00 KB
- 文档页数:14
中国科学技术大学业余无线电协会编目 录§1 前言 (1)§2 单片机简介 (2)2.1 数字电路简介 (2)2.2 MCS-51单片机简介 (2)2.3 Easy 51 Kit Pro简介 (5)2.4 Easy 51 Kit Pro电路功能分析 (5)§3 MCS-51单片机的C语言编程 (8)3.1 汇编语言 (8)3.2 建立你的第一个C项目 (8)3.3 生成hex文件 (12)3.4 Keil C语言 (14)3.5 单片机I/O (18)3.6 中断 (25)3.7 定时器/计数器 (27)3.8 定时器的应用举例 (29)3.9 外部中断 (34)3.10 串行通信 (38)3.11 定时器2 (43)3.12 看门狗 (47)3.13 空闲模式和掉电模式 (50)§4 MCS-51单片机C语言编程应用进阶 (51)4.1 扫描式键盘 (51)4.2 EEPROM芯片AT93C46的读写 (55)4.3 Keil C的高级使用 (63)§5 编写高质量的单片机C程序 (64)5.1 文件结构 (64)5.2 程序的版式 (66)5.3 单片机程序命名规则与变量选择 (70)5.4 表达式和基本语句 (73)5.5 函数设计 (77)5.6 单片机程序框架 (79)附图:Easy 51 Kit Pro电路图(最小系统板) (80)附图:Easy 51 Kit Pro电路图(学习板) (81)§1 前言什么是单片机,目前还没有一个确切的定义。
普通认为单片机是将CPU、RAM、ROM、定时器/计数器以及输入输出(I/O)接口电路等计算机主要部件集成在一块芯片上,这样所组成的芯片级微型计算机称为单片微型计算机(Single Chip Microcomputer)。
简称为单片微机或单片机。
利用单片机程序,可以实现对硬件系统的小型化的智能控制。
单片机自动清洁机器人设计(电路图+原理图+流程图+源程序)-课程设计单片机自动清洁机器人设计最近在电视看到一款能够遥控移动的吸尘器,圆形的和遥控汽车差不多,我感觉到如果再不把自己的想法写出来,自己的创意会被很多人实现,我几年前就想设计一款能够打扫卫生的机器人,直到看到电视里的那个东西,我意识到,我要自己做一个出来。
移动机构是清洁机器人的主体,决定了清洁机器人的运动空间,一般采用轮式结构。
传感器系统一般采用超声波传感器、红外光电传感器、接触传感器等构成多传感器系统。
随着近年来控制技术、传感技术以及移动机器人技术等技术的迅速发展,智能清洁机器人控制系统的研究和开发已具备了坚实的基础和良好的发展前景。
吸尘系统在原理上与传统立式吸尘器相同,主要是在结构设计上更多考虑结构尺寸、集成度以及一些辅助机构的合理布置和利用,以此来提高能源利用率和工作效率。
现在的智能清洁机器人通过软硬件的合理设计,使其能够自动避开障碍物,实现一般家居环境下的自主清洁工作。
它的主要功能有: 1 能够自动熟悉地形,了解房间布局,感知自己的方位,记录和分析环境卫生状况,容易脏的地方多打扫,干净的地方少打扫,节省能源。
2能够自动补充能量。
当检测到电源不足时,自动找到电源,并充电。
充电结束自动专为待机状态。
3当垃圾装满后自动打包,并将垃圾放到主人指定的地点。
4能够检测主人是否在家,只有当主人不在家时,才出来打扫卫生,主人在家时机器人休息。
保证不影响主人的正常生活。
可行性分析:1应用超声波测距和滚轮定位就可以测到自己的位置,给据吸入垃圾量的多少,就可以分析出,那干净那里脏.2应用简单的空中加油技术就可以把自动充电搞定。
检测电源能量多少,和是否充满就更简单了.3垃圾打包只用简单的打包技术就可以解决.4机器人上装上热释红外探测器就知道主人在不在了..5剩下的功能,好多玩具里都有,只要把吸尘器和遥控车结合起来就搞定了1 系统整体方案设计1.1 制作清洁机器人的任务与要求:任务: 清洁机器人在场地上任意运动并吸尘,当遇到障碍物时,可自主避开障碍物绕道继续运动(轨迹由团队设定)。
基于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设计说明基于单⽚机的智能家居控制系统设计是在指导⽼师给出的任务书并在其指导下完成的。
单片机复位电路设计一、概述影响单片机系统运行稳定性的因素可大体分为外因和内因两部分:1、外因射频干扰,它是以空间电磁场的形式传递在机器内部的导体<引线或零件引脚)感生出相应的干扰,可通过电磁屏蔽和合理的布线/器件布局衰减该类干扰;电源线或电源内部产生的干扰,它是通过电源线或电源内的部件耦合或直接传导,可通过电源滤波、隔离等措施来衰减该类干扰。
2、内因振荡源的稳定性,主要由起振时间频率稳定度和占空比稳定度决定。
起振时间可由电路参数整定稳定度受振荡器类型温度和电压等参数影响复位电路的可靠性。
二、复位电路的可靠性设计1、基本复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
图1所示的RC复位电路可以实现上述基本功能,图3为其输入-输出特性。
但解决不了电源毛刺<A 点)和电源缓慢下降<电池电压不足)等问题而且调整 RC 常数改变延时会令驱动能力变差。
左边的电路为高电平复位有效右边为低电平 Sm为手动复位开关Ch可避免高频谐波对电路的干扰。
图1 RC复位电路图2所示的复位电路增加了二极管,在电源电压瞬间下降时使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。
图3所示复位电路输入输出特性图的下半部分是其特性,可与上半部比较增加放电回路的效果图2 增加放电回路的RC复位电路使用比较电路,不但可以解决电源毛刺造成系统不稳定,而且电源缓慢下降也能可靠复位。
图4 是一个实例当 VCC x (R1/(R1+R2> > = 0.7V时,Q1截止使系统复位。
Q1的放大作用也能改善电路的负载特性,但跳变门槛电压 Vt 受 VCC 影响是该电路的突出缺点,使用稳压二极管可使 Vt 基本不受VCC影响。
见图5,当VCC低于Vt(Vz+0.7V>时电路令系统复位。
No:毕业设计说明书题目:基于51单片机简易计算器的设计系别:自动化工程系专业:机电一体化技术*名:***学号: ************指导老师:***职称:副教授2013年6月简易计算器是一种非常广泛日常工具,对现代社会越来越流行。
它可以进行一些简易的计算。
本系统提供详细的时、分、秒、年、月、日的时间信息,同时还可进行简易的计算信息,还具有时间校准等功能。
该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
本系统硬件部分由AT89S52单片机、LCD1602液晶屏、键盘、指示灯系统等部分构成。
软件部分在keil环境下用C51语言编写,包括时间设置、时间显示、简易计算显示等。
关键字:AT89S52;液晶屏LCD1602;键盘Simple calculator is a very broad everyday tool for modern society is more and more popular. It can carry on some simple calculation. This system provides detailed, minutes and seconds, year, month, day time information, and at the same time but also for simple calculation information, but also has time calibration etc. Function. This circuit AT89S52 SCM as the core, power consumption is small, can be in 3 V of low-pressure work, voltage can choose 3 ~ 5 V voltage power supply. This system hardware part AT89S52 SCM by LCD1602 LCD screen, keyboard, indicator system, part. Software in under the environment of keil with C51 language, including time set, time display, simple calculation shows, etc. In the programming process found on existing knowledge to finish writing task difficult, the teachers and students of help to finish the program part of the code.Keyword:AT89S52;AT89S52 devices; LCD1602 LCD screen; keyboard引言众所周知单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
T89C2051是精简版的51单片机,精简掉了P0口和P2口,只有20引脚,但其内部集成了一个很实用的模拟比较器,特别适合开发精简的51应用系统,毕竟很多时候我们开发简单的产品时用不了全部32个I/O口,用AT89C2051更合适,芯片体积更小,而且AT89C2051的工作电压最低为2.7V,因此可以用来开发两节5号电池供电的便携式产品。
本文以ATMEL公司生产的51系列家族的AT89S51和AT89C2051两种单片机来讲解,两种单片机是目前最常用的单片机,其中 AT89S51为标准51单片机,当然其功能比早期的51单片机更强大,支持ISP在系统编程技术,内置硬件看门狗。
一、AT89S51单片机引脚介绍AT89S51有PDIP、PLCC、TQFP三种封装方式,其中最常见的就是采用40Pin 封装的双列直接PDIP封装,外形结构下图。
芯片共有40个引脚,引脚的排列顺序为从靠芯片的缺口(见右图)左边那列引脚逆时针数起,依次为1、2、3、4。
40,其中芯片的1脚顶上有个凹点(见右图)。
在单片机的40个引脚中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程I/O引脚32根。
1、主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线2、外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端3、控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
芯片实物图片芯片引脚功能4、可编程输入/输出引脚(32根)AT89S51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
目录摘要 (1)Abstract (2)1.绪论 (3)1.1设计数据采集及其频谱分析电路的意义 (3)1.2数据采集及其频谱分析的主要功能 (3)2.数据采集硬件电路设计 (4)2.1方案选择及设计思想 (4)2.2设计方案的框图 (5)2.3工作原理 (5)2.4电路中主要芯片的引脚对应的功能 (6)2.4.1主控芯片AT89C51 (6)2.5原理图及连接关系 (8)2.5.1数据输入模块 (8)2.5.2模数转换模块 (8)2.5.3 主控电路 (9)3.数据采集软件设计 (11)3.1系统模块层次图 (11)3.2程序流程 (11)3.3程序源代码 (11)4.频谱分析硬件电路设计 (15)4.1方案论证 (15)4.2频谱分析硬件电路设计 (17)4.2.1数据采集 (17)4.2.2运算核心设计 (17)4.2.3控制核心设计 (18)4.2.4示波器显示部分设计 (20)4.2.5供电设计 (21)5.频谱分析软件电路设计 (24)5.1单片机部分 (24)5.2 FPGA部分 (25)5.3 测试说明 (28)5.3.1单频信号的频谱测试 (28)5.3.2调幅信号的频谱测试 (28)5.3.3调频信号的频谱测试 (28)5.3.4信号识别准确度测试 (29)5.3.5测试结果分析 (29)总结 (30)致谢 (32)摘要本毕业设计数据采集部分采用的是单片机AT89C51和模数转换芯片ADC0808采集系统。
用电位器模拟输入电压,经过AT89C51控制ADC0808将输入模拟电压转换成数字信号,频谱分析部分是基于外差原理的数字式频谱分析,系统采用XlinxVIRTEX-II100万门的FPGA,将本振扫频、混频、放大、低通滤波、提取峰值等工作全部通过数字化实现。
控制方面,有凌阳16位单片机SPCE061A作为控制核心,实现人机接口和最后频谱图的模拟示波器显示。
本论文主要描述了硬件设计部分和软件设计部分,硬件部分更是详细分析了本数据采集及其频谱分析的各个部分的电路原理,以及各个模块之间的线路连接。
温度控制器的设计与制作一、功能要求设计并制作一个温度控制器,用于自动接通或断开室内的电加热设备,从而使室内温度达到设定温度要求,并能实时显示室内温度。
当室内温度大于等于设定温度时,控制器断开电加热设备;当室内温度比设定温度小2时,控制器接通电加热设备。
控温范围:0~51控温精度:≤1二、硬件系统设计1.硬件系统由七部分组成,即单片机及看门狗电路、温度检测电路、控制输出电路、键盘电路、显示电路、设置温度储存电路及电源电路。
(1)单片机及看门狗电路根据设计所需的单片机的内部资源(程序存储器的容量、数据存储器的容量及I/O口数量),选择AT89C51-24PC较合适。
为了防止程序跑飞,导致温度失控,进而引起可怕的后果,本设计加入了硬件看门狗电路IMP813L,如果它的WDI脚不处于浮空状态,在1.6秒内WDI不被触发(即没有检测到上什沿或下降沿),就说明程序已经跑飞,看门狗输出端WDO将输出低电平到手动复位端,使复位输出端RST发出复位信号,使单片机可靠复位,即程序重新开始执行。
(注:如果选用AT89S51,由于其内部已具有看门狗电路,就不需外加IMP813L)(2)温度检测电路温度传感器采用AD590,它实际上是一个与绝对温度成正比的电流源,它的工作电压为4~30V,感测的温度范围为-550C~+1500C,具有良好的线性输出,其输出电流与温度成正比,即1μA/K。
因此在00C时的输出电流为273.2μA,在1000C时输出电流为373.2μA。
温度传感器将温度的变化转变为电流信号,通过电阻后转变电压信号,经过运算放大器JRC4558运算处理,处理后得到的模拟电压信号传输给A/D转换部分。
A/D转换器选用ADC0804,它是用CMOS集成工艺制成的逐次逼近型模数转换芯片,分辨率8位,转换时间100μs,基准电压0~5V,输入模拟电压0~5V。
(3)控制输出电路控制信号由单片机的P1.4引脚输出,经过光耦TLP521-1隔离后,经三极管C8550直接驱动继电器WJ108-1C-05VDC,如果所接的电加热设备的功率≤2KW,则可利用继电器的常开触点直接控制加热设备,如果加热设备的功率>2KW,可以继电器控制接触器,由接触器直接控制加热设备。
STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)stm32自带两个看门狗模块,独立看门狗IWDG和窗口看门狗WWDG。
看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。
看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号)。
看门狗主要作用是可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。
具体的实现步骤:开启看门狗,设置减计数的初始值,当计数值达到超时值时,产生MCU 复位,此时本来运行的程序终止重新启动单片机(发生了故障)。
在使用了看门狗之后,在正常运行的程序中加入喂狗的程序,即采用定时器的方式每隔一段时间进行一次喂狗重置计数装载值,这样,只要程序正常运行,没有出现故障或软件错误,就会不断的定时喂狗,从而不会使计数值达到超时值产生复位。
一、独立看门狗IWDG:1、IWDG主要性能1)自由运行的递减计数器2)时钟由独立的RC振荡器提供(可在停止和待机模式下工作)3)看门狗被激活后,则在计数器计数至0x000时产生复位2、IWDG功能描述在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。
当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。
无论何时,只要键寄存器IWDG_KR中被写入0xAAAA,IWDG_RLR中的值就会被重新加载到计数器中从而避免产生看门狗复位。
void IWDG_ConfiguraTIon(void)。
8脚51单片机介绍及头文件STC15F104ESTC的8脚单片机有直插和SOP两种形式的封装,其中有6个IO口,剩下2个是VCC和GND ,不需要带晶振内部自带有时钟发生电路,在此要说明这种型号的单片机有专用的烧录软件,在宏晶官网都有下载。
这6个IO口实际上是我们普通单片机上的P3口,实际编程时也是使用P3.X来实现IO口操作。
唯一的不同就是没有硬件的串口,需要用到定时器来模拟(这点不好),但是下载电路和STC的串口下载电路时一样的。
不做修改。
这个有点费解?下载时用到的是串口形式的下载电路,硬件上使用时却没有串口。
杯具啊!关于IO口的复用功能,除P3.1没有复用功能外,其他引脚均有复用功能。
分别是5个外部中断,3个时钟输出,一个复位输入。
芯片默认是不需要复位电路的,上电自复位的。
可以通过软件来选择引脚作为复位脚。
同时在烧录软件上可以选择低压复位。
手册上说的是8种。
软件上只显示了6种-不解???让人惊喜的是烧录软件上提供硬件开启看门狗功能。
还可以选择看门狗分频级数。
还是蛮方便的嘛。
程序又少了几句话。
最后要说一点的是该种单片机以E结尾的都有EEPROM喔。
例如我买的STC15F104E。
有了这种小的单片机,大家以后做点简单的玩意也不拍浪费了。
好东西。
支持一下!特附上修改过的STC15F04E 头文件/*STC15F104E单片机特殊功能寄存器头文件*/#ifndef __REG52_H__#define __REG52_H__/* BYTE Registers */sfr P3 = 0xB0;sfr PSW = 0xD0;sfr ACC = 0xE0;sfr B = 0xF0;sfr SP = 0x81;sfr DPL = 0x82;sfr DPH = 0x83;/*BIT5 LVDF 低压检测标记位只要VCC小于芯片门槛电压自动置1 需软件清0 同时也是低压检测中断标记位BIT1 PD 为1进入掉电模式硬件清0BIT0 IDL 为1进入空闲模式硬件清0*/sfr PCON = 0x87;sfr TCON = 0x88;sfr TMOD = 0x89;sfr TL0 = 0x8A;sfr TL1 = 0x8B;sfr TH0 = 0x8C;sfr TH1 = 0x8D;sfr IE = 0xA8;sfr IP = 0xB8;/* PSW */sbit CY = PSW^7;sbit AC = PSW^6;sbit F0 = PSW^5;sbit RS1 = PSW^4;sbit RS0 = PSW^3;sbit OV = PSW^2;sbit P = PSW^0; //8052 only/* TCON */sbit TF1 = TCON^7;sbit TR1 = TCON^6;sbit TF0 = TCON^5;sbit TR0 = TCON^4;sbit IE1 = TCON^3;sbit IT1 = TCON^2;sbit IE0 = TCON^1;sbit IT0 = TCON^0;/* IE */sbit EA = IE^7;sbit ELVD = IE^6; //低压检测中断sbit ET1 = IE^3;sbit EX1 = IE^2;sbit ET0 = IE^1;sbit EX0 = IE^0;/* IP */sbit PT1 = IP^3;sbit PX1 = IP^2;sbit PT0 = IP^1;sbit PX0 = IP^0;/* P3 */sbit RD = P3^7;sbit WR = P3^6;sbit T1 = P3^5;sbit T0 = P3^4;sbit INT1 = P3^3;sbit INT0 = P3^2;sbit TXD = P3^1;sbit RXD = P3^0;/*IO口的设置寄存器四种模式P3M0 P1M10 0 与普通的IO口一样0 1 设置为强推挽模式1 0 设置为高阻输入模式1 1 设置为高漏输出模式*/sfr P3M0=0XB2;sfr P3M1=0XB1;/*AUXR寄存器BIT7 T0X12 定时器0速度为传统12倍BIT6 T1X12 定时器1速度为传统12倍*/sfr AUXR=0X8E;//不可以位寻址的/*CLK_DIV时钟分频寄存器控制系统时钟的分频数。
电子锁设计报告一,实验目的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秒被重新禁止。
此项功能方便用户使用。
摘要随着现代电子技术的发展,各种处理器在现代机械及电子测量领域中应用相当广泛。
单片机系统以其功能面广,扩展方式多等优点应用在多个领域。
单片机最小系统又是研究单片机相关设计的基础,因此对单片机最小系统的研究和设计具有广泛的现实意义。
本文以C8051F330为研究对象,设计一个具有串口通信,D/A转换,A/D转换等功能的最小系统。
然后运用Keil C51软件,对每个功能进行验证。
通过3.3V供电的低功耗增强型SOC单片机C8051F330和串口驱动芯片MAX3232相互配合,结合单片机的片上外设D/A,在载入验证程序后,能够在示波器上显示数/模转换的正弦和方波。
并且实现了与计算机串口通信进行数据的接收和发送。
经过软硬件结合调试证明本次设计的系统是合理可行的。
本文主要分以下几章进行论述。
第一章是原理及相关设计工具介绍;第二章是系统的硬件设计;第三章是系统的软件设计部分;第四章是系统调试与分析部分;第五章是结论与展望。
关键词:最小系统,C8051F330, MAX3232ABSTRACTWith the development of modern electronic technology, all kinds of processors application is quite widespread in the modern machinery and in the electronic surveying domain. The monolithic integrated circuit (SCM)system is also used in many domains, so the research and design of SCM system is very important. The SCM system's function surface is broad, and the expansion mode are many, and the SCM minimum system is the basis of the relevant design about SCM, so the study of this issue has the practical significanceIn this paper,It takes C8051F330 as the object of study,designs a minimum system including the hardware such as a C8051F330, serial, D / A, A / D,and so on. At the same time,it verifies the confirmation to each function using the Keil C51 software. 3.3V power supply of low-power enhanced SOC SCM C8051F330 and the serial microcontroller drive chip MAX3232 coordinate with each other, and then combine the on-chip D/A of the microcontroller peripherals, after writing down the proving program, it can show the sine and square by the oscilloscope after D/A conversion. System also achieve the communications functions of receiving and sending data with a computer serial port. After the final combination of hardware and software debugging it proved that the design is reasonable and feasible.This paper is divided into the following chapters to discussed. Chapter 1 is the first principle and related design tools introduced; Chapter 2 is the hardware design; Chapter 3 is the system software design; Chapter 4 is the system debugging and analysis; Chapter 5 is the conclusions and prospects.KEY WORDS:minimum system,C8051F330,MAX3232目录前言 (1)第1章原理 (3)1.1最小系统概述 (3)1.2最小系统的方案设计 (3)1.3相关器件介绍 (4)1.3.1 C8051F330介绍 (4)1.3.2 MAX3232介绍 (7)1.3.3 LM1117介绍 (8)1.4相关软件介绍 (9)1.4.1 电路设计软件PROTEL DXP介绍 (9)1.4.2 单片机开发软件Keil C51简介 (10)1.4.3 下载软件Silicon Laboratories IDE简介 (11)第2章硬件设计 (12)2.1系统硬件功能 (12)2.2硬件总体设计 (12)2.3硬件详细设计 (14)2.3.1 电源电路设计 (14)2.3.2 单片机控制电路设计 (14)2.3.3 下载口电路设计 (17)2.3.4 串口通信电路设计 (18)2.3.5 LED电路设计 (18)2.3.6 扩展IO口电路设计 (19)2.3.7硬件电路抗干扰性设计 (19)2.4系统硬件原理图设计 (21)2.5系统硬件PCB图设计 (21)第3章软件设计 (23)3.1系统软件功能 (23)3.2软件总体设计 (23)3.3软件详细设计 (24)3.3.1 A/D验证程序设计 (24)3.3.2 LED验证程序设计 (26)3.3.3 D/A验证程序设计 (27)3.3.4 串口接收发送验证程序设计 (30)3.4系统软件代码 (31)第4章系统调试及分析 (32)4.1调试内容与目的 (32)4.1.1 调试目的及内容 (32)4.1.2 调试环境与使用仪器 (33)4.1.3 调试注意事项 (33)4.2调试步骤设计 (33)4.2.1 检查测试 (33)4.2.2 硬件检测与调试 (34)4.2.3 软件检测与调试 (34)4.3调试过程与结果分析 (34)4.3.1 调试过程 (34)4.3.2 调试结果分析 (35)4.4产生的问题与分析 (35)4.5设计结果分析 (36)4.5.1 验证结果 (36)4.5.2 系统结果分析 (38)第5章结论与展望 (39)5.1 结论 (39)5.2 展望 (39)参考文献 (40)致谢 (42)附录Ⅰ硬件原理图 (43)附录Ⅱ硬件PCB图 (44)附录Ⅲ程序代码 (45)附录Ⅳ实物图 (58)前言单片机系统的发展很快,在电子行业运用的十分广泛。
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。设
START 主程序 定时器1 定时器1设置 开定时器1 寄存器累加 溢出中断 中断服务程序 num+1 num=100? 复位 循环 喂狗代码
Yes No 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设为方式1 TL1=0xB0; //设置定时器初值低8位 TH1=0x3C; //设置定时器初值高8位,设置为计时50ms ET1=1; //开定时器1溢出中断 EA=1; //开总中断控制 TF1=0; //定时器1溢出中断标志清零 TR1=1; //开定时器1
1.4溢出中断服务程序: 溢出中断服务程序为定时器1溢出中断服务程序,每执行一次,num加1,并判断num是否达到100,即计时5s。若已达到5s,I/O口P1.0输出复位信号。 溢出中断服务程序清单(c语言)如下: void int_T1() interrupt 3 using 3 //定时器1溢出中断服务程序 { num++; //每溢出一次标志加1 if (num==100) //当标志等于100时,即计时5s { P1=~(0x01); //P1.0输出1 } }
1.5喂狗代码: 喂狗代码主要功能为暂时关定时器1,定时器1寄存器清零,看门狗标志num清零和重新开启定时器1. 喂狗代码程序清单(c语言)如下: TR1=0; //喂狗代码,关定时器1 TL1=0xB0; //重新设置定时器初值 TH1=0x3C; TF1=0; //定时器1溢出中断标志清零 TR1=1; //开定时器1
1.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口赋值为0 TMOD=0x10; //设置TMOD寄存器,定时器1设为方式1 TL1=0xB0; //设置定时器初值低8位 TH1=0x3C; //设置定时器初值高8位,设置为计时50ms ET1=1; //开定时器1溢出中断 EA=1; //开总中断控制 TF1=0; //定时器1溢出中断标志清零 TR1=1; //开定时器1
temp=0x01; //流水灯状态标志 for(i=0;i<8;i++) //流水灯程序(1) { P0=~temp; //点亮P0口对应的LED delay(100); temp<<=1; //点亮的LED灯前移一位 }
TR1=0; //喂狗代码,关定时器1 TL1=0xB0; //重新设置定时器初值 TH1=0x3C; TF1=0; //定时器1溢出中断标志清零 TR1=1; //开定时器1
while(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++; //每溢出一次标志加1 if (num==100) //当标志等于100时,即计时5s { P1=~(0x01); //P1.0输出1 } } 完整测试程序清单(c语言反汇编版)如下: Q0000: LJMP Q00AB Q0003: PUSH ACC INC 0AH MOV A,0AH JNZ Q000D INC 09H Q000D: XRL A,#64H ORL A,09H JNZ Q0016 MOV P1,#0FEH Q0016: POP ACC RETI NOP NOP LJMP Q0003 Q001E: CLR A MOV 09H,A MOV 0AH,A