




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.PAGE0第一章前言全球机械化水平的提高给人类的文明和进步带来了无可厚非的积极影响。遗憾的是对道路交通平安却没有带来正面的影响,导致了人员的伤亡、财产和经济损失。据1992年TransporiResearchLaboratoryofOverseasDevelopmentAdministration统计,全世界每年发生的交通事故中有30万人死亡,大约1500万人因交通事故而受伤。1994年全球每年的交通事故中有50万人死亡,也即全球每分钟有1人死亡,有15000万人遭受交通伤害,其中有1%致残,每年因交通事故要支出的财政费用上亿美元。1994年德国环境预测学会(theEnvironmtalandPrognosisinstituteinHeidelherg,Germany)估计:在1995~2030年期间,如果今后机动车交通仍按1994年趋势开展,以1995年各国家的人口数据为依据,全球因交通事故死亡人数将是法国人口总数的90%,受伤人数是中国人数的90%,目前全球机械化水平的进一步开展,结果将更是不容乐观的。所以道路交通平安问题是全球性问题,各国都面临交通肇事对道路交通平安带来的危机。由于各国资料统计口径的限制,显示了一些国家在1990~1993年间及2000年按国际统计指标口径统计的道路事故死亡人数和死亡率情况。从这近三年的统计数据可以看到我国每万车死亡人数远远高出机械化水平较高的兴旺国家。目前我国交通事故的严重性已受到了国际有关组织的关注,在我国从政府管理部门、交通执法机构、研究机构到每一位公民都应觉醒,关注道路交通平安、参与到治理道路交通平安的工作中来。1.1交通平安的现状和开展趋势我国汽车工业开展很快,汽车拥有量猛增,自1978年以来我国汽车保有量一直以两位数的百分比率在增长,至2002年底我国汽车已达2141万辆。与此同时,每年因交通事故死亡的人数也在迅速增长,十年间翻了一番,1991年5.3万人,2001年已达10.6万人,2002年为10.9万人,居世界第一位。更值得关注的是这种增长势头至今尚未受到有效遏制和减弱,如不作重大的政策调整,未来十年间道路交通事故年死亡人数还会再翻一番。我国道路交通事故的致死率也很高,比工业兴旺国家高出10倍。因此,我国道路交通平安形势十分严峻,已经引起全国各有关方面的重视。迄今为止全世界被汽车夺去的生命已超过者已超过75万。在全球范围内,平均每万辆汽车每年死亡人数在10人左右。由于占人口优势的开展中国家的汽车总数在增加,全世界每年死于汽车事故的总人数也在增加交通事故,这场"和平时代的战争〞还将无情地持续下去,全世界每年因道路交通事故造成的经济损失约为5180亿美元。随着全世界汽车拥有量的增加,全球道路交通事故的死亡人数也在增加。根据WHO数据,全球2003年的人均纯酒精消费量为6.2L,其中欧洲地区人均达11.9L,美洲地区人均为8.7L。俄罗斯及其周边的东欧国家酒精消费量最高,其次为欧洲其他国家。在人均国民生产总值低于7000美元的低收入国家,酒精消费量与人均GDP相关,GDP越高酒精消费量越高。而随着我国近年来高速开展的经济水平和居民生活水平,酒精消费量亦呈直线上升趋势,随之而来的是因为饮酒而造成的一系列社会问题,例如酒后驾驶造成的交通意外。当酒精在人体血液内到达一定浓度时,造成神经麻痹,大脑反响缓慢,肢体不受控制等病症。人对外界的反响能力及控制能力就会下降,处理紧急情况的能力也随之下降。对于酒后驾车者而言,其血液中酒精含量越高,发生撞车的几率越大。而根据世界卫组织的事故调查,大约50%—69%的交通事故与酒后驾驶有关,酒后驾驶已经被列为车祸致死的主要原因。为了实现对人权的尊重,对生命的关爱,使更多人的生命权、安康权及幸福美满的家庭能得到更好的保护,需要设计一智能仪器能够检测驾驶员体内酒精含量。目前全世界绝大多数国家都采用呼气酒精测试仪对驾驶人员进展现场检测,以确定被测量者体内酒精含量的多少,以确保驾驶员的生命财产平安。酒精检测仪的设计与使用有着不可替代的作用,也有着相当的前景和意义。1.2本课题的研究内容和目标本论文研究的是一种以气敏传感器和单片机为主的酒精浓度测试仪器。通过酒精传感器检测空气酒精浓度,在数模转换时对数据进展处理,并判定是否超标。如超标,则进展语音报警。还有数码管显示功能和定时功能。系统总体设计2.1系统总体功能分析酒后驾驶是多数恶性交通事故的主要原因。因此,杜绝酒后驾驶,是防止重大事故的根本。交通平安部门对驾驶人员进展酒精测试就成为必须的措施。本课题设计一种基于单片机的酒精测试系统。系统功能要求:通过传感器对酒精进展测试,计算出酒精浓度,精度:≤1%,显示计算结果并可语音报告,超限报警。2.2系统总体构造和原理酒精浓度检测仪主要是用来检测酒精浓度的,它主要由酒精传感器、模数转换器、单片机、数码管显示以及语音报警构成。酒精传感器将检测到的酒精浓度转化为电信号,然后将电信号传送给模数转换器,经过模数转换器转换后,把转换后得到的数字信号传给单片机,单片机对所输入的数字信号进展分析处理,最后将分析处理的结果通过显示器显示出来。可以通过软件来设定一定的酒精浓度的阀值。如果所检测到的空气中的酒精浓度超过了所设定的阀值,则单片机将会控制蜂鸣器发出语音报警,用来提示危害。本文设计的酒精浓度检测仪主要是以酒精传感器和单片机为平台设计而成的,其硬件系统功能框图如图2.1所示。单片机模数转换器单片机模数转换器酒精传感器数码管语音报警语音报警时钟时钟图2.1系统功能框图系统硬件设计3.1信号采集电路模块气体传感器是气体检测系统的核心,通常安装在探测头内。从本质上讲,气体传感器是一种将*种气体体积分数转化成对应电信号的转换器。探测头通过气体传感器对气体样品进展调理,通常包括滤除杂质和干扰气体、枯燥或制冷处理、样品抽吸,甚至对样品进展化学处理,以便化学传感器进展更快速地测量。在选择传感器的时候,一定要考虑到稳定性、灵敏度、选择性和抗腐蚀性,本系统选择MQ3型酒精传感器。MQ3酒精传感器是气敏传感器,其具有很高的灵敏度、良好的选择性、长期的使用寿命和可靠的稳定性。MQ3型气敏传感器由微型Al2O3、陶瓷管和SnO2敏感层、测量电极和加热器构成的敏感元件固定在塑料或者不锈钢的腔体内,加热器为气敏元件的工作提供了必要的工作条件。传感器的标准回路有两局部组成:其一为加热回路;其二为信号输出回路,它可以准确反映传感器外表电阻的变化。传感器外表电阻RS的变化,是通过与其串联的负载电阻RL上的有效电压信号VRL出面获得的。二者之间的关系表述为:RS/RL=(VC-VRL)/VRL,其中VC为回路电压10V。负载电阻RL可调为0.5~200K,加热电压Uh为5V。上述这些参数使得传感器输出电压为0~5V。MQ3型气敏传感器的构造和外形如图3.1所示,标准回路如图四所示,传感器阻值变化率与酒精浓度、外界温度的关系如图3.2所示。为了使测量的精度到达最高,误差最小,需要找到适宜的温度,一般在测量前需要将传感器预热5分钟。图3.1MQ3的构造和外形图3.2传感器阻值变化率与酒精浓度、外界温度之间的关系为了更好地使用酒精传感器MQ3,现将MQ3的标准工作条件和环境条件进展介绍,如表3.1和表3.2所示。表3-1标准工作条件表3-2酒精传感器MQ3的环境条件信号采样电路信号的采样电路如图3.3所示。MQ-3的加热电阻两端即H引脚接至+5V直流稳压电源,用于电阻丝对敏感体电阻的加热。MQ-3的两个A引脚相连,作为敏感体电阻的一个电极。MQ-3的两个B引脚也连接在一起,作为敏感体电阻的另一个电极。将电极断A接到电源正极,电极端B接两个270K并联的电阻。MQ-3型气敏传感器与电位器串联构成分压电路,采样点为电位器的分压。MQ-3型气敏传感器的敏感局部是由金属氧化物SnO2的N型半导体微晶烧结层构成。当其外表吸附有被测气体酒精分子时,外表导电电子比例就会发生变化,从而其外表电阻会随着被测气体浓度的变化而变化。由于这种变化是可逆的,所以能重复使用。当气敏传感器的敏感体电阻阻值发生改变时,对应的电位器的分压值也会发生相应的变化,即一个电压值对应着一个被测酒精气体浓度。对酒精气体浓度的采样就可以转化为对电位器分压的采样。在采样硬件电路中实际要考虑到MQ-3的实际技术参数,即加热电阻和敏感体电阻的大小,该局部应与电源正极相连。负载电阻要根据MQ-3实际的技术参数而选择阻值适宜的电阻。应该在MQ-3预热5到10分钟后,它的敏感体电阻只有120K,所以负载电阻选用两个270k并联,构成采样局部的分压电阻。图3.3采样电路3.2A/D转换模块所谓A/D转换器就是模拟/数字转换器〔ADC〕,是将输入的模拟信号转换成数字信号。信号输入端可以是传感器或转换器的输出,而ADC的数字信号也可能提供给微处理器,以便广泛地应用。CS、RD、WR是数字控制输入端,满足标准TTL逻辑电平。其中CS和WR用来控制A/D转换的启动信号。CS、RD用来读A/D转换的结果,当它们同时为低电平时,输出数据锁存器DB0~DB7各端上出现8位并行二进制数码。ADC0801~0805片内有时钟电路,只要在外部"CLKI〞和"CLKR〞两端外接一对电阻电容即可产生A/D转换所要求的时钟,其振荡频率为fCLK≈1/1.1RC。其典型应用参数为:R=10K,C=150PF,fCLK≈640KHZ,转换速度为100μs。假设采用外部时钟,则外部fCLK可从CLKI端送入,此时不接R、C。允许的时钟频率范围为100KHZ~1460KHZ。INTR是转换完毕信号输出端,输出跳转为低电平表示本次转换已经完成,可作为微处理器的中断或查询信号。如果将CS和WR端与INTR端相连,则ADC0804就处于自动循环转换状态。CS=0时,允许进展A/D转换。WR由低跳高时A/D转换开场,8位逐次比拟需8×8=64个时钟周期,再加上控制逻辑操作,一次转换需要66~73个时钟周期。在典型应用fCLK=640KHZ时,转换时间约为103μs~114μs。当fCLK超过640KHZ,转换精度下降,超过极限值1460KHZ时便不能正常工作。被转换的电压信号从VIN〔+〕和VIN〔-〕输入,允许此信号是差动的或不共地的电压信号。如果输入电压VIN的变化范围从0V到Vma*,则芯片的VIN〔-〕端接地,输入电压加到VIN〔+〕引脚。由于该芯片允许差动输入,在共模输入电压允许的情况下,输入电压范围可以从非零伏开场,即Vmin至Vmas。此时芯片的VIN〔-〕端应该接入等于Vmin的恒值电码坟上,而输入电压VIN仍然加到VIN〔+〕引脚上。A/D转换器一般都有这两个引脚。模拟地AGND和数字地DGND分别设置引入端,使数字电路的地电流不影响模拟信号回路,以防止寄生耦合造成的干扰。参考电压VREF/2可以由外部电路供给从"VREF/2〞端直接送入,VREF/2端电压值应是输入电压范围的二分之一所以输入电压的范围可以通过调整VREF/2引脚处的电压加以改变,转换器的零点无调整。ADC0804接口电路设计现以程序查询方式为例,说明ADC0804在数据采集系统中的应用,采集数据时,首先微处理器执行一条传送指令,在该指令执行过程中,微处理器在控制总线的同时产生CS1、WR1低电平信号,启动A/D转换器工作,ADC0804经100μs后将输入模拟信号转换为数字信号存在输出锁存器中,并在INTR端产生低电平表示转换完毕,并通知微处理器可来取数。当微处理器通过总线查询到INTR为低电平时,立即执行输入指令,以产生CS、RD2低电平信号到ADC0804相应引脚,将数据取出并存入存储器中。整个数据采集过程,由微处理器有序地执行假设干指令来完成。ADC0804是8位全MOS中速A/D转换器、它是逐次逼近式A/D转换器,片内有三态数据输出锁存器,可以和单片机直接接口。单通道输入,转换时间大约为100us。ADC0804转换时序是:当CS=0许可进展A/D转换。WR由低到高时,A/D开场转换,一次转换一共需要66~73个时钟周期。CS与WR同时有效时启动A/D转换,转换完毕产生INTR信号〔低电平有效〕,可供查询或者中断信号。在CS和RD的控制下可以读取数据结果。AD转换电路如图3.4所示。图3.4ADC0804模数转换电路图3.3主控模块单片微机是单片微型计算机的译名简称,在国内也常称为"单片微机〞或"单片机〞。它包括中央处理器CPU,随机存储器RAM,只读存储器ROM,中断系统,定时器/计数器,串行口和I/O口等等。现在,单片微机已不仅指单片计算机,还包括微计算机,微处理器,微控制器和嵌入式控制器,单片微机已是它们的俗称。在此系统中,选用单片机为主控模块。就52和51单片机而言,由于52单片机的功能更为强大些,所以选用单片机STC89C52。STC89C52有40个引脚,32个外部双向输入/输出〔I/O〕端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,片内振荡器及时钟电路,89C5*可以按照常规方法进展编程,也可以在线编程。最小单片机系统可以由晶振电路和复位电路,STC89C52芯片组成,如下列图3.5所示。图3.5最小单片机电路图3.3.1晶振电路单片机工作的过程中各指令的微操作在时间上有严格的次序,这种微操作的时间次序称作时序,单片机的时钟信号用来为单片机芯片内部各种微操作提供时间基准,STC89C52的时钟产生方式有两种,一种是内部时钟方式,一种是外部时钟方式。内部时钟方式即在单片机的外部接一个晶振电路与单片机里面的振荡器组合作用产生时钟脉冲信号,外部时钟方式是把外部已有的时钟信号引入到单片机内,此方式常用于多片STC89C52单片机同时工作,以便于各单片机的同步,一般要求外部信号高电平的持续时间大于20ns.且为频率低于12MHz的方波。对于CHMOS工艺的单片机,外部时钟要由*TAL1端引入,而*TAL2端应悬空。本系统中为了尽量降低功耗的原则,采用了内部时钟方式。在STC89C52单片机的内部有一个震荡电路,只要在单片机的*TAL1和*TAL2引脚外接石英晶体〔简称晶振〕就构成了自激振荡器并在单片机内部产生时钟脉冲信号,图中电容器C1和C2稳定频率和快速起振,电容值在5—30pF,典型值是22pF,晶振CYS选择的是12MHz。STC89C52单片机中有一个用于构成内部振荡器的高增益反相放大器,引脚19对应的*TAL1和18对应的*TAL2分别是该放大器的输入端和输出端。这个放大器与作为反响元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。如图3.7所示,石英晶体及电容C1和C2接在放大器的反响回路中构成并联谐振电路。石英晶体的两端分别接到引脚*TAL1和引脚*TAL2,同时石英晶体的两端分别接一个电容C1和C2,电容的另一端接地。对于外接电容C1和C2的大小虽然没有十分严格的要求,但电容容量的大小还是会对振荡频率的上下、振荡器工作的稳定性、起振的难易程度和温度稳定性带来一定的影响。根据技术资料的推荐,使用石英晶体推荐电容容量为30pF±10pF,使用陶瓷谐振器推荐电容容量为40pF±10pF。因为电路中接的是石英晶体,所以设计中接的两个电容C1和C2的容量都为30pF。3.3.2复位电路单片机开场工作的时候,必须处于一种确定的状态,否则,不知哪是第一条程序和如何开场运行程序。端口线电平和输入输出状态不确定可能使外围设备误动作,导致严重事故的发生;内部一些控制存放器〔专用存放器〕内容不确定可能导致定时器溢出、程序尚未开场就要中断及串口乱传向外设发送数据……..因此,任何单片机在开场工作前,都必须进展一次复位过程,使单片机处于一种确定的状态。当在STC89C52单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作〔假设该引脚持续保持高电平,单片机就处于循环复位状态〕。对于复位电路局部,STC89C52技术资料给出,当振荡器工作时,RST引脚出现两个机器周期以上的高电平将使单片机复位。复位是单片机的初始化操作,当由于程序运行出错或操作错误使系统处于死锁状态时,为了摆脱困境,可以按复位键以重新启动,所以复位电路的设计很有必要。复位操作有上电自动复位、按键电平复位和外部脉冲复位三种方式,本设计选用按键电平复位方式。如图3.7所示,10μF的电容C3与一个10KΩ的电阻串联,电容的正极端接到电源的正极,电容的另一端接至引脚RST。设计中选用的石英晶体大小为11.0952MHz,但复位键按下后,电容和电阻选用的参数值能够保证给复位端RST提供大于2个机器周期的高电平复位信号。3.4时钟模块时钟芯片的工作原理DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进展通信实时时钟/日历电路.提供秒分时日日期.月年的信息,每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式.DS1302与单片机之间能简单地采用同步串行的方式进展通信,仅需用到三个口线:RES复位,I/O数据线,SCLK串行时钟.时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信.DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW.DS1302是由DS1202改良而来,增加了以下的特性.双电源管脚用于主电源和备份电源供给Vcc1,为可编程涓流充电电源附加七个字节存储器.它广泛应用于便携式仪器以及电池供电的仪器仪表等产品领域。在DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。*1和*2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位存放器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进展操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向)。SCLK始终是输入端。时钟芯片接口电路因为此系统需要记录测量发生的时间,所以需要时钟芯片来记录不同人在不同时间的监测数据,因此我们在系统中参加了时钟芯片。对时钟芯片的要求首先是低功耗,其次是编程简单,缩短程序开发时间,实际上也就缩短了系统用于实际生产所用的开发周期以及本钱。在本系统,我们选择了DS1302时钟芯片,时钟电路如图3.6所示。图3.6时钟电路图⑴我们时钟电路选择的芯片是DS1302,其内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机通信。而通信时,仅需要3个口线:〔1〕RES〔复位〕,〔2〕I/O数据线,〔3〕SCLK〔串行时钟〕。时钟/RAM的读/写数据以一字节或多达31字节的字符组方式通信。其工作时功耗很低,广泛应用于,,便携式仪器等产品领域。存放器名命令字取值范围各位内容写操作读操作76543~0秒存放器80H81H00~59CH10SECSEC分存放器82H83H00~59010MINMIN时存放器84H85H01~1200~231/24010/〔A/P〕HRHR日存放器86H87H01~28,29、30、310010DATEDATE月存放器88H89H01~1200010MMONTH周存放器8AH8BH01~070000DAY年存放器8CH8DH01~9910YEARYEAR写保护存放器8EH8FHWP0000慢充电存放器90H91HTCSTCSTCSTCSDSDSRSRS时钟突发存放器BEHBFH表3-3时钟控制字对照表⑵DS1302主要性能有:时实时钟能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年的调整能力;读/写时钟或RAM数据时,有单字节和多字节传送两种方式;与DS1202/TTL兼容。⑶DS1302引脚概述:*1,*2:振荡源,外接32。768KHZ晶振;SCLK:串行时钟输入端。⑷日历、时钟存放器与控制字对照表、日历、时钟存放器命令字、取值范围以及各位内容对照表。见表3-3。3.5语音模块3.5.1语音芯片ISD1420工作原理语音芯片ISD1420是语音处理集成电路,ISD1420芯片型号的最后2位数字表示语音录放时间的长度。这种芯片录放音时间最长为20s;外围元件简单,仅需少量阻容元件、麦克风即可组成一完整录放系统;模拟信息存储重放音质极好,并有一定混响效果;待机时低功耗〔仅0.5μA〕,典型放音电流15mA,可扩大级联;可持续放音,也可分段放音,最小分段20s/160段=0.125s/段,可分段数160段;录放次数达10万次;断电信息存储,无需备用电池,信息可保100年;操作简单,无需专用编程器及语音开发器;高优先级录音,低电平或负边沿触发放音,单电源供电,典型电压+5V。ISD1420系列语音集成电路由内部时钟电路、自动增益控制电路、前置放大电路滤波器、差动功率放大器、电源电路、存储器EEPROM、地址译码电路、存储控制电路等组成,其内部物理构造如图3.10所示。录音过程中,ISD1420在进展存储操作之前,要分几个阶段对信号进展调整。首先要输入信号放大到存储电路动态范围的最正确电平,这个阶段由前置放大器、放大器和自动增益控制局部来完成。前置放大器通过隔直流电容与麦克风连接,隔直流电容用来去掉交流小信号中的直流成份(大约2mV~20mV)。信号的放大分两步完成,先经过输入前置放大器,然后经过固定增益放大器。完成信号的通路要在模拟输出端(ANAOUT)和模拟输入端(ANAIN)两个管脚之间连接一个电容器。自动增益控制电路动态的监控放大器输出的信号电平并发送增益控制电压到前置放大器。前置放大器增益自动调节以便维持进入滤波器的信号为最正确电平,这样录音的信号能得到最高电平又使削波减至最小。可以通过选择连接到AGC管脚的电阻和电容值来调节描述自动增益电路特性的两个时间常量,即响应时间和释放时间。下一个阶段的信号调整是由输入滤波器完成的。由于模拟信号的存储仍然是采用取样技术,因此还需要一个抗混淆滤波器以去掉(或至少减到可忽略不计的程度)取样频率1/2以上的输入频率分量。这样就满足了所有数据采集系统都遵循的奈奎斯特取样定律。语音的质量要想优于的音质,取样频率要用8KHz。低通滤波器的高频频限选在3.4KHz,可满足奈奎斯特取样定律,而且仍有足够宽的频带以得到高音质的语音。滤波器是一个连续时间五极点低通滤波器,在3.4kHZ每个倍频程衰减40dB。信号的调整完成后,将输入波形通过模拟收发器写入模拟存储阵列中。由8KHz样时钟取样,并且经过电平移位而产生不挥发写入过程所需要的高电压,同时补偿与Fowler-Nordheim隧道效应相关的一些实际因素。取样时钟也用于存储阵列的地址译码,以便输入信号顺序的写入存储阵列。放音时,录入的模拟电压在取样时钟的控制下顺序地从存储阵列中读出,恢复成原来的取样波形。输出通道上的平滑滤波器去掉取样频率分量并恢复原始波形,平滑滤波器的输出通过一个模拟多路开关连接到输出功率放大器,两个输出管脚直接驱动扬声器。3.5.2ISD1420外围接口电路图3.7是ISD1420及其外围电路图。因是单端使用,故在输出端和喇叭间接耦合电容。录音采用事先录音方式,按键K按下时录音开场,RECLED引脚端口被置为低电平,此时发光二极管LED被点亮,提示录音开场,当录音完毕时,LED熄灭。录音内容为"车来了,请远离车道〞,从MIC1直接输入,经MIC和MICREF引脚输入芯片内部的放大器放大,放大后的输出信号从模拟输出端ANAOUT输出,再经0.1uf电容耦合至模拟输入端ANAIN再一次放大,经放大音频信号从SP+输出推动扬声器发音。ISD1420语音芯片A2~A7接单片机接低电平,/PLAYL接单片机P3.5口,低电平有效,控制放音时间。一旦开场放音,延时10s后停顿,等待下次/PLAYL为"0〞时再次放音。图3.7ISD1420及其外围电路图3.6键盘显示模块HD7279是一片具串行接口的,可同时驱动8位共阴式数码管的智能显示驱动芯片,该芯片同时还可以连接多达64键的键盘矩阵,单片即可完成LED显示,键盘接口的全部功能。本设计没有用到键盘功能,所以只要数码管显示功能,则7279数码管显示电路如图3.8所示。图3.87279数码管显示电路图HD7279的引脚图如图3.8所示,它共有28个引脚。RC引脚用于连接HD7279A的外接振荡元件,其典型值为R=1.5K,C=15pF。RESET为复位端。该端由低电平变成高电平并保持25ms即复位完毕。通常,该端接+5V即可。DIG0~DIG7分别为8个LED管的位驱动输出端。SA~SG分别为LED数码管的A段~G段的输出端。DP为小数点的驱动输出端。HD7279A片内具有驱动电路,它可以直接驱动1英吋及以下的LED数码管,使外围电路变得简单可靠。HD7279与微处理器仅需4条接口线,其中CS为片选信号〔低电平有效〕。当微处理器访问HD7279〔读键号或写指令〕时,应将片选端置为低电平。DATA为串行数据端,当向HD7279发送数据时,DATA为输入端;当HD7279输出键盘代码时,DATA为输出端。CLK为数据串行传送的同步时钟输入端,时钟的上升沿表示数据有效。KEY为按键信号输出端,在无键按下时为高电平;而有键按下时此引脚变为低电平并且一直保持到键释放为止。系统软件设计4.1编译语言的选择对于单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。汇编语言的可控性较高级语言来说更具优越性。程序编写语言比拟常见的有C语言、汇编语言。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持C编译器,这样意味着处理器也能很快上手。且具有良好的模块化、容易阅读、维护等优点,且编写的模块程序易于移植。基于C语言和汇编语言的优缺点,本系统采用C语言编写方法。软件编写的主体思路是将系统按功能模块化划分,然后根据模块要实现的功能写各个子程序。整个软件程序的编写采用查询式方式编写的。4.2软件功能分析系统程序主要完成A/D转换、数码显示、语音报警、时钟等功能。。软件对酒敏传感器的测量信号进展A/D转换,将测量数值与规定标准进展比拟后判断饮酒程度,对不同的酒精浓度调用相应的显示、报警程序。系统初始话后,当酒精传感器MQ3对气体酒精进展采集,然后当检测到酒精气味时,气体传感器MQ-3两个电极端A-B间电阻将变小,对应与气体传感器负载电阻的分压将变大。因为ADC0804的模拟输入端VIN〔+〕与负载电阻的一端用导线连在了一起。所以单片机在启动测试模数转换芯片之前要选择通道0,写入模数转换芯片,并将用作查询的单片机引脚P3.3置位,然后启动对通道IN0端输入的采集电压信号作模数转换,等待转换的完毕。利用单片机丰富的I/O口可以采用查询方式来检测模数转换是否完毕,当单片机引脚P3.3为1时转换未完毕等待,当查询到P3.3为0时表示模数转换已经完毕,可以开场读取数据了。单片机通过I/O口与模数转换芯片的数据输出口相连读取转换后的数据。读取后的数据送到数据存储器单元中,经过单片机作相应的处理,即要将该电压值转换为酒精浓度值,然后处理后的数据转换成三位十进制BCD码用数码管显示。4.3主程序模块主程序实现的功能:与硬件相结合实现便携式酒精浓度检测仪的各个功能。主要是检测与显示,时间调整与显示,数据存储,功能子函数的调用。首先进展的是酒精浓度采集,当传感器检测到有酒精的时候,传感器A、B两脚之间的电阻减小,对应与气体传感器负载的电阻分压变大,将这一变化的数值送入模数转换模块中,之后通过软件编写对数据进展处理,再将这一变化值成功的通过HD7279驱动数码管显示。判定浓度是否超标,一旦被测浓度超过了这一数值,启动ISD1420将之前录进去的声音通过扬声放大器放出,延时一定时间后在数码管上显示测试时的时间。主程序流程图如图4.1所示。开场开场单片机初始化单片机初始化按键按下否?N按键按下否?显示测试时的时间单片机启动A/D转换Y显示测试时的时间单片机启动A/D转换延时5s检测A/D转换是否完毕?N延时5s检测A/D转换是否完毕?启动语音报警启动语音报警Y进展数据处理Y进展数据处理判断浓度是否超标?判断浓度是否超标?N数码管显示浓度值数码管显示浓度值图4.1主程序流程图4.4A/D转换模块在此以典型的模数转换芯片ADC0804为例,进展电路设计,ADC0804的数据宽度为8位,数据转换时间最快为100ms,转换时钟信号可以由内部施密特电路和外接RC电路构成的震荡器产生,也可以直接由外部输入,其频率范围:100KHz~1460KHz。在本设计中ADC0804的时钟为最大输入频率,控制信号时序如图4.2所示。图4.2ADC0804控制信号时序图由ADC0804的时序可知,转换过程由一个写信号启动,转换完成后,输出INTR信号,此时可以读取数据。之后即可进入下一个转换周期。由ADC0804的转换时间可知,其最大采集频率为10KHz,只要用户设置的采样频率不超过这个数值,ADC0804就可以正常的工作。因此设计时要注意两点:写信号的频率要低于ADC0804的最大转换频率;在写信号之后至少要有100ms的时延,才能输出读信号。在数模转换中,A/D采样程序首先便将CS、WR置低启动A/D转换,然后延时0.1ms,再将CS、RD置低即可读取A/D转换的数据;在此系统中,为了提高采集数据的准确度,我们在此程序中选择了连续取10次A/D转换结果,然后取其平均值。流程图如图4.3所示。开场dianya/100,得到百位数开场dianya/100,得到百位数启动A/D转换,并延时100usdianya%100/10即得到了十位数启动A/D转换,并延时100usdianya%100/10即得到了十位数dianya/10,得到个位数转换完毕否?Ndianya/10,得到个位数转换完毕否?Y返回返回读取A/D转换结果dianya读取A/D转换结果dianya图4.3A/D转换流程图4.5时钟模块⑴DS1302模块主要是用于设置时间和与MCU通信经数码管显示时间。〔2〕时钟模块操作流程图如下:显示所读数据地址增加读出此地址的数据写芯片地址地址增加向该地址输入数据写芯片地址使DS1302不具备写保护开场变量初始化显示所读数据地址增加读出此地址的数据写芯片地址地址增加向该地址输入数据写芯片地址使DS1302不具备写保护开场变量初始化返回返回图4.4DS1302程序流程图时钟芯片的RST接P1.0,SCLK接P3.4,I/O口接P1.7,我使用的是串行接口通信进展数据的改变和控制。DS1302时序如图4.5所示。图4.5DS1302读/写时序图如图4.4DS1302程序流程图上所示在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开场。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。数据输入是在输入写命令字的8个SCLK周期之后,在接下来的8个SCLK周期中的每个脉冲的上升沿输入数据,数据从0位开场。如果有额外的SCLK周期,它们将被忽略。数据输出是在输出命令字的8个SCLK周期之后,在接下来的8个SCLK周期中的每个脉冲的下降沿输出数据,数据从0位开场。需要注意的是,第一个数据位在命令字节的最后一位之后的第一个下降沿被输出。只要RST保持高电平,如果有额外的SCLK周期,将重新发送数据字节,即多字节传送。此外,DS1302还有年份存放器、控制存放器、充电存放器、时钟突发存放器及与RAM相关的存放器等。时钟突发存放器可一次性顺序读写除充电存放器外的所有存放器内容。DS1302与RAM相关的存放器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM存放器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。4.6语音模块通过硬件电路原理图可知,单片机AT89S51的P3口直接与ISD1420连接,实现对ISD1420的多种控制与操作,其语音接口地址为P3口。P3.5置低电平为放音,P3.5置高电平为录音。当p3.5为1时,开场录音,设计录音的时间长短。当酒精浓度超过设定的数值时,即P3.5置0.这时候开场放音。当完整的录音放完时,编一段延时程序进展延时,然后在进展放音。即A0-A7全部接低电平。而放音的接口PLAYL与单片机的P3.5相连。其程序流程图如图4.6所示。开场开场按键开场录音按键开场录音将A0-A7全部置低电平,P3.5置高电平将A0-A7全部置低电平,P3.5置高电平判断浓度值是否超标"N判断浓度值是否超标"YP3.5变为低电平P3.5变为低电平开场放音开场放音返回返回图4.6语音报警程序流程图4.7显示模块HD7279A是一片具串行接口的,可同时驱动8位共阴式数码管的智能显示驱动芯片,该芯片同时还可以连接多达64键的键盘矩阵,单片即可完成LED显示,键盘接口的全部功能。HD7279A的指令构造类型:(1)、不带数据的纯指令,指令的宽度为8个BIT。即微处理器需发送8个CLK脉冲。(2)、带有数据的指令,宽度为16个BIT,即微处理器需发送16个CLK脉冲。(3)、读取键盘数据指令,宽度为16个BIT,前8个为微处理器发送到HD7279A的指令,后8个BIT为HD7279A返回的键盘代码。执行此指令时,HD7279A的DATA端在第9个CLK脉冲的上升沿变为输出状态,并与第16个脉冲的下降沿恢复为输入状态,等待接收下一个指令。(1).纯指令T1=50us;T2=8us;T3=8us图4.7纯指令时序图(2).带数据指令T4=25us图4.8带数据指令时序图.读键盘指令T5=25us;T6=8us;T7=8us图4.9读键盘指令时序图在进展软件编程时,我们先将硬件管脚与单片机相连,具体连接为,DATA口与单片机的P1.2相连,CS口与单片机的P1.4相连,CLK口与单片机的P1.5相连,KEY口与单片机的P1.3相连。其程序流程图如图4.10所示:显示将数据送入7279芯片中译码将单片机要显示的数字分成单独的10进制数芯片的初始化显示将数据送入7279芯片中译码将单片机要显示的数字分成单独的10进制数芯片的初始化返回返回图4.10显示程序流程图第五章系统调试与测试在前面几章中,我们详细讨论了酒精浓度测试仪的硬件和软件设计,但是要系统真正的运行起来到达预期的指标和功能,就必须对系统进展调试。系统的调试包括系统的硬件和软件设计。5.1系统硬件调试先做出PCB板,焊接前应对整个电路板进展检查。首先,用万用表对印制的电路板线路进展检查,该过程是在焊接元器件之前的必要工作,主要是检查印制的电路板线路是否有断路的情况,如果检查没有问题,则可以对元器件进展焊接。焊接前对电阻、电容的量值要进展测量、筛选,选择与电路中参数值一致的元器件,在选择芯片时,要注意芯片与设计要求的型号、规格和安装是否一致。在焊接时,应将印制的电路板认真对照原理图,查看元器件的引脚焊接是否正确。电路板焊接完成后,需要对每个元器件的引脚逐个进展检查,一方面是检查有没有引脚虚焊或与其他信号线短路,另一方面是对器件引脚功能的再检查,查看设计是否正确。检查电路焊接没有问题后,则可以进展上电测试。上电测试是调试的关键局部,按照系统方案设计的模块化思想,应该分模块测试系统。首先还是应该测试电源局部,系统上电以后,测试各个电源端口和器件的电源局部是否工作正常,同时应注意系统中有无器件过热情况,如果有的话,可能是相应的器件损坏或电路中有短路,需要认真检查之后再加电。如果没有问题,则可以进展功能的检测。在调试的时候有以下问题及解决方法:由于本图是由PCB板焊的,在画PCB图中,有些电源线和接地线没有画出来,造成有些功能不能实现。由语音模块的电源没接,使得语音模块的发光二极管不会亮,从而不能实现录放音功能。还有时钟没有接地,时钟效果也没出来。经仔细检查,找到少焊的电源线和接地线。焊好后实现了应有的功能。在选择元器件的时候,由于酒精传感器模块的分压电阻的大小没有选的适当,使得在酒精测试时候酒精传感器反响不太灵敏。经过屡次尝试换分压电阻,使得酒精传感器灵敏度大大提高。在软件调试的时候,数码管出现数字都是"FFFF〞,之后没有变化。经过屡次查看,可能时钟模块的时钟晶振大小不符合。之后把12MHZ晶振换成32MHZ晶振.重新运行,从"0000〞开场按时钟程序要求变化了。5.2系统软件调试翻开MedWin软件,将写好的调试程序代码在计算机上输入、汇编、修改、产生代码,形成输入输出口实验.HE*文件。翻开MicrocontrmllerISPSoftware软件,在菜单options选项中选择selectdevice,在弹出的窗口中选择器件AT89S51,并选ByteMode点击OK。初始化器件后,将经过编译生成的,HE*十六进制文件下载到单片机。电路连接好,并将调试程序代码〔注释电压到酒精浓度转换关系代码〕烧写到AT89S51单片机上后,接上+5V电源开场调试。先进展每一个模块程序的调试,看看单一的模块程序能不能实现出来,如果不能实现出来,就进展程序和电路图的检查,查出问题所在,从而进展修改。当每一个模块程序的调试能实现出来,在把整个程序导入,进展整体调试。在调试中,对酒精浓度数据采集,不能循环采集数据。每测一次,能对酒精浓度是否超标进展检查,超标的话语音模块会进展报警。然而再也不能进展下次数据采集检查,必须重启电源才能进展下一次检查。经对程序的检查,看出没有数据采集的循环局部,对程序修改后,能实现数据连续检查功能了。总结目前,随着人们的生活水平的提高,私家车的数量也越来越多,从而引发的交通是事故也急剧增加,其中大局部是由于酒后驾车。所以设计具有民用价值的便携式酒精浓度检测仪的研制受到了人们的高度重视。设计能够满足生活需要,携带方便的便携式酒精浓度检测仪迫在眉睫。针对目前的现状,该系统设计遵守体积小,质量轻,性价比高的原则。便携式酒精浓度检测仪的设计主要分为硬件设计和软件设计。根据设计前对该系统所要实现功能的要求,综合考虑我们采用STC89C51单片机为控制核心。MQ-3传感器属于金属半导体电阻式传感器,灵敏度高,响应速度快,可重复性使用。当传感器的敏感局部吸附有酒精分子时,外表的导电电子比例就会发生变化,从而其外表电阻会随着被测酒精气体浓度的不同而发生相应的变化,且这种变化是可逆的,可重复使用。MQ-3接上一定阻值的负载电阻,即可构成对酒精气体浓度的检测局部。负载电阻的分压值即对应着一个酒精气体的浓度值,只需对该分压值采样,就可得到要测酒精气体浓度值的信号。将该信号通过A/D转换,将模拟信号转化为数字信号。转换后的数字信号由单片机作相应的数据处理,得到3位BCD码并将3位送送数码管显示。对超标酒精浓度进展语音报。软件是用C语言相编写的,具有很好的编写语言的优点,具有很好的可控性、模块化和移植性。编写的思路就是模块化的思想,将系统的各个功能进展划分,然后对各个模块进展设计。本系统的主要模块为传感检测、A/D转换、语音报警、数码管显示和时钟设置。首先要了解系统所要实现的功能;其次根据功能去选择相应的硬件资源;再次将一个大的系统进展模块化划分,然后逐一去攻破。最后把所有模块进展优化整合,便得到了一个完整的系统。基于这样的思路,完成了便携式酒精浓度检测仪的根本设计。同时由于本设计是采用在proteus上进展仿真,在keil软件上进展编程,最后二者联调,实现设计任务,但在仿真是无法实现酒精浓度的测试,因此本设计采用滑动变阻器模拟传感器检测酒精浓度时输出的模拟信号,经ADC0804转换输入单片机,从而从液晶显示上显示出来。通过对本次毕业设计,我学习了很多在大学遗漏的知识,让我在以后的工作中,更加的得心应手。这不仅仅是一次简单的毕业考察,而是对我们四年大学所学得知识的总结参考文献[1]王幸之.AT89系列单片机原理与接口技术[M].:航空航天大学,2004[2]*学坚,周斌.微型计算机原理及应用[M].:清华大学,2006[3]*爱萍,*晓春.基于AT89S51的多功能红外遥控器设计.仪表技术与传感器,2021(8).第7期:P13~P15[4].DesignandConstructionofaMicrocontrollerBasedTranscranialMagneticStimulator,M.Burunkaya;2021[5]纪宗南.单片机外围器件使用手册—输入通道器件分册[M].:航空航天大学,2005[6]*义,陈俊.用AT89C52和TLC1543实现数据采集系统[J].电子世界,2004(12),第3期:P24~P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建三支一扶考试的挑战试题与答案集
- 以案促改警示教育会议
- 绿色金融政策解读试题及答案
- 招标代理工作年终总结
- 2025室内装修合同范本(精简版)
- 个人已出租房产赠与合同
- 宣传赞助合作合同范本
- 餐饮酒店原材料供货合同范本
- 南京市汽车买卖合同文本
- 家政行业培训
- 盐城市射阳县兴桥镇社区工作者考试题目及答案2024
- 齐鲁针灸智慧树知到期末考试答案2024年
- 2024年内蒙古聚英人力资源服务中心招聘历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 新概念英语第2册课文(完整版)
- 高数函数的极值与最大最小值课件
- 广东省广州市广雅中学2024届高考英语三模试卷含解析
- 《金融建模基础》课件第7章-运用 Python 分析债券
- 2025年日历日程表含农历可打印
- 《电力工程电缆设计规范》
- 与发包人、监理及设计人的配合
- 2022-2023学年北京市怀柔区八年级下学期期末语文试题及答案
评论
0/150
提交评论