基于51单片机的酒精浓度测试系统

余年寄山水
768次浏览
2021年02月17日 17:38
最佳经验
本文由作者推荐

含泪的微笑-

2021年2月17日发(作者:fleshy)



目录




1


章绪论



1


1.1


课题选题依据和制作意义



1


1.2


国内外研究成果的概述



1


1.3


研究此课题的途径



2


1.4


此设计的构成和内容



2



2


章系 统的工作原理与结构



3


2.1


工作原理



3


2.2


结构框图



4


2.3


酒精浓度检测仪的整体结构组成



4



3


章检测仪的硬件设计



4


3.1


单片机的选择



4


3.2


酒精浓度检测的设计



6


3.2.1 MQ-3


气敏传感器的结构和外形



7


3.2.2 MQ-3


灵敏度特性曲线



8


3.2.3 MQ-3


的标准工作条件和环境条件



8


3.2.4


酒精浓度信号的采集



9


3.3


模数转换电路的设计



10


3.3.1 ADC0809


的特点



10


3.3.2


模数转换电路



10


3.4


按键设定阈值及阈值存储电路的设计



11


3.5


液晶接口电路的设计



11


3.6


声光报警电路的设计



12


3.7


单片机与


PC


机串口通讯



13


3.8


晶振电路的设计



13


3.9


复位电路的设计



14


3.10


附加功能电路的设计



14



4


章 检测仪的整体原理图和实物图



15



5


章检测仪的软件实现



16


5.1 A/D


转换的软件实现



16


5.2


阈值设定及显示的软件控制



17


5.3


整体软件控制流程



18

< p>


6


章检测仪的软件功能调试


20


6.1


按键修改酒精阈值程序



20


6.2


模数转换测试



20


6.3


液晶显示程序设计



21


6.4


声光报警测试



24


6.5


整体功能调试程序



24



7


章结论



25


参考文献



26


致谢



27


附录



28


附录


A


:全局变量头文件和延时模块



28


附录


B



AD


转化模块



30


附录


C



24c08


存储模块



31


附录


D< /p>



LCD


显示模块



35


附录


E

:主函数



41



1


章绪论



1.1


选题的依据和课题的意义


< /p>


早在人类文明曙光初露之时,各大文明古国的酒文化就已萌芽。数千年来,酒作为影响最广


的一种饮品,与众多历史事件纠缠,也在各国各时期的文艺作品中经常出现。过度饮酒已 经


造成了躯体或者精神的损害,


并会带来不良的社会后果,


如果饮酒时间和量达到一定的程度,


饮酒者会无法控制自己的行为。 适当饮酒,可以使人心情愉悦、保持活力。如果过度饮酒,


那则会毁坏自己的身体。现在 人均拥有私家车的比例越来越高,汽车已经成为现代人不可缺


少的交通工具。但是,伴随 而来的是各种各样的交通事故,尤其是酒驾,给自己和别人的生


命财产带来了严重的威胁 ,也同样给家人带来了痛苦。所以说在家中备一个酒精检测仪,在


每次驾车之前测试一下 ,这是对家庭对社会对他人负责的体现。亦或者企业杜宇酒精泄露的


检测、监控。这对保 护员工、居民的人生安全是必不可少的。所以,酒精浓度检测仪拥有极


大的市场前景和需 求



1.2


国内外研究概况



在这个信息技术急速 发展的


20


世纪,传感技术渐渐完善,并且在人们的生活中有着 完美的


体现。正因为传感器在众多领域中都有着不可或缺的作用,所以,高准确率,高稳 定性,小


型化,低能耗和智能数字化成了它转变的趋势,警察经常使用一种便于携带的酒 精测试仪,


它通过驾驶员呼出的气体从而来确定驾驶员是否饮酒,更甚者能依据体温、呼 吸频率等众多


情况,当场作出驾驶员喝酒后身体里的酒精含量。因此可见,高准确度、高 稳定性、小型化


以及低能耗的酒精浓度测试仪是今后发展的必然趋势。迄今为止,共有五 种类型可以对气体


中酒精含量进行检测,


分别是燃料电池型、< /p>


半导体型、


红外线型、


气体色谱分析型和 比色型,


但是为了使用方便所以目前使用的只有燃料电池型和半导体型。



当今世界最为广泛研究的环保型能源就是燃料电池,它可以把可燃气体转化为 电能却不产生


污染。燃料电池的一个分支就是就是酒精传感器。以白金为电极的燃料电池 酒精传感器,在


满是特种催化剂的燃烧室内,可以使进入燃烧室的酒精充分燃烧使之成为 电能,换句话说就


是产生电压在两个电极上,在外接负载上消耗电能。这个电压正比于计 入燃烧室的气体的酒


精浓度。


相比于半导体,

< br>此种酒精测试仪具备了稳定性好、


准确率高、


抗干扰能力 好的优点。


