技术热线: 4007-888-234
设计开发

专注差异化嵌入式产品解决方案 给智能产品定制注入灵魂给予生命

开发工具

提供开发工具、应用测试 完善的开发代码案例库分享

技术支持

从全面的产品导入到强大技术支援服务 全程贴心伴随服务,创造无限潜能!

新闻中心

提供最新的单片机资讯,行业消息以及公司新闻动态

使用8051单片机如何制作一个酒精测试仪?

更新时间: 2021-10-26
阅读量:3148

我们经常看到交警在查司机酒驾的时候,会使用酒精测试仪来检查他们是否受酒精影响。其实,酒精测试仪其实很容易制作,以下是如何自制具有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
END


以上就是英锐恩单片机开发工程师分享的“如何使用8051单片机制作一个酒精测试仪”。英锐恩专注单片机应用方案设计与开发,提供8位单片机、16位单片机、32位单片机。