文档详情

基于.--单片机89C51的报警器和旋转灯

1332****573
实名认证
店铺
DOC
46KB
约12页
文档ID:156190409
基于.--单片机89C51的报警器和旋转灯_第1页
1/12

...wd...课程设计设计题目:基于单片机的报警器与旋转灯设计 学生姓名:周 颖指导教师: 高 峰二级学院: 机电工程学院专  业:电气工程及其自动化班  级: 11电气〔一〕班学  号:1104102019目录摘要II1 绪论 12 系统设计 2 2.1 设计方案论证 2 2.2 系统硬件设计 2 2.2.1 控制模块 2 2.2.2开关报警器模块 5 2.2.3旋转灯模块 5 2.2.4 硬件电路中器件选择 5 2.3 软件设计 8 2.3.1 主程序模块 8 2.3.2 中断程序 83 系统调试 10 3.1 软件调试 10 3.1.1 proteus软件仿真 10 3.1.2 程序 104 结论 13参考文献14基于单片机的报警器与旋转灯设计摘要报警器与旋转灯,是一种为防止或预防某事件发生所造成的后果,以声、光两种形式来提醒或警示我们应当采取某种行动的电子产品随着科技的进步,机械式报警器越来越多地被先进的电子报警器代替,经常应用于系统故障、安全防范、交通运输、医疗救护、应急救灾、感应检测等领域,与社会生产密不可分。

其通常具有以下几个优点:1〕光效节能:光效高、寿命长、节能环保;优良的芯电路设计,声音和声光两种工作模式任意转换,声音报警声强高达115分贝以上,穿透能力强2〕充电组,充放电性能稳定、容量高、自放电率低、节能环保3〕安全可靠:采用先进的光学软件和优化的构造密封设计,具有很强的环境适应性,转动安静平稳,经受强力的碰撞和冲击,确保元件可在恶劣的环境中长期稳定可靠的工作4〕使用方便:体积小、重量轻、携带方便,可采用台面放置、手提、磁力吸附等多种方式关键词:电子报警器;先进;单片机1 绪论报警器与旋转灯一般匹配探测器,应根据实际现场环境和用户的安全防范要求,合理的选择和安装各种类型的报警探测器,才能较好的到达安全防范的目的中选择和安装报警探测器不适宜时,有可能出现安全防范的漏洞,达不到安全防范的严密性,给入侵者造成可乘之机,从而给安全防范工作带来不应有的损失 报警探测器的灵敏度和可靠性是相互影响的合理选择报警探测器的探测灵敏度和采用不同的抗外界干扰的措施,可以提高报警探测器性能采用不同的抗干扰措施,决定了报警探测器在不同环境下的使用性能了解各种报警探测器的性能和特点,根据不同使用环境,合理配置不同的报警探测器是防盗报警系统的关键环节。

本课题的主要任务是设计采用单片机控制的报警器与旋转灯,要求通过外部中断0控制报警器和旋转灯报警器与P3.7口接,八个发光二极管分别接P2口当接外部中断0的开关按下时,报警器响,八个发光二极管顺时针方向旋转;当第二次按下开关时,报警器停顿和发光二级管熄灭设计报警器与旋转灯的硬件电路与软件控制程序,对硬件电路与软件程序分别进展调试2 系统设计2.1 设计方案论证采用40脚,片内带8kB Flash ROM 的ATC89C51单片机作为控制核心,开关模块和报警器模块接P3口,旋转灯模块接P2口,按以上系统构架设计,单片机端口资源刚好满足要求设计框图如图2-1所示P1口 P0口RST AT89C51P3口XTAL P2口 电源模块复位模块最小系统LED模块开关和报警器模块旋转灯模块图2-1 报警器与旋转灯系统构造图2.2 系统硬件设计基于单片机的报警器与旋转灯系统的电路原理图如图2-2所示系统由旋转灯模块、复位模块、开关报警器模块和电源模块四局部组成2.2.1 控制模块控制模块原理图如图2-3所示主控制器采用ATC89C51ATC89C51是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能CMOS 8位的微处理器。

在本设计中,P3口用于对报警器和旋转灯的控制,连接开关和蜂鸣器P2口用于对旋转灯的控制在控制模块里面,包含了时钟电路以及复位电路两局部图2-2 基于单片机的报警器与旋转灯系统电路原理图图2-3 控制模块原理图A.时钟电路ATC89C51内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端时钟可以由内部方式产生或外部方式产生内部方式的时钟电路如图2-4(a) 所示,在XTAL1和XTAL2引脚上外接定时元件,内部振荡器就产生自激振荡定时元件通常采用石英晶体和电容组成的并联谐振回路晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用外部方式的时钟电路如图2-4〔b〕所示,XTAL2接地,XTAL1接外部振荡器对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号 〔a〕内部方式时钟电路 〔b〕外部方式时钟电路图2-4 时钟电路B复位及复位电路a.复位操作复位是单片机的初始化操作其主要功能是把PC初始化为0000H,使单片机从0000H单元开场执行程序。

除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动b.复位信号及其产生RST引脚是复位信号的输入端复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上假设使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作整个复位电路包括芯片内、外两局部外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进展采样,然后才得到内部复位操作所需要的信号复位操作有上电自动复位相按键手动复位两种方式上电自动复位是通过外部复位电路的电容充电来实现的这样,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化按键手动复位有电平方式和脉冲方式两种其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的2.2.2 开关报警器模块开关控制电路的运行,报警器是运行中所显示的一种状态如图2-5所示图2-5 开关报警器模块在没有按键按下时,P3.7口输出的是高电平。

