




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
51计
单片机的酒精测试仪设第一章争论内容TGS822的变化表现出来;人体血液酒精浓度的不同,其呼出的气体中酒精浓度也不同。通过TGS822对呼出气体中酒精浓度的反响以取样电压的形式送入到ADC0809,进展A/D再通过液晶板显示出来。其自身的温度传感器所产生的温度数字数据存入其自身的存储器,单片机对其掌握读出温度数据,然后经过计算处理,将当前环境温度由液晶板输出。2章总体设计本课题的设计任务及要求设计任务设计并制作酒精测试仪,其组成如图2.1所示。TGS822对酒精浓度的变化,其阻值产生相应的变化,然后通过取样电阻分压的变化表现出来;人体血液酒精TGS822对呼出气体中酒精浓度的反响以取样电压的形式送入到ADC0809,进展A/D转换后并将转换的数据送入单片机进展分析处理,并推断是否醉酒驾车,再通过液晶板显示出来。LCD显示输出其自身的温度传感器所产生的温度数字数据存入其自身的存储器,LCD显示输出传感传感器
数字输出单片机模数转2.1单片机模数转
掌握输出设计要求传感器TGS822的电压模拟输出范围为0-5V;模数转换芯片ADC0809采样电压范围为0-5V,区分率为8位,采样精5/256V2561MHz;AT89C52工作频率为6MHz;LCD显示器用50K 的可调电阻调整使其清楚显示,消退“鬼影。系统整机原理图分析如图2.2系统整机原理图,本系统工作原理如下:单片机的晶振为6MHz,可以直接通过ALE口输出1MHz为ADC0809后通过单片机的P2.0、P3.7分别掌握ADC0809ALESTART端口进展模数转换;通过P2.2、P2.3、P2.5分别掌握ADDB、ADDC、ADDA端口进展选择模拟数据输入口;通过P0口进展ADC0809TGS822的采样电压由ADC0809的IN0口输入,通过转换后由其D0-D7输出到单片机的P0口,然后通P1LCDDB0-DB7输出。3章系统硬件设计系统硬件设计原理图分析本硬件由五局部组成:单片机模块,模数转换模块,酒精传感器模块,温度传感模块。其系统硬件设计原理图如图3.2单片机AT89C2掌握,其直接掌握三个模块:数转换模块将酒精传感器采集到模拟电压信号转换成输送到单片机掌握处理,温度传感器DS18B20可以将采集到的温度信号直接以数字信号的形式传到单片机,LCD显示模块可以将经过单片机处理过的酒精气体浓度和温度的具体量化值显示。3.1系统硬件设计原理图单片机模块单片机的选择AT89S52CMOS工艺的88KB的Flash存储器。该单片机承受了ATMEL公司的高密度、非易失性存储器技术,与工业标准型80C51单片机的指令系统和引脚完全兼容;片内的Flash8位CPU与在线可编程FlashAT89S52;具有较高的性能价格比,使其在嵌入式掌握系统中有着广泛的应用前景。MCS单片机都承受40引脚的双列直插封装方式。以下图为引脚排列图,40条引脚说明如下:VssVccVss接地Vcc正常操作时为+5伏电源外接晶振引脚XTAL1和XTAL2XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当承受外部振荡器时,此引脚接地。XTAL2内部振荡电路反相放大器的输出端。是外接晶体的另一端。当承受外部振荡器时,此引脚接外部振荡源。掌握或与其它电源复用引脚RST/VPD,ALE/和/VppRST/VPD〔,将使单片机复位在Vcc掉电期间,此引脚可接以下图8051引脚排列图上备用电源,由VPD向内部供给备用电源,以保持内部RAM中的数据。ALE/ALE功能〔允许地址锁存〕供给把地址的低字节引脚以不变的频率〔振荡器频率的〕周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。但要留意,每当访ALE脉冲,ALE端可以驱动〔吸取或输出电流〕八个LSTTL电路。对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲〔功能。〔或数据〕LSTTL输入。/Vpp、/Vpp为内部程序存储器和外部程序存储器选择端。当/Vpp为高电寻常,访问内部程序存储器,当/Vpp为低电寻常,则访问外部程序存储器。EPROMEPROM编程期间,此引脚上加21EPROM编程电源〔Vp。4、输入/P0.0-P0.7,P1.0-P1.7,P2.0-P2.7,P3.0-P3.7。P0口〔P0.0-P0.7〕8I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸取电流的方式驱动LSTTL负载。P1口〔P1.0-P1.7〕8I/O口。能驱动(吸取或输出电流)LSTTL负载。P2口〔P2.0-P2.7〕8I/O口,在访问外部存储器时,它输出高8位地址。P2口可以驱动(吸取或输出电流)四个LSTTL负载。P3口〔P3.0-P3.7〕8I/O口。能驱动(吸取或输出电流)LSTTL负载。模数转换器模块ADC0809性能的介绍系统跟数字系统之间连接的桥梁。对于本系统而言,就是用于快速、高精度地对输入的酒精浓度信号进展采样编码,将其转换成单片机所能够处理的数字量。模数转换电路是本系统的关键局部,其性能的好坏直接影响整个系统的质量。依据A/D转换器的工作原理可将A/D转换器分成两大类:一类是直接型A/D转换器;另一类是间接型A/D转换器。在直接型A/D转换器中,输入的模拟电压被直接转换成数字代码,不经任何中间变量。在间接型A/D转换器中,首先把输入的模拟电压转换成某种中间变量〔时间、频率、脉冲宽度等等转换为数字代码输出。主要特性〔1〕88A/D8位。具有转换起停掌握端。100μs。单个+5V电源供电。模拟输入电压范围0~+5V,不需零点和满刻度校准。工作温度范围为-40~+85摄氏度。低功耗,约15mW。内部构造ADC080943.3所示。ADC0809是CMOS单片型逐次靠近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次靠近存放器、三态输出锁存器等其它一些电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出力量,既可与各种微处理器相连,也可单独工作。输入输出与TTL兼容。外部特性〔引脚功能〕ADC0809芯片有283.3所示。下面说明各引脚功能。路模拟量输入端。2-1~2-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。ALE:地址锁存允许信号,输入,高电平有效。STARTA/D转换启动信号,输入,高电平有效。EOCA/DA/D转换完毕时,此端输出一个高电平〔转换期间始终为低电平。OE:数据输出允许信号,输入,高电平有效。当A/D转换完毕时,此端输入一个高电平,才能翻开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。RE〔+、RE〔:基准电压。~+5V。GND:地。ADC0809的工作原理ADC0809的工作过程是:首先输入3ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次靠近存放器复位。下降沿启动A/DEOC输出信号变低,指示转换正在进展。直到A/D转换完成,EOC变为高电平,指示A/D转换完毕,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门翻开,转换结果的数字量输出到数据总线上。3.3ADC0809系统内部构造框图和外部引脚图酒精传感器模块3.4.1传感器性能分析TGS822气体传感器的敏感材料是金属氧化物,最具代表性的是SnO2SnO2在空气中被加热到肯定高的温度时,氧被吸附在的带一个负电荷的晶体外表。然后,晶体外表的供与电子被转移到吸附的氧上,结果在一个空间电荷层留下正电荷。这样,外表势能形成一个势垒,从而阻碍电子流淌。SnO2〔晶粒边界吸附的氧形成一个势垒阻挡载流子自由移动,传感器的电阻即缘于这种势垒。复原性气体消灭时,带有负电荷的氧的外表浓度降低,导致晶粒边界的势垒降低。降低了的势垒使传感器的阻值减小了。传感器阻值和复原性气体浓度之间的关系可由下面的肯定范围气体浓度方程表示:Rs=A[C]-α这里:Rs=传感器电阻A=常数[C]=气体浓度α=Rs曲线的斜率费加罗气体传感器的气敏素子,使用在清洁空气中电导率低的SnO2。当存在检知对象气体时,传感器的电导率随空气中气体浓度增加而增大。使用简洁的电TGS822传感器对酒精、有机溶剂灵敏度高,在酒精检测器等方面得到广泛使用。一样特性的TGS823,承受了陶瓷底座,可以在200℃的高温气氛中使用。表3.3.1TGS822性能参数一览表型号TGS822素子类型8系列标准封装塑料、SUS双重金属网对象气体酒精、有机溶剂检测范围50—5000ppm加热器电压VH5.0+0.2VDC/AC回路电压VCMAX24V Ps≤15mw标准回路负载电压RL可变 Ps≤15mw条件加热器电压RH38+3.0 (室温)标准试验条特性加热器功率 PH传感器电阻 RS660+50mw VH=5.0V300ppm1-10k灵敏度〔Rs的变化率〕Rs(EtOH:300ppm)0.4+0.1Rs(EtOH:50ppm)条件回路条件20+2℃,65+5%RHVC=10.0+0.1VDC/ACVH=5.0+0.05VDC/AC预热条件七天以上以下图3.3.1中纵坐标也以传感器电阻比〔Rs/Ro〕表示,这里的Rs,Ro定义如下:Rs=含300ppm乙醇、各种温/湿度下的电阻值Ro=300ppm乙醇、20℃65%R.H.下的电阻值图3.3.1不同浓度气体对应的阻值3.3.2呼出酒精气体浓度与血液酒精浓度关系呼出气体中酒精呼出气体中酒精血液中酒精呼出气体中酒精呼出气体中酒精血液中酒精1mg/L0.022710¯611.85mg/100mL520.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.3636189.7280170.3863201.1585180.4091213.4390190.4318225.3395200.4515237.12100210.6618355.68150220.9091474.24200车辆驾驶人员血液中的酒精含量大于或等于80mg/100ml的驾驶行为。3.3.2血液酒精含量临界值一览表
对 象
临界值〔mg/100ml〕2080由表3.3.2血液酒精含量临界值可以进展定量的分析车辆驾驶人员酒后驾驶后血液中的酒精浓度,进而对于该司机的酒驾行为类别进展定性,如血液酒精浓度低于20mg/100ml,则认为是饮酒驾驶,可以对其酌情处理;如假设血液酒精浓度超过了80mg/100ml,理。LCD显示模块1602LCD1416LCD2条线是背光电源线VCC(15脚)和地线GND(16脚14脚的LCD引脚符号功能说明VSS一般接地VDD接电源〔+5V〕V0液晶显示器比照度调整端,接正电源时比照度最弱,接地电源时比照度〔10K的电位器调整比照度。RSRS10时选择指令存放器。R/WR/W(1)(0)时进展写操作。EE(EN)端为使能(enable)端,下降沿使能。DB04位三态、双向数据总线0位〔最低位〕DB14位三态、双向数据总线1位DB24位三态、双向数据总线2位10DB34位三态、双向数据总线3位11DB44位三态、双向数据总线4位12DB54位三态、双向数据总线5位13DB64位三态、双向数据总线6位14DB74位三态、双向数据总线7位〔最高位〔也是busyflang〕15BLA背光电源正极16BLK背光电源负极存放器选择掌握表即为ASCII码表RSR/W操作说明00写入指令存放器〔去除屏等〕1都busyflag〔DB,以及读取位址计数器〔DB0~DB〕值0写入数据存放器〔显示各字型等〕11从数据存放器读取数据1602〔CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比方大写的英文字母“A”的代码是01000001B〔41,显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“由于1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如”3.4LCD1602外部引脚图开延清延关延
4章系统软件设置第一行显示第一延时初始化跳过读序延时初始跳过读序显示第一
读取温度值设置第一行控 制读取数比较
显示第一设置其次行显示其次整机系统流程图ADC程序流程图开头初始开头初始判ADC断是是读出计算单片机对ADC进展初始化,使其能进入正常工作状态,通过推断ADC转换推断标志EOC,看其是否转换完毕,假设没有,则连续推断,如假设完成则将ADC转换的数据由单片机读取并计算,然后进入下一环节。LCD程序流程图开头开头是推断LCD是否写入饮酒驾醉酒驾单片机对LCD,然后推断LCD是否处ADC转换后计算出来的结果通过输出指令输出,并推断计算出的结果处于哪种状态,并输出。1酒精测试仪程序#include<reg51.h>#include<intrins.h>sbitrs=P2^4; //LCD液晶引脚定义,p0DB0_DB7sbitrw=P2^7;sbitep=P2^6;sbitale=P2^0; //ADC0809引脚定义sbitstart=P3^7;sbitoe=P3^5;sbiteoc=P3^6;sbitadda=P2^5;sbitaddb=P2^2;sbitadc=P2^3;sbitlight=P3^0; //报警输出sbitDQ=P3^3; //DS18B20输入脚定义sbitDE=P3^1;unsignedchartempL=0;unsignedchartempH=0;floattemperature;unsignedcharcodedis1[]={“WORKSTART“};//状态显示unsignedcharcodedis2[]={“ALCOHOLTEST“};unsignedcharcodedis3[]={“mg/100ml“};unsignedcharcodedis4[]={“SAFEDRIVING“};unsignedcharcodedis5[]={“DRINK-DRIVING“};unsignedcharcodedis6[]={“DRUNKDRIVING“};voiddelay(unsignedcharms) //1{ unsignedchari,j;while(ms--){ for(i=0;i<250;i++)for(j=0;j<50;j++){ _nop_;_nop_;}}}voiddelay2(unsignedinttime){n=0;while(n<time){n++;}return;}bitlcd_bz //LCD判忙{rs=0;rw=1;ep=1;
//延时2_nop_;_nop_;result=(bit)(P0&0x80);ep=0;returnresult;}lcd_wcmd(unsignedcharcmd) //LCD{while(lcd_bz)rs=0;rw=0;ep=0;_nop_;_nop_;P0=cmd;_nop_;_nop_;ep=1;_nop_;_nop_;ep=0;}lcd_pos(unsignedcharpos) //设定显示位置{lcd_wcmd(pos|0x80);}lcd_wdat(unsignedchardat) //LCD{while(lcd_bz);rs=1;rw=0;ep=0;P0=dat;_nop_;_nop_;ep=1;_nop_;_nop_;ep=0;}lcd_init //LCD初始化{lcd_wcmd(0x38);delay(1);lcd_wcmd(0x0c);delay(1);lcd_wcmd(0x06);delay(1);lcd_wcmd(0x01);delay(1);}Init_DS18B20(void) //DS18B20初始化{DQ=1;delay2(8);DQ=0;delay2(85);DQ=1;delay2(14);delay2(20);}ReadOneChar(void) //DS18B20读一字节数据{unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=1;delay2(1);DQ=0;dat>>=1;DQ=1;if(DQ)dat|=0x80;delay2(4);}return(dat);}WriteOneChar(unsignedchardat) //DS18B20写一字节数据{unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0X01;delay2(5);DQ=1;dat>>=1;}delay2(4);}ReadTemperature(void) //DS18B20读温度值{Init_DS18B20;WriteOneChar(0xcc);WriteOneChar(0x44);delay2(125);Init_DS18B20;WriteOneChar(0xcc);WriteOneChar(0xbe);tempL=ReadOneChar;tempH=ReadOneChar;temperature=((tempH*256)+tempL)*0.0625;delay2(200);return(temperature);}main{floatx,y,k;unsignedintda,n,temp1,temp2,i,gw,sw,bw,kw,xw;light=0; //数据初始化lcd_init;delay(3);lcd_pos(0);i=0;while(dis1[i]!=”\0”) //显示开头工作{lcd_wdat(dis1[i]);i++;}lcd_pos(0x41);i=0;while(dis2[i]!=”\0”) //显示开头测试{lcd_wdat(dis2[i]);i++;}delay(32);while(1) //无限循环测试{lcd_init;//初始化LCDale=0;//ADC0809start=0;adda=0; //TGS822信号输入引脚号addb=0;adc=0;_nop_;ale=1; //启动ADC0809start=1;_nop_;start=0;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;while(eoc==0);//推断ADC0809是否转换完毕oe=1; //翻开ADC0809数据锁存_nop_;oe=0;y=(2550/da-10)/9.27; //代入传感器性质公式进展计算if(y>2.68)x=61.61-4.08*y;elseif(y>2.38)x=139.3-33.3*y;elseif(y>2.23)x=218.7-66.7*y;elseif(y>2.128)x=288.6-98*y;elseif(y>2)x=262.88-85.9*y;elseif(y>1.89)x=254.5-81.8*y;elseif(y>1.62)x=450-185.2*y;elseif(y>1.209)x=347.1-121.7*y;lseif(y>0.822)x=816.5-516.8*y;elseif(y>0.635)x=1279.2-1069.5*y;elsex=2238.7-2580.6*y;if(da<=17)x=0;n=(int)(x/0.23698);gw=n%10+0x30; //取出所得数据个、十、百、千每位上的ASCII表中数据便于输出temp1=n/10;sw=temp1%10+0x30;temp2=temp1/10;bw=temp2%10+0x30;kw=temp2/10+0x30;lcd_pos(0x84);//LCD显示位置lcd_wdat(0x2e); //输入小数点if(n>=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);}elseif(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);lc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年考大连银行面试题及答案
- 钢架厂房吊顶施工方案
- 灯罩的检测标准
- 4个月婴幼儿体重身高标准
- 基坑钢管支撑施工方案
- 2025年硅湖职业技术学院单招职业技能测试题库1套
- 2025年江西司法警官职业学院单招职业适应性测试题库审定版
- 陕西省榆林市2025届高三下学期第三次模拟考试生物试题(原卷版+解析版)
- 三农村电商打造区域特色品牌方案
- 三农村居民耕地质量保护方案
- GB/T 41021-2021法庭科学DNA鉴定文书内容及格式
- 2023年陕西高职单招考试语文真题
- 石油焦生产工艺及设备解读课件
- 肺炎-疑难病例讨论课件
- 2023全国高中化学奥林匹克竞赛预赛试题及答案
- 音乐剧悲惨世界歌词
- 复合材料铺层设计说明
- 戴德梁行物业培训ppt课件
- GB∕T 16422.3-2022 塑料 实验室光源暴露试验方法 第3部分:荧光紫外灯
- 煤矿防治水中长期规划2017—2019
- 2022年乡镇(街道)执法人员资格考试题库(含答案)
评论
0/150
提交评论