您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页酒精报警器论文

酒精报警器论文

来源:意榕旅游网


酒精报警器

【摘要】本设计实现了对不同浓度酒精的检测和显示并报警,通过适当改进可以

用于检测酒后驾车。本文用STC89C52单片机与MQ-3型气体传感器实现了对酒精浓度的测量,并对测量数据进行显示,同时利用蜂鸣器,在设计允许值时发出报警。

论文主要研究了(1)硬件方面,MQ-3气体传感器技术参数的检测和将它接入到酒精浓度检测模块中,将采集到的模拟电压信号通过单片机控制经A/D转换,得到数字电压信号;用于显示浓度的LCD显示模块并报警。(2)软件方面,主要研究了电压到浓度的线性转换和最终浓度值的LCD显示。(3)对设计的传感器进行了标定。设计的传感器对酒精气体反应灵敏,能在有效范围内测量它的浓度值。并且在检测低浓度酒精时误差较小,最大误差为8.2%满足设计要求。

本文的特色在于标准的确定。对于流动空气,样品的稳定性和水蒸气的影响,提出了解决方案和验证方法。对不同的区间浓度和电压转换关系做线性化处理,简化了硬件电路的设计。设计的传感器可以检测不同浓度的酒精气体,改进之后对解决酒后驾车事故和特殊场合酒精检测都可以使用。

【关键词】气体传感器 模数转换 单片机

目 录

引 言----------------------------------------------------------------------------- 1 第一章 系统的总体方案设计 ------------------------------------------------- 3

1.1 酒精报警器的工作结构和原理------------------------------------------------ 3 1.2 酒精传感器的选型----------------------------------------------------------- 3

1.2.1 酒精传感器的介绍----------------------------------------------------------4 1.2.2 MQ-3半导体气体酒精传感器--------------------------------------------------7

1.3 单片机的选型-------------------------------------------------------- ------ 10 1.4 酒精报警器的主要功能设计------------------------------------------------- 13

第二章 系统的硬件电路 ------------------------------------------------------14

2.1 STC89C52的时钟电路和复位电路-------------------------------------------- 14 2.2 A/D转换电路---------------------------------------------------------------- 14 2.3 声光报警电路-------------------------------------------------------------- 17 2.4 字符显示电路-------------------------------------------------------------- 18 2.5 酒精报警器硬件总电路----------------------------------------------------- 19

第三章 系统软件的设计-------------------------------------------------------20

3.1 整机系统流程图-------------------------------------------------------------20 3.2 ADC程序流程图--------------------------------------------------------------21 3.3 LCD程序流程图--------------------------------------------------------------22

第四章 系统调试--------------------------------------------------------------- 23

4.1 硬件调试--------------------------------------------------------------------23 4.2 软件调试--------------------------------------------------------------------23 4.3 成品调试--------------------------------------------------------------------22

结 论---------------------------------------------------------------------------- 26 致 谢---------------------------------------------------------------------------- 27 参考文献------------------------------------------------------------------------ 28 附 录---------------------------------------------------------------------------- 29

引 言

设计背景:

我国传感器市场的增长率超过15%,2003年销售额为186亿元人民币,2006年销售额为283亿元人民币,预计2007年为325亿元人民币,2008年为374亿元人民币。我国传感器4大类中,工业和汽车电子产品占市场份额的33.5%。近年来,传感器正处于传统型向新型传感器转型的发展阶段,新型传感器的特点是微型化、数字化、智能化、多功能化、系统化、网络化,它将不仅促进系统产业的改造,而且可导致建立新型工业和军事变革,是21世纪新的经济增长点。

由于气体与人类的日常生活密切相关,对气体的检测已经是保护和改善生态居住环境不可缺少的手段,气体传感器发挥着极其重要的作用。气体传感器是把气体中的特定成分检测出来,并转化为电信号的一类器件,用来对有害气体,易燃易爆气体等进行安全检测和报警,对生产生活中需要了解的气体进行检测,分析,研究等。近年来,我国气敏传感器产业有了较快的发展,但与国外相比,从技术水平,产业化及应用等领域均存在着不小的差距。 目前,气敏传感器领域还存在一些问题。一是元件的稳定性差。由于元件电阻和灵敏度随时间而不断变化,漂移大给检测结果的可靠性带来不稳定的因素。二是选择性差。由于在检测气体时,往往还存在着其它的干扰气体(如烟酒等),使气敏元件发生交叉响应,产生误报。三是催化剂中毒。掺有催化剂的气敏元件接触某些气体后,活性组分被毒化,将会改变元件的选择性,降低其敏感度和稳定性,另外催化剂本身也存在着不稳定性问题。灵敏度问题。四是SnO2元件有时由于灵敏度过大导致误报,但是在检测某些低浓度气体时灵敏度却难以达到要求。

气敏传感器的研究现状:

