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

描述

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

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

  一、MQ135气体传感器电路

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

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

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

  酒精测试仪

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

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

  二、酒精测试仪原理图

  酒精测试仪

  需要的组件列表:

  酒精传感器 (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
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分