基于8051单片机制作一个酒精测试仪

2024-01-03  

我们经常看到交警在查司机酒驾的时候,会使用酒精测试仪来检查他们是否受酒精影响。其实,酒精测试仪其实很容易制作,以下是如何自制具有3位显示输出的酒精测试仪。当然,毕竟是作为简单案例使用,所以准确度要差点。


在本文中,使用8051单片机的呼吸分析仪电路,它从呼吸中输出血液酒精含量(BAC)。“酒精含量的百分比”在3位七段显示器上以百分比显示。使用的单片机是8051系列的AT89S51和酒精传感器MQ135气体传感器。


一、MQ135气体传感器电路

MQ135是一款稳定灵敏的气体传感器,可检测氨、二氧化碳、酒精、烟雾、二氧化氮等。该传感器由氧化铝微管内的二氧化锡敏感层、测量电极和管状铝壳内的加热元件组成。传感器的前端用不锈钢网覆盖,背面固定连接端子。


呼吸中存在的乙醇在通过加热元件时被氧化成乙酸。这种乙醇落在二氧化锡传感层上,因此其电阻降低。使用外部负载电阻器将这种电阻变化转换为合适的电压变化。MQ135

酒精传感器的典型连接布置如下所示:

mq135-connection-diagram.png

MQ135在不同温度和不同气体浓度下具有不同的电阻值。制造商建议在100 ppm的氨或50

ppm的酒精中校准传感器。负载电阻的推荐值在10K到47K之间。

二、酒精测试仪原理图

alcohol-breathalyzer-using-80511.jpg

需要的组件列表:

酒精传感器 (MQ135) – 1个。

IC (ADC 0804) – 1个。

单片机 (AT89S51) – 1个。

7 段显示 – 3 个。

晶体管 (2N2222) – 3个。

开关 – 1个。

电容器 (150pF) – 1个。

电容器 (22uF/10V) – 1个。

电容器 (10uF/10V) – 3个。

电阻器:100– 11 nos, 10k – 3nos, 22k – 1 nos, 8.2k – 1 nos, 330 ohm – 1

nos。

三、酒精检测器电路工作原理

酒精检测器单元的电压输出使用 ADC0804 (IC1) 转换为数字格式。ADC的 V ref/2引脚使用由 R14 和 R15

组成的分压器网络保持在 1.28V。V ref/2 =1.28V 表示 ADC 的步长为 10mV,模拟输入每增加 10mV,ADC 的输出将增加一位。请参阅

ADC0804 的数据表以更好地掌握。ADC 的数字输出(D0 到 D7)连接到单片机的端口 1。控制信号 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

数字输出执行所需的操作,以便将其转换为“酒精含量的百分比”并将其显示在三位数的七段显示器上。单片机的端口 0

连接到多路复用的三位数七段显示器。三位数字的驱动信号分别从单片机的P3.0、P3.1、P3.2引脚获得。

四、8051单片机酒精测试仪程序


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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。