气敏元件性能与敏感功能材料的种类、结构及制作工艺密切相关。用金属氧化敏感材料制作的半导体式气敏元件具有灵敏度高,结构简单,体小质轻,坚固耐用等优点而得到广泛的应用,目前仍以SnO2材料为主。SnO2是一种广普型的气敏材料,围绕SnO2为基体材料的气敏材料的制备及其气敏元件制备的研究课题十分活跃。纯SnO2的气敏特性不甚好,尤其是它的热稳定性不高。为改善其气敏特性,常在SnO2基体中掺入贵金属或其他金属氧化物。尽管SnO2基传感材料具有许多优点,作为材料也存在一定缺点。通过控制气敏材料微粒大小,颗粒纳米化,掺杂其它添加剂或催化剂,利用过滤设备或透气膜来获得选择性,控制工作温度及环境湿度影响,改进制备等方法可以改善SnO2传感器的气敏性能。

纳米科学技术(Nano—ST)是研究尺寸在0.1—100nm的物质组成体系的运动规律和相互作用以及可能的实际应用中的技术问题的科学技术。纳米技术的发展,不仅为传感器提供了优良

1

的敏感材料,而且为传感器制作提供了许多新型方法。纳米固体材料具有庞大的界面,提供了大量气体通道,从而大大提高了灵敏度,工作温度大大降低,大大缩小了传感器的尺寸。当然,在己获得明显进展的纳米传感领域中尚存在很多问题,从敏感材料到制作技术都很不成熟,其性能也有不尽人意的地方。

气敏传感器在家用电器中也有相当广泛的应用。吸油烟机等产品上常用MQ-3型半导体气敏传感器,它采用旁热式结构,陶瓷管内装有高阻抗加热丝,管外涂有梳状金属电极,金属电极之外涂有SnO2材料,使SnO2烧结体位于两电极之间。气敏传感器工作时,加热器通电加热,若无被检气体侵入时,气敏元件的阻值基本不变当气敏元件表面产生吸附作用,其阻值将随气体浓度的变化变化。当被检气体浓度增大到一定值时,气敏元件的阻值将随之下降到某一值,使电压比较器的状态发生变化,输出控制信号经电流放大后,控制继电器或双向晶闸管接通电动机电源使吸排油烟机工作。

2

第一章 系统的总体方案设计

1.1酒精报警器的工作结构和原理

酒精报警器是能够检测环境中的酒精浓度,并具有报警功能的仪器。该报警系统的最基本组成部分应包括:信号采集及模数转换电路、单片机控制电路、字符显示电路、声光报警电路等部分组成。

为适应家庭和工业等场所对可燃性易爆酒精安全性要求,设计的酒精报警器具有显示报警状态等功能。报警器采用延时的工作方式,酒精检测报警器以STC89C52单片机为控制核心,选用MQ-3半导体气体酒精传感器采集酒精浓度信息,配合外围电路构成酒精报警系统。报警器系统结构如图1-1。

图1-1酒精报警器系统结构框图

该系统的工作由酒精信号采集及放大电路将采集到的酒精浓度信息转化为模拟电信号。模数转换电路再将该模拟信号转换成单片机可识别的数字信号后送入单片机。单片机对该数字信号进行处理,并对处理后的数据进行分析。

设计中为了方便检测与监控,使仪器测试人员及用户能够间接知道环境中的酒精浓度,所以用LCD1602液晶屏显示字符来指示报警状态。系统采用蜂鸣器声音报警和LED闪烁状态作为警报信号。这种报警方法是在声音报警基础上,加入光闪报警。因为变化的光信号可以引起用户和家庭邻居的注意,弥补了在嘈杂环境中声音报警的局限,使得报警装置更加完善。

1.2酒精传感器的选型

酒精传感器是测量装置和控制系统的首要环节。而酒精报警器的信号采集由酒精传感器负责。酒精传感器能够将气体的种类及其浓度有关的信息转换为电信号,根据这些电信号的

3

强弱就可以获得与待测气体在环境中存在的情况有关的信息,从而达到检测、监控、报警的功能。可以说,没有精确可靠的传感器,就没有精确可靠的自动检测、控制和报警系统。酒精传感器作为报警器中不可缺少的核心器件,它决定了所采集的酒精浓度信号的准确性和可靠性。

图 1-2 酒精传感器及其结构图

1.2.1酒精传感器的介绍

酒精传感器是模拟传感器。它能将空气中的酒精浓度变量转换成有一定对应关系的输出信号的装置。酒精传感器就是通过监测环境中酒精的浓度来实现火灾防范的。当酒精探头碰到酒精或某些特定的气体,酒精探头内部阻值发生变化,产生一个模拟值,从而对其进行控制。酒精传感器利用酒精敏感元件的电阻受酒精(主要是可燃颗粒)浓度影响阻值变化的原理向单片机发送酒精浓度相应的模拟信号。

在智能建筑中对火灾探测器的应用主要以感烟火灾探测器选用为主。随着传感器生产工艺水平逐步提高,传感器日益小型化、集成度不断增大,使得酒精探测器的体积也逐渐变小,提高了酒精探测器的便携性,更加利于生产、运输和市场推广。目前,酒精传感器广泛应用在城市安防、小区、工厂、公司、学校、家庭、别墅、仓库、资源、石油、化工、燃气输配等众多领域。