但是此种传感器的结构要求非常精确,因此制造难度比较大,此前只有美国、 英国、德国此


类少数几个国家能够产出,再加上材料成本就高,结果此种测试仪价格非常 昂贵。



1.3


课题研究方法



1


)文献索引法:利用学校图书馆资料和文献及通过网络查询相关资料对本课题有足 够深


的了解,为本设计的具体模块电路做好理论准备。




2


)调查法:与身边的同学和朋友进行交流 ,充分考虑本设计实现的功能,尽可能完善该


设计的功能。


< /p>



3


)对比分析法:把此传感器与市面上 想通产品进行一次比较,检验此种酒精测试仪的不


足之处以及可以加以优化的部分,加以 改进。



1.4


设计构成及研究内容



本文设计的测试 仪是用起敏传感器的,属于半导体,此传感器在根本上是一个可起变电阻,


在两端加上一 个固定的电压,在阻值进行线性变化时说明所处环境的酒精浓度升高,继而可


以把酒精浓 度变为电压。此检测仪以


C51


单片机和气敏传感器为核心,并 且具有声光报警以



LCD


显示功能。 根据不同环境下检测,可以改变不同的阈值,超过了而定阈值便可以声光


报警,提醒有危 害。采用


C


语言来实现其软件功能。本设计只要包括以下内容:




1


)主控 芯片的选择;在此设计中选择了


C51


系列单片机,熟悉


C51


系列芯片怎样控制外


围硬件电路。




2


)酒精浓度 检测模块的设计;用酒精传感器来检测酒精浓度,充分理解该传感器器的工


作原理,制作 数据采集模块来协同完成数据的采集。



3



A/D


转换模块的设计;转换 器的选择,


把采集的酒精浓度的模拟信号进行转换之后发送


到单 片机来进行存储、处理。




4


)键盘模块的设计;使用键盘来设立酒精浓度的阈值在不同的环境里面。




5


)声光报警模块的设计;超过 设定的阈值直观地给予警示。




6< /p>


)液晶显示模块的设计;准确显示出检测到的数据。


< p>


7


)各个硬件模块电路衔接。

< br>



8



PCB


的布板、元件焊接及功能调试。



2


章系统的工作原理与结构



2.1


工作原理


< br>酒精浓度检测仪可以测试在不同地方的酒精浓度,而且可以显示出当时检测出来的结果。我


设计的这个检测仪除了有这个功能之外,还可以随意调整酒精浓度的阈值,用来区别不同条


件下酒精的安全限值,同时具有声光报警功能。主要由酒精传感器、单片机、


LCD


显示、键


盘模块以及声光报警部分组成。



酒精传感器完成数据的采集,


把测试出来的酒精浓度 转变为电信号,


之后传递给模数转换器,


经过转换后,


把得到的数字信号传递给单片机中,


大年纪对输入的数字信号来进行分析 模拟,


然后把最终的结果用显示器显示出来。并且同时和键盘设定的酒精阈值来对比,一 旦所处地


方的酒精浓度超过界限,那么单片机会发出声音或者


L ED


闪烁来提示,以提示危害、



2.2


结构框图


< br>硬件系统结构框图如下图


2-1


所示



2-1


系统结构框图



2.3


智能酒精浓度检测仪的整体结构特点



本文设计的智能酒精浓度检测仪具有如下特点:




1


)系统是基于控制核心为单片机的数据采集系统 ,外围电路是以


LCD


和键盘为基础的显


示和响应电路,


无需任何其他辅助工具,


使用者可以借助协同 工作,


完成数据的采集、


存储、


计算、 分析等过程。




2

< br>)系统具有低功耗、小型化、高性价比、灵敏度高等特点。



3


)以使用者携带角度出发,系统基于键盘来调控酒精浓 度的阀值,配合单片机的控制,


从而达到了人机相互操作、界面友好的成果。

< p>



4


)软件系统采用< /p>


C


语言进行编写,在兼顾实时性处理的同时,也方便了对数据的处 理。




3


章 检测仪的硬件设计



3.1


单片机的选择



MCS-51


单片机是美国


Intel


公司于


1980


年推出的一款相当成功的产品,


该系列或其兼 容的单


片机仍是应用的主流产品之一,


该系列单片机主要包括< /p>


8031,8051,8751



89C 51


等通用产品。


本次设计选用的是


S TC89C52


单片机,


STC89C52

是低功耗、高性能的


CMOS8


位微控制器,具

< p>


8K


在系统可编程


Fl ash


存储器。使用宏晶高密度非易失性存储器技术制造,与工业


80C51


产品指令和引脚完全兼容。片上


Flash


允许程序存储器在系统上可编程,亦适于常规编器。


在单芯片上,


拥有灵巧的


8



C PU


和在系统可编程


Flash,


使得


STC89C52


为众多嵌入式控制应


用系统提供高灵活、超有效的解决方案。


STC89C52


具有 以下标准功能:


