报警信号的检测与告警提示.docx
《报警信号的检测与告警提示.docx》由会员分享,可在线阅读,更多相关《报警信号的检测与告警提示.docx(18页珍藏版)》请在冰点文库上搜索。
报警信号的检测与告警提示
课程设计任务书
学生姓名:
专业班级:
指导教师:
刘运苟工作单位:
信息工程学院
题目:
报警信号的检测与告警提示
初始条件:
具备电子电路的设计知识和能力;具备单片机系统的设计方法;具备单片机软件编程技术;熟悉单片机常用软件的使用;
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.电路由开关控制,报警电路,声音放大电路组成;
2.用P1.0输出1kHz和500Hz的音频信号驱动扬声器,作为报警信号,要求1kHz的信号响100ms,500Hz的信号响200ms,交替进行,P1.7接一开关进行控制,当开关和时响报警信号,当开关断开时告警信号停止。
3.运用外部中断接入一报警信号,当开关合上时,发出1kHz的音频信号驱动扬声器告警,开关断开时撤销报警。
4.拓展越多,得分越高。
时间安排:
设计时间1周,其中2天原理设计,2天仿真,2天电路调试,1天答辩
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
前言
单片机因其体积小,功能强,价格低廉而得到广泛应用,同时随着我国经济的飞速发展,单片机在越来越多的领域得到了广泛的应用,现在国内的单片机多用于电话,玩具和LCD等产品,预计在未来,利用单片机发明的产品会越来越多,作为一名电子信息工程的学生来说,理解和掌握单片机的工作原理和使用技巧是必备的技能,基于这种考虑,我采用单片机来完成这次课程设计:
报警信号的检测与告警提示。
1.报警系统的发展历程
1.1过去:
人力
在古代,科技尚未发展,人们的“报警系统”纯粹的有人力构成的。
比如长城的修建,就是靠士兵们的眼睛时时刻刻的盯着近处远处,生怕自己错过敌人出现照成敌人的大规模入侵我们的家园。
这样的“报警系统”有很大的缺陷。
首先,我们国家边界线这么长,不知要修建多少个烽火台,这必定灰造成人力资源的极大浪费。
其次,该“报警系统”无法做出快速的响应,战况无法及时的传达皇帝那儿去。
朝廷无法及时派遣士兵,将会很大程度的延误战机。
1.2现在:
机器+人力
随着科技的发展,社会的进步。
我们现在所生活的时代已经有了较为完善的报警系统,传感器等其他学科的发展,很好的代替人们去做一些艰苦的工作。
当代报警系统的重要特点就是,首先,机器可以代替人们进行24小时不间断的工作,并且不会感觉到累。
其次,响应迅速作为当今时代的一个重要特点一直为人们所津津乐道,快速响应意味这能够在突发情况的第一时刻进行有效处理。
随着社会的发展,农村城镇化和人员流动性增大,社会治安状况更趋复杂,因此作为社会的基本单元“安全防范问题就显得尤为重要。
所以作为新一代的智能安全防盗报警器系统就应运而生,并日益受到广泛的重视和运用。
1.3将来:
机器
在那不久以后的未来,在科技快速的发展之下,在“报警系统”这个邻域,人类将可以被完全的解放出来。
“报警系统”的功能将不仅仅显示于“报”,而且当警报被触发时,还可以根据触发源而选择响应的处理解决方式,比如自动拨打报警电话等。
2.系统基本设计思路
此设计是在LED小灯上显示报警的状态,扬声器能够播放固定频率的声音或弹奏的曲子。
电路包括:
开关,单片机及LED显示电路,声音电路。
各部分说明:
(1)开关用来模拟告警信号的触发源。
(2)单片机通过输出各种电脉冲信号驱动控制各部分正常工作。
(3)单片机发送的信号分别经过LED小灯和声音电路通过扬声器显示出来。
系统工作过程:
单片机要产生音频脉冲,主要处理过程是在CPU中完成的,CPU会随时对音符输入信号进行读取数据的操作。
在读取了相应的寄存器的值后,CPU将读取的值进行处理,再通过I/O口把音频通过扬声器播放出来。
3.单元电路方案论证
根据设计要求,本系统主要由控制器模块、显示模块和输入模块构成。
为较好的实现各模块的功能,我们分别设计了以下几种方案并分别进行了论证。
3.1控制器模块
方案1:
采用凌阳系列单片机为系统的控制器
凌阳系列单片机可以实现各种复杂的逻辑功能,模块大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性。
凌阳系列单片机提高了系统的处理速度,适合作为大规模实时系统的控制核心。
方案2:
采用51系列作为系统控制器
单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。
由于其功耗低、体积较小、技术成熟和成本低等优点,在各个领域应用广泛。
而且抗干扰性能好。
因51单片机价格比凌阳系列低得多,且本设计不需要很高的处理速度,从经济和方便使用角度考虑,本设计选择了方案2。
3.2发声模块
发声模块是本设计的最主要的部分。
基本方案:
发生电路是这次设计电路中最重要的组成部分,他承载着把单片机所产生的声音信号放大并输出的重要作用,而我的设计中的发声电路主要是由两个CS9013组成。
CS9013是一种小功率的放大管,属于NPN型号三极管,而对三极管引脚的判断有以下方法。
(1)判断三极管的基极。
对于NPN型号的三极管,用黑表笔接某一个电极,红表笔分别接另外两个电极,若测量电阻值两个都小,调换表笔后被测电阻值都较大,则可判断第一次测量中黑表笔所接的是基极;如果测量值一大一小,相差很大,则第一次测量中黑表笔接的不是基极,应该更换其他电极重测。
(2)测量三极管发射极e和集电极c。
三极管基极确定后,通过交换表笔,两次测量e,c极间的电阻,如果两次测量结果不相等,其中测得电阻值较小的一次为红表笔的是e极黑表笔接的是c极。
对于PNP型号的三极管,方法与NPN的相似,只是红黑表笔的作用相反,在测量e,c极间电阻时要注意,由于三极管的V(BR)CEO很小,很容易将发射结击穿。
当我们三极管的管脚判断结束以后,我们就可以用两个三极管构成一个达林顿结构。
首先当单片机P1.0口输出一个高电平,由两个三极管构成的达林顿成能导通,导通后又能对电流又一定的放大作用,这样传到扬声器时信号能让我们听的更清楚。
图1
3.3编程软件模块
方案1:
采用汇编语言编程
汇编语言指令是用一些具有相应含义的助忆符来表达的,所以,它要比机器语言容易掌握和运用,但另一方面,它要直接使用CPU的资源,相对高级程序设计语言来说,它又显得难掌握。
方案2:
采用C语言编程
C语言与其他高级语言相比,具有运算符的丰富性、语法表述的灵活性、对软硬件操作的兼容性、输入输出方式的新颖性等主要特征.深入分析研究这些特征,可以加深对C语言的认识;正确应用这些特征,可以灵活高效地解决各种实际问题.
因为我在大学期间对汇编语言没有深入的了解,而且在编程时一直用C语言,所以我选择了方案2。
3.4最终方案
经过反复论证,最终确定了如下方案:
(1)采用STC89C51单片机作为主控制器。
(2)采用达林顿效应使音乐信号放大
(3)采用C语言编程
4.STC89C52RC单片机
STC89C51是一种带8K字节可编程可檫除只读存储器的低电压、高性能COMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
单片机引脚图如图1所示。
图2STC89C52RC单片机引脚图
4.1最小系统设计
最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单片机始终处于正常的运行状态。
电源、时钟等电路是使单片机能运行的必备条件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、A/D扩展等,使单片机完成较复杂的功能。
4.2时钟电路
STC89C51内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
内部时钟在此不做详细介绍。
外部方式的时钟电路如图3所示,RXD接地,TXD接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率在12MHz左右的方波信号。
图389c52RC内部时钟电路
4.3复位电路
当在89C52RC单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。
复位电路通常采用上电自动复位和按钮复位两种方式。
最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的。
只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
除了上电复位外,有时还需要按键手动复位。
本设计就是用的按键手动复位。
按键手动复位有电平方式和脉冲方式两种。
其中电平复位是通过RST(9)端与电源Vcc接通而实现的。
按键手动复位电路见图4。
时钟频率用11.0592MHZ时C取10uF,R取10kΩ。
图489C52RC复位电路
5.实验原理图
5.1扬声器模块
扬声器模块采用8550构成的放大电路,对音频信号进行放大处理。
图5
5.2供电切换模块
供电部分可由USB或者干电池供电,加入一个电源指示灯。
图6
5.3开关及LED灯模块
当按下S1时,1kHz的信号响100ms,500Hz的信号响200ms的报警信号报警,并交替进行;当开关断开时报警信号停止。
当S2开关合上时,发出1kHz的音频信号驱动扬声器告警,开关断开时撤销报警。
图7
6.成果图展示
6.1局部图:
供电模块
图8
6.2局部图:
扬声器模块
图9
6.3局部图:
STC89C52RC模块
图10
6.4工作全图
图11
总结:
由以上成果图可知,这次课程设计实物很好的实现了题目所要求的内容,并且在原有要求的基础上加以提高,加入了发光LED二极管来显示开关报警状态,把原有的声音报警器升级为声光报警器。
7.实验结果分析
我所设计的该产品时根据自身的兴趣和爱好所设计的,通过对传统报警器的认识和了解,知道了传统的报警器是利用单片机的汇编语言的编程来实现的,而且功能单一,只能发出单一频率的刺耳的噪声而不能随意的播放音乐,我所设计的产品是基于对STC89C52RC单片机的深入理解对传统报警器的小小的改革和创新,并且以简单的C语言程序替代了复杂的汇编语言程序,声和光是新报警器的主题。
我所设计的作品有两种触发方式,通过“模式切换”按键进行转换,当模拟触发源(即开关SWITCH1或SWITCH2按下状态)触发后,报警器就会发出响应频率的声音,同时对应的发光LED二极管发出醒目的蓝光来警示用户采取响应的措施来应对突发事件。
当触发中断消失(即开关SWITCH1或SWITCH2弹起状态),报警声音也消失,于此同时,LED灯熄灭,整个报警系统“安静”下来,等待检测报警信号的产生。
我这次课程设计的成果虽然看起来有些粗糙,但是“麻雀虽小,五脏俱全”。
而且,对中国防盗报警器产业发展前景分析可知,当今防盗报警器的维护成本十分的高昂,许多普通家庭面临用不起的地步。
相比之下,我的报警器成本低廉,每个家庭都买的起,能够很好的解决防盗方面的需求和资金有限之间的矛盾。
我相信在声光报警器的不断革新达到人们所需安防设备的标准的时候,它将会被投入到批量生产之中。
8.实验感想
这次的课程设计可以说让我学到了很多书本之外的知识,通过对自己在大学这几年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对课程设计的思考及书面表达能力,最终完成了本设计。
这为自己今后进一步深化学习,积累了一定宝贵的经验。
撰写报告的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。
培养了我运用所学知识解决实际问题的能力。
为了能够完成这次课程设计,当务之急就是掌握单片机的使用方法,为此还跑了还几天的图书馆,在网上疯狂的搜索相关资料。
最后感觉可能是那几天一直盯着电脑屏幕的缘故,视力都下降好多。
就这样一步一步的把题目的要求完成,终于,功夫不负有心人,这此的课程设计终于完成了,心里的一块大石头也落地了,可以回家好好过年了。
在这个磨人的课程设计结束之后,现在回过头来,发现自己不知不觉中成长了许多,不单单是了解单片机的基本使用,更为重要的是学会了如何去面对和解决问题,如何调整情绪,将身上的负能量转化为正能量。
我想这些是单纯的看书学不来,换个角度去看世界,才会发现生活是这么的美。
参考文献
[1]白炽贵编著,单片机C语言案例教程,北京:
电子工业出版社,2011.1
[2]周良权主编.模拟电子技术基础北京:
高等教育出版社,2005.6
[3]卜锡滨主编.数字电子技术北京:
中国水利水电出版社,2011.1
[4]李华.单片机C语言编程[M].北京:
北京航空航天大学出版社,2005.8.1
[5]及力主编.电子CAD基于protel99SE北京:
北京邮电大学出版社,2008
附录1原理图
附录2主要源程序
#include
#include"stdio.H"
#include"intrins.H"
typedefunsignedcharuchar;
typedefunsignedintuint;
sbitBeepIO=P1^0;
sbitSWITCH_1=P1^7;
sbitSWITCH_2=P3^3;
sbitSWITCH_all=P2^2;
sbitLED1=P1^1;
sbitLED2=P1^2;
ucharSound_Temp_TH0,Sound_Temp_TL0;//定时器初值
/******************************频率表******************************/
ucharcodeFREQH[]={0xFE,0xFC};
ucharcodeFREQL[]={0x33,0x66};
/*****************************毫秒延时******************************/
voidDelayMs(uintMs)
{
uinti;
while(Ms--)
{
for(i=0;i<114;i++);
}
}
/*************************定时器T0,蜂鸣器中断***********************/
voidBeepTimer0()interrupt1
{
BeepIO=!
BeepIO;
TH0=Sound_Temp_TH0;//重新赋值初值
TL0=Sound_Temp_TL0;
}
/**************************播放音调*******************************/
voidPlayTone_1KHZ()
{
Sound_Temp_TH0=FREQH[0];
Sound_Temp_TL0=FREQL[0];
TH0=Sound_Temp_TH0;
TL0=Sound_Temp_TL0;
TR0=1;
DelayMs(100);
TR0=0;
_nop_();
}
voidPlayTone_500HZ()
{
Sound_Temp_TH0=FREQH[1];
Sound_Temp_TL0=FREQL[1];
TH0=Sound_Temp_TH0;
TL0=Sound_Temp_TL0;
TR0=1;
DelayMs(200);
TR0=0;
_nop_();
}
/********************************主函数********************************/
voidmain()
{
TMOD=0x01;//定时器工作在方式1
ET0=1;//开TR0中断
EA=1;//开中断
LED1=1;
LED2=1;
while
(1)
{
SWITCH_all=1;
DelayMs
(1);
if(SWITCH_all==1)//判断选择的报警方式
{
SWITCH_1=1;
DelayMs
(1);
if(SWITCH_1==0)//开关1闭合,亮灯1且播放音频
{
LED1=0;
PlayTone_1KHZ();
PlayTone_500HZ();
}
else
LED1=1;//灯1灭
}
else
{
SWITCH_2=1;
DelayMs
(1);
if(SWITCH_2==0)//快关2闭合,亮灯2且播放音频
{
LED2=0;
PlayTone_1KHZ();
}
else
LED2=1;//灯2灭
}
}
}