在国内的产品中,无论哪家生产的酒精探测器,都可以探测到火灾的发生,都具有比较高的灵敏度,而且在安装中都比较简单。但是,由于各生产的设备不可通用,独立为正,不但不可彼此互相代替,更不可以互相通讯。使得用户面对众多厂家生产的酒精探测器感到不知所措。而这也正是国内产品市场的一个重大缺陷。 (1)酒精传感器的分类

从构成气体传感器材料的形态上通常将它们分为干式和湿式气体传感器。由于对不同气体的检测方法不尽相同,目前主要的方法有:利用半导体气体器件检测的电气法;使用电极和电解液对气体进行检测的电化学法;利用气体对光的折射率或光吸收等特性来检测气体的光学法。

(2)酒精传感器应满足的基本条件

一个酒精传感器可以是单功能的,也可以是多功能的;可以是单一的实体,也可以是由多个不同功能传感器组成的阵列。但是,任何一个完整的酒精传感器都必须具备以下条件:

4

(a)能选择性地检测某种单一酒精,而对共存的其它酒精不响应或低响应; (b)对被测酒精具有较高的灵敏度,能有效地检测允许范围内的酒精浓度; (c)对检测信号响应速度快,重复性好; (d)长期工作稳定性好; (e)使用寿命长;

(f)制造成本低,使用与维护方便。 (3)常见的酒精探测器种类及工作原理

为了确保家庭环境的安全,需要对各种可燃性气体、有毒性气体进行检测。但是,由于酒精的种类繁多,一种类型的酒精传感器不可能检测所有的气体,通常只能检测某一种或两种特定性质的酒精。例如氧化物半导体酒精传感器主要检测各种还原性酒精,如CO、H2、C2H5OH、CH3OH等。固体电解质酒精传感器主要用于检测无机酒精,如O2、CO2、H2、Cl2、SO2等。因此目前使用的酒精传感器有很多种,各自的检测原理也各不相同,下面就对一些常用的酒精传感器进行介绍。

(a)半导体酒精传感器(半导体气敏传感器)

半导体酒精传感器包括用氧化物半导体陶瓷材料作为敏感体制作的酒精传感器,以及用单晶半导体器件制作的酒精传感器。半导体酒精传感器是利用气体在半导体表面的氧化和还原反应导致敏感元件阻值变化而制成的。按照敏感机理分类,半导体酒精传感器可分为电阻式和非电阻式。当半导体接触到气体时,半导体的电阻值将发生变化,利用传感器输出端阻值的变化来测定或控制气体的有关参数,这种类型的传感器称为电阻式半导体气敏传感器;当MOS场效应管在接触到气体时,场效应管的电压将随周围气体状态的不同而发生变化,利用这种原理制成的传感器被称为非电阻式半导体气敏传感器。

自1962年半导体金属氧化物酒精传感器问世以来,由于具有灵敏度高、响应快、输出信号强、耐久性强、结构简单、体积小、维修方便、价格便宜等诸多优点,得到了广泛的应用。但是其最大的缺点就是选择性较差。该传感器己成为世界上产量最大、使用最广的酒精传感器之一。

(b)接触燃烧式传感器

当易燃酒精接触这种被催化物覆盖的传感器表面时会发生氧化反应而燃烧。接触燃烧式气体传感器的检测元件一般为铂金属丝(也可表面涂铂、钯等稀有金属催化层),使用时对铂丝通以电流,保持300℃~400℃的高温,此时若与可燃性气体接触,可燃性气体就会在稀有金属催化层上燃烧,因此铂丝的温度会上升,铂丝的电阻值也上升;通过测量铂丝的电阻值变化的大小,就知道可燃性气体的浓度。使用接触燃烧式传感器,其最大的缺点是探头很容易发生阻缓和中毒现象。一般在连续使用两个月后应对该传感器进行维护。这无形中加大了工作人员的工作量,同时增加了报警器的维护成本。

(c)电化学传感器

5

电化学传感器由膜电极和电解液封装而成。电化学气敏传感器一般利用液体(或固体、有机凝胶等)电解质,其输出形式可以是气体直接氧化或还原产生的电流,也可以是离子作用于离子电极产生的电动势。即酒精浓度信号将电解液分解成阴阳带电离子,通过电极将信号传出。它的优点是:反映速度快、准确、稳定性好、能够定量检测,但寿命较短(大约两年)。它主要适用于毒性酒精检测。目前国际上绝大部分毒气检测采用该类型传感器。

(d)高分子酒精传感器

利用高分子气敏元件制作的酒精传感器近年来得到很大的发展。高分子气敏元件在遇到特定酒精时,其电阻、介电常数、材料表面声波传播速度和频率、材料重量等物理性能发生变化。高分子气敏元件由于具有易操作性、工艺简单、常温选择性好、价格低廉、易与微结构传感器和声表面波器件相结合,在毒性酒精和食品鲜度等方面的检测中具有重要作用。高分子酒精传感器具有对特定酒精分子灵敏度高,选择性好,且结构简单,能在常温下使用,可以弥补其它酒精传感器的不足。

(e)红外吸收型传感器

