苏州科技学院本科生毕业设计(论文)
供5V电源。当按下K1键时,电路接通,指示灯亮起,说明有供电。EEPROM存储电路的SCL口和SDA口分别与单片机的P1.0和P1.1相连,用于存储新设定的阈值。下面要解决的问题就是怎样把传感器测得的信号传给单片机了。传感器的两个接口AOUT和DOUT分别与单片机的P1.7和P1.4相连,用来给单片机传输测得的模拟电压。经过单片机内部的模数转换功能,将模拟变压变成数字电压,并将其传送给LCD显示器。单片机通过P2.7,P2.6,P2.5与LCD显示器的4,5,6引脚相连,控制其工作。7-14引脚分别与单片机的P0.0-P0.7相连,用于传输数据。
17
苏州科技学院本科生毕业设计(论文)
第4章软件系统的设计与实现
4.1 主程序设计
图4-1 主程序流程图
程序设计的第一步便是使系统初始化,因为本设计可以自行设定阈值,所以只能通过中断来设定需要的阈值。如果没有中断即没有设置阈值,那么就用之前的阈值。如果有外部中断,那么就启动设定阈值操作。另一方面,气体传感器检测到酒精后,要经过A/D转换模块,然后经过一系列的数据处理,得到酒精浓度值。这个值一方面要在LCD上显示出来,另一方面要与阈值进行对比,若大于阈值,就要启动声光报警器,若小于阈值就不报警。程序的主要难点就在怎样得到酒精浓度值上面。
18
苏州科技学院本科生毕业设计(论文)
而这项操作主要在单片机内完成的。所以本论文设计的酒精浓度测试仪,功耗低,速度快,结果准确。
4.2 分部分软件设计
4.2.1 ADC程序流程图
ADC程序流程图
图4-2 ADC程序流程图
因为A/D转换必须依靠下降沿触发才能启动,所以编程时要注意做一定的延时,通常为10ms,再进入下一步操作。然后才进行A/D转换,如果转换完成,就会得到数字电压,然后经过调用数据处理程序就能够得到所测得的酒精浓度值。如果转换未完成,则继续转换。
19
苏州科技学院本科生毕业设计(论文)
4.2.2 LCD程序流程图
图4-3 LCD控制流程图
在对系统进行初始化后,如果检测到该酒精浓度检测仪有外部中断,那么就可以重新设置酒精浓度阈值。这个阈值不仅要设置,还要储存起来,以便与以后要检测的酒精浓度进行比较。如果没有外部中断响应,那么测得的酒精浓度值还是与之前的阈值比较。
20
苏州科技学院本科生毕业设计(论文)
第5章 系统的调试及实验结果
5.1 调试步骤
5.1.1 按键修改酒精阈值程序
设置酒精浓度阈值的程序的思路就是,如何让单片机知道使用者正在设置阈值。这就要求检测仪要不间断地检测。一旦发现有按键被按下,就知道要修改阈值。并且按照按键按下的次数修改。检测到的酒精浓度应与最新设置的阈值相比较,一旦比阈值大,蜂鸣器就要工作而且指示灯要亮起。
5.1.2 模数转换测试
A/D转换模块首先要初始化,然后将得到的关于酒精浓度的模拟量经过一系列处理,变成数字量。而且要将其通过单片机传送到液晶显示上面。同时得到的数字量还要与预先设立的阈值相比较。
21