8


字节的


Flash< /p>



256


字节的


RAM



32


位的

I/O


口线,看门狗定时器,


2


个 数据指针,


3



16

< br>位定时器


/


计数器,


1



6


向量


2

< p>
级中断结构,全双工串行口,片内晶振及时钟电路。除此,


STC89C5 2


可降至


0Hz


静态逻辑操作,支持< /p>


2


种软件可选择节电模式。空闲模式下,


CPU


停止工作,允许


RAM


、定


时器


/


计数器、串口、中断继续工作。掉电 保护方式下,内容被保存,振荡器被冻结。



控制核心为


STC89C52


单片机,


用来提高


IO


口的利用率,


凭借扩展一片


8255


芯片来实现液晶


显示的功能。单片机的


IO


口控制图如下图


3-1-1


所示




3-1-1 STC89C52


的接口控制图



P0


口用于接收模数转换的输出,


P2.0


用于模数转换的时钟控制


,8255


的扩展通过


P2.1,P2.2,P2.5


口来控制


,P2.3< /p>


用于作为模数转换的使能控制,


P2.6,P2.7


口用于模拟


I2C


连接外部存储芯片


AT24C08



P3.3


口 为外部中断控制口


,


它可以用来控制酒精阈值,


通过单片机控制


8255


来实现


液晶显示模块的功能。



8255


芯 片的引脚控制图如图


3-1-2


所示:




3-1-2 8255


的引脚控制图



8255


芯片是一种典型的可编程通用并行接口芯片,


用来扩展单片机的端口 ,


它具有


3



8



的并行口,有三位工作方式,可作为单片与各种外部设备连 接的接口电路。



CS:


片选信号线, 当该引脚为低电平时,


8255


被选中,允许

< br>8255



CPU


通讯。



RESET:


复位输入线,


当该引脚为高电平时,


内部寄存器被清除,


所有


I/O


口均被置成输入方式。



A0



A1


:地址输入线。




A0A1=00

< br>时,


PA


口被选中;




A0A1=01


时,


PB


口被选中;



< br>A0A1=10


时,


PC


口被选 中;




A0A1=11


时,控制寄存器被选中。



3.2


酒精浓度检测的设计



此设计的成功与 否在于此设计酒精浓度检测是否准确,其中最重要的是酒精的检测依靠去实


现信息的采集 。设计中选用灵敏度高、稳定性好的


MQ-3


气敏传感器,该传 感器对乙醇蒸汽


有很高的灵敏度和良好的选择性,快速的响应和恢复特性,长期的寿命和 可靠的稳定性,以


及简单的驱动电路。它的工作原理是在确定的环境条件下,环境中的酒 精浓度变化将会引起


电阻值的变化,且这两种变化存在着线性关系。


3.2.1 MQ-3


气敏传感器的结构和外形



M Q-3


气敏元件的结构和外形如图


3-2-1

< br>所示




3-2-1 MQ3


气敏元件结构外形图



在上图中 ,由微型


AL2O3


陶瓷管、


SnO2


敏感层,测量电极和加热器构成的敏感元件固定在


塑料或不锈钢 制成的腔管内,加热器为敏感元件提供必要的工作条件。封装好的气敏元件有


6


只针状管脚,其中


4


只用于信号提取,


2


只用于提供加热电流。



3.2.2 MQ-3


灵敏度特性曲线





3-2-2 MQ-3


气敏元件的灵敏度特性曲线



在图


3-2-2


中给出了


MQ-3


气敏元件的灵敏度曲线,其中:温度


20


℃ ;相对湿度:


65%


;氧气


浓度:


21%




RL:200k


Ω


. Rs

< p>
:气敏元件在不同气体、不同浓度时的电阻值。


R0


:气敏元件在


洁净空气中的电阻值。



3.2.3 MQ-3


的标准工作条件和环境条件




3-2-3 MQ-3


气敏传感器阻值变化率与酒精浓度、外界温度的关系



为了更好地使用酒精传感器


MQ-3



现将


MQ-3


的标准工作条件和环境条 件进行介绍,


分别如



3-2-1


和表


3-2-2


所示:



3-2-1


工作条件



符号参数名称技术条件备注



VC


回路电压≤


15V AC or DC


VH


加热电压



5.0V


±


0.2V AC or DC


RL


负载电阻可调



RH


加热电阻


31


Ω


±


3


Ω


室温



PH


加热功耗≤


900mW



3-2-2


环境条件



符号参数名称技术条件备注



Tao


使用温度



-10


~50




Tas


储存温度


-20



~70




RH


相对湿度<


95%RH


O2


氧气浓度



21%

(标准条件)氧气浓度会影响灵敏度特性最小值大于


2%


3.2.4


酒精浓度信号的采集


< /p>


详细的酒精浓度采集电路见下图


3-2-4


所示:




3-2-4


酒精浓度采集电路



