基于单片机旋转灯与报警器设计.docx
- 文档编号:10246017
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:19
- 大小:131.28KB
基于单片机旋转灯与报警器设计.docx
《基于单片机旋转灯与报警器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机旋转灯与报警器设计.docx(19页珍藏版)》请在冰豆网上搜索。
基于单片机旋转灯与报警器设计
目录
摘要2
Abstract3
第1章概述5
1.1课题研究背景与意义5
1.2课题设计内容5
第2章系统设计6
2.1设计方案论证6
2.2系统硬件设计6
2.2.1控制模块.......................................................................................................................6
2.2.2开关报警器模块...........................................................................................................
2.2.3旋转灯模块.................................................................................................................
2.2.4硬件电路中器件选择..................................................................................................
2.3软件设计
2.3.1主程序模块9
2.3.2中断程序12
第3章系统调试26
3.1硬件调试26
3.1.1静态检查26
3.1.2通电检查27
3.2软件调试及软硬件联调29
3.2.1proteus软件仿真29
3.2.2脱机调试29
3.2.3程序31
总结36
参考文献38
摘要
随着我国经济的迅速发展,城乡建设加快,人们生活水平的提高。
人们的安全防护措施也不断加强。
正因如此,许多安全的电子器件也随之出现。
例如报警器与循环灯的设计。
报警器与循环灯是以单片机为核心的应用系统,主要由振荡器、蜂鸣器、发光管和感应器等几部分组成。
通过感应器触动开关,是蜂鸣器和发光管工作。
报警器与旋转灯一般匹配探测器,应根据实际现场环境和用户的安全防范要求,合理的选择和安装各种类型的报警探测器,才能较好的达到安全防范的目的。
随着社会的不断进步,这些与安全有关的器件与我们的生活会更加的息息相关。
关键词:
单片机,发光管,蜂鸣器
Abstract
Withtherapiddevelopmentofoureconomy,speedupurbanandruralconstruction,peoplelivingstandardrise.People'ssafetyprotectionhasbeenstrengthened.Becauseofthis,manysecurityelectronicdeviceshaveemerged.Suchasalarmandcircularlampdesign.Alarmandcircularlampapplicationsystembasedonsinglechipmicrocomputerasthecore,mainlybytheoscillator,buzzer,luminoustubeandsensoretc.Throughthesensortouchswitch,isthebuzzerandlightpipework.Generallymatchdetectors,alarmandrotatinglampshouldbeaccordingtotheactualenvironmentandthesafetyofusersrequirement,reasonableselectionandinstallationofvarioustypesofalarmdetector,inordertobetterachievethegoalofsecurity.Withtheconstantprogressofthesociety,thesafetyrelatedcomponentsiscloselyrelatedtoourlivesmore.
Keywords:
Singlechipmicrocomputer,Sensor,Digitaltube
第1章概述
1.1课题研究背景与意义
报警器与旋转灯,是一种为防止或预防某事件发生所造成的后果,以声、光两种形式来提醒或警示我们应当采取某种行动的电子产品。
随着科技的进步,机械式报警器越来越多地被先进的电子报警器代替,经常应用于系统故障、安全防范、交通运输、医疗救护、应急救灾、感应检测等领域,与社会生产密不可分。
其通常具有以下几个优点:
1)光效节能:
光效高、寿命长、节能环保;优良的芯电路设计,声音和声光两种工作模式任意转换,声音报警声强高达115分贝以上,穿透能力强。
2)充电组,充放电性能稳定、容量高、自放电率低、节能环保。
3)安全可靠:
采用先进的光学软件和优化的结构密封设计,具有很强的环境适应性,转动安静平稳,经受强力的碰撞和冲击,确保元件可在恶劣的环境中长期稳定可靠的工作。
4)使用方便:
体积小、重量轻、携带方便,可采用台面放置、手提、磁力吸附等多种方式。
报警器与旋转灯一般匹配探测器,应根据实际现场环境和用户的安全防范要求,合理的选择和安装各种类型的报警探测器,才能较好的达到安全防范的目的。
当选择和安装报警探测器不合适时,有可能出现安全防范的漏洞,达不到安全防范的严密性,给入侵者造成可乘之机,从而给安全防范工作带来不应有的损失。
报警探测器的灵敏度和可靠性是相互影响的。
合理选择报警探测器的探测灵敏度和采用不同的抗外界干扰的措施,可以提高报警探测器性能。
采用不同的抗干扰措施,决定了报警探测器在不同环境下的使用性能。
了解各种报警探测器的性能和特点,根据不同使用环境,合理配置不同的报警探测器是防盗报警系统的关键环节。
由于本课程设计只需设计处报警环节和旋转灯环节,无需添加探测感应环节,所以设计简单,容易实现。
1.2课题设计内容
本课题的主要任务是设计采用单片机控制的报警器与旋转灯,要求通过外部中断0控制报警器和旋转灯。
报警器与P3.7口接,八个发光二极管分别接P2口。
当接外部中断0的开关按下时,报警器响,八个发光二极管顺时针方向旋转;当第二次按下开关时,报警器停止和发光二级管熄灭。
设计报警器与旋转灯的硬件电路与软件控制程序,对硬件电路与软件程序分别进行调试,并进行软硬件联调,要求获得调试成功的实物。
第2章系统设计
2.1设计方案论证
采用40脚,片内带8kBFlashROM的STC89C51单片机作为控制核心,开关模块接P3口,报警器模块接P2口,旋转灯模块接P0口,按以上系统构架设计,单片机端口资源刚好满足要求。
2.2系统硬件设计
基于单片机的报警器与旋转灯系统的电路原理图如图1所示。
系统由旋转灯模块、复位模块、开关报警器模块、和电源模块四部分组成。
图1
2.2.1控制模块
控制模块原理图如图2所示。
主控制器采用STC89C51。
STC89C51是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能CMOS8位的微处理器。
在本设计中,P2口用于对报警器的控制,连接开关和蜂鸣器。
P0口用于对旋转灯控制。
在控制模块里面,包含了时钟电路以及复位电路两部分。
图2
A.时钟电路
STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
内部方式的时钟电路如图3(a)所示,在XTAL1和XTAL2引脚上外接定时元件,内部振荡器就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。
外部方式的时钟电路如图3(b)所示,XTAL2接地,XTAL1接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
(a)内部方式时钟电路
(b)外部方式时钟电路
图3时钟电路
B.复位及复位电路
a.复位操作
复位是单片机的初始化操作。
其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
b.复位信号及其产生
RST引脚是复位信号的输入端。
复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。
若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。
整个复位电路包括芯片内、外两部分。
外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。
复位操作有上电自动复位相按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的。
这样,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。
按键手动复位有电平方式和脉冲方式两种。
其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。
2.2.2开关报警器模块
开关控制电路的运行,报警器是运行中所显示的一种状态。
如图4所示。
图4
在没有按键按下时,P2.3口输出的是低电平。
当某一层有键按下时,相应的端口引脚变为高电平。
PNP型的蜂鸣器驱动电路。
2.2.3旋转灯模块
旋转灯电路由8个LED发光二极管和8个0.3KΩ的电阻构成。
该电路设计比较简单,但是要注意节点的电气连接。
如图5所示。
图5
2.2.4硬件电路中器件选择
A.STC89C51单片机
STC89系列单片机高速(最高时钟频率90MHz),低功耗,在系统/在应用可编程(ISP,IAP),不占用户资源。
C51工具包的整体结构,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
使用独立的Keil仿真器时,注意事项:
仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。
本设计采用STC89C51,它提供的功能标准如表2-1。
表2-1STC89C51功能标准
兼容MCS51指令系统
8K可反复擦写FlashROM
32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-24MHz
2个串行中断
可编程UART串行通道
2个外部中断源
共5个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
STC89C51引脚图如图6所示。
图6
a.主电源引脚(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根)
STC89C51单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
P0口(Pin39~Pin32):
8位双向I/O口线,名称为P0.0~P0.7
P1口(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.7
2.3软件设计
2.3.1主程序模块
系统主程序主要用于变量及其他部件的初始化,如系统的初始化,以便能够准确的进行相应的操作。
同时进行相应的功能键判断,从而实现特殊功能。
其相应的流程图7所示。
图7
2.3.2中断程序
在相应的外部中断和定时器中断程序中,首先响应外部中断,再响应两个定时器中断,读取键值,旋转灯旋转,报警器响,在定时器重置初始值以后,再次外部中断返回。
中断程序的相应流程图如8所示。
初始化参数
开始
外部中断0、1响应
定时器0、1重置初值
旋转灯、报警器工作
中断返回
图8
第3章系统调试
2.3.3软件编程:
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitKEY1=P3^4;
sbitbeep=P2^3;
voiddelayms(uint);
uintnum1,num2;
ucharaa;
voidinit()
{
TMOD=0x11;
TH1=(65536-1000)/256;
TL1=(65536-1000)%256;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
EA=1;
ET0=1;
ET1=1;
}
voidkeyscan()
{
if(KEY1==0)
{
delayms(10);
if(KEY1==0)
{
while(!
KEY1);
TR0=~TR0;
TR1=~TR1;
P0=0xff;
beep=0;
}
}
}
voiddelayms(uintxms)
{
uinti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
voidT0_time()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num1++;
if(num1==20)
{
num1=0;
P0=aa;
aa=_crol_(aa,1);
}
}
voidT1_time()interrupt3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
num2++;
if(num2==40)
{
num2=0;
beep=~beep;
}
}
voidmain()
{
init();
beep=0;
aa=0xfe;
while
(1)
{
keyscan();
}
}
3.1硬件调试
3.1.1静态检查
根据硬件电路图核对了元器件的型号、极性,安装是否正确,检查硬件电路连线是否与电路原理图一致,检查电路元器件是否都已经连接好,用万用表一一测试。
3.1.2通电检查
先调试电源部分,整个电路只需要+5V的电压,用USB线从电脑USB口取电。
再用示波器检测单片机的复位和晶振电路是否有复位信号和振荡信号。
3.2软件调试及软硬件联调
对软件先用仿真器进行了调试。
用仿真器运行正常后,再用烧写器将程序烧到STC89C51单片机中,进行了脱机调试。
3.2.1proteus软件仿真
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
使用proteus原理及仿真电路如图9所示。
图9
它的功能特点:
Proteus软件具有其它EDA工具软件(例:
multisim)的功能。
这些功能是:
1.原理布图2.PCB自动或人工布线3.SPICE电路仿真革命性的特点1.互动的电路仿真用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
2.仿真处理器及其外围电路可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。
还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。
配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。
3.2.2脱机调试
用Proteus仿真成功后,将设计程序烧写到STC89C51中去,通电后发现开关无法准确控制报警器和旋转灯工作。
我在给蜂鸣器加驱动电路时有不理解的地方。
因为三极管是pnp型的,所以在采用上图的驱动方式进行驱动蜂鸣器时,必然对原程序进行修改,并确定在P2.3口输出高地平时驱动电路才会使蜂鸣器响。
总结
通过这次的STC89C52应用产品设计让我们更加地了解STC89C52,懂得如何运用所学的知识来完成这次的设计。
本次通过实例介绍了应用STC89C52制作开关控制报警器的方法,对其中核心技术进行了详细的说明。
其分析问题方法,解决问题步骤具有一般性,对硬件电路设计及程序设计具有一定参考价值。
本设计的关键在于团体的合作与程序的编写。
通过这次的实践,使我们能有自己实际动手的机会,了解设计的原理,还有就是团队的合作也是很重要的。
在大学期间,从接触单片机的课程开始,单片机就给我留下了神秘感。
不论是对课程的学习,还是心中对课程的看法,直到自己独自完成布置的单片机课程,自己的对单片机才有了实质性的了解。
实验任务分配下来后,一开始确实很迷茫。
因为完全没有头绪,无从下手。
看这网页中搜索的浩瀚的资料,真是一个头两个大,也第一次体会到了长时间对这电脑屏幕痛苦的感觉。
之后我静下心来,仔细挖掘这次实验的问题所在。
我所作的课题关键在于利用3个中断对LED灯的显示和按键触发的处理。
想通这些后我开始查阅相关资料,从芯片组成到C语言程序,开始深入的学习。
从查阅彭伟的《单片机C语言程序设计实训100例》开始,到《最小系统的焊接要点》、《如何利用protel软件绘制原理图和pcb图》,我一步步去尝试,一次次和同学讨论解决自己存在的问题,最终将单片机课程完成。
但在使用STC下载软件将程序加载到AT89C51中去后,出现蜂鸣器一直在响。
检查后发现我是将三极管按照NPN的驱动电路接线方式进行接线的,
通过这次实验,我认为学习的不仅仅是知识,更重要的是解决问题时坚毅不拔的精神,人不会被打败,只有被摧毁。
在求知的道路上我们不能轻易放弃,不能放纵退缩。
只有迎难而上,方能摘取胜利的果实!
参考文献
[1]彭伟单片机C语言程序设计实训100例—基于8051+Proteus仿真[M]北京:
电子工业出版社2010.6
[2]郭天祥新概念51单片机C语言教程—入门、提高、开发拓展全攻略[M]北京:
电子工业出版社2010
[3]陈益飞单片机原理及应用技术[M]北京:
国防工业出版社2011
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 旋转 报警器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)