多功能酒精测试仪.docx

上传人:牧羊曲112 文档编号:2032715 上传时间:2023-01-02 格式:DOCX 页数:31 大小:629.57KB
返回 下载 相关 举报
多功能酒精测试仪.docx_第1页
第1页 / 共31页
多功能酒精测试仪.docx_第2页
第2页 / 共31页
多功能酒精测试仪.docx_第3页
第3页 / 共31页
多功能酒精测试仪.docx_第4页
第4页 / 共31页
多功能酒精测试仪.docx_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《多功能酒精测试仪.docx》由会员分享,可在线阅读,更多相关《多功能酒精测试仪.docx(31页珍藏版)》请在三一办公上搜索。

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

2、过TGS822对呼出气体中酒精浓度的反应以取样电压的形式送入到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

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

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

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

7、 、 /Vpp为内部程序存储器和外部程序存储器选择端。当 /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内部结构

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

10、TART: AD转换启动信号,输入,高电平有效。 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脚),其控

13、制原理与14脚的LCD完全一样,其中: 引脚 符号 功能说明 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位

14、9 DB2 底4位三态、 双向数据总线 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

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

16、t ep=P26;sbit ale=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=ALCO

17、HOL TEST;unsigned 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 ) /延时2u

18、nsigned int n;n=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);Wr

19、iteOneChar(0x44);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

20、;while(dis1i!=0)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.6

21、8)x=61.61-4.08*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

22、*y;if(da=1000)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=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;whil

23、e(dis3i!=0)lcd_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); - 31 -

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号