在上图中传感器将 环境中的酒精浓度转化电压信号,在第


4


引脚直接输出电压信号 模拟量,


该模拟量将送到模数转换,通过单片机控制最终得出环境中酒精的含量,同时可 以通过对电


位器


WR1


的调节来改变输 出的灵敏度。



3.3


模数转换电路的设计



此设计用的是单 一的电源


+5V


,所以酒精浓度的电压信号也在


0~5V


之间,而且转换的速度应


该要快一点,在此我 们选用典型的


8


位逐次逼近型


A/D< /p>


转换器


ADC0809.


3.3.1 ADC0809


的特点



该转换器具有如下特点:




1


)分辨率为


8


位;< /p>




2


)转换时 间为


100us;



3


)很容易与微处理器连接;



4


)无须零位或者满量程调整;




5


)带有锁存控制逻辑的


8


通道多路转换开关,便于选择


8


路中的任一路进 行转换;




6


)带锁存器的三态数据输出。



3.3.2


模数转换电路



具体模数转换电路见图


3-2-1


所示




3-2-1


模数转换



在该检测仪的设计中只用到 两路通道,即通道


IN0



IN1.< /p>


分别为酒精浓度的电压模拟信号和


电压比较器

LM393


的基准电压信号,


D0~D7

< br>为由酒精浓度引起而产生的电压数字量输出,



果将送至 单片机进行分析和处理。



3.4


按键设定阈值及阈值存储电路的设计



为了在不用环境中完成酒精浓度的检测和监控,所以要调整仪器酒精浓度数值来符合工作需


求。并且为了节省消耗的硬件资源,于是在此通过外部中断的按键操作来改变酒精浓度的不

同阀值,外部中断电路见下图


3-4-1


所示




3-4-1


外部中断按键电路



添加了阈值存储电 路,既可以准确的看出详细设定的酒精浓度值,又能用来与刚检查出的酒


精浓度做一个比 较,


增强了直观性。


于此选用了


AT2 4C08


作为存储器件,


用单片机的


P 2.6,P2.7


口模拟


I2C


与之通 信,从而完成数据的读写操作。相应的电路如图


3-4-2


所示




3-4-2 AT24C08


存储电路



3.5


液晶接口电路的设计



酒精浓度的显示 采用


1602


液晶,


LCD1602< /p>


可显示两行英文字符,


且内带


ASCII


字符库。


LCD1602


模块内部可完 成显示扫描,单片机只要向


LCD1602


发送命令和显示内容 的


ASCII


码。


< br>具体的接口电路见图


3-5


所示




3-5


液晶接口电路图



控制信号

< p>
RS



R/W



E


分别由单片机控制


8255

< br>的


PA4,PA5,PA6


口实现,

要显示的信息通过调


用数据处理程序传到


8255



PB


口。



3.6


声光报警电路的设计



当酒精浓度超过所设定标准时,


通过控制单片机的

P3.3


口的电平来实现警报功能。


其电路见



3-6


所示




3-6


声光报警电路



如上图所示,酒精浓度 超过设定的阀值时,给单片机的


P3.3


口低电平,则三极管导 通,同时


蜂鸣器工作,发光二极管也亮。否则,单片机的


P3. 3


口维持在高电平,三极管截止,蜂鸣器


不工作,二极管也不发 光。



3.7


单片机与


PC


机串口通讯




串行通信”


是系统之间用一根数据信号线,


数据 在这根数据线上一位一位地进行传输,


每一


位数据都占据一个固 定的时间长度。目前个人的


PC


机上都有这种接口(

< p>
COM1



COM2


)< /p>


,即


RS-232


口。

< br>


电脑的


RS-232


口共


9


根线,


在简单的应用中,


需要三根线即可完成通信,


分别是第


2



RXD,



3



TXD,



5

< p>


GND.


串行通信与单片机之间的接口:


由于串行通信的电平逻辑定义是


+15V


