单片机酒精浓度测试仪设计

2020-02-11来源: 51hei关键字:单片机  酒精浓度测试仪

 
一、设计意义


二、硬件设计
1、设计框图
2、乙醇信号检测及调理电路
3、单片机电路
4、显示电路
5、供电及程序下载电路


三、 Protel硬件开发软件
1.Protel软件组成
2.PCB板设计


四、软件编程
1、软件流程图
2、主程序


五、下载与调试
1、 USB转串口驱动安装
2、 下载程序


参考文献
程序
一、设计意义

自《道路交通安全法》正式实施,“醉酒驾驶”正式入刑。不仅交警部门,而且很多车主都期盼能够有便携仪器方便地测量气体酒精浓度,为安全驾驶提供保障,有效减少重大交通事故的发生。


本研究设计的酒精浓度测试仪是一款实用性强、安全可靠的气体乙醇浓度检测工具,采用高精度MQ-3乙醇气体传感器对空气中的乙醇浓度进行检测,利用宏晶公司高性能低成本单片机STC89C52对检测信号进行A/D转换和处理,最后通过液晶屏显示输出。本研究设计的酒精浓度测试仪还具有醉酒阈值设定功能,可以根据法律法规或用户需要设定修改醉酒阈值,并进行保存。


二、硬件设计
1、设计框图

本研究设计的酒精浓度测试仪框图如图1所示。MQ-3乙醇气体传感器输出信号经信号调理电路处理,输出随乙醇浓度变化的电压信号,该电压信号送入单片机系统,经AD转换,与设定的醉酒阈值进行比较,并显示或报警。

图1 酒精浓度测试仪方框图


2、乙醇信号检测及调理电路

MQ-3乙醇气体传感器可以应用用于机动车驾驶人员及其他严禁酒后作业人员的现场检测,也用于其他场所乙醇蒸汽的检测。其技术特点为:

  • 对乙醇蒸汽有很高的灵敏度和良好的选择性

  • 快速的响应恢复特性

  • 长期的寿命和可靠的稳定性

  • 简单的驱动回路

主要技术指标:

MQ-3乙醇气体传感器灵敏度曲线如图2所示,其传感原理为气敏电阻的输出阻值随乙醇气体等浓度变化而变化。

图2 MQ-3乙醇气体传感器灵敏度曲线

MQ-3乙醇气体传感器管脚与测试电路如图3所示。

    (a) 管脚图                   (b) 测试电路

图3 MQ-3乙醇气体传感器管脚及测试电路


    MQ-3乙醇气体传感器及其调理电路原理如图4所示。其外形如图5所示。经过调理,检测信号由电阻值转变成电压值,便于后续电路进行A/D转换和处理。

图4 传感器及调理模块原理图


  该传感器模块具有如下特点,方便与单片机系统接口组成检测仪器。

  • 具有信号输出指示。

  • 双路信号输出(模拟量输出及TTL电平输出)

  • TTL输出有效信号为低电平。

(当输出低电平时信号灯亮,可直接接单片机)               

  • 模拟量输出0~5V电压,浓度越高电压越高。


3、单片机电路

本设计选用宏晶公司高性能单片机STC89C52,其管脚如图6所示。

图6  STC89C52单片机管脚图


该芯片为52内核8位单片机,适用于常用检测电路。由STC89C52组成的单片机系统原理图如图7所示。图中AOUT为MQ-3传感器模块输出的检测电压信号,送入ADC0832采集芯片端口进行处理,该信号可以根据乙醇气体浓度直接输出报警信号,报警阈值通过模块上的电位器进行调节。

图7 单片机系统原理图

   图7中,按键K2和K3为醉酒阈值调整键,其中K2为“增加”,K3为“减小”按键。L2和L3为报警指示灯,分别可以进行酒后和醉酒两级报警。


4、显示电路

显示部分采用SMC 1602液晶屏进行数据显示,其主要技术参数为:

表1  液晶屏技术指标

接口信号说明如表2所示。

表2  液晶屏接口信号说明

与单片机接口电路如图8所示。其中J2的3脚为背光引脚,R9和R10电阻用于调节背光亮度。J2的4、5、6引脚分别接液晶的RS、E/W和E控制引脚,J2的7—14引脚为数据引脚。

图8  LCD与单片机接口电路


5、供电及程序下载电路

本设计采用电池盒接口供电,电源电压5V。同时,其电路原理如图10所示。

图10  供电及程序下载电路


三、Protel硬件开发软件