红外传感器通常用两束红外光进行酒精测量,主光束通过测量元件内的目标酒精,参考光束通过比较元件内的参考酒精。在测量和比较元件中,红外射线被酒精有选择地吸收了。未吸收的红外光由光电探测器测量,产生一个正比于目标酒精浓度的差分信号。非扩散式红外探测器NDIR (non-dispersive IR )是其中的一种,所有的未吸收光全部以最小的扩散和损耗被记录下来。

由于不同的酒精吸收不同波长的IR,所以传感器根据目标酒精而调整,典型应用包括测量CO和CO2、冷冻剂酒精和一些易燃气。由于非碳氢化合物易燃酒精(如氢)不吸收电磁谱中IR部分的能量,所以这种传感器可以精确地测量碳氢化合物,并具有最小的交叉灵敏度,而且不受其它酒精的腐蚀以及高浓度目标酒精的影响。

(f) 离子感烟传感器

离子感烟传感器对于火灾初起和阴燃阶段的酒精气溶胶检测非常有效,可测酒精粒径范围为0.03um-10um。它在内外电离室里面有放射源镅241。由于它能使两极板间空气分子电离为正、负离子,使电极之间原来不导电的空气具有导电性。在正常的情况下,内外电离室的电流、电压都是稳定的。当火灾发生时,酒精粒子进入电离室后,电力部分(区域)的正离子和负离子被吸附到酒精粒子上,使正、负离子相互中和的概率增加,从而将酒精粒子浓度大小以电流变化量大小表示出来,实现对火灾参数的检测。

(g)光电式感烟传感器

光电式感烟传感器由光源、光敏元件和电子开关组成。平常光源发出的光,通过透镜射到光敏元件上,电路维持正常,如果有酒精从中阻隔,到达光敏元件上的光就显著减弱,于是光敏元件就把光强的变化变成电的变化,利用光散射原理对火灾初期产生的酒精进行探测,并及时发出报警信号。按照光源不同,可分为一般光电式、激光光电式、紫外光光电式

6

和红外光光电式等4种。

光电式感烟探测器发展很快,种类不断增多,就其功能而言,它能实现早期火灾报警,除应用于大型建筑物内部外,还特别适用于电气火灾危险性较大的场所,如计算机房、仪器仪表室和电缆沟、隧道等处。

根据报警器检测酒精种类的不同要求,很多场合都会选择使用半导体酒精传感器。经过对比众多酒精传感器的应用特性,发现半导体酒精传感器的优点更加突出。半导体酒精传感器具有灵敏度高、响应快、体积小、结构简单,使用方便、价格便宜等优点,且不会发生探头阻缓及中毒现象,维护成本较低,因而得到广泛应用。因此,本设计中的酒精传感器选用MQ-3半导体气体酒精传感器。

图1-3 MQ-3半导体气体酒精传感器结构

1.2.2 MQ-3半导体气体酒精传感器

MQ-3气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。

MQ-3气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。 图1-4是传感器典型的灵敏度特性曲线。

图中纵坐标为传感器的电阻比(Rs/Ro),横坐标为气体浓度。 Rs 表示传感器在不同浓度气体中的电阻值 Ro 表示传感器在1000ppm 氢气中的电阻值 图中所有测试都是在标准试验条件下完成的。

7

灵敏度特性:

图1-4是传感器典型的温度、湿度特性曲线。

图1-4

图中纵坐标是传感器的电阻比(Rs/Ro)。 Rs表示在含1000ppm 丙烷、不同温/湿度下传感器的电阻值

Ro表示在含1000ppm 丙烷、20℃/65%RH环境条件下传感器的电阻值 温/湿度的影响:

1.91.7图1-5

Rs/R01.51.31.10.90.70.5-20-100102030基本测试回路:

60%RH30%RH85%RHVc

图1-6

VRL

4050℃VH

RL

GND

图1-6是传感器的基本测试电路。该传感器需要施加2 个电压:加热器电压(VH)和

测试电压(VC)。其中VH用于为传感器提供特定的工作温度。VC 则是用于测定与传感器串联的负载电阻(RL)上的电压(VRL)。这种传感器具有轻微的极性,VC 需用直流电源。在满足传感器电性能要求的前提下,VC 和VH 可以共用同一个电源电路。为更好利用传感器的性能,需要选择恰当的RL值。 规格:

A. 标准工作条件 符号 Vc VH RL RH PH 参数名称 回路电压 加热电压 负载电阻 加热电阻 加热功耗 技术条件 ≤24V 5.0V±0.2V 可调 31Ω±3Ω ≤900mW 备注 DC ACorDC 室温

8

B. 环境条件 符号 Tao Tas RH O2 参数名称 使用温度 储存温度 相对湿度 氧气浓度 技术条件 -10℃-+50℃ -20℃-+70℃ 小于 95% RH 21%(标准条件) 氧气浓度会影响灵敏度特性

C. 灵敏度特性 符号 Rs 参数名称 敏感体表面电阻 技术参数 2KΩ-20KΩ (2000ppm C3H8 ) 浓度斜率 ≤0.6 备注 适用范围: 300-10000ppm 丙烷、丁烷、氢气 最小值大于2% 备注 α (R3000ppm/ R1000ppm C3H8) 标准工作条件 预热时间