(高 电平


1




- 15V


(低电平


0


< br>,而单片机中分别用


5V



0V


来表示高电平


1


,低电平


0.


它们


之间必须通过电平转换才能完成通信。最常 用的是


MAX32


电路,该连接图见图


3-7


所示




3-7


串口通信电路



单片机串口通信原理:


51


系列单片机内部集成了两个同名不同地址的串口缓冲区


SBUF


,一


个是发送缓冲区,一个是接收 缓冲区。发送数据时


MCU


将数据写到发送

SBUF


,接收到的数


据自动放到接收

SBUF



无需程序指定。


串口发 送和接收事件发生时,


由硬件标志来通知处理


器,


RI


为接收事件发生标志,


TI

为发送完成标志,



”为事件发生。在串口中断打开的条件< /p>


下,两者任意一种情况发生都会引起中断,单片机程序可以根据


R I=1



TI=1


进行相应的处


理。



本检测仪需要用串口线将程序下载到单 片机中,以对之进行初始化过程。



3.8


晶振电路的设计



本系统采用的是


12MHZ


的晶振,其电路图如图


3-8< /p>


所示:




3-8


晶振电路图



XTAL1:

< p>
振荡器反相放大器和内部时钟发生电路的输入端。



XTAL2:


振荡器反相放大器的输出端。



3.9


复位电路的设计


< p>
单片机的复位电路如图


3-9


示:




3-9


复位电路图



RST:


复位输入。


晶振工作时,


RST


脚持续


2


个机器周期高电平将使单片机复位。


看门狗计时完


成后,


RST


脚 输出


96


个晶振周期的高电平。


特殊寄 存器


AUXR


上的


DISRT0


位可以使此功能无


效。


DISRT0


默认状态下,复位高电平有效。



3.10


附加功能电路的设计



由于酒精浓度的 检测在很大程度上受到温度的影响,为了更直观地测出不同环境中酒精的含


量,这里增加 一个温度传感器,以对应不同温度下酒精传感器所对应的线性关系。


< br>DS18B02


数字温度计


DALLAS


公司生产的单总线器件,


具有线路简单、


体积小的特点 。


实际应


用中不需要外部任何器件即可实现测温,测量温度范围 在


-5~+125



C


之间,数字温度计的分


辨率可以从


9

< br>位到


12


位选择,且内部有上、下限告警设置,使用非常 方便。数字温度计接


口的电路图如


3-10

所示




3-10 DS18B02


电路



P17


为数字信号输入


/


输出端,将程序下载至单片机 ,开机运行,用手触摸


DS18B02


温度传感


器,液晶上将会显示当时所处环境的温度值。




4


章检测仪的整体原理图和实物图



智能酒精检测仪的整体原理图见


4-1


所示< /p>




4-1


整体原理图



酒精检测模块实物图如图


4-2


所示




4-2


酒精检测模块实物图



智能酒精检测仪 的实物图见


4-3


所示




4-3


酒精检测仪的实物图




5


章检测仪的软件实现



5.1 A/D


转换的软件实现



A/D


转换的软件控制流程如图


5-1


所示




5-1 AD


转换流程控制



A/D

< p>
转换的启动必须依靠下降沿触发


,



START


置低后延时一段时间


(

< br>约


10ms)


转换才正式开始


.


转换过程中的所需输入时钟允许范围为


10KHZ~1280K HZ,


在本次设计中选用


500KHZ,


通过定时


器产生


,


转换完成后得到的 数字量即为由酒精传感器检测到环境中的酒精含量而产生的电压



,


调用数据处理程序从而可得到酒精浓度的真实值


.


5.2


阈值设定及显示的软件控制



酒精浓度的阈值设定及显示的具体软件控制流程如图


5-2


所示




5-2


酒精浓度的阈值设定及


LCD


显示的软 件控制流程



当系统进行完初始化后


,


该检测仪在将检测到的酒精浓度进行


A/D

转换的同时


,


还在时刻检测


有无外 部中断的响应


,


一旦有按键按下


,


将会根据按键按下的次数选择酒精浓度表中的酒精浓


度值

< p>
,


而且这个值将会立刻被保存于外部存储单元


(A T24C08),


以便与监测到的环境中的酒精浓


度进行比较< /p>


,


完成接下来的声光报警功能


.


5.3


整体软件控制流程



本酒精检测仪的软件流程图见图


5-3


所示




5-3


软件方案总体流程图



该仪器软件程序 主要使用


C


语言编写,采用了模块化结构程序设计方法,包括主 程序、中断


程序等。系统在开机或者复位后,首先进行初始化、自检,然后进入中断等待


,A/D


转换


,


液晶


显示三个状态


,


最终根据所得结 果判断是否执行声光报警。


中断子程序包括预设阀值、


数据存< /p>


储、信息显示等操作,在进行阀值判断时用到了


LM393


电压比较器,程序的绝大部分时间处


在数据处理上,而


STC89C52


单片机在一次处理数据的时间约为


6 us


,故总体的平均功耗低。




6


章检测仪的软件功能调试



本检测仪的软件功能通过方便灵活、移植性好的


C


语 言编程来实现,采用分模块化程序设计


思想,对不同模块分别进行调试后,最后再进行整 合调试。总体说来包括


6


个模块,即:按


键设置阀值模块、模数转换模块、液晶显示模块、声光报警模块、存储模块、延时模块。



6.1


按键修改酒精阈值程序



下面这段程序是用来设置酒精浓度的阈值的,


检测仪只要处在工 作状态中,


不停地扫描按键,


一旦检测有按键按下,通过检测按 下的次数调用酒精浓度值数组就可知道酒精浓度设在哪个


阈值。那么只要阈值在没修改前 ,检测仪实时检测的酒精浓度值就会跟该值进行比对,超过


界限蜂鸣器将会就会发出响声 ,同时蜂鸣器旁边的灯会亮。经测试,虽然整个反应过程慢了


点,但是效果还是符合预定 的思路。



程序


6-1:


Static unsigned char set_Value=6;


void INTER0(void) interrupt 0


{


set_Value++;


I2 c_Write_Char(DEV_24c08ID,0x00,set_Value);


if(set_Value>20)


set_Value=0;


}


6.2


模数转换测试



酒精浓度模拟量的输入端选择为


0


通道,先得对


ADC0809


的初始化,初始化完后,进行酒精

< br>浓度的监测、分析、运算和处理,最终结果通过单片机控制


8255


输至液晶上显示出来,同


时这个值还将与所设定的阈值进行比对以判断是否超 标。下面是关于


A/D


转化的模块化程序


(


程序


6-2).


程序


6-2:


ucharAD_Convert(void)


{


Start=LOW;


delay(2);


Start=HIGH;


delay(2);


Start=LOW;


while(!EOC);


OE=HIGH;


temp=P0;


return temp;


}


6.3


液晶显示程序设计



这里所使用的是


LCD1602


液晶,可显示两 行字符,每行


16


个字符。以下是对其的初始化程


序,


为了达到实时正确显示所需要的信息,


我们将对 检测仪的液晶显示模块进行单独的测试。


要想


1602


液晶正常显示,得对其进行写命令操作和写数据操作,以下的程序可以在液晶的

< br>第一行显示




.


程序


6-3:


#include


#include


#include


#define a8255_PA XBYTE[0xD1FF] /*PA


口地址


*/


#define a8255_PB XBYTE[0xD2FF] /*PB


口地址


*/


#define a8255_PC XBYTE[0xD5FF] /*PC


口地址


*/


#define a8255_CON XBYTE[0xD7FF] /*


控制字地址


*/


#define uchar unsigned char


#define uint unsigned int


uchar code table[]={




void delay(intms)


{


inti;


while(ms--)


{


for(i = 0; i< 250; i++)


{


_nop_();


_nop_();


_nop_();


_nop_();


}


}


}


/*


遇忙等待函数


*/


void WaitForEnable(void)


{


_nop_();


_nop_();


while(a8255_PA&0x40); //1




a8255_PA=0xbf; //10111111


}


/*


写命令


*/


void write_com(uchar com)


{ a8255_CON=0x80;


WaitForEnable( );


a8255_PA=0x8f; //10001111


a8255_PB=com;


delay(2);


a8255_PA=0xcf; //11001111


delay(2);


a8255_PA=0x8f; //10001111


}


/***********


写数据函数


*************/


void write_data(uchardat)


{


a8255_CON=0x80;


WaitForEnable();


a8255_PA=0x9f; //10011111


a8255_PB=dat;


delay(2);


a8255_PA=0xdf; //11011111


delay(2);


a8255_PA=0x9f;


}


/***************LCD1602


初始化


*****************/


void lcdinit (void)


{


a8255_PA=0xff;


a8255_CON=0x80;


a8255_PA=0x9f;


write_com(0x38);


write_com(0x0f); //00001111


开显示,开光标,不闪烁



write_com(0x06); //00000111


指针加


1


write_com(0x01); //


清屏



write_com(0x80);


//write_com(0x80);


}


void main( )


{ intnum;


lcdinit();


for(num=0;num<10;num++)


{


write_data(table[num]);


delay(20);


}


while(1);


}


6.4


声光报警测试



为了达到设定的要求, 酒精浓度超过阀值时,由单片机控制实现声光报警功能,给单片机的


P3.3

< p>
口一个低电平,蜂鸣器就会响,灯会亮。以下是相应的模块程序。



程序


6-4




Sbit Beep=P3^3;


if(j>=set_Value)


{


Beep=0;


delay_ms(200);


Beep=1;


delay_ms(20);


}


6.5


整体功能调试程序



本设计采用模块化 程序设计结构,方便调试,易于查错,可移植性强。详细的模块程序请查


看相应的附录, 该检测仪的整体功能实现即由每个模块的分工协作来实现。将程序在


Keil

< p>


译器中编译成功后,生成


HEX


文件,然后将程序烧录到单片机中,上电即可进行工作了。上


电后该酒精检测仪 将按照初始化的程序进行工作,酒精浓度阈值为当初设定的,超过阈值则


会产生报警。一 旦有设定酒精浓度阈值的按键按下,并且检测按键按下的次数,则酒精浓度


的阈值即被重 新设定,在没被下一次设定前,实时检测的酒精浓度将与它进行比较,超过该


界限值即报 警,同时酒精浓度值一直将会显示出来。




7


章结论



经过近半年时间的不断查找资料、设计原理图、布板、焊接以及软、硬件调试,该检测仪 基


本实现了既定的功能。可以进行酒精浓度阈值设定、声光报警、以及酒精浓度的显示, 不过


整个检测仪的反应速率相对较慢,经分析可能与单片机的处理的位数、环境的温度有 关,因


为环境的温度会对酒精传感器的灵敏度造成很大的影响,但酒精传感器良好的稳定 性和选择


性使得检测仪抗干扰性很强。结构简单、体积小、携带方便等优点相信会使它具 有很好的市


场前景。总之,虽然在这过程当中遇到过很多阻碍,比如原理图中有些元件设 置不对导致没


有导入


PCB


工程中,还 有部分因为封装问题导致生成的


PCB


出现错误,不过有了这些 错误同


时让自己对知识有了更深一层的了解,培养了自己独立思考问题、解决问题的能力 。










摘要



这个时代路上的车辆越来越多, 交通问题日渐严重,其中酒驾屡见不鲜,这


是对自己的不负责也是对家人的不负责更是对 社会的不负责。所以我此次设计为


酒精浓度测试系统,该设计稳定性高,便于携带,精确 度高。酒精浓度测试仪是


在单片机


AT89C51


作为核心的基础上,再用气敏传感器,使用气敏电阻来测试酒


精浓度数值。可 以设置阈值,一旦酒精浓度超过此阈值,便会发出声光告警,最


后在

LCD


上面显示出酒精浓度数值。系统完成了对于酒精浓度的及时检测与显示


功能,还有按时测量和报警提示等一系列功能。实验结果表明,系统功能正常,


测试时间短,灵敏度高,便于携带测试结果准确,实现了此设计的功能。




关键词:


酒精浓度;单片机


AT89C52


;气敏传感器


Abstract



Age


more


and


more


vehicles


on


the


road,


the


traffic


problem


is


increasin


gly


serious,


the


drunken


driving,


this


is


for


your


own


is


not


responsible


for


th


e


family


is


not


responsible


for


it


is


not


responsible


to


society.


So


I


design


for



the


alcohol


concentration


measurement


system,


the


design


of


high


stability,


e


asy


to


carry,


high


precision.


Alcohol


tester


is


based


on


single


chip


microcompu


ter


AT89C51


as


the


core,


gas


sensor,


gas


sensor


resistance


were


used


to


test


alcohol


concentration


value.


Can


set


threshold,


once


the


alcohol


concentration


exceeds


the


threshold,


will


send


out


sound


and


light


alarm,


the


final


show


alc


ohol


concentration


value


on


the


LCD.


System


is


completed


for


concentration


o


f


timely


detection


and


display,


and


on


time


measurement


and


a


series


of


func


tions


such


as


alarm


prompt.


Experimental


results


for


registration,


the


system


f


unction


is


normal,


short


test


time,


high


sensitivity,


easy


to


carry


the


test


resul


ts


are


accurate,


realized


the


function


of


this


design.



Keywords:


alcohol


concentration;


Single


chip


microcomputer


AT89C52;


Gas


sens


or.



1


章 绪论



1.1


选题的依据和课题的意义



在人类文明 伊始之时


,


各个古代文明大国的饮酒文化已经呈现出萌芽阶段。


经过几千年的演变,


酒成为了拥有最突出影响的饮品,


和各个历史事件都有穿插,


并且在很多文艺作品中都有所体现。过度饮酒 已经造成了躯体或者精神的损害,


并会带来不良的社会后果,


一 旦饮酒者过度饮酒,


那么此时饮酒者将会无法控制


自己的行为。 适当饮酒,可以使人心情愉悦、保持活力。如果过度饮酒,那则会


毁坏自己的身体。


现在人均拥有私家车的比例越来越高,


汽车已经成为现代人不


可缺少的交通工具。


但是,


伴随而来的是各种 各样的交通事故,


其中更甚者时酒


驾,给彼此之间的生命财产造 成了不可磨灭的威胁,也同样给家人带来了痛苦。


所以说在家中备一个酒精检测仪,


在每次驾车之前测试一下,


这是对家庭对社会


对他人负责的体现。亦或者企业对于酒精泄露的检测、监控。这对保护员工、居


民的人 生安全是必不可少的。


所以,


酒精浓度检测仪拥有极大的市场前 景和需求



1.2


国内外研究概况



在这个信息技术急速 发展的


20


世纪,传感技术渐渐完善,并且在人们的生


活中有着完美的体现。


正因为传感器在众多领域中都有着不可或缺的作用 ,


所以,


高准确率,高稳定性,小型化,低能耗和智能数字化成 了它转变的趋势,警察经


常利用一种便携式酒精测试仪,


此测试 仪可以通过呼出的气体判断是否饮酒,



甚者能依据体温、


呼吸频率等众多情况,


当场作出驾驶员喝酒后身体里的酒精含


量。因此可见,高准确度、高稳定性、小型化以及低能耗的酒精浓度测试仪是今


后发展的必然趋势。迄今为止,共有五种类型可以对气体中酒精含量进行检测,


分别是燃料电池型、半导体型、红外线型、气体色谱分析型和比色型,但是为了


使用方便 所以目前使用的只有燃料电池型和半导体型。



当今世界最为广 泛研究的环保型能源就是燃料电池,


它可以把可燃气体转化


为电 能却不产生污染。


燃料电池的一个分支就是就是酒精传感器。


以 白金为电极


的燃料电池酒精传感器,


在满是特种催化剂的燃烧室 内,


可以使进入燃烧室的酒


精充分燃烧使之成为电能,


换句话说就是产生电压在两个电极上,


在外接负载上

消耗电能。


这个电压正比于计入燃烧室的气体的酒精浓度。


相比于半导体,


此种


酒精测试仪具备了稳定性好、


准确率高、


抗干扰能力好的优点。


但是此种传感器< /p>


的结构要求非常精确,因此制造难度比较大,此前只有美国、英国、德国此类少

< p>
数几个国家能够产出,再加上材料成本就高,结果此种测试仪价格非常昂贵。



1.3


课题研究方法




1


)文献索引法:利用学校图书馆资料和文献 及通过网络查询相关资料对


本课题有足够深的了解,为本设计的具体模块电路做好理论准 备。




2



调查法:


与身边的同学和朋友进行交流,


充分考虑本设计实现的功能,


尽可能完善该设计的功能。


< /p>



3


)对比分析法:把此传感器与市面上 想通产品进行一次比较,检验此种


酒精测试仪的不足之处以及可以加以优化的部分,加以 改进。



1.4


设计构成及研究内容



本文设计的测试 仪是用气敏传感器的,


此传感器属于半导体,


这个传感器归


根究底是一个可起变电阻,


然后加两个固定不变的电压载两端,


在阻值进行线性


变化时说明所处环境的酒精浓度升高,


继而可以把酒精浓度变为电压。


这个测试


仪的主要核 心是


51


单片机和气敏地电阻,


并且伴 随声光告警,


还包括


LCD


显示。


在不同的条件下检测,


通过改变不同的阈值,


可以使得超过已定阈值便可进行声


光报警,


提醒酒精浓度过高 。


为了实现本软件的功能,


我们选择使用


C


语言程序。


本设计只需要包括以下内容:

< br>



1


)主控芯片的选择;在这 个设计中选择了