Protel是目前国内最流行的通用EDA软件,它是将电路原理图设计、PCB板图设计、电路仿真和PLD设计等多个实用工具软件组合后构成的EDA工作平台,是第一个将EDA软件设计成基于Windows的普及型产品。它集成了软件界面、仿真功能和PLD设计和信号完整性分析,在此基础上Protel 99SE又增加了一些新的功能,用户使用更加方便灵活。Protel的功能十分强大,在电子电路设计领域占有极其重要的地位。它以其强大功能和实用性,逐渐获得广大硬件设计人员的青睐,是目前众多EDA设计软件中用户最多的产品之一。


1.Protel软件组成

Protel软件主要由电路原理图设计模块、印制电路板设计模块(PCB设计模块)、电路信号仿真模块和PLD逻辑器件设计模块等组成,各模块具有强大的功能,可以很好的实现电路设计与分析。


(1)  原理图设计模块(Schematic模块)

电路原理图是表示电气产品或电路工作原理的重要技术文件,电路原理图主要由代表各种电子器件的图形符号、线路和结点组成。图4。1所示为一张电路原理图。该原理图是由Schematic模块设计完成的。Schematic模块具有如下功能:丰富而灵活的编辑功能、在线库编辑及完善的库管理功能、强大的设计自动化功能、支持层次化设计功能等。


(2) 印制电路板设计模块(PCB设计模块)

印制电路板(PCB)制板图是由电路原理图到制作电路板的桥梁。设计了电路原理图后,需要根据原理图生设计成印制电路板的制板图,然后在根据制板图制作具体的电路板。印制电路板设计模块具有如下主要功能和特点:可完成复杂印制电路板(PCB)的设计;方便而又灵活的编辑功能;强大的设计自动化功能;在线式库编辑及完善的库管理;完备的输出系统等。


(3) 电路信号仿真模块

电路信号仿真模块是一个功能强大的数字/模拟混合信号电路仿真器,能提供连续的模拟信号和离散的数字信号仿真。它运行在Protel的EDA/Client集成环境下,与Protel Advanced Schematic原理图输入程序协同工作,作为Advanced Schematic的扩展,为用户提供了一个完整的从设计到验证仿真设计环境。


在Protel中进行仿真,只需从仿真用元器件库中放置所需的元器件,连接好原理图,加上激励源,然后单击防真按钮即可自动开始。


2.PCB板设计

(1)  定元件的封装

① 打开网络表(可以利用一些编辑器辅助编辑),将所有封装浏览一遍,确保所有元件的封装都正确无误并且元件库中包含所有元件的封装,网络表中所有信息全部大写,一面载入出问题,或PCB BOM不连续。

② 标准元件全部采用公司统一元件库中的封装。

③ ④⑥⑤元件库中不存在的封装,应自己建立元器件库。


(2) 建立PCB板框

① 根据PCB结构图,或相应的模板建立PCB文件,包括安装孔、禁布区等相关信息。

② 尺寸标注。在钻孔层中应标明PCB的精确结构,且不可以形成封闭尺寸标注。


(3) 载入网络表

① 载入网表并排除所有载入问题,具体请看《PROTEL技术大全》。其他软件载入问题有很多相似之处,可以借鉴。

② 如果使用PROTEL,网表须载入两次以上(没有任何提示信息)才可以确认载入无误。


(4) 布局

① 首先要确定参考点。

一般参考点都设置在左边和底边的边框线的交点(或延长线的交点)上或印制板的插件的第一个焊盘。

② 一但参考点确定以后,元件布局、布线均以此参考点为准。布局推荐使用25MIL网格。

③ 根据要求先将所有有定位要求的元件固定并锁定。

④ 布局的基本原则

A。 遵循先难后易、先大后小的原则。

B。 布局可以参考硬件工程师提供的原理图和大致的布局,根据信号流向规律放置主要原器件。

C. 总的连线尽可能的短,关键信号线最短。

D. 强信号、弱信号、高电压信号和弱电压信号要完全分开。

E. 高频元件间隔要充分。

F. 模拟信号、数字信号分开。

⑤ 相同结构电路部分应尽可能采取对称布局。

⑥ 按照均匀分布、重心平衡、版面美观的标准来优化布局。

(5) PCB设计遵循的规则

① 地线回路规则:

图11 地线回路规则


环路最小规则,即信号线与其回路构成的环面积要尽可能小,环面积要尽可能小,环面积越小,对外的辐射越少,接收外界的干扰也越小。针对这一规则,在地平面分割时,要考虑到地平面与重要信号走线的分布,防止由于地平面开槽等带来的问题;在双层板设计中,在为电源留下足够空间的情况下,应该将留下的部分用参考地填充,且增加一些必要的过孔,将双面信号有效连接起来,对一些关键信号尽量采用地线隔离,对一些频率较高的设计,需特别考虑其地平面信号回路问题,建议采用多层板为宜。