温度: 20℃±2℃ Vc:5.0V±0.1V 相对湿度: 65%±5% VH: 5.0V±0.1V 不少于48小时 敏感体功耗(Ps)值可用下式计算: 传感器电阻(Rs),可用下式计算:

Ps=Vc×Rs/(Rs+RL) Rs=(Vc/VRL-1)×RL

A、 D. 结构,外形

MQ-3/MQ-3S气敏元件的结构和外形如图1-7所示(结构 A 或 B), 由微型Al2O3陶瓷管、SnO2 敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,加热器为气敏元件提供了必要的工作条件。封装好的气

图1-7

1 2 3 4 5 6 部件 气体敏感层 电极 测量电极引线 加热器 陶瓷管 防爆网 材料 二氧化锡 金(Au) 铂(Pt) 镍铬合金(Ni-Cr) 三氧化二铝 100目双层不锈钢(SUB316) 2

2

敏元件有6只针状管脚,其中

4个用于信号取出,2个用于提供加热电流。

9

1.3单片机的选型

单片机是酒精自动报警系统的心脏,用来接收酒精信号并启动报警装置显示和执行相应动作。在单片机实现的控制功能中,需要单片机有较快的运算速度,使检测人员和用户在报警器系统正常工作时能够及时地观测到实时的酒精浓度等级,并进行相应处理。同时,在能够满足报警器系统设计的计算速度及接口功能要求的同类型单片机中,要考虑选择价格低廉且体积轻巧的机型,在保证了报警器的精确性、可靠性及抗干扰性的基础上,能够不提高成本,缩小体积。

单片机作为最典型的嵌入式系统,所以它是低端控制系统最佳器件。由于其微小的体积和极低的成本,开发环境要求较低,软件资源十分丰富,开发工具和编程语言也大大简化,因此被广泛应用于家用电器、机器人、仪器仪表、工业控制单元、办公自动化设备以及通信产品中,成为现代电子系统中最重要的智能化工具。由于MCS系列单片机集成了几乎完善的中央处理单元,处理功能强,中央处理单元中集成了方便灵活的专用寄存器,这给我们利用单片机提供了极大的便利。

由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中,MCS系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。其中,51系列单片机的优点是价钱便宜,I/O口多,程序空间大。因此,测控系统中,使用51系列单片机是最理想的选择,因此设计采用STC89C52。

(1)STC89C52功能特性概述

目前市面上使用的比较普遍的51系列单片机是STC89C52。STC89C52是STC公司生产的低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用STC公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大STC89C52单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。其主要性能参数如下:

(a) 与MCS-51产品指令系统完全兼容 (b) 4k字节可重擦写Flash闪速存储器

10

(c) 1000次擦写周期 (d) 全静态操作:0Hz-24MHz (e) 三级加密程序存储器 (f) 128×8字节内部RAM (g) 32个可编程I/O口线 (h) 2个16位定时/计数器 (i) 6个中断源

(j)可编程串行UART通道 (k)低功耗空闲和掉电模式

图1-8 STC89C52的引脚排列图

STC89C52单片机提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,STC89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

11

时钟源 震荡与 定时电路 CPU 外 部中断 信号 内部中断信号 总线控制 并行端口 串行端口 128B SFR 128B RAM 4KB ROM 两个16位定时0计数器 T0 T1 系 统 总 线 控制信号 P0 P1 P2 P3 TXD RXD 图1-9 STC89C52单片机的基本组成图

(2)STC89C52的内存空间

1、内部程序存储器(FLASH)4K 字节。 2、外部程序存储器(ROM)64K 字节。 3、内部数据存储器(RAM)256 字节。 4、外部数据存储器(RAM)64K 字节。

表1-1 程序存储器的6个特殊地址

0000H 0003H 000BH 0013H 001BH 0023H

上电或复位入口地址 外部中断0入口地址 定时器T0中断入口地址 外部中断1入口地址 定时器T1中断入口地址 串口中断入口地址 在上述事件发生时,PC指针获得固定的地址,然后CPU执行PC指针所指地址单元内的程序。

12

图1-10 STC89C52的存储器结构

1.4酒精报警器的主要功能设计

(1)传感器MQ-3的电压模拟输出范围为0-5V;

(2)模数转换芯片ADC0804采样电压范围为0-5V,分辨率为8位,采样精度为5/256V, 达到256个量化级的数字电压,其工作频率为1MHz;

(3)LCD显示器用10K的可调电阻调节使其清晰显示,消除“鬼影”显示数据。 (4)根据检测到的酒精溶度,控制报警系统。

13

第二章 系统的硬件电路

2.1 STC89C52的时钟电路和复位电路

(1)时钟电路:

STC89C52单片机芯片内部设有一个由反向放大器构成的振荡器,XTAL1和XTAL2分别为振荡电路的输入端和输出端,时钟可由内部或外部生成,在XTAL1和XTAL2引脚上外接晶体振荡器Y,内部振荡电路就会产生自激振荡。系统采用的定时元件为石英晶体和电容组成的并联谐振回路。晶振频率选择12MHZ,C1、C2的电容值取30pF,电容的大小起频率微调的作用。时钟电路如图2-1。

X130pFC2C1X230pFS15V