C52


系列单片机,熟悉


C52



列芯片怎样控制外围硬件电路。



2


)酒精浓度数据测试模板的 设计;利用酒精传感器来测试酒精浓度,在


充分理解此传感器的工作原理的基础上,


在来制作数据采集模块并且相互协同完


成数据的采集。




3


< br>A/D


转换模块的设计;选择适当的转换器,把收集到的酒精浓度数值

< p>
转换完成之后再单片机中进行存储并且处理。




4


)关于键盘模块的设计;使用键盘来设立酒精浓度的阈值在不 同的环境


里面。



< br>5


)声光报警模块的设计;直接的在超过预定阈值是发出告警。

< br>



6


)液晶显示模块的设计; 精确的显示出检测到的数值。




7< /p>


)各个硬件模块之间的电路衔接。



(< /p>


8



PCB


板的 布板、元件焊接以及最终的功能调试。



2


章系统的工作原理与结构



2.1


工作原理


< br>酒精浓度检测仪可以测试在不同地方的酒精浓度,


而且可以显示出当时检测


出来的结果。


我设计的这个检测仪除了有这个功能之外,


还可以随意调整酒精浓


度的阈值,用来区别不同情况下酒精浓度的安全限额, 并且伴有声光告警功能。


一般由酒精传感器、单片机、


LCD< /p>


显示、键盘模块以及声光报警部分组成器。酒


精传感器在完成数据 采集的同时把测试出来的数值转变成电信号,经过转换后,


把得到的数字信号传送给单片 机,


对于输入信号来进行分析模拟,


接下来吧最终


的数据经过显示器显示出来。


而且同一时间和键盘设定的酒精阈值来对比,< /p>


一旦


所处地方的酒精浓度超过界限,


那么 单片机会发出声音或者


LED


闪烁来提示,


提示危害


.



2.2


结构框图


< br>硬件系统结构框图如下图


2.1


所示


LCD


显示


< br>精










单片机


声光报警


键盘

< br>图


2.1


系统结构框图



2.3


智能酒精浓度检测仪的整结构特点



本文设计的智能酒精浓度检测仪具有如下特点:




1


)系统是基于控制核心为单片机的数据采集系统 ,外围电路是以


LCD



键盘为基础的 显示和响应电路,


无需任何其他辅助工具,


使用者可以借助协同 工


作,用来完成数据采集、存储、计算、分析等一系列过程。




2


)系统具有功耗低、微型化、性价 比高、精确度高等特点。


含泪的微笑-


含泪的微笑-


含泪的微笑-


含泪的微笑-


含泪的微笑-


含泪的微笑-


含泪的微笑-


含泪的微笑-