基于单片机的多功能酒精测试仪

上传人:仙*** 文档编号:33399163 上传时间:2021-10-17 格式:DOC 页数:30 大小:748KB
收藏 版权申诉 举报 下载
基于单片机的多功能酒精测试仪_第1页
第1页 / 共30页
基于单片机的多功能酒精测试仪_第2页
第2页 / 共30页
基于单片机的多功能酒精测试仪_第3页
第3页 / 共30页
资源描述:

《基于单片机的多功能酒精测试仪》由会员分享,可在线阅读,更多相关《基于单片机的多功能酒精测试仪(30页珍藏版)》请在装配图网上搜索。

1、课题名称 基于单片机的酒精测试仪目录一摘要与系统原理(3 )二 功能指标(4 )三整机原理图(5)四软件流程(6)五MCS-51单片机引脚功能(7 )六ADC0809资料(9)七酒精传感器TGS822(11)八. LCD资料(12)九整机程序(13)摘要本作品是基于单片机控制ADC0809对TGS822酒精浓度取样来反映人体血液酒精浓度;以及对DS18B20获取温度系统框图单片机LCD显示输出传感器模拟输入控制输出实现原理TGS822对酒精浓度的变化,其阻值产生相应的变化,然后通过取样电阻分压的变化表现出来;人体血液酒精浓度的不同,其呼出的气体中酒精浓度也不同。通过TGS822对呼出气体中酒精

2、浓度的反应以取样电压的形式送入到ADC0809,进行A/D转换后并将转换的数据送入单片机进行分析处理,并判断是否醉酒驾车,再通过液晶板显示出来。DS18B20其自身的温度传感器所产生的温度数字数据存入其自身的存储器,单片机对其控制读出温度数据,然后经过计算处理,将当前环境温度由液晶板输出。作品亮点该作品结构简单,功能多样,可扩展性强,成本低廉,便于携带,适用范围广。功能指标车辆驾驶人员血液中的酒精含量大于或等于80mg/100ml的驾驶行为。 血液酒精含量临界值:行为类别对 象临界值(mg/100ml)饮酒驾驶车辆驾驶人员20醉酒驾驶车辆驾驶人员80 血液与呼气酒精含量换算车辆驾驶人员呼气酒精

3、含量检验结果可按标准GA307换算成血液酒精含量。序 号呼出气体中酒精浓度mg/L呼出气体中酒精浓度106血液中酒精浓度mg/100mL10.022711.85520.045423.691030.068135.531540.090947.432050.113659.282560.136371.133070.159183.023580.181894.864090.2045106.7145100.2272118.5650110.2500130.4555120.2727141.2660130.2954154.1565140.3181166.0070150.3409177.8975160.363618

4、9.7280170.3863201.1585180.4091213.4390190.4318225.3395200.4515237.12100210.6618355.68150220.9091474.24200整机原理图软件流程图开始设置第一行显示内容设置显示模式显示第一行内容延时延时关显示延时初始化DS18B20跳过读序列号清屏启动温度转换延时延时关显示初始化延时跳过读序列号设置第一行显示位置读取温度值并计算显示第一行内容设置第一行显示内容控制ADC0809转换显示第一行内容设置第二行显示内容读取数据显示第二行内容比较计算MCS-51单片机引脚功能MCS单片机都采用40引脚的双列直插封装方式

5、。下图为引脚排列图, 40条引脚说明如下:1、主电源引脚Vss和Vcc Vss接地 Vcc正常操作时为+5伏电源2、外接晶振引脚XTAL1和XTAL2 XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。 XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。3、控制或与其它电源复用引脚RST/VPD,ALE/ , 和 /Vpp RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接 下图8051引脚排列图上备用电源,由VPD向内部

6、提供备用电源,以保持内部RAM中的数据。 ALE/ 正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的 )周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲,ALE 端可以驱动(吸收或输出电流)八个LSTTL电路。 对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲( 功能) 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间, 在每个机器周期内两次有效。 同样可以驱动八LSTTL输入。 /Vpp 、 /Vpp为内部程序存储器

