在本文中,英锐恩单片机开发工程师们分享了一个酒精呼吸检测仪单片机方案。本方案使用8051单片机的呼吸分析仪电路,该电路可从呼吸中输出血液酒精含量(BAC),血液酒精含量可在三位数的七段显示器上以百分比显示。
一、该单片机方案所用的MQ135酒精传感器
MQ135是一款国产的空气污染传感器,使用比较稳定、灵敏,可以检测氨、二氧化碳、酒精、烟气、二氧化氮等。该传感器由氧化铝微管内的二氧化锡敏感层,测量电极和管状铝壳内的加热元件组成。传感器的前端用不锈钢网覆盖,背面固定连接端子。
呼吸中存在的乙醇在通过加热元件时被氧化为乙酸。该乙醇落在二氧化锡感测层上,结果其电阻降低。使用外部负载电阻将该电阻变化转换为合适的电压变化。MQ135酒精传感器的典型连接布置如下所示:
酒精呼吸检测仪单片机方案组件清单,如下:
(1)酒精传感器(MQ135)– 1个;
(2)IC(ADC 0804)– 1个;
(3)单片机(AT89S51)- 1个;
(4)7段显示 – 3个;
(5)晶体管(2N2222)-3个;
(6)开关 – 1个;
(7)电容器(150pF)- 1英寸;
(8)电容器(22uF/10V)– 1个;
(9)电容器(10uF/10V)– 3个;
(10)电阻器:100 ohm-11个,10k-3个,22k-1个,8.2k-1个,330 ohm-1个。
MQ135在不同温度和不同气体浓度下具有不同的电阻值。制造商建议在100ppm的氨水或50ppm的酒精中校准传感器。负载电阻的推荐值在10K至47K之间。
二、酒精呼吸检测仪单片机方案电路原理图
酒精检测器单元的电压输出通过ADC0804(IC1)转换为数字格式。使用由R14和R15构成的分压器网络,ADC 的V ref / 2引脚保持在1.28V。V ref / 2 = 1.28V表示ADC的步长为10mV,并且模拟输入中每增加10mV,ADC的输出将增加一位。请参考ADC0804的数据手册,以更好地掌握。ADC的数字输出(D0至D7)连接到单片机的Port1。控制信号CS,RD,WR,INTR分别从单片机P3.7,P3.6,P3.5,P3.4引脚获得。R9和C1与ADC0804的时钟电路相关。
电容C3连接在ADC0804的V in +和V in-之间,过滤传感器输出中的噪声(如果有)。如果不使用C3,则ADC的数字输出将不稳定。该滤波电容肯定会在ADC响应中引起一些滞后,但在此入门级应用中并不是很重要。单片机对ADC数字输出执行所需的操作,以将其转换为BAC%,并将其显示在三位数的七段显示器上。单片机的端口0连接到多路复用的三位数七段显示器。三位数字的驱动信号分别从单片机的P3.0,P3.1,P3.2引脚获得。
三、程序源代码
ORG 00H MOV P1,#11111111B MOV P0,#00000000B MOV P3,#00000000B MOV DPTR,#LUT MAIN: MOV R4,#250D CLR P3.7 SETB P3.6 CLR P3.5 SETB P3.5 WAIT: JB P3.4,WAIT CLR P3.7 CLR P3.6 MOV A,P1 MOV R5,A SUBB A,#86 JC NEXT SETB P3.3 CLR PSW.7 NEXT: MOV A,R5 SUBB A,#115D JNC LABEL MOV A,#00000000B CLR PSW.7 LABEL: MOV B,#5D MUL AB MOV B,#8D DIV AB MOV B,#10D DIV AB MOV R6,A MOV R7,B DLOOP:SETB P3.0 MOV P0,#01000000B ACALL DELAY CLR P3.0 SETB P3.1 MOV A,R6 ACALL DISPLAY MOV P0,A ACALL DELAY CLR P3.1 SETB P3.2 MOV A,R7 ACALL DISPLAY MOV P0,A ACALL DELAY CLR P3.2 DJNZ R4,DLOOP SJMP MAIN DELAY: MOV R3,#255D LABEL1: DJNZ R3,LABEL1 RET DISPLAY: MOVC A,@A+DPTR CPL A RET LUT: DB 3FH DB 06H DB 5BH DB 4FH DB 66H DB 6DH DB 7DH DB 07H DB 7FH DB 6FH END
以上就是英锐恩单片机开发工程师分享的酒精呼吸检测仪单片机方案。英锐恩专注单片机应用方案设计与开发,提供8位单片机、16位单片机、32位单片机。