Y12MHz手动复位R13470Ω+C322uFRESETR141KΩ 图2-1 时钟电路和复位电路图

(2)复位电路:

单片机有多种复位电路,本系统采用自动复位(上电复位)与手动复位方式,电路如图3-3。当上电时,C3充电,电源经过电容器C3 工作时,按下复位键时单片机复位。

加到RESET引脚,使单片机复位;在正常

2.2 A/D转换电路

A/D转换器的位数与被测量对象的精度有关。一般情况下,电路设计中A/D转换器的分辨率要高于被测量对象的信号最低分辨率。假如要测量一级电源电压,其电压的输出范围是0—10V,如要求精确到0.1V,即分辨率为0.1/10=0.01=1%。实际中选择8位的A/D转换器便可满足要求,8位A/D转换器的分辨率为1/256=0.4%。并行接口的A/D芯片目前仍占多数,

14

流行的有ADC0804、ADC0809、AD574等等。本系统使用ADC0804来完成模拟信号向数字信号的转换。

ADC0804主要技术指标如下: (1) 高阻抗状态输出 (2)分辨率:8 位(0~255) (3) 存取时间:135 ms (4) 转换时间:100 ms (5) 总误差:-1~+1LSB

(6) 工作温度:ADC0804C为0度~70度;ADC0804L为-40 度~85 度 (7) 模拟输入电压范围:0V~5V (8) 参考电压:2.5V (9) 工作电压:5V (10) 输出为三态结构 ADC0804芯片介绍

图2-2 ADC0804规格及引脚分布图

本设计采用的A/D芯片为ADC0804,它是CMOS 8位单通道逐次渐近型的模/数转换器,其规格及引脚图如图3-2所示,各个引脚的大致功能如下:

/CS:芯片片选信号,低电平有效,即/CS=0,该芯片才能正常工作,在外接多个ADC0804芯片时,该信号可以作为选择地址使用,通过不同的地址信号使能不同的ADC0804芯片,从而可以实现多个ADC通道的分时复用。

/WR:启动ADC0804进行ADC采样,该信号低电平有效,即/WR信号由高电平变成低电平

15

时,触发一次ADC转换。

/RD:低电平有效,即/RD=0时,可以通过数据端口DB0~DB7读出本次的采样结果。 UIN(+)和UIN(-):模拟电压输入端,模拟电压输入接UIN(+)端,UIN(-)端接地。双边输入时UIN(+)、UIN(-)分别接模拟电压信号的正端和负端。当输入的模拟电压信号存在“零点漂移电压”时,可在UIN(-)接一等值的零点补偿电压,变换时将自动从UIN(+)中减去这一电压。

VREF/2:参考电压接入引脚,该引脚可外接电压也可悬空,若外界电压,则ADC的参考电压为该外界电压的两倍,如不外接,则Vref与Vcc共用电源电压,此时ADC的参考电压即为电源电压Vcc的值。

CLKR和CLKIN:外接RC电路产生模数转换器所需的时钟信号,时钟频率CLK = 1/1.1RC,一般要求频率范围100KHz~1.28MHz。

AGND和DGND:分别接模拟地和数字地。

/INT:中断请求信号输出引脚,该引脚低电平有效,当一次A/D转换完成后,

将引起/INT=0,实际应用时,该引脚应与微处理器的外部中断输入引脚相连(如51单片机的INT0,INT1脚),当产生/INT信号有效时,还需等待/RD=0才能正确读出A/D转换结果,若ADC0804单独使用,则可以将/INT引脚悬空。 DB0~DB7:输出A/D转换后的8位二进制结果。

图2-3 ADC0804转换器的工作时序

16

表2-1:ADC0804模拟转数字对照表

十六进制 二进制码 与满刻度的比率 高四位字节 低四位字节 15/256 14/256 13/256 12/256 11/256 10/256 9/256 8/256 7/256 6/256 5/256 4/256 3/256 2/256 1/256 相对电压值VREF=2.560V 高四位电压 4.800 4.480 4.160 3.840 3.520 3.200 2.880 2.560 2.240 1.920 1.600 1.280 0.960 0.640 0.320 0 低四位电压 0.300 0.280 0.260 0.240 0.220 0.200 0.180 0.160 0.140 0.120 0.100 0.080 0.060 0.040 0.020 0 F E D C B A 9 8 7 6 5 4 3 2 1 0 1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000 15/16 14/16 13/16 12/16 11/16 10/16 9/16 8/16 7/16 6/16 5/16 4/16 3/16 2/16 1/16 例:VIN=3V.由上表可知2.880+0.120=3V 为10010110=96H

2.3声音报警电路

图2-4 声音报警电路图

17

2.4字符显示电路

1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线

VCC(15脚)和地线GND(16脚),其控制原理与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位 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),以及读取位址计数器(DB0~DB6)值 1 0 写入数据寄存器(显示各字型等) 1 1 从数据寄存器读取数据

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。

18

图2-5 LCD1602外部引脚图

2.5酒精报警器硬件总电路

把上述各个部分电路结合到一起,就是所设计的酒精报警器总电路。通过各自分工,最终实现声光报警、字符显示等功能。

图3-8 酒精报警器硬件电路设计图

19

第三章 系统软件的设计