7、和外部程序存储器选择端。当 /Vpp为高电平时,访问内部程序存储器,当 /Vpp 为低电平时,则访问外部程序存储器。对于EPROM型单片机,在EPROM编程期间,此引脚上加21伏EPROM编程电源(Vpp)。4、输入/输出引脚P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。 P0口(P0.0 - P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。 P1口(P1.0 - P1.7)是一个带有内部提升电阻的8位准双向I/O口。能驱动(吸收或输出电流)四个

8、LSTTL负载。 P2口(P2.0 - P2.7)是一个带有内部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。P2口可以驱动(吸收或输出电流)四个LSTTL负载。 P3口(P3.0 - P3.7)是一个带有内部提升电阻的8位准双向I/O口。能驱动(吸收或输出电流)四个LSTTL负载 ADC0809资料1主要特性1)8路8位AD转换器,即分辨率8位。 2)具有转换起停控制端。 3)转换时间为100s4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW。 2内部结构 ADC0809是CMOS单片型

9、逐次逼近式AD转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型DA转换器、逐次逼近 寄存器、三态输出锁存器等其它一些电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与TTL兼容。 3外部特性(引脚功能) ADC0809芯片有28条引脚,采用双列直插式封装,如图1323所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动信号,

10、输入,高电平有效。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直

11、到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 酒精传感器TGS822资料特点: 应用: 对乙醇等有机溶剂有高灵敏度 酒精检测器 长期稳定性优良 工厂、干洗店、半导体产业的 长寿命、低成本有机溶剂检知 以简单电路即可使用费加罗气体传感器的气敏素子,使用在清洁空气中电导率低的二氧化锡(SnO2)。当存在检知对象气体时,传感器的电导率随空气中气体浓度增加而增大。使用简单的电路即可将电导率的变化,转换为与该气体浓度相对应的输出信号。TGS822 传感器对酒精、有机溶剂的灵敏度高

12、,在酒精检测器等方面得到广泛应用。相同特性的 TGS823,采用了陶瓷底座,可以在200的高温气氛中使用。下纵坐标以传感器电阻比(Rs/Ro)表示,Rs,Ro 的定义如下:Rs 不同浓度气体中的电阻值Ro 300ppm 乙醇中的电阻值灵敏度特性:图中纵坐标也以传感器电阻比(Rs/Ro)表示,这里的Rs,Ro 定义如下:Rs=含300ppm 乙醇、各种温/湿度下的电阻值Ro=含300ppm 乙醇、2065%R.H.下的电阻值 LCD资料1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样

13、,其中: 引脚 符号 功能说明 1 VSS 一般接地 2 VDD 接电源(+5V) 3 V0 液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 4 RS RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 5 R/W R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 6 E E(或EN)端为使能(enable)端,下降沿使能。 7 DB0 底4位三态、 双向数据总线 0位(最低位) 8 DB1 底4位三态、 双向数据总线 1位 9 DB2 底4位三态、 双向

14、数据总线 2位 10 DB3 底4位三态、 双向数据总线 3位 11 DB4 高4位三态、 双向数据总线 4位 12 DB5 高4位三态、 双向数据总线 5位 13 DB6 高4位三态、 双向数据总线 6位 14 DB7 高4位三态、 双向数据总线 7位(最高位)(也是busy flang) 15 BLA 背光电源正极 16 BLK 背光 电源负极 寄存器选择控制表即为ASCII码表 RS R/W 操作说明 0 0 写入指令寄存器(清除屏等) 0 1 都busy flag(DB7),以及读取位址计数器(DB0DB6)值 1 0 写入数据寄存器(显示各字型等) 1 1 从数据寄存器读取数据 16

15、02液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。整机程序#include#includesbit rs=P24; /LCD液晶引脚定义,p0接DB0_DB7sbit rw=P27;sbit ep=P26;sbit a

