基于单片机的报警器与旋转灯设计
课程设计说明书(2011)
目 录
1 概 述...........................................................1
1.1 课
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
研究背景与意义 ...........................................1
1.2 课题设计内容 .................................................1 2 系统设计...........................................................2
2.1 设计
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
论证 .................................................2
2.2 系统硬件设计 .................................................2
2.2.1 控制模块................................................2
2.2.2开关报警器模块 ..........................................5
2.2.3旋转灯模块 ..............................................5
2.2.4 硬件电路中器件选择......................................5
2.3 软件设计 .....................................................7
2.3.1 主程序模块..............................................7
2.3.2 中断程序................................................8 3 系统调试...........................................................9
3.1 硬件调试 .....................................................9
3.1.1 静态检查................................................9
3.1.2 通电检查................................................9
3.2 软件调试及软硬件联调 .........................................9
3.2.1 proteus软件仿真 .......................................10
3.2.2脱机调试 ...............................................10
3.2.3 实验结果...............................................11 结束语..............................................................13 参考文献............................................................14 附录................................................................16
附录1:基于单片机的报警器与旋转灯设计的原理图...................16
附录2: 基于单片机的报警器与旋转灯设计的PCB图...................17
附录3: proteus仿真图 ...........................................17
附录4: 基于单片机的报警器与旋转灯设计的c语言程序清单...........18
附录5: 基于单片机的报警器与旋转灯设计的元件清单................20
课程设计说明书(2011)
基于单片机的报警器与旋转灯设计 1 概 述
1.1 课题研究背景与意义
报警器与旋转灯,是一种为防止或预防某事件发生所造成的后果,以声、光两种形式来提醒或警示我们应当采取某种行动的电子产品。随着科技的进步,机械式报警器越来越多地被先进的电子报警器代替,经常应用于系统故障、安全防范、交通运输、医疗救护、应急救灾、感应检测等领域,与社会生产密不可分。
其通常具有以下几个优点:1)光效节能:光效高、寿命长、节能环保;优良的芯电路设计,声音和声光两种工作模式任意转换,声音报警声强高达115分贝以上,穿透能力强。2)充电组,充放电性能稳定、容量高、自放电率低、节能环保。3)安全可靠:采用先进的光学软件和优化的结构密封设计,具有很强的环境适应性,转动安静平稳,经受强力的碰撞和冲击,确保元件可在恶劣的环境中长期稳定可靠的工作。4)使用方便:体积小、重量轻、携带方便,可采用台面放置、手提、磁力吸附等多种方式。
报警器与旋转灯一般匹配探测器,应根据实际现场环境和用户的安全防范要求,合理的选择和安装各种类型的报警探测器,才能较好的达到安全防范的目的。当选择和安装报警探测器不合适时,有可能出现安全防范的漏洞,达不到安全防范的严密性,给入侵者造成可乘之机,从而给安全防范工作带来不应有的损失。 报警探测器的灵敏度和可靠性是相互影响的。合理选择报警探测器的探测灵敏度和采用不同的抗外界干扰的措施,可以提高报警探测器性能。采用不同的抗干扰措施,决定了报警探测器在不同环境下的使用性能。了解各种报警探测器的性能和特点,根据不同使用环境,合理配置不同的报警探测器是防盗报警系统的关键环节。
由于本课程设计只需设计处报警环节和旋转灯环节,无需添加探测感应环节,所以设计简单,容易实现。
1.2 课题设计内容
本课题的主要任务是设计采用单片机控制的报警器与旋转灯,要求通过外部中断0控制报警器和旋转灯。报警器与P3.7口接,八个发光二极管分别接P2口。当接外部中断0的开关按下时,报警器响,八个发光二极管顺时针方向旋转;当第二次按下开关时,报警器停止和发光二级管熄灭。
设计报警器与旋转灯的硬件电路与软件控制程序,对硬件电路与软件程序分
1
课程设计说明书(2011)
别进行调试,并进行软硬件联调,要求获得调试成功的实物。
2 系统设计
2.1 设计方案论证
采用40脚,片内带8kB Flash ROM 的STC89C52单片机作为控制核心,开关模块和报警器模块接P3口,旋转灯模块接P2口,按以上系统构架设计,单片机端口资源刚好满足要求。设计框图如图2-1所示。
最小系统LED模块 P1口 P0口
复位模块 RST
STC89C52
P3口 开关和报警器模块
旋转灯模块 P2口 电源模块 XTAL
L
图2-1 报警器与旋转灯系统结构图
2.2 系统硬件设计
基于单片机的报警器与旋转灯系统的电路原理图如图2-2所示。系统由旋转灯模块、复位模块、开关报警器模块、最小系统LED模块和电源模块五部分组成。 2.2.1 控制模块
控制模块原理图如图2-3所示。主控制器采用STC89C52。STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能CMOS 8位的微处理器。
在本设计中,P3口用于对报警器和旋转灯的控制,连接开关和蜂鸣器。P2口用于对旋转灯的控制。P0口接一发光二极管,验证最小系统。在控制模块里面,
2
课程设计说明书(2011)
包含了时钟电路以及复位电路两部分。
图2-2 基于单片机的报警器与旋转灯系统电路原理图
图2-3 控制模块原理图
A.时钟电路
STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。内部方式的时钟电路如图2-4(a) 所示,在XTAL1和XTAL2引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2,12MHz之间选择,电容值在5,30pF
3
课程设计说明书(2011)
之间选择,电容值的大小可对频率起微调的作用。
外部方式的时钟电路如图2-4(b)所示,XTAL2接地,XTAL1接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
+5V
XTAL1
XTAL1外部振荡器
XTAL2XTAL2
(a)内部方式时钟电路 (b)外部方式时钟电路
图2-4 时钟电路
B复位及复位电路
a.复位操作
复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
b.复位信号及其产生
RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。
整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。
复位操作有上电自动复位相按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的。这样,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。
按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。
4
课程设计说明书(2011)
2.2.2开关报警器模块
开关控制电路的运行,报警器是运行中所显示的一种状态。如图2-5所示。
图2-5 开关报警器模块
在没有按键按下时,P3.7口输出的是高电平。当某一层有键按下时,相应的端口引脚变为低电平。 PNP型的蜂鸣器驱动电路,从图上我们可以看出:三极管基极连1KΩ的电阻接P3.7口,发射极接地,集电极接蜂鸣器短脚,长脚接+5V电压。
2.2.3旋转灯模块
旋转灯电路由8个LED发光二极管和8个0.3KΩ的电阻构成。该电路设计比较简单,但是要注意节点的电气连接。如图2-6所示。
2.2.4 硬件电路中器件选择
A. STC89C52单片机
STC89系列单片机是MCS-51系列单片机的派生产品。它们在指令系统、硬件结构和片内资源上与
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
8052单片机完全兼容,DIP40封装系列与8051为pin-to-pin兼容。STC89系列单片机高速(最高时钟频率90MHz),低功耗,在系统/在应用可编程(ISP,IAP),不占用户资源。
本设计采用STC89C52,它提供的功能标准如表2-1。
5
课程设计说明书(2011)
表2-1 STC89C52功能标准
兼容MCS51指令系统 8K可反复擦写Flash ROM
32个双向I/O口 256x8bit内部RAM
3个16位可编程定时/计数器中断 时钟频率0-24MHz
2个串行中断 可编程UART串行通道
2个外部中断源 共6个中断源
2个读写中断口线 3级加密位
低功耗空闲和掉电模式 软件设置睡眠和唤醒功能
STC89C52引脚图如图2-7所示。
图2-6 旋转灯模块
a. 主电源引脚(2根)
VCC(Pin40):电源输入,接,5V电源
GND(Pin20):接地线
b.外接晶振引脚(2根)
XTAL1(Pin19):片内振荡电路的输入端
XTAL2(Pin20):片内振荡电路的输出端
c.控制引脚(4根)
RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复
6
课程设计说明书(2011)
位。
ALE/PROG(Pin30):地址锁存允许信号
PSEN(Pin29):外部存储器读选通信号
EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
d.可编程输入/输出引脚(32根)
STC89C52单片机有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-7 STC89C52
2.3 软件设计
2.3.1 主程序模块
系统主程序主要用于变量及其他部件的初始化,如系统的初始化,以便能够准确的进行相应的操作。同时进行相应的功能键判断,从而实现特殊功能。其相
7
课程设计说明书(2011)
应的流程图2-8所示。
图2-8 报警器与旋转灯系统主程序流程图
2.3.2 中断程序
在相应的外部中断和定时器中断程序中,首先响应外部中断,再响应两个定时器中断,读取键值,旋转灯旋转,报警器响,在定时器重置初始值以后,再次
-9所示。 外部中断返回。中断程序的相应流程图如2
开始
初始化
参数
转速和进给参数表a氧化沟运行参数高温蒸汽处理医疗废物pid参数自整定算法口腔医院集中消毒供应
8
课程设计说明书(2011)
外部中断0响应
定时器0、1重置初值
旋转灯、报警器工作
中断返回
-9 中断程序流程图 图2
3 系统调试
3.1 硬件调试
3.1.1 静态检查
根据硬件电路图核对了元器件的型号、极性,安装是否正确,检查硬件电路连线是否与电路原理图一致,检查电路元器件是否都已经连接好,用万用表一一测试。
3.1.2 通电检查
先调试电源部分,整个电路只需要+5V的电压,用USB线从电脑USB口取电。
再用示波器检测单片机的复位和晶振电路是否有复位信号和振荡信号。 3.2 软件调试及软硬件联调
对软件先用仿真器进行了调试。用仿真器运行正常后,再用烧写器将程序烧到STC89C52单片机中,进行了脱机调试。
9
课程设计说明书(2011)
3.2.1 proteus软件仿真
使用proteus原理及仿真电路如图3-1所示。
图3-1 proteus原理及仿真图
3.2.2脱机调试
用Proteus仿真成功后,将设计程序烧写到STC89C52中去,通电后发现开关无法准确控制报警器和旋转灯工作。我在给蜂鸣器加驱动电路时有不理解的地方。因为三极管是pnp型的,所以在采用上图的驱动方式进行驱动蜂鸣器时,必然对原程序进行修改,并确定在P3.7口输出低地平时驱动电路才会使蜂鸣器响。
10
课程设计说明书(2011) 3.2.3 实验结果
图3-2 、图3-3 实验板正反面实物图
11
课程设计说明书(2011)
图3-4最小系统验证
图3-5设计系统验证
12
课程设计说明书(2011)
结束语
在大学期间,从接触单片机的课程开始,单片机就给我留下了神秘感。不论是对课程的学习,还是心中对课程的看法,直到自己独自完成布置的单片机课程,自己的对单片机才有了实质性的了解。
实验任务分配下来后,一开始确实很迷茫。因为完全没有头绪,无从下手。看这网页中搜索的浩瀚的资料,真是一个头两个大,也第一次体会到了长时间对这电脑屏幕痛苦的感觉。
之后我静下心来,仔细挖掘这次实验的问题所在。我所作的课题关键在于利用3个中断对,,,灯的显示和按键触发的处理。想通这些后我开始查阅相关资料,从芯片组成到C语言程序,开始深入的学习。
从查阅彭伟的《单片机C语言程序设计实训100例》开始,到《最小系统的焊接要点》、《如何利用protel软件绘制原理图和pcb图》,我一步步去尝试,一次次和同学讨论解决自己存在的问题,最终将单片机课程完成。
但在使用STC下载软件将程序加载到AT89C52中去后,出现蜂鸣器一直在响。检查后发现我是将三极管按照NPN的驱动电路接线方式进行接线的,事实上我们发的三极管是PNP型的,所以我将程序改为在P3.7口高电平时蜂鸣器停止,低电平时蜂鸣器响。进行调式后效果挺好。
通过这次实验,我认为学习的不仅仅是知识,更重要的是解决问题时坚毅不拔的精神,人不会被打败,只有被摧毁。在求知的道路上我们不能轻易放弃,不能放纵退缩。只有迎难而上,方能摘取胜利的果实~
13
课程设计说明书(2011)
参考文献
[1] 彭伟 单片机C语言程序设计实训100例—基于8051+Proteus仿真[M] 北京:电子工业出版社 2010.6
[2] 郭天祥 新概念51单片机C语言教程—入门、提高、开发拓展全攻略[M] 北京:电子工业出版社 2010
[3] 陈益飞 单片机原理及应用技术 [M] 北京:国防工业出版社 2011
14
课程设计说明书(2011) 附 录
:基于单片机的报警器与旋转灯设计的原理图 附录1
附录2: 基于单片机的报警器与旋转灯设计的PCB图
附录3: proteus仿真图
附录4: 基于单片机的报警器与旋转灯设计的c语言程序清单
附录5:基于单片机的报警器与旋转灯设计的元件清单
15
课程设计说明书(2011) 附录
附录1:基于单片机的报警器与旋转灯设计的原理图
16
课程设计说明书(2011) 附录2: 基于单片机的报警器与旋转灯设计的PCB图
附录3: proteus仿真图
17
课程设计说明书(2011) 附录4: 基于单片机的报警器与旋转灯设计的c语言程序清单
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit SPK = P3^7;
sbit led=P1^0;
uchar FRQ = 0x00;
void Delayms(uint ms) //延时
{
uchar i,j;
while(ms--)
{
for(i=0;i<120;i++)
for(j=110;j>0;j--);
}
}
void main()
{
led=0; //开最小系统灯亮
P2 = 0x00; //关闭所有LED
SPK=1; //关闭蜂鸣器
TMOD = 0x11; //两个定时器均工作在模式1
TH0 = 0x00;
TL0 = 0xff;
IT0 = 1;
IE = 0x8b; //开启0,1,3号中断
IP = 0x01; //INT0设置为高优先级
TR0 = 0;
TR1 = 0;
while(1) //循环过程中递增频率,溢出后再次递增
{
FRQ++;
Delayms(10);
18
课程设计说明书(2011)
}
}
void EX0_INT() interrupt 0
{
TR0 = !TR0; //开启或停止两个定时器,分别控制报警器声音和
LED旋转
TR1 = !TR1;
if(P2 == 0x00&&SPK==1)
P2 = 0xe0; //11100000,开三个灯旋转
else
P2 = 0x00; //关闭所有LED
SPK=1; //关闭蜂鸣器
}
void T0_INT() interrupt 1
{
TH0 = 0xfe;
TL0 = FRQ;
SPK = ~SPK;
}
void T1_INT() interrupt 3
{
TH0 = -45000/256;
TL0 = -45000%256;
P2 = _crol_(P2,1);
}
19
课程设计说明书(2011)
附录5: 基于单片机的报警器与旋转灯设计的元件清单
元件型号 元件数量 元件型号 元件数量
STC89C52 1片 30uF普通电容 2个
270Ω电阻 9个 11.0592晶振 1个
1KΩ电阻 2个 有源5V蜂鸣器 1个
2KΩ电阻 1个 5mm发光二极管 16个
10KΩ电阻 1个 S92012PNP 1个 10uF电解电容 1个 四脚轻触开关 2个
20