《仪器电路课程设计酒精测试仪.doc》由会员分享,可在线阅读,更多相关《仪器电路课程设计酒精测试仪.doc(21页珍藏版)》请在三一办公上搜索。
1、测控电路设计 专 业: 班 级: 姓 名: 学 号:目录摘要4Abstract4第1章 方案设计51.1 设计要求51.2 总体设计方案51.2.1 硬件部分51.2.2 软件部分51.3 可行性分析5第2章 单元电路设计62.1 酒精传感器部分62.1.1 气敏传感器的选择与介绍62.1.2 传感器检测模块电路72.1.3 传感器检测模块电路原理82.2 数据采集部分82.2.1 数据采集器的选择与介绍82.2.2 ADC采集电路92.3数据处理(单片机)部分102.3.1 单片机的选择与介绍102.3.2 单片机系统电路122.4显示部分122.4.1 数码管电路连接132.4.2数码管显
2、示的原理13第3章 软件设计143.1 程序流程图14附录14附录1:整体原理电路图15附录2:总程序16致谢21参考文献21摘要近年来,随着我国经济的高速发展,人民的生活水平迅速提高,越来越多的人有了自己的私家车,而酒后驾车造成的交通事故也频频发生。酒后驾车引起的交通事故是由于司机的过量饮酒造成人体内酒精浓度过高,麻痹神经,造成大脑反应迟缓,肢体不受控制等症状。少量饮酒并不会有上述症状,即人体内酒精浓度比较低时,而人体内酒精超过某一个值时就会引起危险。为此,需要设计一智能仪器能够监测驾驶员体内酒精含量。目前全世界绝大多数国家都采用呼气酒精测试仪对驾驶人员进行现场检测,以确定被测量者体内酒精含
3、量的多少,以确保驾驶员的生命财产安全。此外,酒精测试仪也可应用于食品加工、酿酒等需要监控空气中酒精浓度的场合。由此可见,酒精测试仪具有巨大的潜在用户群,市场前景十分广阔。酒精浓度检测仪主要是用来检测酒精浓度的,它主要由酒精传感器、模数转换器、单片机、LED 显示构成。酒精传感器将检测到的酒精浓度转化为电信号,然后将电信号传送给模数转换器,经过模数转换器转换后,把转换后得到的数字信号传给单片机,单片机对所输入的数字信号进行分析处理,最后将分析处理的结果通过显示器显示出来。关键词:单片机;A/D 转换;酒精传感器ABSTRACTIn recent years, with the high spee
4、d development of economy, peoples standard of living increased quickly, more and more people have their own cars, and drunk driving and traffic accidents caused by the constant. The traffic accident caused by driving is due to the drivers excessive drinking alcohol caused by human body, causing brai
5、n nerve palsy, slow response, the body is not controlled wait for a symptom. Alcohol can not have symptoms, namely people relatively low alcohol concentration, and more than one person alcohol will cause dangerous values. Therefore, it is necessary to design an intelligent instrument can monitor dri
6、vers in alcohol content. Most countries around the world are adopted to exhale alcohol tester driving personnel on-site testing to determine the body is measured by how much alcohol content, to ensure safety of lives and property of the driver. In addition, alcohol tester can also be used in food pr
7、ocessing, etc. To monitor air alcohol concentration. Thus, alcohol tester has great potential user group and market prospects.Alcohol concentration detector is mainly used to test the alcohol concentration, it mainly consists of ethanol sensors, adc, SCM, LED display and keyboard and alarm. Ethanol
8、sensors detect alcohol concentration into electrical signals, then send signals through the adc adc, after the conversion of single-chip microcontroller, digital signal to the input of digital signal processing, and finally analyze the results through analysis and processing will display. Keywords :
9、 Single Chip Computer ; A/D Transformer ; Alcohol Sensor报告题目:酒精测试仪的设计第一章 方案设计1.1设计要求要求设计一个检测汽车司机饮酒程度的仪器。仪器分为十档,用一个数码管显示,要求能抗汽油味干扰。采用的方法是测量司机呼出气体中的酒精含量,若其含量100ppm,则为0档。以后含量每增加300ppm就加一档。具体便是:该仪器能够通过酒精传感器采集的信息处理,然后通过单片机的处理:0100ppm为0档,100400ppm为1档,400700ppm为2档.22002500ppm为9档,并将这些数字显示在LED数码管上。1.2总体设计方案1
10、.2.1硬件部分硬件设计时,考虑酒精浓度是由传感器把非电量转换为电量,传感器输出的是0-5伏的电压值且电压值稳定(变化不大),外部干扰小等。因此,可以直接把传感器输出电压值经过ADC0809采集数据送入单片机进行处理。将输出的电压值与参考的标定电压值进行比阿娇,如果在某一个范围内就将这个范围的档数显示到LED上。其总体框图如图1:图1 基本工作原理图1.2.2软件部分采用51单片机,并用c语言编写,主要流程是单片机对采集的数据进行处理这一环节,具体见流程图。1.3可行性分析 采用这种设计方法主要是从以下角度考虑:从零器件角度看:酒精探头选用QM-J3气敏元件,是以复合金属氧化物为主体材料的N型
11、半导体气敏元件,当元件接触乙醇蒸汽时,其电导率随气体浓度增加而迅速升高。其对汽油蒸汽又抗干扰能力,灵敏度高,响应速度好,寿命长,工作稳定可靠等特点。单片机采用AT89C51,该款单片机价格便宜,能够满足一定的速率采集外界数据,同时工作稳定也是该款单片机的优点,另外A/D转换器采用ADC0804,转换速率可达100us,而且功耗仅有15mW,上述各个元件成本低、使用方便、安装简单、易推广,制作也很简单。所以根据这个设计方案设计的产品容易推向市场。第二章 硬件设计2.1酒精传感器部分2.1.1气敏传感器的选择与介绍气体传感器是气体检测系统的核心,通常安装在探测头内。从本质上讲,气体传感器是一种将某
12、种气体体积分数转化成对应电信号的转换器。探测头通过气体传感器对气体样品进行调理,通常包括滤除杂质和干扰气体、干燥或制冷处理、样品抽吸,甚至对样品进行化学处理,以便化学传感器进行更快速地测量。在选择传感器的时候,一定要考虑到稳定性、灵敏度、选择性和抗腐蚀性,由于设计要求是能够抗干扰而且测量范围在03000ppm范围内,常见的气敏传感器MQ3、QM-J3、TGS822三种传感器,可是第一种的测量范围只在01000ppm之内,故排除,后面两种传感器的性能相似但是TGS822并不常见,而且价格比QM-J3贵,综合以上考虑这里选择QM-J3。QM-J3是以复合金属氧化物为主体材料的N型半导体气敏元件,当
13、元件接触乙醇蒸汽时,其电导率随气体浓度增加而迅速升高。其对汽油蒸汽有抗干扰能力、灵敏度高、响应速度好、寿命长、工作稳定可靠等特点。其技术指标:加热电压() AC或DC 50.2V 回路电压 () 最大DC 24V负载电阻() 4K(或可调)清洁空气中电阻() 2000 K灵敏度() 5(在100ppm蒸汽中)分辨率() 3(在100ppm汽油蒸汽中)响应时间(tres) 10S恢复时间 (tres) 30S元件功耗 0.7W监测范围 505000ppm使用寿命 2年使用方法和注意事项:(1) 元件开始通电工作时,没有接触检测气体,其电导率也急剧增加,约1分钟后达到稳定,这时方可正常使用,这段变
14、化在设计中电路时可采用延时处理解决。基本酒精测试电路如图2.1.2(1)所示。(2) 加热电压的改变会直接影响元件的性能,所以在规定的电压范围内使用为佳。(3) 元件在接触标定气体100ppm10秒钟以内负载电阻两端的电压可达到()差值的80%(即响应时间);脱离标定气体100ppm30秒钟以内负载电阻两端的电压下降到()差值的80%(即恢复时间)。(4) 负载电阻可根据需要适当改动,不影响元件灵敏度。(5) 使用条件:温度1535;相对湿度4575%RH;大气压力80106KPa。(6) 环境适度的变化会给元件电阻带来小的影响,当元件在精密仪器上使用时,应进行温度补偿,最简便的方法是采用热敏
15、电阻补偿之。该传感器数值经标定后的值是:表1 酒精浓度和输出电压关系表(仅供参考)浓度/ppm电压/V浓度/ppm电压/V0016009.1521002.50319009.6014004.16522009.9867005.415250010.40210006.842280010.81113007.9382.1.2 传感器检测模块电路图2 传感器检测电路以及衰减电压电路图3 回路电压Vc产生电路2.1.3 传感器检测原理 半导体气敏传感器是利用待测气体在半导体表面的氧化和还原反应导致敏感元件阻值变化来检测气体的种类和浓度的。当半导体器件被加热到稳定状态,在气体接触半导体表面而被吸附时,被吸附的分
16、子首先在表面自由扩散,失去运动能量,一部分分子被蒸发掉,另一部分残留分子产生热分解而固定在吸附处时,如果半导体的功函数大于吸附分子的离解能,吸附分子将向器件释放电子,而形成正离子吸附。如H2、CO、碳氢化合物等,被称为还原型气体。当还原型气体吸附到N型半导体上时,载流子增多,使半导体电阻值下降。根据模块电路的设计,当吹进一定量的含有酒精的气体时,测试电压从电路中输出,由于在我们所要求的范围内其测试电压在2.510V之间,这超过了ADC0804规定的输入电压,所以我们将其输出电压统一缩减10倍,在输入到ADC0804中。另外一个模块电路是回路电压VC产生,同样我们利用运放将标准的5V电压进行放大
17、得到10V的回路电压并进过滤波除噪,电路中的稳压管保证输出回路电压能稳定在10V左右。2.2数据采集部分2.2.1数据采集器的选择与介绍模数转换电路的功能是将连续变化的模拟量转换为离散的数字量,是架起模拟系统跟数字系统之间连接的桥梁。对于本系统而言,就是用于快速、高精度地对输入的酒精浓度信号进行采样编码,将其转换成单片机所能够处理的数字量。模数转换电路是本系统的关键部分,其性能的好坏直接影响整个系统的质量。模数转换采用ADC0804,其工作特性:工作电压:+5V,即VCC=+5V。 模拟输入电压范围:0+5V,即0Vin+5V。 分辨率:8位,即分辨率为1/2=1/256,转换值介于0255之
18、间。 转换时间:100us(fCK=640KHz时)。 转换误差:1LSB。 参考电压:2.5V,即Vref=2.5V。对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。ADC0804有20个引脚,其中11-18管脚为数字信号输出端,与单片机P1口相连;cs为片选端直接接地,表示始终有效。WR接P3.6口,当WR变为低电平再跳变为高电平后启动A/D转换,RD接单片机P3.7口,当RD由低电平跳变为低电平时,单片机读走A/D转换完的数字信号。CLK为时钟输入信号线, 因ADC0804的
19、内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(),VREF()为参考电压输入。INTR为中断控制信号,接单片机外部中断端口,当A/D转换完后向单片机发出中断信号,等待读走数字信号,INTR也空可置不接,因为当启动A/D后一段时间后模数转换完后,等待一段时间后单片机也可以读走数字量。注意这里我们在编程时将adc0804当成是单片机的外部存储器,这通过引脚的连接实现并在程序通过关键词xdata来定义。这是一个操作外部存储器的依据。只要将某一数据声明成该形式就可以让操作这一数据时触动操作外部存储器的命令。2.2.2ADC采集电路图4 ADC0804数据采集电路2
20、.3数据处理(单片机系统)部分2.3.1 单片机的选择与介绍根据常见的单片夹类型再结合本次设计方案可以选择出AT89C51是最适合的。AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,一、主要性能8K字节在系统可编程Flash存储器10
21、00次擦写周期 全静态操作:0Hz33Hz 三级加密程序存储器 32个可编程I/O口线 三个16位定时器/计数器八个中断源全双工UART串行通道 低功耗空闲和掉电模式掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符 二、引脚功能描述AT89C51的引脚如图:图5 AT89C51引脚图VCC: 供电电压。GND: 接地 。 P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在Flash编程时,P0口也用来接收
22、指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。在Flash编程和校验时,P1口接收低8位地址字节。 P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“
23、1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原
24、因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,在Flash编程和校验时,P3口也接收一些控制信号。 引脚号第二功能: P3.0RXD(串行输入)。P3.1TXD(串行输出)。P3.2INT0(外部中断0)。 P3.3INT0(外部中断0)。P3.4T0(定时器0外部输入)。P3.5T1(定时器1外部输入)。P3.6WR(外部数据存储器写选通)。 P3.7RD(外部数据存储器写选通)。 RST: 复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO
25、位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”, ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执
26、行模式下无效。PSEN: 外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP: 访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在Flash编程期间,EA也接收12伏VPP电压。2.3.2 单片机系统电路图6 单片机连接电路图7 复位与晶振电路2.4显示部分2.4.1数码管电路连接图8 数码管显示电路2.4.2数码管显示的原理 LED数码管(LED Se
27、gment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等.,LED数码管根据LED的接法不同分为共阴和共阳两类,我们这里采用共阳数码管,共阳就是7段的显示字码共用一个电源的正。led数码管原理图示意:从下图可以看出,要是数码管显示数字,有两个条件:1、是要在VT端(3/8脚)加正电源;2、要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。这样才能显示的。共阳极LED数码管
28、的内部结构原理图图2.4.2: 图9 共阳极LED数码管的内部结构原理图其编码如下:数字(dp)gfedcba十六进制0110000000xc01111110010xf92101001000xa43101100000xb04100110010x995100100100x926100000110x827111110000xf88100000000x809100110000x90第三章 软件设计3.1程序流程图总程序流程图上电硬件初始化等待60s,加热气敏传感器采样,A/D转换NO延时100ms得到10个结果YES采集一次结束,进行下一次采集取最大的三个数进行求平均将平均值进行比较,看属于哪个档将
29、其档数显示在数码管上附录附录附录1 整体原理电路图(接上图)附录2 总程序#includechar code disp_code10= 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90;/digital tube coding table#define SEG7P P0 /digital tube input from the P0#define N 10 /how many datas we want to gather#define MAX 3 /how many datas we want to calculate the max va
30、luesbit INTR=P32;unsigned char dip;/the value which digital tube display unsigned char xdata adc;/definite the adc0804 as the externel memory/*the function for delaying 1ms*/void delay_1ms(int x)int i,j;for(i=0;ix;i+)for(j=0;j120;j+);/*the function for delaying 1s*/void delay_1s(int x) int i,j; for(
31、i=0;ix;i+) for(j=0;j=0) SEG7P=disp_codedip;delay_1ms(10); /*ascending the ten data,then calculate the average of first three values*/float data_compare(float *adc_value,int m)float averge,tmp,sum;int i,j,k; for(i=0;im-1;i+) for(j=0;jm-1-i;j+)if(*(adc_value+j)*(adc_value+j+1)tmp=*(adc_value+j);*(adc_
32、value+j)=*(adc_value+j+1);*(adc_value+j+1)=tmp;for(k=0;kMAX;k+)sum+=adc_valuek; return averge=sum/MAX;/*the function for processing the data,we arrange the ten datas by ascending,then we calculate the average value of the first three values*/void dataproc(float adc_value,int m) int i; float tmp; for
33、(i=0;i0.0&tmp2.5&tmp=4.2&tmp5.4&tmp=6.9&tmp7.9&tmp=9.2&tmp9.6&tmp=10&tmp10.4&tmp10.9) dip=9;int main() float adc_valueN; int i; delay_1s(60);/firstly,we have to delay 60 seconds for heating alcohol sensor while(1) display();for(i=0;iN;i+)/we want to gather ten data adc=0xff;/we regard adc0804 as a e
34、xtenal memory,when we read adc thus make WR low level while(INTR=1);/detecting the transforming whether have finishedadc_valuei=adc;/make RD low level and read the data to 89c51dataproc(adc_value,N); 总结在姜三平老师悉心指导和帮助下,完成了课程设计。在课设的过程中,从姜老师身上学到了好多东西,特别是解决问题的方法、乐观的精神以及做人的道理。同时感谢帮助我的同学和朋友。此次课程设计让我学到了很多,不仅知道了气敏传感器的工作原理,而且会运用传感器来采集我们所需的数据。另外熟练掌握单片机的工作性能以及编程。还有提高了对单片机尤其是51单片机的运用能力。参考文献1、例说51单片机(c语言版)-张义和等编(第3版),人民邮电出版社2、c和指针-A.Reek编,徐波翻译,人民邮电出版社3、酒精浓度测试仪,百度文库,链接地址:4、张毅刚等.新编MCS-51单片机应用设计.哈尔滨工业大学出版社,2003:8-985、陈龙三.C语言控制与应用.清华大学出版社,2001:108-2126、张玉仙等.第三届全国敏感元件与传感器学术会议论文集,北京.1933:122-124