② 窜扰控制

窜扰(CrossTalk)是指PCB上不同网络之间因较长的平行布线引起的相互干扰,主要是由于平行线间的分布电容和分布电感的作用。克服窜扰的主要措施是:

A.加大平行布线的间距,遵循3W规则。

B.在平行线间插入接地的隔离线。

C.减少布线层与地平面的距离

③屏蔽保护

图12  屏蔽保护


对应地线回路规则,实际上也是为了尽量减小信号的回路面积,多用于一些比较重要的信号,如时钟信号,

[1] [2] [3] [4]
关键字:单片机  酒精浓度测试仪 编辑:什么鱼 引用地址:http://news.2689mr.com/mcu/ic487845.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:51单片机音乐万年历制作
下一篇:STC15系列单片机ADC函数库的20200208优化版

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

stvd+stm8s单片机程序编译报错
编译stm8s程序过程报如下错误:Compiling stm8s_stdperiph_driversrcstm8s_adc2.c...cxstm8 +mods0 +debug -pxp -no -pp -l -istm8s_stdperiph_driverinc -i"C:Program Files (x86)COSMICCXSTM8Hstm8" -i"C:Program Files (x86)STMicroelectronicsst_toolsetinclude"  -clDebug -coDebug stm8s_stdperiph_driversrcstm8s_adc2.c#er
发表于 2020-04-07
MSP430G2553与MSP430F5336系列单片机总结[1]
在进行MSP430单片机的编程时,时钟的运用很重要,MSP430一共有5个时钟源,分别是外接的XT1和XT2时钟源,介绍如下:1.XT1CLK:低频/高频振荡器,我的MSP430F5336使用的就是32768HZ的晶振2.VLOCLK:内部超低功耗低低频振荡器,典型频率是12khz;3.REFOCLK:内部调整低频参考振荡器,典型值为32768hz;4.DCOCLK:内部数字时钟振荡器,可由FLL稳定后得到;5.XT2CLK:高频外界振荡器,我F5336接的是20MHZ晶振;以上五个时钟大家可以理解为晶振,有的是内部自带的,如2,3,4,这三个,有的是外接自己设计的,如XT1和XT2,当我们需要用单片机处理一些高速计算时,例如做
发表于 2020-04-07
MSP430G2553与MSP430F5336系列单片机总结[1]
linux系统与51单片机实现串口数据交互
;   }            }        }    }//以下是 51 单片机测试代码 才用中断方式#include <reg52.h>#include <intrins.h>#define LED P1    void IO_interrupt() interrupt 4    {        char buf;        if(RI
发表于 2020-04-07
51单片机点阵解析
感谢大熙熙 对51单片机点阵代码的详细分析http://www.cnblogs.com/one-meter/p/4188277.html网址阐述了他对代码的解析不过部分代码解析不够透彻我融入了个人对代码的理解并且做了详细的解析代码参考了普中给的代码网上代码很多可以自己下载测试代码如下 #include <reg52.h> #include <intrins.h>//重定义 函数变量#define uchar unsigned char#define uint unsigned int#define ulong unsigned long //spi 所使用的 3个管脚 并进
发表于 2020-04-07
51单片机 16X16点阵循环滚动显示汉字
一、效果展示二、所用材料1.16X16点阵Proteus并不提供16X16的点阵,只能我们自己通过4个8X8的组装为16X16的点阵。由此可知8*8变成16*16列需要这样连接:行需要这样连接:再把四个放在一起即可:2.74hc595详细介绍见我上一篇文章https://blog.csdn.net/qq_41639829/article/details/82151706这里需要用到级联,也不算太难,就相当于原来是输入8个数,这需要输入16个,然后再输出,前八个输入的就被自动挤到级联的下一个595中了!3.stc89c52三、原理1.静态显示同8位的静态显示一样,只不过是从8个变成16个而已。详见上一篇文章。https://mp.cs
发表于 2020-04-07
51单片机 16X16点阵循环滚动显示汉字
51单片机基础实验例程
;***************************************************************************************/  #include "reg52.h"    //此文件中定义了单片机的一些特殊功能寄存器 sbit led=P2^0;    //将单片机的P2.0端口定义为led /******************************************************************************** 函 数 名       : main* 函数功能 : 主函数* 输    入   
发表于 2020-04-07
51单片机基础实验例程
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 2689mr.com, Inc. All rights reserved
送彩金的娱乐游戏平台 彩票大赢家 有什么下载送彩金的网站啊 彩票大赢家 免费送彩金的娱乐网 永利高网上开户送彩金 海鸥娱乐系统 ag娱乐平台送彩金 大唐APP mg游戏送彩金无需申请