乐山师范学院毕业论文(设计)
4.3火灾判断与报警流程[7]
在软件中已经设定了报警烟雾浓度限值和报警温度限值,在具体的操作中是可以进行人机界面调节的。在整个判断过程中,单片机接收到采集到的温度值和烟雾浓度值,与设定的限值进行对比,如果烟雾浓度和温度任一一个值超过了报警限值,则蜂鸣器和指示灯会发出声光报警。如果两项都没有达到报警限值则不报警。当然也可以在两项都没有达到报警限值时通过手动按键报警,报警后必须手动解除。如果两项值有任一项还处于报警条件下,则不能取消报警。在本次设计中我将报警烟雾浓度范围设定为:1800-4000,温度范围设定为:20-70。主程序循环判断以上二项是否发生异常,当有一项异常时,系统再判断其他两项是否有一项或两项都异常,如果是则系统认为发生了火灾,发出声光报警,直到异常被排除,如果其他两项都没有异常则系统认为没有发生火灾,系统继续循环检测。
图4.3 系统循环检测图
4.4主要端口说明:
P1.0为单片机向数码管串行输出要显示的温度的数据口,P1.1为单片机向数码管串行输出数据的脉冲信号,P1.2温度传感器DS18B20的数据输入口,P1.4烟雾传感器的检测口,单片机检测到该口为高电平时认为烟雾浓度过高,发生异常,P1.5蜂鸣器的触发信号口。
16
乐山师范学院毕业论文(设计)
图4.4 主要端口说明图
5 单片机接口电路
5.1 前端信号调理电路[8]
对于传感器输出的模拟信号,一般要用运算放大器[9]对其进行调理或放大,以满足A/D转换器对输入模拟量幅值及极性的要求。在本报警器电路中,同样要对两类传感器的输出信号进行放大调理。电路图如上图5.1所示,运算放大器接成电压放大电路。从传感器采集过来的微弱电压信号,经过电压放大器的放大,得到较强的模拟电压信号。
8R320k32U5:A14559D2DIODEC20.1uFR4R510k100k 图5.1 信号处理电路图
4 5.2 晶振电路
晶振电路为单片机AT89C52工作提供时钟信号,芯片中有一个用于构成内部振荡器的高增益反相放大器
[10]
,引脚XTAL1和XTAL2分别是该放大
17
乐山师范学院毕业论文(设计)
器的输入端和输出端。这个放大器与作为反馈原件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。电路中的外接石英晶体及电容C5、C6接在放大器的反馈回来中构成并联振荡电路,由于外接电容C5、C6的容量大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,电容的容量大小范围为30±10pF;如果使用陶瓷谐振,则电容容量大小为40±10pF;在本设计中,我使用的是石英晶体,电容的容值设定为30 pF。 5.3复位电路
复位电路的基本功能是:系统上电是提供复位信号,直至系统电源稳定后,撤销复位信号。我们在启动单片机时都需要复位,使CPU及系统各部件处于确定的初始状态,并从初始状态开始工作。AT89C52的复位信号时从REST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态且振荡器稳定后,如果REST引脚上有一个高电平并维持2个机器周期以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位,在本次设计中,我采用的是手动按钮复位。在复位输入端REST上加一个高电平,采用的办法是在电源和REST端接一个按钮,当手按一下按钮时,系统复位。AT89C52的复位电路如图5.3所示:
R2C11nF10k
图5.3 AT89C52的复位电路
5.4声光报警电路
在AT89C52的控制下,声光报警电路可以根据不同的情况,通过蜂鸣器和指示灯发出声光信号。
由于蜂鸣器的工作电流一般比较大,单片机的I/O口无法直接驱动了,所以需要利用放大电路来驱动,一般使用三极管来放大电流就可以了。声光报警电路由单片机的P1.4引脚进行控制,当P14输出的电平为高电
18
乐山师范学院毕业论文(设计)
平时,三极管导通,蜂鸣器的电流此时形成回路,会发出声音报警;否则,三极管截止,蜂鸣器就不会发出声音。蜂鸣器报警电路如图5.4.1所示:
Q1fNPNBUZ1BUZZER
图5.4.1 蜂鸣报警电路
声光报警电路就有单片机的P10口进行控制1个发光二极管,予以光报警(指示灯为:红灯闪烁)。声光报警电路如图5.4.2所示:
qR110kD1LED-BIGY
图5.4.2 声光报警电路图
5.5数据采集电路
数据采集是本次设计中的重要环节。为了降低误报率,设计时对温度烟雾做了两次采集、两次判断的方法。每次采集温度烟雾数据后,将数据存入单片机的寄存器中,然后在火灾判断程序中,将采集的数据与设定的值进行比较,从而判断出是否发生火灾。数据采集的具体流程[11]是:系统和程序初始化后,驱动ADC0832的1N0对温度信号先进行A/D转换,单片机接收转换好的数据,存入单片机的P1.6口,有INT1中段服务程序完成;系统延时10 ms,驱动ADC0832的IN1对烟雾信号进行A/D转换,转换完成后系统延时50 ms,进行第二次温度烟雾信号采集,
19
乐山师范学院毕业论文(设计)
将转换好的数据存入寄存器数。单片机每次驱动A/D转换后等待外部中段1,当ADC0832的EOC端变为I时,即中断到来,说明A/D转换已经完成,通过中断服务程序读取转换得到的数据。数据采集电路如图5.5所示:
图5.5 烟雾传感器采集电路和转换电路图
6 软硬件调试
6.1软件调试
先画出整个电路原理图,然后将写好的程序调入KEIL软件中进行调试,首先对各模块的子程序进行调试,在调试过程中,如果遇到与希望得到的结果不相符合的,进行单步调试,直到该模块能够汇编成可执行文件并出现相应的现象,然后将编译成功后的程序加载到Protel 99 SE上进行仿真,仿真图和 KEIL软件调试图如6.1.1和6.1.2所示:
图6.1.1 软件调试图
20