图4.8 AD0809与单片机AT89C51连线线路
4.2.5 声光报警电路的设计
系统的声,光报警电路由发光二极管和低电压蜂鸣器构成,分别由PIC单片机的2个端口控制。发光二极管LED具有体积小,抗冲击和抗震性能好,可靠性高,寿命长,工作电压低,功耗小,响应速度快等优点,常用于显示系统的工作状态,有益于控制系统的设计和维护。当该部分工作时,整机的工作电流将增加为未报警状态时的电流的数倍,消耗的功率会比较大,因此采用了分时供电的方法,通过单片机控制该部分电源的通断,即质量浓度达到报警时才给其供电;另外,用单片机输出的周期脉冲报警信号控制振荡器的启停,用振荡器输出信号控制蜂鸣器和发光二极管,振荡器可以用TTL门电路构成的多谐振荡器。采用这2种方法可降低该部分的电路的功耗。设计中,LED发光二极管的工作电流为5-20mA,最大不超过50mA,否则会烧坏器件。为了获得良好的发光效果,LED工作电流控制在10-15mA较为合理。在图4.9中所示硬件电路中,D口得RD4,RD5,RD6,RD7,接声,光报警电路,其中D口的RD5-RD7分别接质量浓度过高,相等,过低的LED。当气体检测仪检测质量浓度低于设定值时,绿灯亮;当气体质量浓度达到某一定值时,黄灯亮;当高于设定值时,红灯亮并发出警报信号。
[31]
[30]
26
图4.9 声光报警电路
4.2.6 显示电路的设计
在该设计中,LED显示器的显示方法采用动态显示。LED动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,在选通相应的LED后,即在显示字段上得到显示字形码。这种方式不但能提高数码管的发光效率,并且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。本设计中处理结果采用4位LED显示,首次显示气体类别,后3位显示气体浓度。逐位轮流点亮各个LED,每一位保持1ms,在10-20ms之内再一次点亮,重复不止。这样利用人的视觉停留,好像4位LED同时点亮一样。
图4.10 显示电路
4.3 生成PCB图
27
见附录B 4.4 本章小结
本章主要介绍系统硬件设计。硬件电路由数据采集、数据转换、数据处理、结果显示和报警等部分组成,本设计所用到的芯片有AD0809模数转换芯片、AT89C51单片机还有一些气体传感器、复位电路、驱动电路、LED显示模块。并实际的联系在一起,能绘画出具体可操作的电路图,详尽的介绍了本设计硬件部分的构造及可实现性。
5 软件部分设计
5.1 主程序流程图设计
如图5.1所示的系统流程图,是用来描述整个系统的工作过程。首先,初始化中包括I/O口初始化与外部中断初始化。
本设计I/O口初始化包括使按键,蜂鸣器,数码管等调整为初始化状态。系统定义I/O口初始化接高电平,按键启动接低电平,且数码管界面定义8888为初始化状态。
外部中断初始化是以中断方式判断按键是否按下。若按键被按下,则按键所接的低电平被触发,且按键按一次采集数据,不按不采集,以便选择结果。若为Y,会进行下一步操作,进入中断来读取传感器值,显示气体浓度值和气体类别。执行完毕后,回到主函数,继续等待按键按下。若为N,会返回等待按键按下。
28
图5.1 系统流程图
5.2 AD0809部分程序流程图设计
如图5.2所示,此程序流程图反映了中断函数工作的流程与读取传感器值所需要的步骤。开始是表示主函数等待,有键按下使AD0809数模转换芯片呈现初始化状态。
写入通道号用来决定多种气体的其中一种,由气体传感器所输出的微弱电信号经它们各自的信号放大电路对信号进行预处理,让其转装换为0-5V内变化的直流信号,传送到AD0809数模转换芯片进行数据采集处理。本设计定义:C为L,B为L,A为L,则输入IN0端口为酒精气体模拟信号。C为L,B为L,A为H,则输入IN1端口为一氧化碳气体模拟信号。C为L,B为H,A为L,则输入IN2端口为甲烷气体模拟信号[32]。
延时20us后等待EOC变高是AD0809转换完成的标志信号,其中20us的时间是用来给AD0809将模拟信号转换处理为数字信号所花费的时间。此时,单片机读
29
取EOC,表示AD0809转换完成。所读取的8位数据将会由单片机进行数据处理转换为具体的气体浓度值,进而由数码管进行显示。若完成则返回等待按键按下。
图5.2 AD0809部分程序流程图设计
5.3 数据处理
模拟量输入模块可能采集到缓慢变化的模拟量信号中的干扰噪声,这些噪声往往以窄脉冲的方式出现。为了减轻噪声 信号的影响,可以对连续若干次采集到的值取平均值(即平均值滤波),用平均值来代替当前采集到的数据。
在本系统采集到的数据中,现场如果强电设备较多,不可避免的会产生尖脉冲干扰,这种干扰一般持续时间短,峰值大,对于这样的数据进行数字滤波处理时,仅仅采用算数平均值滤波时,尽管对脉冲干扰进行了1/n的处理,但其剩余值仍然
30