3.1整机系统流程图

20

3.2 ADC程序流程图

单片机对ADC进行初始化,使其能进入正常工作状态,通过判断ADC转换判断标志EOC,看其是否转换完毕,如果没有,则继续判断,如若完成则将ADC转换的数据由单片机读取并计算,然后进入下一环节。

21

3.3 LCD程序流程图

单片机对LCD进行初始化,使其能进入正常工作状态,然后判断LCD是否处于忙碌状态,如果是则继续判断,如若不是则将从ADC转换后计算出来的结果通过输出指令输出。

22

第四章 系统调试

4.1 硬件调试

硬件调试是利用开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。硬件调试可分为静态调试与动态调试两步进行。 静态调试

静态调试是在用户系统未工作时的一种硬件检测。

第一步:目测。检查外部的各种元件或者是电路是否有断点。

第二步:万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。

第三步:加电检测。给板加电,检测所有的插座或是器件的电源端是否符合要求的值 。 第四步:联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。 动态调试

动态调试是在用户系统工作的情况下,发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块。当调试电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,再对各块电路功能及各电路间可能存在的相互联系进行调试,由分到合的调试就可完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。

4.2 软件调试

软件调试是通过对用户程序、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。

(1) 实验平台 软件调试在KEIL编译器下进行,运行在Windows XP操作系统下。源程序编译及仿真调试应分段或以子程序为单位一个一个进行,最后可结合硬件实时调试。 (2) 实验步骤

1) 按照系统硬件连线图连好。

2) 把编写好的程序写入单片机STC89C52仿真器和对其进行初始化。

3) 先按下复位键,观察点阵能否正常显示,再观察点阵形成的上升下降信号和点阵显示的数字变化是否一致,当这些都符合指标后,再按下任意按键,看其是否能达到预想目的。

23

4.3 成品调试

图4-1 成品正面图

图4-2 成品背面图

24

图4-3 成品调试

25

结 论

本作品针对酒精传感器、模数转换器等器件原理。为制作出满足实际要求的作品,做好充分的准备。在此期间所遇到的问题,通过最有效、最准确的渠道进行解决,为成功扫清障碍。

完成本作品的主要困难有:

(1)在课程中虽然我们学过C语言程序设计,但是始终处于理论阶段,对于程序控制运行方面无任何实战经验;

(2)开始对单片机、ADC0804、LCD显示器一无所知,必需从头学习,而且在时间的分配上也要把握好;

(3)对于遇到非人为因素所带来的问题,导致的解决问题效率低下,使我们的时间更感急迫。

随着对单片机、ADC0804、LCD显示器的加深了解,对信号采集和数据算法处理的进一步学习;加入温度、湿度和气压的影响,在现有基础上进行改进,一定会使测得的数据更加准确,使作品与预期目标更接近。使其能成为商品,进入家庭,实现我们以此为课题的最终目的。

26

致 谢

转眼间大学就要过去,对于我来说这也结束了我的校园生活,但真正的学习才刚刚开始。在这三年的学习生活中,让我明白和了解了很多道理,在此过程中也有走了很多弯路,但更增添了我的记忆。

在完成作品期间如果没有同学的帮助,有很多事情处理起来就不会比较顺畅。例如在遇到单片机得不到ADC0804采集的数据这一难题,且始终停滞不前导致心情低落时,能有他们这样的同学、朋友和我共进退,比孤军奋战来得何止好上百倍。还有在最后关头如果不是老师帮我如何测试参数,对于最重要的数据处理方面将会大打折扣,那样作品就失去了它的意义。

还要感谢在此期间辅导我们的老师们、与我们一同奋战的同学、学长们,没有你们这段回忆将是孤独。也感谢学校为我们提供了这样的一个平台,不仅在学习上有所获取,而且在人际交往上多了一个圈子。也为我个人多增添了一项爱好和发展方向。

27

参考文献

[1] 单成祥.传感器的理论与设计基础及其应用[M].北京:国防工业出版社,1999,520 [2] 张福学.现代传感器电路[M].北京:中国计量出版社,2000,441 [3] 吴兴惠,王彩君.传感器与信号传感器[M].北京:电子工业出版社,1998 [4] 万隆,巴奉丽.单片机原理及应用技术[M].北京:清华大学出版社,2010 [5] 汤竟南,沈国琴.51单片机C语言开发与实例[M].北京:人民邮电出版社,2008 [6] 雷伏容,张小林,崔浩.51单片机常用模块设计查询手册[M].北京:清华大学出版社,

2010

[7] 韩成,张延 拿了就用单片机[M].北京:人民邮电出版社,2008 [8] 赵建领.51系列单片机开发宝典[M].北京:电子工业出版社,2007-04

[9] 胡伟,季晓衡 单片机C程序设计及应用实例[M].北京:人民邮电出版社,2003-07 [10] 王啸东.车载酒精测试仪控制器的设计[J].硅谷.2010-06 [11] 方吉高,黄炳醒.高选择性酒精传感器[J].硅谷.2004-02

[12] 王鸣.一种输入传行数据的LCD模块的应用[J].安徽机电学院.2000-08