当某一层有键按下时,相应的端口引脚变为低电平蜂鸣器短脚接地,长脚直接接P3.7口2.2.3 旋转灯模块旋转灯电路由8个LED发光二极管和8个280Ω的电阻构成该电路设计比拟简单,但是要注意节点的电气连接如图2-6所示2.2.4 硬件电路中器件选择A. ATC89C51单片机STC89系列单片机是MCS-51系列单片机的派生产品它们在指令系统、硬件构造和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051为pin-to-pin兼容STC89系列单片机高速(最高时钟频率90MHz),低功耗,在系统/在应用可编程(ISP,IAP),不占用户资源本设计采用ATC89C51,它提供的功能标准如表2-1表2-1 ATC89C51功能标准兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能 ATC89C51引脚图如图2-7所示图2-6 旋转灯模块图2-7 ATC89C51a. 主电源引脚〔2根〕VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线b.外接晶振引脚〔2根〕XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端c.控制引脚〔4根〕RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。

ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令d.可编程输入/输出引脚〔32根〕ATC89C51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位〔8根引脚〕,共32根P0口〔Pin39~Pin32〕:8位双向I/O口线,名称为P0.0~P0.7P1口〔Pin1~Pin8〕:8位准双向I/O口线,名称为P1.0~P1.7 P2口〔Pin21~Pin28〕:8位准双向I/O口线,名称为P2.0~P2.7 P3口〔Pin10~Pin17〕:8位准双向I/O口线,名称为P3.0~P3.72.3 软件设计2.3.1 主程序模块系统主程序主要用于变量及其他部件的初始化,如系统的初始化,以便能够准确的进展相应的操作同时进展相应的功能键判断,从而实现特殊功能其相应的流程图2-8所示 开场按下开关,报警器旋转灯停顿初始化按下开关,报警器旋转灯启动 图2-8 报警器与旋转灯系统主程序流程图2.3.2 中断程序在相应的外部中断和定时器中断程序中,首先响应外部中断,再响应两个定时器中断,读取键值,旋转灯旋转,报警器响,在定时器重置初始值以后,再次外部中断返回。

中断程序的相应流程图如2-9所示外部中断0响应 开场定时器0、1重置初始中断返回旋转灯与报警器工作初始化参数图2-9 中断程序流程图3 系统调试3.1 软件调试 对软件先用仿真器进展了调试用仿真器运行正常后,再用Keil将程序烧到ATC89C51单片机中,进展了脱机调试3.1.1 proteus软件仿真使用proteus原理及仿真电路如图3-1所示图3-1 proteus原理及仿真图3.1.2 程序#include#include#define uchar unsigned char#define uint unsigned intsbit SPK=P3^7;uchar FRQ=0x00;//延时void DelayMS(uint ms){ uchar i; while(ms--) for(i=0;i<120;i++);}//INT0中断函数void EX0_INT() interrupt 0{ TR0=~TR0; //开启或停顿两定时器,分别控制报警器的声音和LED旋转 TR1=~TR1; if(P2==0x00) P2=0xe0; //开3个旋转灯 else P2=0x00; //关闭所有LED }//定时器0中断void T0_INT() interrupt 1{ TH0=0xfe; TL0=FRQ; SPK=~SPK;}//定时器1中断void T1_INT() interrupt 3{ TH1=-45000/256; TL1=-45000%256; P2=_crol_(P2,1);}//主程序void main(){ P2=0x00; SPK=0x00; TMOD=0x11; //T0、T1方式1 16位计数器 TH0=0x00; TL0=0xff; IT0=1; IE=0x8b; //开启0,1,3号中断 IP=0x01; //INT0设为最高优先 TR0=0; TR1=0; //定时器启停由INT0控制,初始关闭 while(1) { FRQ++; DelayMS(1); }}4 结论在大学期间,从接触单片机的课程开场,单片机就给我留下了神秘感。

不管是对课程的学习,还是心中对课程的看法,直到自己单独完成布置的单片机课程,自己的对单片机才有了实质性的了解 实验任务分配下来后,一开场确实很迷茫因为完全没有头绪,无从下手看这网页中搜索的浩瀚的资料,真是一个头两个大,也第一次体会到了长时间对这电脑屏幕痛苦的感觉 之后我静下心来,仔细挖掘这次实验的问题所在我所作的课题关键在于利用3个中断对LED灯的显示和按键触发的处理想通这些后我开场查阅相关资料,从芯片组成到C语言程序,开场深入的学习  从查阅彭伟的《单片机C语言程序设计实训100例》开场,到《最小系统的焊接要点》、《如何利用protel软件绘制原理图和pcb图》,我一步步去尝试,一次次和同学讨论解决自己存在的问题,最终将单片机课程完成通过这次实验,我认为学习的不仅仅是知识,更重要的是解决问题时坚毅不拔的精神,人不会被打败,只有被摧毁在求知的道路上我们不能轻易放弃,不能放纵退缩只有迎难而上,方能摘取胜利的果实!参考文献[1] 彭伟.单片机C语言程序设计实训100例—基于8051+Proteus仿真[M].北京:电子工业出版社,2010[2] 郭天祥.新概念51单片机C语言教程—入门、提高、开发拓展全攻略[M].北京:电子工业出版社,2010[3] 陈益飞.单片机原理及应用技术[M].北京:国防工业出版社,2011。

下载提示
相关文档
正为您匹配相似的精品文档