酒精浓度测试仪设报告文档格式.docx
- 文档编号:21436399
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:16
- 大小:215.75KB
酒精浓度测试仪设报告文档格式.docx
《酒精浓度测试仪设报告文档格式.docx》由会员分享,可在线阅读,更多相关《酒精浓度测试仪设报告文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
1927年,有科学家建议使用呼出气体做酒精浓度分析。
用足球胆收集呼出气体后,通过硫酸和重铬酸钾的混合溶液,溶液的颜色会发生蓝绿黄的变化,同已知酒精浓度的标准试剂色管比较,就得到相应的BAC(血液酒精浓度)。
现在,呼吸气中酒精的测量技术有了很大的飞跃,各种先进的酒精测试仪已被越来越普遍的使用,越来越多的国家开始禁止酒后驾车。
人体血液中的酒精含量,与一个人的饮酒量和时间有关。
在人体对酒精的吸收阶段,即便吃下所谓的解酒药,血液含酒量照样会持续增加。
精确的呼出气体酒精测试和传统的法医血液酒精分析相比有许多优。
近年来,随着我国经济的发展,人民的生活水平提高,越来越多的人有了自己的私家车,而酒后驾车造成的交通事故也频频发生。
如今国家法律出台道路交通安全法规定,饮酒后或者醉酒驾驶机动车发生重大交通事故,构成犯罪的,依法追究刑事责任,并由公安机关交通管理部门吊销机动车驾驶证,终生不得重新取得机动车驾驶证。
十二届全国人大第二次会议举行第三次全体会议上最高人民法院院长周强表示,2013年明确“醉驾”的认定标准(饮酒驾车,指驾驶员血液中的酒精含量大于或者等于20mg/100ml,小于80mg/100ml的驾驶行为。
醉酒驾车,指驾驶员血液中的酒精含量大于或者等于80mg/100ml的驾驶行为。
),各级法院审结危险驾驶犯罪案件9万件。
因此酒精测试仪也越来越受到人们的关注,酒精浓度测试仪也越来越设计的精巧和多功能化。
酒精传感器将检测到的酒精浓度转化为电信号,然后将电信号传送给模数转换器,经过模数转换器转换后,把转换后得到的数字信号传给单片机,单片机对所输入的数字信号进行分析处理,最后将分析处理的结果通过显示器显示出来。
由于不同的环境对酒精浓度的要求也不一样,所以,可以通过键盘来设定不同环境中酒精浓度的不同阀值。
如果所检测到的空气中的酒精浓度超过了所设定的阀值,那么单片机将会控制蜂鸣器发出声音报警,用来提示危害。
本次基于单片机酒精浓度检测仪设计可以分为两个部分:
硬件设计与软件设计。
硬件部分是用MQ-3气敏传感器测量空气中酒精浓度,并转换为电压信号经A/D转换后传给单片机(STC89C52)系统,由单片机及其外围电路进行信号的处理,通过LCD1602显示浓度值和测试时间以及超阈值蜂鸣报警,还能存储记录的数据。
软件部分用C语言进行编程,程序采用模块化设计思路,各个子程序得功能相对独立,便于我调试与修改。
1总体设计
1.1酒精浓度测试仪的功能
本设计制作一个酒精浓度测试仪系统,酒精阀值可以通过实际的情况的调节,基于AT89C52单片机酒精浓度测试仪的晶振采用12MHZ,具体要求如下:
(1)酒精阀值:
18ppm
(2)存储数据:
能存储20组数据
(3)显示:
通过LCD1602液晶屏显示酒精浓度和时间
(4)通过USB将数据传到电脑上保存
(5)酒精浓度超过酒精阀值,蜂鸣器就会鸣响和红灯亮
1.2电路总体的工作原理
设计制作是一个基于单片机的酒精浓度测试仪,通过对单片机编程将由气敏传感器MQ-3采集的酒精,外加驱动电路显示出来,包括对继电器的控制,当酒精浓度达到上下限蜂鸣器进行报警。
其结构框图如图2-1:
图1-1系统结构框图
1.3主程序流程图
2硬件设计
2.1单片机
图2-1AT89C52外部引脚图
stc89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系列可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
stc89C52管脚说明如下:
VCC:
电源
GND:
接地
P0口:
P0口是一个8位漏级开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0口端口写“1”时,引脚作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位是双向I/O口,P1的输出缓冲
级可驱动(吸收或输出电流)4个TTL逻辑电平。
对P1口写“1”时,内部上拉电阻的原因,将输出电流ILL。
此外,与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输出(P1.1/T2EX)。
P1.0(T2(定时/计数器2外部计数脉冲输入),时钟输出)、P1.1(T2EX定时/计数2捕获/重装载触发和方向控制)。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲级可驱动吸收或输出电流4个TTL逻辑电平。
对P2口写“1”时,通过内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。
对P3口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入端口使用。
P3口除了作为一般、的I/O口线外,更重要的是它的第二功能。
P3.0(RXD(串行输入))、P3.1(TXD(串行输出))、P3.2(INT0(外部中断0))、P3.3(INT1(外部中断1))、P3.4(T0(定时器0外部输入))、P3.5(T1(定时器1外部输入))、P3.6(WR(外部数据存储器写选通))、P3.7(RD(外部数据存储器读选通))。
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期以高电平将使用单片机复位。
ALE/PROG:
地址锁存器控制信号(ALE)是访问外部程序存储器时,锁存低
8位地址的输出脉冲。
在Flash编程时,此引脚(PROG)也使用作编程输入脉冲。
PSEN:
外部程序储存器选通信号(PSEN)是外部程序存储器选通信号。
当AT89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据储存器时,PSEN将不被激活。
EAVPP:
访问外部程序存储器控制信号。
为使能从0000H—FFFFH的外部程序存储器读取指令,EA端必须保持低电平(接地)。
为了执行内部程序指令,EA应该接VCC。
2.2气敏传感器
MQ-3气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。
当传感器所处环境中存在酒精蒸汽时,传感器的电导率随空气中酒精气体浓度的增加而增大。
使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。
MQ-3气体传感器对酒精的灵敏度高,可以抵抗汽油、烟雾、水蒸气的干扰。
这种传感器可检测多种浓度酒精气氛,是一款适合多种应用的低成本传感器。
其特点是对酒精气体具有良好的灵敏度,长寿命、低成本简单的驱动电路即可。
(所有段首空两格)
探测范围10~1000ppm酒精特征气体125ppm酒精灵敏度Rinair/Rintypicalgas≥5敏感体电阻1~20KΩinair空气中响应时间≤10s(70%Response)恢复时间≤30s(70%Response)加热电阻31Ω±
3Ω加热电流≤180mA加热电压5.0V±
0.2V加热功率≤900mW测量电压≤24V工作条件环境温度:
-20℃~+55℃湿度:
≤95%RH环境含氧量:
21%贮存条件温度:
-20℃~+70℃湿度:
≤70%RH(这段怎么没有标点符号)
图2-2MQ-3
2.3继电器
继电器是常用的输出控制接口,可以做交直流信号的输出切换。
他具有控制系统和别控制系统,通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。
故在电路中起着自动调节、安全保护、转换电路等作用。
继电器控制接点操作说明如下:
COM:
Common输出控制接点的共同接点。
NC:
NormalClose以COM为共同点,NC与COM在平时是呈导通状态。
NO:
NormalOpenNO与COM在平时是呈开路状态,继电器动作时,NO与COM导通,NC与COM呈开路状态。
当stc89C52的P15输出高电平时,继电器不导通,反之当输入低电平时,继电器导通,这样就激活了连接回路。
2.4LCD1602液晶显示
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
LCD1602管脚功能
1602采用标准的16脚接口,其中:
第1脚:
VSS为电源地
第2脚:
VCC接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
2.5DS1302时钟
DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信实时时钟/日历电路.提供秒分时日日期.月年的信息,每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式.DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:
1RES复位,2I/O数据线,3SCLK串行时钟.时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信.DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW.DS1302是由DS1202改进而来,增加了以下的特性.双电源管脚用于主电源和备份电源供应Vcc1,为可编程涓流充电电源附加七个字节存储器.
图2-3DS1302时钟
管脚描叙
X1X232.768KHz晶振管脚
GND地
RST复位脚
I/O数据输入/输出引脚
SCLK串行时钟
Vcc1,Vcc2电源供电管脚
2.624c02存储器
AT24C02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。
AT24C02有一个16字节页写缓冲器。
该器件通过IIC总线接口进行操作,有一个专门的写保护功能。
AT24C02支持I2C,总线数据传送协议I2C,总线协议规定任何将数据传送到总线的器件作为发送器。
任何从总线接收数据的器件为接收器。
数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。
主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,由于A0、A1和A2可以组成000~111八种情况,即通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上,通过进行不同的配置进行选择器件。
图2-424C02存储器
引脚说明:
A0,A1,A2——地址输入引脚,走位硬件寻址的依据,同种芯片可同时连接8片(2^3);
VCC,GND——电源,接地引脚,1.8-5.5v
WP——写保护,当WP接地时,允许对器件的正常读写操作;
当WP接高电平时,写保护,只能进行读操作。
SDA——串行地址/数据输入/输出端口,双向传输,漏极开路,需外接上拉电阻到Vcc(典型阻值为10k)。
SCL——串行时钟输入,高低电平不同状态与SDA配合,执行不同的命令。
2.7ADC0804
模数转换采用ADC0804,对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;
输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
ADC0804有20个引脚,其中11-18管脚为数字信号输出端,与单片机P2口相连;
CS为片选端,接单片机P1.3口,当CS接低电平时ADC0804开始工作,WR接P1.1口,当WR变为低电平再跳变为高电平后启动A/D转换,RD接单片机P1.2口,当RD由低电平跳变为低电平时,单片机读走A/D转换完的数字信号。
CLK为时钟输入信号线,因ADC0804的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(+),VREF(-)为参考电压输入。
INTR为中断控制信号,接单片机外部中断端口,当A/D转换完后向单片机发出中断信号,等待读走数字信号,INTR也空可置不接,因为当启动A/D后一段时间后模数转换完后,等待一段时间后单片机也可以读走数字量。
图2-5ADC0804
3软件设计(把每部分的程序流程图画出,红色字去掉)
3.1时钟处理模块及程序
图3-1时钟处理模块(软件设计,这是硬件图,怎么还放在这里)
DS1302通过SCLK、I/O、RES端口和单片机STC890C52进行通信。
SCLK接在单片机P3.5口,在读写操作时给DS1302提供相应的时钟脉冲;
I/O接在P3.6用来传送所以的数据;
RSI接在单片机P3.7上,用来控制单片机与时钟芯片间的数据传送的开始于结束。
图3-2时钟模块流程图
#include"
head.h"
unsignedcharbdatabyte;
sbitSCLK=P3^5;
//定义端口
sbitI_O=P3^6;
sbitRST=P3^7;
sbitbyte7=byte^7;
voidwrite_D(ucharCom);
ucharread_D(void);
voidwrite_D(ucharCom)//函数:
写时钟芯片,参照DS1320说明书
{
uchari;
for(i=0;
i<
8;
i++)//00000001
{
SCLK=0;
I_O=Com&
0x01;
Com=Com>
>
1;
SCLK=1;
}
SCLK=I_O=0;
}
ucharread_D(void)//函数:
写时钟芯片
{
I_O=1;
i++)
byte=byte>
byte7=I_O;
SCLK=0;
I_O=0;
returnbyte;
3.2LCD1602模块及程序
图3-4LCD1602模块
VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调节对比度。
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时写入数据。
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7-14脚:
D0-D7为8位双向数据线。
图3-5LCD流程图
sbitRS=P3^2;
sbitCE=P3^3;
voidwrite_byte(uints);
voidwrite_ode(uintx);
voidinit1602(void);
voiddisplay(ucharaddress,ucharbyte);
voiddelay(uintz)//函数:
延时1ms
uintx,y;
for(x=z;
x>
0;
x--)
for(y=112;
y>
y--);
voidwrite_byte(uints)//函数:
写一个字节数据
RS=1;
delay(5);
P0=s;
CE=1;
CE=0;
voidwrite_ode(uintx)//函数:
写一个字节命令
RS=0;
P0=x;
voidinit1602(void)
write_ode(0x38);
write_ode(0x0c);
write_ode(0x06);
write_ode(0x01);
voiddisplay(ucharaddress,ucharbyte)//函数:
指定位置显示数据
write_ode(0x80+address);
write_byte(byte);
3.3A/D转换模块
图3-5A/D转换模块
D0-D7:
数字量输出端,输出结果为八位二进制结果;
CLK:
为芯片工作提供工作脉冲,时钟电路如图所示,时钟频率计算方式是:
fCK=1/(1.1×
R×
C)
CS:
片选信号;
WR:
写信号输入端;
RD:
读信号输入端;
INTR:
转换完毕中断提供端;
图3-6A/D转换模块流程图
ucharADC(void)//函数:
启动AD转换,参照ADC0804说明书
uinti=0;
ucharbyte;
P2=0xFF;
CS=1;
ADRD=1;
INTR=1;
ADWR=1;
CS=0;
delay
(1);
ADWR=0;
while(INTR==1&
&
i++<
65535);
ADRD=0;
byte=P2;
4调试
4.1硬件电路调试
电路硬件调试分为四部分,第一部分是电路焊接,电路焊接时应该注意焊接的尺度和焊接的仔细度,要把每个焊盘焊满,同时避免出现少焊、漏焊以及把器件焊坏,焊完电路后还要仔细,看是否出现错误的焊接。
第二部分是注意每个器件的正反极,我之前做的第一块板的时候就出现了S8550三极管和LED等接反的情况,还有注意每个芯片的正反,避免芯片的烧坏。
第三部分是制版,制版分为打印PCB图、转印PCB图、描绘断线、打孔、腐蚀。
第四部分是测试电路,做成品时电路上电之后,蜂鸣器和红色警示灯就自动报警,原因在于没有设置酒精浓度阀值。
图4-1实物图
4.2软件调试
软件调试,我主要介绍AltiumDesignerSummer9这款软件,因为我在画原理图和PCB时出现了很多问题,原因在于对软件的不熟悉,在画原理图时由于library里资源较少,所以好几个器件需要自己画封装,由于对器件的不熟悉,之前几次的器件封装都有误差,导致第一次做的板失败。
在画PCB图时,我之前画的是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 酒精 浓度 测试仪 报告