[13] 刘焕平.ADC0809与STC89C52的一种接入方式[J].石家庄师范专科学校.2002-02

28

附 录

#include //包含单片机寄存器的头文件 #include

#define uchar unsigned char #define uint unsigned int uint num;

static int num1=80; sbit cs=P3^5; sbit rd=P3^6; sbit wr=P3^7; sbit lcden=P1^2; sbit rw=P1^1; sbit lcdrs=P1^0; sbit K2=P3^1; sbit K3=P3^2; sbit K4=P3^3; sbit K5=P3^4;

sbit LED1=P1^3; //警情指示灯 sbit LED2=P1^4; //正常指示灯 sbit fmq=P1^7;

uchar code table[]=\"Value: mg/lAlarm: mg/l\"; uchar code table1[]=\"0123456789\"; uchar temp[]={0,0,0,0,0}; uchar temp1[]={0,0,0,0,0}; uchar temp2[5]; uchar temp3[5];

int ss,ss1,pinlv1=0;pinlv=0,baojing=0,shezhi=0,dianji=0,moshi=0;

/***************************************************** 函数功能:延时若干毫秒 入口参数:n

***************************************************/ void delayms(uint xms) {

uint a,b;

for(a=xms;a>0;a--) for(b=110;b>0;b--); }

/***************************************************** 液晶写命令函数

29

*****************************************************/ void write_com(uchar com) {

lcdrs=0; P0=com; delayms(5); lcden=1; delayms(5); lcden=0; }

/***************************************************** 液晶写数据函数

*****************************************************/ void write_data(uchar date) {

lcdrs=1; P0=date; delayms(5); lcden=1; delayms(5); lcden=0; }

/***************************************************** 液晶初始化函数

*****************************************************/ void init() { int i; lcden=0;

write_com(0x38); //液晶初始化 write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); write_com(0x80); for(i=0;i<15;i++) { write_data(table[i]); } write_com(0x80+0x40); for(i=15;i<30;i++) { write_data(table[i]); }

30

}

/***************************************************** 函数功能:按键控制子程序

******************************************************/ void key() { K2=1; if(K2==0) { delayms(5); if(K2==0) {moshi++; if(moshi==2) moshi=0; dianji=0; while(!K2); } } K3=1; if(K3==0) { delayms(5); if(K3==0) { shezhi++; if(shezhi==2) shezhi=0; while(!K3); } } if(shezhi==1) {K4=1; if(K4==0) { delayms(5); if(K4==0) { num1+=1; if(num1>=20000) num1=20000; while(!K4); }

31

} K5=1; if(K5==0) { delayms(5); if(K5==0) { num1-=1; if(num1<=0) num1=0; while(!K5); } } } }

/*****************************************************

函数功能:报警子程序

*****************************************************/ void xunjian() {

if(shezhi==1) { pinlv++;

if(pinlv==6) ss=!ss;

if(pinlv==12) {ss=!ss;pinlv=0;} } else

{ss=0;pinlv=0;} if(baojing==1) { pinlv1++;

if(pinlv1==6) ss1=!ss1;

if(pinlv1==12) {ss1=!ss1;pinlv1=0;} } else

{ss1=0;pinlv1=0;} LED1=!moshi; LED2=!ss1; fmq=!ss1; }

32

/***************************************************** 函数功能:AD0804将模拟信号转换成数字信号

***************************************************/ void adstart() { cs=0; _nop_(); wr=0; _nop_(); wr=1; _nop_(); cs=1; }

uchar A_D() { uchar a; P2=0xff; cs=0; _nop_(); rd=0; _nop_(); a=P2; _nop_(); rd=1; _nop_(); cs=1; _nop_(); wr=0; return a; }

/*****************************************************

函数功能:显示气体浓度和设定的报警极限值

*****************************************************/

void display() { uchar i,a1,a2,a3,a4,a5,ad; uchar b1,b2,b3,b4,b5; ad=A_D(); num=ad; a1=num/10000;

33

a2=num%10000/1000;

a3=num%10000%1000/100; a4=num%10000%1000%100/10; a5=num%10; temp2[0]=a1; temp2[1]=a2; temp2[2]=a3; temp2[3]=a4; temp2[4]=a5; for(i=0;i<5;i++) { temp[i]=temp2[i]; }

write_com(0x80+6); for(i=0;i<5;i++) { write_data(table1[temp[i]]); }

b1=num1/10000;

b2=num1%10000/1000;

b3=num1%10000%1000/100; b4=num1%10000%1000%100/10; b5=num1%10; temp3[0]=b1; temp3[1]=b2; temp3[2]=b3; temp3[3]=b4; temp3[4]=b5; for(i=0;i<5;i++) { temp1[i]=temp3[i]; }

write_com(0x80+0x40+6); if(ss==0)

for(i=0;i<5;i++) { write_data(table1[temp1[i]]); } else

for(i=0;i<5;i++) { write_data(' '); }

if(moshi==0)

34

{ if(num>=num1) baojing=1; else baojing=0; } else baojing=0; }

/***************************************************** 函数功能:主函数

*****************************************************/ void main(void) { rw=0; init(); while(1)

{ adstart(); key(); xunjian(); display(); } }

35

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务