16、le=P20; /ADC0809引脚定义sbit start=P37;sbit oe=P35;sbit eoc=P36;sbit adda=P25;sbit addb=P22;sbit adc=P23;sbit light=P30; /报警输出sbit DQ=P33; /DS18B20输入脚定义sbit DE=P31;unsigned char tempL=0;unsigned char tempH=0;float temperature;unsigned char code dis1=WORK START;unsigned char code dis2=ALCOHOL TEST;unsign

17、ed char code dis3=mg/100ml;unsigned char code dis4=SAFE DRIVING;unsigned char code dis5=DRINK-DRIVING;unsigned char code dis6=DRUNK DRIVING;void delay(unsigned char ms) /延时1unsigned char i,j;while(ms-)for(i=0;i250;i+)for(j=0;j50;j+)_nop_();_nop_();void delay2(unsigned int time ) /延时2unsigned int n;n

18、=0;while (n0;i-)DQ=1;delay2(1);DQ=0;dat=1; DQ=1;if(DQ) dat|=0x80;delay2(4);return(dat);WriteOneChar(unsigned char dat) /向DS18B20写一字节数据unsigned char i=0;for(i=8;i0;i-)DQ=0;DQ=dat&0X01;delay2(5);DQ=1;dat=1;delay2(4);ReadTemperature(void) /向DS18B20读温度值Init_DS18B20();WriteOneChar(0xcc);WriteOneChar(0x44

19、);delay2(125);Init_DS18B20();WriteOneChar(0xcc);WriteOneChar(0xbe);tempL=ReadOneChar();tempH=ReadOneChar();temperature=(tempH*256)+tempL)*0.0625;delay2(200);return(temperature);main()float x,y,k;unsigned int da,n,temp1,temp2,i,gw,sw,bw,kw,xw; light=0;lcd_init();delay(3);lcd_pos(0);i=0;while(dis1i!=0

20、)lcd_wdat(dis1i);i+;lcd_pos(0x41);i=0;while(dis2i!=0)lcd_wdat(dis2i);i+;delay(32);while(1)lcd_init();ale=0;start=0;adda=0;addb=0;adc=0;_nop_();ale=1;start=1;_nop_();start=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();while(eoc=0);oe=1;_nop_();da=P1;oe=0;y=(2550/da-10)/9.27;if(y2.68)x=61.61-4.08*

21、y;else if(y2.38)x=139.3-33.3*y;else if(y2.23)x=218.7-66.7*y;else if(y2.128)x=288.6-98*y;else if(y2)x=262.88-85.9*y;else if(y1.89)x=254.5-81.8*y;else if(y1.62)x=450-185.2*y;else if(y1.209)x=347.1-121.7*y;lse if(y0.822)x=816.5-516.8*y;else if(y0.635)x=1279.2-1069.5*y;elsex=2238.7-2580.6*y;if(da=1000)l

22、cd_pos(0x85);lcd_wdat(gw);lcd_pos(0x83);lcd_wdat(sw);lcd_pos(0x82); lcd_wdat(bw);lcd_pos(0x81);lcd_wdat(kw);else if(n=100)lcd_pos(0x85);lcd_wdat(gw);lcd_pos(0x83);lcd_wdat(sw);lcd_pos(0x82); lcd_wdat(bw);else lcd_pos(0x85);lcd_wdat(gw);lcd_pos(0x83);lcd_wdat(sw);lcd_pos(0x86);i=0;while(dis3i!=0)lcd_

23、wdat(dis3i);i+;n=n/10;if(n=20 & n=100)lcd_pos(0x85);lcd_wdat(gw);lcd_pos(0x83);lcd_wdat(sw);lcd_pos(0x82);lcd_wdat(bw);lcd_pos(0x81);lcd_wdat(kw);else if(n=10)lcd_pos(0x85);lcd_wdat(gw);lcd_pos(0x83);lcd_wdat(sw);lcd_pos(0x82);lcd_wdat(bw);elselcd_pos(0x85);lcd_wdat(gw);lcd_pos(0x83);lcd_wdat(sw);lcd_pos(0x86);lcd_wdat(0xdf);lcd_pos(0x87);lcd_wdat(0x43);delay(16); - 30 -

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!