工业现场报警器资料.docx
《工业现场报警器资料.docx》由会员分享,可在线阅读,更多相关《工业现场报警器资料.docx(28页珍藏版)》请在冰豆网上搜索。
工业现场报警器资料
目录
第1章系统设计意义与总体方案的说明1
1.1工业报警器的实用性1
1.2系统方案说明1
第2章系统结构框图与工作原理3
2.1设计框架图3
2.2工作原理3
第3章系统硬件设计说明6
3.1主芯片89C516
3.1.151芯片的结构及特点6
3.1.2单片机的复位电路8
3.1.3单片机的时钟电路9
3.2ADC0809的简要介绍10
3.3显示单元部分模块12
3.4地址锁存器主芯片74LS13813
3.5报警电路13
3.6电平输入设计14
第4章系统的软件设计15
4.1自检程序的设计15
4.2气体检测程序设计16
4.3注意事项20
第5章系统调试与测试结果分析21
5.1软件调试21
5.2硬件测试22
结论23
参考文献26
第1章系统设计意义与总体方案的说明
1.1工业报警器的实用性
气体报警器就是气体泄露检测报警仪器。
当工业环境中可燃或有毒气体泄露时,当气体报警器检测到气体浓度达到爆炸或中毒报警器设置的临界点时,报警器就会发出报警信号,以提醒工作采取安全措施,并驱动排风、切断、喷淋系统,防止发生爆炸、火灾、中毒事故,从而保障安全生产。
工业现场报警系统的基本要求是能够在无人监控的情况下自动进行工作,可以检测有害的气体;在气体达到一定的浓度时报警器报警,对超过极限值的浓度都有相应的灯闪动和蜂鸣器来报警。
只要当专业人员来检修时按下手动开关来关闭蜂鸣器,但是指示灯却是只要当浓度下降到安全范围内时才会停止工作。
1.2系统方案说明
用单片机控制一个检测报警系统,与以往用数字逻辑电路组成的控制系统相比,用单片机组成的检测报警系统,应具有更大的灵活性,功能也更强,并具有智能性, 在实际工作中是一种行之有效的方法。
因此,从理论上分析利用单片机为核心设计一个工业现场报警器系统是可行的。
我们设计的硬件部分由四大模块电路构成,分别是:
传感器模块电路、单片机控制模块电路、显示模块电路、报警模块电路。
控制模块外围,设计有系统的复位模块电路和振荡电路,让整个系统电路在使用时更方便,稳定。
控制模块主要利用了89c51单片机作为整个报警器的控制系统。
传感器部分通过感应的物体,形成高低电平信号输出,并经过单片机89C51处理,实现传感器信号的判断、延时、显示、报警等功能。
我们系统用于集中检测报警,能对受控制的多个点进行实时检测,当检测到一个或多个点有报警信号时,能用声和数码显示出报警地点,实现了智能报警控制。
测试表明,各模块电路能够正常运行,信号接收灵敏度高,报警声音响,较好地实现了单片机多路控制智能报警功能。
每种有害气体的浓度的极限值都能够通过LED显示屏来表达出来,对超过极限值的浓度都有相应的灯闪动和蜂鸣器来报警。
当专业人员来检修时按下手动开关来关闭蜂鸣器。
每种有害气体的浓度的极限值都能够通过LED显示屏来表达出来,对超过极限值的浓度都有相应的灯闪动和蜂鸣器来报警。
当专业人员来检修时按下手动开关来关闭蜂鸣器,但是指示灯却是只要当浓度下降到安全范围内时才会停止工作。
这样工人们就能更加清楚身边的环境。
本系统能实现如下功能:
1)检测工业现场有害气体在规定的范围内。
2)8路输入信号,可检测8种有害气体,超标则闪光响铃报警,处于安全范围保持正常状态不变。
3)检测电路有自检功能。
第2章系统结构框图与工作原理
2.1设计框架图
控制总线
2.2工作原理
报警器自检程序就是让8个指示灯轮流点亮一次,可以采用移位寄存的方法来实现,通过观察8个指示灯来确定指示灯是否完好。
用延时程序让蜂鸣器响三声。
这样整个自检程序就完成了。
通过模拟电平来限制气体浓度的最大值,在正常情况下,8种气体的浓度低于安全浓度以下。
为此,我们设计了8个可变电阻来调节电平的变化,电平的变化可以看成是8种气体通过传感器的电平变化。
当电平低于设定的电平时,单片机通过报警程序中的检验程序后,由于没有达到报警条件,不执行报警,也就是说此时报警器不蜂鸣,8个指示灯也都不亮。
当电平高于预设的安全电平时,将气体传感器的输出端接到A/D模数转换器的IN0至IN7端,作为A/D模数转换器的输入。
再将A/D模数转换器的输出端D0~D7接到89C51单片机的P0口,将闪光响铃报警电路接到89C51单片机的P3.7和P3.2接口,单片机通过报警程序的检验程序后,由于达到了报警条件,立即执行报警,也就是说此时报警器蜂鸣,P3.7=0相应的指示灯点亮。
当报警后,我们通过开关检验程序判断报警声音停止手动开关是否按下,当检验到有电平按下时,要执行关断蜂鸣器的程序,但指示灯不关闭,这里我们可以通过一个中断程序来实现。
当检验没有电平按下时,就继续保持原状。
完成以上程序后,我们设置一个浓度检验程序,即通过电平的高低来判断是否终止亮相应的指示灯,这里我们也可以采用一个中断程序来实现。
当检测到电平低于预设的安全电平时,启动中断程序,停止亮灯,显示屏显示everythingisok。
当监测到电平高于预设安全电平时,不启动中断程序。
同时设置启动中断程序时,返回监测电平的变化,这样,整个工业现场报警器程序完毕。
同时,我们还设置了实时显示功能。
实时显示程序是利用P1口的8个端口作为电平显示输出的,直接连LCD显示器。
第3章系统硬件设计说明
3.1主芯片89C51
通用型单片机的种类很多,相对基础的MCS-51单片机通常在速度上、资源上或者编程应用方式上做了改进,使得芯片能力更强、适应力更出色、开发更加便利,常被作为实时监测及控制等领域应用中的优选机。
3.1.151芯片的结构及特点
一、MSC-51单片机的主要特性如下:
1. 与MCS-51 兼容
2. 4K字节可编程闪烁存储器
3. 寿命:
1000写/擦循环
4. 全静态工作:
0Hz-24Hz
5. 128*8位内部RAM
6. 32可编程I/O线
7. 两个16位定时器/计数器
8. 5个中断源
9. 可编程串行通道
二、51单片机的引脚功能:
1.电源引脚
Vcc接+5v;Vss接地
2.时钟信号引脚XTAL1,XTAL2,:
外部时钟管脚
3.控制线:
RST为复位输入端,在时钟工作时,此引脚出现两个机器周期的高电平将单片机复位;
4.输入输出口线:
P0口作为低8位地址总线复用口,通过分时操作,先传送低8位地址。
P1口是具有内部上拉电阻的8位准双向I/O口;
图3-1AT89C51单片机的引脚图
3.1.2单片机的复位电路
单片机的RST管脚为主机提供一个外部复位的信号输入端口,复位电路是高电平有效,高电平持续的时间是应为2个机器周期以上,复位以后,单片机内各部件恢复到初始状态。
上电复位:
上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。
上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。
为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。
上电自动复位是通过外部复位电路的电容充电来实现的。
只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
电路图如下3-2。
3.1.3单片机的时钟电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:
一种是内部时钟方式,另一种为外部时钟方式。
本文用的是内部时钟方式。
电路图如3-2
图3-2
3.2ADC0809的简要介绍
ADC0809有8路模拟量的输入端口,本次设计只要用其中一个,8路模拟开关无需进行切换选通。
ADC0809的8路模拟输入8路数字输出的逐次逼近法A/D器件。
其主要技术指标和特性为:
(1).分辨率为8位。
(2).转换时间取决于芯片时钟频率。
本次单元电路仿真采用640KHZ的时钟方波信号。
(3).单一电源+5V。
模拟输入电压范围单极性0-5V,双极性
5V或
10V。
本次课程设计由于只有一个模拟输入量,且电压变化都为正值,故采用单极性电源接法。
(4).启动转换控制方式为脉冲式(正脉冲),上升沿使内部所有寄存器清“0”,下降沿使A/D转换开始。
主要管脚说明:
CLK:
为时钟信号输入端,决定A/D转换的速度,转换一次为64各时钟周期。
ALE:
地址锁存允许信号,高电平有效。
当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。
START:
为启动转换信号,正脉冲有效。
此信号通常与系统信号相连,控制A\D转换器的启动。
EOC:
转换结束信号,高电平有效,表示一次A\D转换已完成。
可作为中断触发信号,也可用程序查询的方法检测转换是否结束。
OE:
输出允许信号,高电平有效,可与系统读选通信号相连。
当计算机发出此信号时,ADC0809的三态门被打开,此时可通过数据线读到正确的转换结果。
DC0809的逻辑结构及引脚功能如图3-3所示
图3-3DC0808的逻辑结构及引脚功能
3.3显示单元部分模块
显示管采用LCD1602,我们把 LCD显示器的8个输入端接AT89C52的P1口8个输入端,即可以进行实时显示相应的气体浓度,下图为第一个通道的气体co超标的显示。
图3-4LCD显示
3.4地址锁存器主芯片74LS138
我们采用74LS138译码器做报警灯的驱动部分,输入口连接AT89C51的P3.4到P3.6来控制相应的指示灯亮,P3.7作为使能信号输入端,当正常时P3.7输出高电平,这是8个发光二极管全部熄灭,当检测到有害气体超标时,P3.7输出低电平,此时P3.4、P3.5、P3.6输出对应的值,点亮相应的发光二极管。
指示灯的显示:
8个灯分别用共阳极的二级管接通,只要有低电平信号指示灯就会发光。
某一种气体超标时,其对应的指示灯就会发光。
工作电路图如下图3-5。
图3-5指示灯
3.5报警电路
报警电路我们采用了一个三极管对电路进行了放大驱动报警器,报警音由一连续方波信号组成,保证产生的方波信号频率在20—20000Hz之间,人耳即可听到,要希望是声音尖锐,则可调高频率。
将三极管的基极接到单片机的P2.7接口。
3.6电平输入设计
因为要输入电平,也就是要模拟传感器输入的气体浓度检测信号,我们要用电平的变化来模拟,电平的输入我们通过ADC0808输入端后,输出端接AT89C52单片机的P1口的8个端口,这里我们只需要8个可调电阻就可以实现。
第4章系统的软件设计
一个应用系统,要完成各项功能,首先必须有较完善的硬件作保证。
同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。
甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单。
以下为设计的具体程序
4.1自检程序的设计
我们的自检程序,其中包括两个方面:
一方面是指示灯轮流点亮一次,这里我们可以采取移位寄存的方法实现。
我们利用P3.4到P3.6接74LS138进行输出8个指示灯,P3.7作为使能信号端,接低电平。
另一方面是利用延时程序来使蜂鸣器响3声。
voidtest()
{chari;
for(i=0;i<8;i++)
{
P3=td[i];
delay(800);
}
P37=1;
for(i=0;i<3;i++)
{
alarm();
delay(1500);
}
}
4.2气体检测程序设计
首先,我们预设一个安全电平,同时用P1口实时显示电平高低,当检测到电平高于预设值时,启动报警程序,其中包括相应的指示灯点亮,还有蜂鸣器报警。
当报警后,我们通过开关检验程序判断报警声音停止手动开关是否按下,此开关通过P3.2进行输入。
当检验到有电平按下时,要执行关断蜂鸣器的程序,这里我们可以通过一个中断程序来实现。
当检验没有电平按下时,就继续保持原状。
此后,我们设置一个电平判断程序。
当检测到电平低于预设的安全电平时,启动中断程序,停止亮灯。
当监测到电平高于预设安全电平时,不启动中断程序。
同时设置启动中断程序时,返回监测电平的变化,至此,整个工业现场报警器程序完毕。
流程图有着重大意义,因为我们通过流程图可以直观的看出程序执行的顺序,我们通过程序流程图可以更加清晰地了解程序的执行情况,因此我们画出程序流程图。
N
Y
N
YY
合上手动开关
图4.2软件设计流程图
以上流程图,可以得出气体检查系统程序清单如下:
voidmain()
{
test();//自检
P3=0xff;
TimeInitial()//定时器初始化;
lcd_init();//1602初始化
EA=1;
EX0=1;
while
(1)
{
adc();//启动AD转换
check();//检查是否超标
cancel=0;
while(flag==1)
{P32=1;
display();//显示超过指标的信息
P3=td[number-1];
P37=0;
if(cancel==0)//判断停止报警按键是否按下
{
alarm();//报警音
delay(1000);
}
P3=0x0f|td[number-1];
adc();//启动AD转换
check();//检查是否超标
}
P37=1;
write_str(0x80,ok);
cancel=0;
}
4.3注意事项
在采集8路模拟信号时,由于存在先后的顺序,即检测到高危险气体时则会给出高危险气体对应的报警信号。
同时也可以在出现地危险气体超标时,发生高危险气体超标,则会优先警告有高危险气体。
如此便符合实际意义,维修人员可以根据报警提示,抢先修理安全隐患最大的故障。
该系统无需设置,将检测不通气体的传感器接至ADC0809的8个模拟信号输入端即可。
如需检查蜂鸣器,指示灯是否良好,断电重启即可进入自检程序。
第5章系统调试与测试结果分析
5.1软件调试
主要用proteus软件画图以及KEIL软件编程软件进行仿真,在Keil中将项目文件写好,经过编译产生HEX文件,装载到proteus中的单片机内,在最后调试的阶段,先检查电路图的连接是否有问题,找到准确的错误点;然后再看程序是否有错误,在仿真时,可以设置断点,每个存储器的数值是否和预想的一样,有无偏差,再反过来找软件的错误。
开始仿真,首先是自检程序,8个发光二极管依次点亮,之后蜂鸣器产生3次“嘟”声,证明器件完好。
自检结束,检测8路模拟电压信号是否超标,lcd上显示“Everything is OK”表示一切正常。
调节一号滑动变阻器,使IN1通道的电压上升,达到设定的危险值时,蜂鸣器发出报警音,与此同时,1号发光二极管点亮,LCD上显示 “CO 0.25%”前者表示有害气体为一氧化碳,后者表示一氧化碳浓度为0.25%。
按下报警停止按钮,报警音停止,1号反光二极管仍亮,LCD继续显示“CO 0.25%”,调节滑动变阻器让输入电压下降到0.25V以下,报警灯灭同时LCD显示“Everything is OK”。
5.2硬件测试
这个电路是在老师指导下设计的,电路的实际在理论上完全行得通,不过接线是设计中最关键的一步,我的接线员则是从全局出发,逐个模块链接调试,最后总体调试,在这个指导思想下,我的安装还算是成功的。
逐个模块连接在调试,可以为总体调试省去很多时间,只要每个模块,正常运行,几个模块通过纸质总线连接之后,就不会出现太大问题了。
结论
随着科学技术的迅猛发展,单片机被广泛应用于人们生活的各个领域,社会需要大量掌握单片机技术的人才,单片机的使用方法应该是我们熟练掌握的内容,水塔水位的单片机控制系统水塔水位控制在铁路、油田、化工等部门有着广泛的应用。
在这学期的单片机课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找一些关于单片机的资料,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在老师的指导课上,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
这对于我们的将来也有很大的帮助。
不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。
就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
通过此次设计,在查找资料的同时也了解了许多课外知识,开拓了视野,认识了将来电气、电子等方面的发展方向,使自己在专业知识方面和动手能力方面有了质的飞跃。
特别是在软件调试部分,一定要细心和沉得住气,因为在这个部分中,很难说可以运行调试一次就成功的,经过多次的调试与修改才能出成绩。
其中所学到的知识真是太深刻了。
单片机课程设计是我作为一名即将完成大三学业的学生一次重要的作业,这既是对这个学期所学关于单片机知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好开端,这个设计是我对所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力。
同时,也是一份综合性作业,从老师的角度来说,指导做此设计是老师对学生所做的一次执手训练。
与队友的合作是一件快乐的事情,只有彼此都付出,彼此都努力维护才能将作品做的更加完美。
而团队合作也是当今社会所提倡的。
由于时间的紧缺和许多课业考试的繁忙,并没有做到最好,但是,我们没有放弃,这是我们的骄傲!
相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。
我们的激情永远不会结束,相反,我们会更加努力,努力的去弥补自己的缺点,发展自己的优点,去充实自己,只有在了解了自己的长短之后,我们会更加珍惜拥有的,更加努力的去完善它,增进它。
只有不断的测试自己,挑战自己,才能拥有更多的成功和快乐!
快乐至上享受过程,而不是结果!
认真对待课程设计的每一天,珍惜每一分一秒,学到最多的知识和方法,锻炼自己的能力,这个是我们在单片机这门课的学习中学到的最重要的东西,也是以后都将受益匪浅的!
不仅锻炼能力,而且可以学到很多东西,在与老师和同学的交流过程中,互动学习,将知识融会贯通。
由于时间的紧缺,希望老师可以包容我们在设计上的不足。
通过这次的课程设计,理论加上实践,我掌握了80C—51单片机的基本工作原理和基本编程方法,熟悉了A/D转换器ADC0808的功能和使用方法,还可以根据需要对单片机进行扩展。
在此过程中我还熟悉了单片机的软硬件开发环境,提高了综合演练单片机的编程能力,并且亲身体验了单片机的开发成果。
此次课程设计之后,我对单片机知识点了解了更多,脑海中能把一个个分离的知识模块联系成整体,让后对其进行分析与比较。
在单片机课程中的部分知识学会了融会贯通,也让我深刻认识到“学以致用”的重要性。
两周的课程设计结束了,在此我想对我的指导老师表达我衷心的谢意。
在他们两个耐心的指导下,使我从这次课程设计取得丰富的理论知识和设计经验。
这次设计过程中也得到了其他老师的指导和帮助,在此一并表示衷心的感谢。
参考文献
1·教材《单片微型计算机技术》刘国荣编机械工业出版社
2·《单片微型计算机原理、应用及接口技术》张迎新编国防工业出版社
3·《单片机实用系统设计技术》房小翠编国防工业出版社
4·《单片机应用系统设计》何立民编北航出版社
5·《单片机原理及接口技术》曹琳琳编国防科技大学出版社
6·《单片机实用技术问答[M]》.谢宜仁人民邮电出版社,2002
附录1程序
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
unsignedchardispbuf[5];
unsignedchargetdata[8];//存储八路模数转换后的结果
unsignedinttemp;
unsignedinttemp1;
unsignedcharcount;
unsignedchard=0;
charcancel=0;
ucharnumber;
ucharcodewarn[]={10,100,100,150,20,50,100,150};//设定各个有害气体的指标
ucharcodetd[]={0x04,0x14,0x24,0x34,0x44,0x54,0x64,0x74};//通道先择数组
ucharcode*gas[]={"CO","NO","NO2","SO2",
"SO3","CH4","C6H6","HCHO"};//有害气体名称
ucharcodeok[]={"EverythingisOK"};
sbitST=P3^0;
sbitOE=P3^1;
sbitEOC=P2^3;
sbitCLK=P3^3;
sbitP32=P3^2;
sbitP34=P3^4;
sbitP35=P3^5;
sbitP36=P3^6;
sbitP37=P3^7;
sbitP20=P2^0;
sbitP21=P2^1;
sbitP22=P2^2;
sbitP23=P2^3;
sbitBEEP=P2^7;
sbitP17=P1^7;
charflag=0;//检测到指标高于设定值是flag=1
/********************延时函数*************************/
voiddelay(ucharn)
{
uchari;
for(i=0;i}
/********************定时器初始化*************************/
voidTimeInitial()
{
TMOD=0x10;
TH1=(65536-200)/256;
TL1=(65536-200)%256;//定时200us
EA=1;
ET1=1;
TR1=1;
}
/*********************************************************/
/***************八路模数转换存入getdata[]******************/
voidadc()
{chari,m=1;;
for(i=0;i<8;i++)
{
P2=td[i]|0x0f;
ST=0;
OE=0;