版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计设计题目:基于单片机酒精浓度测试设计与研究系别:信息工程系班级:电子信息工程姓名:指导教师:年6月10日基于单片机酒精浓度测试设计与研究摘要对于人体内酒精浓度高低判断重要根据于人酒后所呼出气体中酒精浓度高低做出恰当判断。随着经济发展,人民生活水平提高,酒后驾驶所导致交通事故屡屡发生。为防止此类事故发生,交通执法者检测驾驶员与否酒后驾驶尤为重要。本文设计了一种基于单片机酒精浓度检测报警系统,单片机作为主控芯片。MQK2酒精传感器将检测到信息发送至芯片和设定阈值比较后判断与否报警,若报警GSM模块实现了将报警信号发送至手机端,同步在液晶显示屏上显示测量成果。本次设计检测装置将89c51作为重要控制芯片、MQ302A酒精传感器、AD0804转换器、AT89C51单片机控制器、声光报警、LCD1602显示屏、GSM模块等构成。文中对酒精浓度检测原理做出详细分析和设计方案,对各个子模块进行了论证和比较。硬件设计采用ProtelDXP软件,完毕了各个模块原理图设计。软件设计采用KeilB编程软件,实现了对酒精浓度信号解决过程编程和调试。核心字:单片机酒精浓度传感器LCD1602GSM模块声光报警DesignAndResearchOfTheAlcoholConcentrationTestBasedOnMCUAbstractMakeaproperjudgmentonthealcoholconcentrationofalcoholconcentrationtodeterminethemainbasistodrunktheexhaledgasinthelevelof.Withthedevelopmentofeconomy,people'slivingstandardsimprove,drunkendrivingcausedbytrafficaccidentshappenfrequently.Topreventthiskindofaccident,trafficlawenforcementdetectwhetherthedriverdrunkdrivingisparticularlyimportant.Thispaperdescribesthedesignofanalarmsystemfordetectingalcoholconcentrationbasedonsingle-chipmicrocomputer,microcontrollerasthemaincontrolchip.MQK2alcoholsensorwilldetecttheinformationsenttothechipandthesetthresholdcomparisontodeterminewhetherthealarm,thealarmGSMmoduletoachievethealarmsignalwillbesenttothemobilephoneterminal,atthesametime,themeasuredresultsaredisplayedontheLCDscreen.Thedetectiondevicedesignwillformthe89C51asthemaincontrolchip,MQ302Aalcoholsensor,AD0804converter,AT89C51controller,alarm,LCD1602display,GSMmoduleetc..Principleofalcoholconcentrationdetectioninthispapermakestheanalysisandthespecificdesignofeachmodule,arediscussedandcompared.ThehardwaredesignusingProtelDXPsoftware,completedthedesignofeachmoduleprinciplediagram.SoftwaredesignusingKeiluVision2,therealizationofsignalprocessingofalcoholconcentrationduringprogramminganddebugging.Keywords:SCMalcoholconcentrationsensorLCD1602GSMmodulesound-lightalarm目录1引言 12系统总体方案设计 22.1总体设计思路分析 22.2总体设计框图分析 23系统硬件设计 43.1.STC89C5A60S2单片机电路设计 43.1.1.STC89C5A60S2单片机特性概述 43.1.2STC89C5A60S2引脚功能 43.1.3晶振电路 53.1.4复位电路 63.2酒精浓度模块设计 73.2.1酒精浓度传感器MQ3特点 73.2.2A/D转换电路 83.2.3MAX3232电路 93.3液晶显示屏LCD1602 93.3.1LCD1602简介 93.3.2系统LCD1602显示阐明 103.4通信模块设计 113.4.1GSM模块简介 123.5按键键盘设计 123.5.1按键键盘阐明 123.5.2按键电路设计 123.6报警电路设计 123.6.1蜂鸣器阐明 123.6.2发光二极管阐明 133.6.3声光报警电路 134系统软件设计 144.1软件设计概述 144.1.1Keil软件简介 144.2系统软件设计 144.2.1主程序流程图 144.2.2酒精浓度检测子程序 154.2.3LCD显示子程序 154.2.4无线通信子程序 164.2.5报警子程序 204.2.5串行口子程序 215硬件焊接及调试 235.1概要阐明 235.1.1硬件焊接 235.1.2软件调试 235.1.3软硬联调 235.2调试中浮现问题及解决办法 246结论 25谢辞 26参照文献 27附录 281引言近年来,随着国内经济高速发展,人民生活水平迅速提高,越来越多人有了私家车,随着而来酒后驾车导致交通事故也屡屡发生。酒后驾车引起交通事故是由于司机过量饮酒导致人体内酒精浓度过高,麻痹神经,导致大脑反映迟缓,肢体不受控制等导致。近年前交通管理者鉴定驾驶人员与否有饮酒只能靠主观判断、肉眼观测和去医院进行血液中酒精含量检测,这些不科学不及时办法导致了诸多不必要误会和麻烦;而当前随着着科技发展酒精浓度测试仪已经基本装备了交通管理者队伍。为此,需要设计一款便携式仪器可以监测驾驶员体内酒精含量。本毕业设计通过对酒精浓度测试研究和设计,使学生结识理解单片机对数据采集分析过程、办法与环节,提高并巩固学生所学理论知识,结合课题需要提高学生获取新知识能力。使学生能掌握单片机基本用法。力求使学生在收集资料,查阅文献,调查研究,方案设计,外文应用,计算机解决,撰文论证,文字表达等方面加强训练,实现所学知识向能力转化。可以纯熟使用设计所依赖开发平台。本文所述酒精浓度测试仪采用MQK2酒精浓度传感器检测人呼出气体中酒精浓度并且输出电压信号,然后把信号输出到高集成度混合集成芯片C8051F040作解决,并完毕数据采集、判断解决、数据传播等功能。测试仪进行气体测试基本环节是:单片机采集酒精传感器响应信号,并且进行转换,储存在数据存储器(SRAM)中,然后单片机进行气体浓度辨认,并且将成果输出到液晶显示屏上,同步可发出浓度阈值光(声)警报信号也可通过网络将警报发送至手机。2系统总体方案设计2.1总体设计思路分析本文所述酒精浓度测试仪分为硬件某些和软件某些。其中硬件某些运用MQ3气敏传感器采集空气中酒精浓度,并转换为电压信号经A/D转换后传给单片机系统,由单片机及其外围电路进行信号解决,显示浓度值以及超阈值声光报警;并且将报警信号通过GSM模块发送至所设定手机。软件设计采用C语言编程,程序采用模块化设计思想。各个子程序功能相对独立,便于调试和修改。而硬件电路又大体可分为单片机小系统电路、A/D转换电路、声光报警电路、LED显示电路,GSM模块电路,各某些电路设计及原理将会在硬件电路设计某些详细简介;程序设计使C语言编程。2.2总体设计框图分析本文总体设计框图如下:酒精传感器酒精传感器显示语音报警A/D转换单片机GSM模块网络手机图图2-1系统总体设计框图各模块阐明功能如下:1.MQ3酒精浓度传感器是一种检测装置对乙醇蒸汽有很高敏捷度和良好选取性。通过MQ3检测空气中酒精浓度后,检测值通过数模转换器传送至单片机,通过单片机解决与所设定阈值进行比较,判断与否报警。2.显示某些是将采集到酒精浓度进行显示。本设计采用LCD1602显示屏对采集到数据进行显示。1602液晶模块内部字符发生存储器(CGROM)已经存储了160个不同点阵字符图形,这些字符有:阿拉伯数字、英文字母大小写、惯用符号、和日文假名等,完全可以满足对温湿度显示。3.本设计为了更加便于使用,相比于普通酒精浓度测试仪增长了GSM模块。当单片机判断所检测到酒精浓度超过所设定阈值时,发出声光报警同步并将报警信号发送至提前设定好手机。4.STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产单时钟/机器周期(1T)单片机,是高速/低功耗/超强抗干扰新一代51单片机。指令代码完全兼5.GSM模块内有GSM射频芯片、系带解决芯片、存储器、功放器件等。可以发送手机短信。6..设定值由接受端按键控制,其中一种为设立键,另有两个按键控制设定值加减,比较报警选用蜂鸣器和LED电路表达报警信号。3系统硬件设计3.1.STC89C5A60S2单片机电路设计3.1.1.STC89C5A60S2单片机特性概述STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产单时钟/机器周期(1T)单片机,是高速/低功耗/超强抗干扰新一代51单片机。指令代码完全兼容老式51单片机,但是速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换。增强型8051CPU,1T,单时钟/机器周期,工作频率范畴:0-35MHz,相称于普通80510~420MHz,片上集成1280字节RAM,有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM),内部集成MAX810专用复位电路(外部晶体12M如下时,复位脚可直接1K电阻到地);工作温度范畴:-40-+85℃(工业级)/0-75℃(商业级)213.1.2STC89C5A60S2引脚功能1.增强型8051CPU,1T,单时钟/机器周期,指令代码完全兼容老式8051。2.工作电压:STC12C5A60S2系列工作电压:5.5V-3.3V(5V单片机)。TC12LE5A60S2系列工作电压:3.6V-2.2V(3V单片机)3.工作频率范畴:0-35MHz,相称于普通80510~420MHz。4.顾客应用程序空间8K/16K/20K/32K/40K/48K/52K/60K/62K字节5.片上集成1280字节RAM。6.通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051老式I/O口)可设立成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55mA。7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载顾客程序,数秒即可完毕一片。8.有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)10.内部集成MAX810专用复位电路(外部晶体12M如下时,复位脚可直接1K电阻到地)。11.外部掉电检测电路:在P4.6口有一种低压门槛比较器,5V单片机为1.32V,误差为+/-5%,3.3V单片机为1.30V,误差为+/-3%。12.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内)1顾客在下载顾客程序时,可选取是使用内部R/C振荡器还是外部晶体/时钟常温下内部R/C振荡器频率为:5.0V单片机为:11MHz~15.5MHz,3.3V单片机为:8MHz~12MHz,精度规定不高时,可选取使用内部时钟,但由于有制造误差和温漂,以实际测试为准。13.共4个16位定期器,两个与老式8051兼容定期器/计数器,16位定期器T0和T1,没有定期器2,但有独立波特率发生器,做串行通讯波特率发生器,再加上2路PCA模块可再实现2个16位定期器。14.2个时钟输出口,可由T0溢出在P3.4/T0输出时钟,可由T1溢出在P3.5/T1输出时钟。15.外部中断I/O口7路,老式下降沿中断或低电平触发中断,并新增支持上升沿中断PCA模块,PowerDown模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通过寄存器设立到P4.2),CCP1/P1.4(也可通过寄存器设立到P4.3)。16.PWM(2路)/PCA(可编程计数器阵列,2路),也可用来当2路D/A使用也可用来再实现2个定期器,也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同步支持)。17.A/D转换,10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18.通用全双工异步串行口(UART),由于STC12系列是高速8051,可再用定期器或PCA软件实现多串口。19.STC12C5A60S2系列有双串口,后缀有S2标志才有双串口,RxD2/P1.2(可通过寄存器设立到P4.2),TxD2/P1.3(可通过寄存器设立到P4.3)20.工作温度范畴:-40-+85℃(工业级)/0-75℃(商业级)21.封装:PDIP-40,LQFP-44,LQFP-48I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可用A/D做按键扫描来节约I/O口,或用双CPU,三线通信,还多了串口。3.1.3晶振电路晶振是石英振荡器简称,它是时钟电路中最重要部件,它重要作用是向显卡、网卡、主板等配件各某些提供基准频率,它就像个标尺,工作频率不稳定会导致有关设备工作频率不稳定,自然容易浮现问题。STC89C52片内有一种高增益反相放大器,其输入端(XTAL1)和输出端(XTAL2)用于外接石英晶体和微调电容,构成振荡器,如图3-2所示:电容C3和C4对频率有微调作用,电容选取范畴普通为1.2~12MHz,晶振频率越快,单片机指令周期越短,运营越快。内部时钟信号由振荡器输出振荡脉冲经2分频得到,用来控制单片机内部各功能部件按照顺序协调工作,其周期称为时钟周期。一种机器周期由6个时钟周期构成,指令周期以机器周期为单位,因此晶振频率越快,单片机指令周期越短,运营越快。本设计晶振选取频率为11.0529MHz,电容选取30pF。经计算得单片机工作机器周期约为:1μs。3.1.4复位电路为保证单片机系统稳定可靠工作,复位电路是必可少一某些,复位电路第一功能是上电复位。所谓上电复位,是指在计算机上电瞬间,要在RST引脚上产生宽度不不大于10ms正脉冲,使计算机进入复位状态。等待系统电源稳定后,复位信号停止。当系统在工作中受到干扰后,容易浮现程序“跑飞”而盲目运营甚至浮现死机现象。此时复位信号有效,使微机系统重新恢复正常运营。当前为止,单片机复位电路重要有四种类型:1.微分型复位电路;2.积分型复位电路;3.比较器型复位电路;4.看门狗型复位电路[7]。在本设计中,当电源VCC上电时,因电容C3两端电压不能突变,因此RES在上电时会有一段时间为高电平,电容中电流越来越小,R1上电压就越来越小,呈指数变化。过一段时间后,电容逐渐充电完毕,RST端恢复高电平,复位有效。持续一段时间后,复位撤除,微机开始工作。该电路具备构造简朴、实用等长处。本设计采用按键结合上电复位,当电源连接后,按下按键则系统复位,单片机程序从头开始执行,详细复位电路如图3-3所示:3.2酒精浓度模块设计3.2.1酒精浓度传感器MQ3特点MQ3酒精浓度传感器是一种检测装置对乙醇蒸汽有很高敏捷度和良好选取性,迅速反映和恢复速度,长期寿命和可靠性能,并且所需要驱动电路简朴。MQ3酒精浓度传感器探测浓度范畴为:0.01mg/L-10mg/L。合用于检测机动车驾驶员与否为酒后驾驶;也可用于其她场合乙醇浓度检测。MQ3型气敏传感器由微型Al2O3、陶瓷管和SnO2敏感层、测量电极和加热器构成敏感元件固定在塑料或者不锈钢腔体内,加热器为气敏元件工作提供了必要工作条件。传感器原则回路有两某些构成:其一为加热回路;其二为信号输出回路,它可以精确反映传感器表面电阻变化。传感器表面电阻RS变化,是通过与其串联负载电阻RL上有效电压信号VRL出面获得。两者之间关系表述为:RS/RL=(VC-VRL)/VRL,其中VC为回路电压,10V。负载电阻RL可调为0.5~200K,加热电压Uh为5V。MQ3MQ3构造和外形MQ3原则回路MQ3原则回路传感器阻值变化率与酒精浓度、外界温度之间关系传感器阻值变化率与酒精浓度、外界温度之间关系为了更好地使用酒精传感器MQ3,现将MQ3原则工作条件和环境条件进行简介,如表一和表二所示。表一原则工作条件表二酒精传感器MQ3环境条件3.2.2A/D转换电路在单片机应用系统中,被测量对象关于变化量,如温度、压力、流量、速度等非电物理量,须经传感器转换成持续变化模仿电信号(电压或电流),这些模仿电信号必要转换成数字量后才干在单片机中用软件进行解决。实现模仿量转换成数字量器件称为A/D转换器(ADC)。A/D转换器大体分有三类:一是双积分A/D转换器,长处是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。本设计中采用A/D转换器是STC12C5A60S2单片机内部所带A/D转换器。此单片机A/D转换为10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)3.2.3MAX3232电路MAX3232收发器采用专有低压差发送器输出级,具备一种完整串口(3路驱动器/5路接受器)。运用双电荷泵在3.0V至5.5V电源供电时可以实现真正RS-232性能。器件仅需四个0.1µF外部小尺寸电荷泵电容。MAX3222保证在120kbps数据速率下维持RS-232输出电平。MAX3232具备2路接受器和2路驱动器。MAX3232电路如下图所示:MAX323电路MAX323电路3.3液晶显示屏LCD16023.3.1LCD1602简介LCD1602分为带背光和不带背光两种,基控制器大某些为HD44780,不带背光比带背光薄,在应用中与否带背光并无差别。LCD1602重要技术参数:1.显示容量:一行16个字符,共32字符;2.芯片工作电压:4.5—5.5V;3.芯片工作电流:2.0mA(5.0V);4.模块最佳工作电压:+5V;5.每个字符尺寸:2.95×4.35mmLCD1602液晶模块内部控制器共有11条控制指令,分别为:指令1:清屏。指令码0x01H,光标复位到0x00H这个地址位置。指令2:光标复位。光变应当回到地址0x00H。指令3:设立输入模式。I/D:它表达光标应当移动方向,高电平时候右移,低电平时候左移;S:它控制屏幕上所有文字方向是左移或右移,高电平有效,而低电平此位无效。指令4:用于显示开关控制。D:它表达整体显示开与关,高电平时显示为开,低电平时显示为关;C:它表达了光标开与关,有光标时是高电平,无光标时是低电平。B:它表达光标闪烁,闪烁时高电平,不闪烁时低电平。指令5:光标以及显示移位。S/C:若移动显示文字则是高电平,若移动光标则是低电平;R/L:右移时高电平,左移时低电平。指令6:设立功能命令。D/L:4位总线时高电平,8位总线时低电平;D:高电平时,双行显示,低电平时,单行显示;F:若为高电平,则显示5×10,若为低电平,则显示5×7。指令7:设立RAM地址。指令8:设立DDRAM地址。指令9:读光标地址以及忙信号。BF:为忙标志位,忙时候是高电平,这时其不收命令或数据,不忙时候是低电平。指令10:写数据。指令11:读数据。3.3.2系统LCD1602显示阐明LCD1602采用原则14脚(无背光)或16脚(带背光)接口,本设计选用16引脚带背光接口,LCD1602引脚接口阐明如表3-2所示:表3-2LCD1602引脚接口阐明编号符号引脚阐明编号符号引脚阐明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令控制12D5数据5R/W读/写控制13D6数据6E使能信号14D7数据7D0数据15BLA背光源电源端8D1数据16BLK背光源接地端在该设计系统中,单片机将DHT11温湿度传感器送入40位数据按照5个8位字节存入不同变量中,然后通过变换形式转换为字符形式在LCD1602上显示。本设计中LCD1602与单片机连接图如图3-5所示:图3-5LCD1602显示电路图3-5LCD1602显示电路从图中可以看出:1引脚为接地端,与单片机地相连;2引脚接+5V电源,连接单片机+5V电源;3引脚为液晶显示偏压,连接一种最大阻值为10K电位器,通过调节电位器阻值可以调节液晶屏显示清晰度,使酒精浓度数值清晰地显示在液晶屏上;4引脚RS为寄存器选取,为高电平时选取数据寄存器,低电平时选取指令寄存器,设计时RS接单片机P2.0引脚,通过程序对其状态进行控制;5引脚RW为读/写信号选取线,为高电平时进行读操作,低电平时进行写操作,设计时RW接单片机P2.1引脚,通过编程控制其状态变化;6引脚E(或EN)端为模块使能控制端,编程时结合RS和RW控制液晶屏完毕显示任务,硬件连接时接单片机P2.2引脚;7~14脚P0~P7为8位双向数据端,和单片机P0口相连,程序中对LCD1602进行写命令和写数据都通过这8个数据端进行传播;15脚为背光源正极,必要和电源正极相连;16脚为背光源负极,必要和电源负极相连。在使用液晶模块之前要先进行初始化,一方面要设立其显示模式,在液晶模块显示字符时光标是自动右移,不需要重新设立。在每次输入指令前都要判断液晶模块与否处在忙状态。3.4通信模块设计随着科学技术不断发展,无线通信已经渗入到人们生活,工作,和学习当中。在智能家居、车辆监控防盗、机器人控制、无线抄表、门禁系统、工业数据采集系统等方面都广泛使用无线传播模块。现今无线通信技术已经十提成熟,无线通信模块可以实现短时间、长距离、低功耗、高敏捷度、抗干扰性、高集成度,从而节约了人力、物力,并且还能进行实时监测,及时解决现场突发状况。因而本设计选用无线传播模块GSM模块作为酒精浓度测试通信模块。3.4.1GSM模块简介GSM模块是将GSM射频芯片、基带解决芯片、存储器、功放器件等集成在一块电路板上,具备独立操作系统、GSM射频解决、基带解决并提供原则接口功能模块。因而,GSM模块具备发送SMS短信,语音通话,GPRS数据传播等基于GSM网络进行通信所有基本功能。简朴来讲,GSM模块加上键盘、显示屏和电池,就是一部手机。在本设计中单片机解决数据通过MAX3232解决后通过串口将报警数据传播到GSM模块,然后GSM模块将报警信号发送至所设定手机终端。3.5按键键盘设计3.5.1按键键盘阐明
按键是单片机系统中惯用信息输入部件,同步也是人机对话中不可缺少输入设备。在和单片机构成系统时,按键普通有两种接法,一种叫独立式按键,另一种叫矩阵式按键。用口线较多时,可以将键盘接成矩阵形式,这种形式节约口线。本设计中采用是独立式按键。3.5.2按键电路设计本设计中按键重要完毕对酒精浓度阈值设定。其电路图如下:按键图按键图本设计中,S1按键为对酒精浓度控制选取键,S2和S3酒精浓度调节键,S2控制设定值增长,S3控制酒精浓度减小。3.6报警电路设计3.6.1蜂鸣器阐明蜂鸣器是一种一体化构造电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、定期器等电子产品中作发声器件。蜂鸣器分为有源与无源两种。有源蜂鸣器直接接额定电源就可持续发声,而无源蜂鸣器则和电磁扬声器同样,需要接在音频输出电路中才干发声。有源蜂鸣器和无源蜂鸣器重要差别是对输入信号规定不同样,有源蜂鸣器工作抱负信号是直流电,无源蜂鸣器工作抱负信号是方波。无源蜂鸣器接直流电是不会工作。本设计采用一种有源蜂鸣器进行声音报警。3.6.250年前人们已经理解半导体材料可产生光线基本知识,第一种商用二极管产生于1960LED是英文lightemittingdiode(发光二极管)缩写,它基本构造是一块电致发光半导体材料,置于一种有引线架子上,然后四周用环氧树脂密封,起到保护内部电路效果,因此LED抗震性能较好。发光二极管核心某些是由P型半导体和N型半导体构成晶片,在P型半导体和N型半导体之间有一种过渡层,称为PN结。在某些半导体材料PN结中,注入少数载流子与多数载流子复合时会把多余能量以光形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种运用注入式电致发光原理制作二极管叫发光二极管,通称LED。当它处在正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色光线,光强弱与电流关于。3.6.3本设计中采用是声光同事报警,在采集到酒精浓度值超过报警值时,电路同事发出声光报警信号。声光报警电路如下图:声光报警电路声光报警电路由上图可以看出,蜂鸣器通过一种PNP型三极管放大连接。三极管选取9012型三极管,它发射极直接连接+5V电源,基极通过1K电阻和单片机P2.3引脚相连,集电极连接蜂鸣器正极,蜂鸣器负极接地。发光二极管样机与单片机P1.6引脚相连,阴极接一种1K电阻与放大器发射极相连同事接在+5V电源上,电路重要作用是用9012三极管将基极电流放大以驱动蜂鸣器和发光二极管工作。工作过程为:当酒精浓度值不不大于设定上限值,程序会将相应三极管基极连接单片机引脚置为低电平,这样三极管就可以驱动蜂鸣器和发光二极管工作,发出声光报警。4系统软件设计4.1软件设计概述系统软件设计是整个控制器系统设计至关重要构成某些,软件某些设计好坏,直接关系到整个系统功能实现和运营可靠性。随着计算机技术不断进步,计算机程序设计也在不断向前发展,用来描述程序语言也在不断地进步完善,程序设计语言也从初期机器语言到用符号表达汇编语言以至发展到高档语言。在设计过程中,人们也开始挣脱进行程序设计必要先熟悉机器内部构造桎梏,把精力集中于解决思路和办法上。本设计使用Keil软件开发平台。发送端、接受端和通信设备使用C语言编程实现。4.1.1Keil软件简介随着单片机开发技术不断发展,从普遍使用汇编语言到逐渐使用高档语言开发,单片机开发软件也在不断发展,KeilC51软件是一种基于32位Windows环境应用程序,支持C语言和汇编语言编程,其6.0以上版本将编译和仿真软件统一为uVision2(普通称为uV2)。Keil提供涉及C编译器、宏汇编、连接器、库管理和一种功能强大仿真调试器等在内完整开发方案。运用Keil软件编程流程:(1)建立一种新工程:单击Project菜单,在弹出下拉菜单中选中NewProject选项;(2)选取单片机型号,依照所使用单片机来选取,本设计所使用是STC89C52,选取STC89C52之后,然后点击拟定设立工程配备参数,选中创立HEX文献;(3)打开/建立程序文献。创立文献用*.c形式保存;(4)编译和连接工程。在进行编译和链接前,需要将创立源代码文献添加到工程中,在SourceGroup1处单击右键然后点addgroup..;(5)纠正程序中书写和语法错误并重新编译连接。在编译窗口中把需要编译程序输入,然后点编译按钮,即可对所写程序编译。4.2系统软件设计系统软件设计分为C语言程序。C语言编写程序又由主程序流程和子程序流程构成,子程序流程分为:酒精浓度检测子程序,LCD显示子程序,无线通信子程序,按键设定上限值子程序和串行子程序。4.2.1主程序流程图本设计发送端与接受端分别使用一种单片机作为控制芯片,发送端主程序涉及酒精浓度检测子程序、显示子程序、无线通信子程序初始化声明,以及将各子程序联系起来共同完毕发送端所有功能;接受端主程序涉及无线接受子程序、按键设定上限值、串口子程序初始化声明及各子程序联系。发送端和接受端主流程图如图4-1所示:开始酒精浓度检测子程序开始酒精浓度检测子程序无线通信子程序显示子程序发送子程序各某些初始化开始GSM初始化接受数据子程序调用串口子程序串口初始化上下限设定子程序报警子程序图4-1发送端与接受端主流程图图4-1发送端与接受端主流程图4.2.2酒精浓度检测子程序数据采集子程序重要是采集检测传感器输出模仿电压信号,并将其转换为单片机程序控制所需数字量信号。一方面对AD转换器进行初始化,然后将其0通道输入0-5V模仿信号转换为相应数字量OOH-FFH,然后将相应数值存储到3FH内存单元。4.2.3LCD显示子程序系统采用LCD1602液晶显示模块作为温湿度显示屏件。在对LCD1602编程时,一方面需要对其初始化,测试LCD1602与否处在忙碌状态,若忙碌则等待到空闲时间,检测到空闲时对其进行写控制指令。初始化完毕后可以在指定地址上显示相应数据。由于LCD1602自带字母字符库和数字字符库,因而可以直接可以在程序中写字母和数字字符。显示子程序流程图如下图4-3所示:子程序入口LCD与否忙碌?YNLCD1602初始化调用显示程序返回主程序图子程序入口LCD与否忙碌?YNLCD1602初始化调用显示程序返回主程序图4-3显示子程序流程图LCD初始化程序如下:voidLCD_Init(void){ LCD_EN=0;// LCD_WriteCmd(CMD_CLEAR_SCREEN);// _nop_(); LCD_WriteCmd(CMD_WORK_MODE); _nop_();// LCD_WriteCmd(CMD_HOME);// _nop_(); LCD_WriteCmd(CMD_INPUT_MODE3); _nop_(); LCD_WriteCmd(CMD_DISPLAY_MODE1); _nop_(); LCD_WriteCmd(CMD_DDRAM_ADDR);}4.2.4无线通信子程序本设计中采用GSM模块作为通信模块,将报警信号发送至提前设定好手机终端。并且所要报警手机号码可以通过发送短信方式进行更改。其主程序如下:#include"gsm.h"externunsignedcharuart1_busy;unsignedcharct=0;unsignedcharxdatagsm_buffer[120];voiddelay_ms(unsignedcharms){ unsignedintj; for(ms;ms>0;ms--) for(j=110*12;j>0;j--);}voidclear_buffer(){ unsignedchari; for(i=0;i<120;i++) gsm_buffer[i]=0; ct=0;}unsignedcharinit_command(unsignedchar*command){ unsignedchartime=0;// uart1_init(); do{ uart1_sendstring(command); delay_ms(500); if(strstr(gsm_buffer,"OK")!=NULL) { time=0; clear_buffer(); return1; } else { clear_buffer(); } time++; if(time==MAX_TIME) return0; }while(1);}unsignedchargsm_init(){ if(init_command("AT\r")==0) returnAT_ERROR; if(init_command("AT+CSCA?\r")==0) returnCSCA_ERROR; if(init_command("AT+CNMI=1,1,2\r")==0) returnCNMI_ERROR; if(init_command("AT+CMGF=1\r")==0) returnCMGF_ERROR; return0;}voidsend_message(unsignedchar*num,unsignedchar*s){ uart1_sendstring("AT+CMGF=1\r"); delay_ms(500); uart1_sendstring("AT+CSMP=17,167,0,0\r"); delay_ms(500); uart1_sendstring("AT+CSCS=GSM\r"); delay_ms(500); uart1_sendstring("AT+CMGS="); uart1_sendstring(num); uart1_send('\r'); delay_ms(500); uart1_sendstring(s); uart1_send(0x1a);// delay_ms(500); clear_buffer(); }unsignedcharis_message_coming(){ returnct;}voidget_message(unsignedchar*numbuf,unsignedchar*buf){ unsignedchar*p; unsignedchar*p1; unsignedcharn; delay_ms(1000); if(strstr(gsm_buffer,"+CMTI")!=NULL) { p=strchr(gsm_buffer,','); n=*(p+1); clear_buffer(); uart1_sendstring("AT+CMGR="); uart1_send(n); uart1_send('\r'); delay_ms(1000); p=strchr(gsm_buffer,','); p+=2; p1=strchr(p,'"'); memset(numbuf,0,20); memcpy(numbuf,p,p1-p); // p=NULL; p1+=1; p1=strchr(p1,'"'); p1+=1; p1=strchr(p1,'"'); p1+=3; p=strchr(p1,'\r'); if(p==NULL) memcpy(buf,p1,(gsm_buffer+119-p1)); else memcpy(buf,p1,p-p1); /* if(p==NULL) { memcpy(buf,p1,39); } else { if((p-p1)<39) memcpy(buf,p1,p-p1); else memcpy(buf,p1,39); }*/ p1=NULL; clear_buffer(); uart1_sendstring("AT+CMGD="); uart1_send(n); uart1_send('\r'); delay_ms(10); clear_buffer(); } else { clear_buffer(); }}voiduart1()interrupt4{if(RI){ if(ct<119) { gsm_buffer[ct]=SBUF; ct++; }RI=0;}if(TI){TI=0; uart1_busy=1;}}4.2.5报警子程序系统设定阈值保存在以50H开始3个单元,是为了便于比较和显示,阈值百位放入50H中,十位放入5lH,个位放人52H中。本电路中报警电路分为蜂鸣器报警电路和发光报警电路两某些,当输入端P2.3为低电平时,有电流通过蜂鸣器,蜂鸣器发出声音报警;而当输入端为高电平时不报警。当输人端P1.6为低电平时,LED点亮报警,反之输入端P1.6为高电平则不报警。报警子程序执行之前,将报警阈值转换为压缩BCD码并存储在两个存储单元中。传感器输入值经A/D转换后,一方面调用比较子程序,再进行数据解决、数据显示和测量值与阈值之间比较运算,不大于阈值则继续执行显示程序,若不不大于阈值则将单片机P1.6、P2.3两端口清零进行声光报警。40H、4lH、42H单元存储A/D转换后,并进行十进制转换后成果。40H和50H分别存储是解决后测量值与阈值百位压缩BCD码,41H和51H分别存储是解决后测量值与阈值十位压缩BCD码,42H和52H分别存储是解决后测量值与阈值个位压缩BCD码。程序一方面对40H、50H中值进行比较大小,如果40H中值不不大于50H中值,则进行报警。4.2.5串行口子程序串行传送数据时需传8个值,两个监测点温湿度值和4个设定温湿度上限值。发送前要先对串口初始化,设立波特率等参数。发送中将两组温湿度值存储到一种数组中,每次发送时调用8次串口发送程序将数据发送出去。对SCON选工作方式,对PCON设波特率加倍位“SMOD”(缺省值=0),采用中断方式,要打开ES串口中断容许位和总中断EA位。初始化程序如下:voiduart1_init(){/* SCON=0X50; TMOD=0X20; PCON&=-(FOSC/32/BAUD); TH1=TL1=0xfd; TR1=1; ES=1; EA=1;*/ PCON|=0x80; //UART0DoubleRateEnable SCON=0x50; //UART0setas10bit,UART0RXenable TMOD&=~(1<<6); //Timer1SetasTimer,12T TMOD=(TMOD&~0x30)|0x20; //Timer1setas8bitsautorelaod TH1=T1_TimerReload; //Loadthetimer TR1=1; ES=1; EA=1;}voiduart2_init(){/* S2CON=0X5a; BRT=-(FOSC/32/BAUD1); AUXR=0X14; IE2=0X01; EA=1; */ AUXR|=(1<<3); //串口2波特率加倍 S2CON=(S2CON&0x3f)|(1<<6); //串口2模式1,8位UART,(2^S2SMOD/32)*BRT溢出率 S2CON|=1<<4; //容许串2接受 AUXR|=1<<4; //baudrateuseBRT BRT=BRT_Reload; IE2|=1; //容许串口2中断}需要发送数据通过单片机串口SBUF送出去,完毕后会自动将发送完毕标志位TI置1,通过检测TI值检测与否发送完毕。5硬件焊接及调试5.1概要阐明本设计硬件焊接涉及单片机最小系统模块、酒精浓度采集模块、无线通信模块、LCD显示模块。一方面需要使用ProtelDXP软件绘制整体电路原理图,然后按照设计原理规定使用Keil软件新建工程,编写程序。程序分模块编写完毕后通过Keil软件进行编译调试,程序没有语法问题后生成HEX文献,并将某些模块HEX文献添加到Proteus中进行仿真,最后下载到硬件中进行调试。在本次设计中,酒精浓度采集采用MQ3气敏传感器,输出信号为数字信号可直接与单片机进行通信,因而电路连接简朴明了。酒精浓度显示模块选用液晶显示模块LCD1602,LCD1602由16引脚与单片机连接,连线以便,自身自带字母和数字字符库,又便于编程,非常适合本设计对于温湿度显示规定。无线传通信模块采用GSM模块。5.1.1硬件焊接在焊接硬件之前一方面要先绘制好电路原理图。在电路原理图绘制过程中,由于不太熟悉ProtelDXP软件,我通过查阅有关参照资料、明确了电路图绘制流程。在添加某些元件过程中基本元件库中没有,这时候就需要自己建立元件库编辑元件,并将编辑好元件添加到原理图中。系统焊接前应熟悉各芯片引脚,焊接时参照电路图,仔细地连接引脚。按照如下原则进行焊接:1.先焊接各芯片电源线和地线,这样保证各芯片有对的工作电压;2.同类芯片应顺序焊接,在一片焊接并检查好之后,其她同类芯片便可以参照第一片进行焊接。这样便可大大节约时间,也可减少出错率。5.1.2软件调试本系统软件系统很大,所有用C语言来编写。程序编写完毕后,一方面进行编译保证程序没有语法问题,之后再生成HEX文献才可如下载到单片机中。除了语法差错外,当确认程序没问题时,再下载到单片机来调试。采用是自下到上调试办法,即单独调试好每一种模块,然后再连接成一种完整系统,最后完毕一种完整系统调试。5.1.3软硬联调系统做好后,检查电路没有问题后将程序下载到硬件电路,进行系统完整调试。重要任务是检查与否按照设想功能显示效果,并校正数值。依照实测数据,逐渐校正数据,使测量成果更精确。这里采用分模块调试,各模块没有问题后再将模块组合到一起进行调试,得到最后成果。5.2调试中浮现问题及解决办法硬件焊接完毕后,一方面进行硬件电路检查调试,硬件连接没问题后开始进行程序编写及调试,最后将程序下载到硬件上进行整体调试。在设计操作过程中遇到问题及解决办法如下:1.单片机最小系统焊接完毕后,发现复位电路不起作用,无法对单片机复位。检查电路发现无论开关闭合还是启动,单片机复位引脚电压没有变化,阐明开关焊接有问题,经检查发现开关连接两个引脚不能实现开关和闭合,用万用表测开关两个脚电阻,找到两个脚开关不闭合时阻值无穷大而闭合后阻值为0,重新焊好后单片机可以正常使用。2.程序编写完毕往硬件下载时怎么也下载不进去,串口无法找到。通过询问其她同窗懂得本来需要安装串口驱动才可如下载,安装后程序可以正常下载。3.在调试温湿度显示时发现LCD1602总是一片绿屏,什么都没有显示。查找有关资料理解到此时应当调节VL连接滑动变阻器。通过调节电阻,终于可以正常显示温湿度值。6结论本设计是采用单片机编程控制酒精浓度采集控制系统,重要实现了对酒精浓度实时显示、酒精浓度超标后报警、报警信号传播,基本完毕了任务书规定。一方面,通过收集资料,理解更多关于酒精浓度检测状况,设计出酒精浓度检测系统整体构成方案;另一方面,研究酒精浓度传感器检测电路,无线通信模块特性,酒精浓度显示实现条件,完毕硬件电路设计;再次,对系统各模块进行C语言编程设计,完毕整体软件设计;最后,运用Keil软件进行程序调试,运用单片机开发板进行酒精浓度检测模块,无线模块及软硬件调试,成功后,动手焊接电路板,完毕毕设所有任务。本系统设计具备如下几种长处:(1)可实时检测酒精浓度数值;(2)采用无线通信传播数据,更加符合当代酒精浓度检测使用规定,节约了物力人力;(3)增长报警功能更提供了警示意义。由于研究时间、设计水平与个人能力有限因素,本设计还存在一定问题和可改进地方:(1)由于程序过长和无线传播因素,数据显示需要一点延时时间;(2)系统设计重要偏重于检测,还可增长某些控制功能使设计更加智能化;如果在此设计基本上进一步完善,应用起来可以更加智能化。此外酒精浓度检测装置可以用更加敏捷且精准酒精浓度传感器,使检测更加精准。这样完善后设计会更加完美,应用场合会更加广泛。谢辞毕业设计是培养咱们工作能力最后一种实践性学习环节。它不但是咱们四年大学所学知识一次综合性复习与考查,同步也是理论联系实际一种过程,为后来从事专业技术工作奠定了一定基本。本次毕业设计培养了我综合运用理论知识和实践技能去分析和解决实际工作中普通工程技术问题能力,使我建立了对的设计思想,学会了如何把四年所学理论知识运用到实践当中去。掌握了基于单片机来设计一种检测系统办法,并进一步巩固、扩大和深化了我所学电路,单片机,C语言等课程基本知识和基本技能,提高了我设计电路,解决问题能力。在毕业设计过程中,我感受颇多。一方面要感谢父母这样近年对我培养;也要感谢学校系部为咱们提供以便良好毕设环境;更要特别感谢指引教师王蕾教师,从课题研究、开题报告到电路设计调试及论文撰写都是在教师悉心指引下完毕。在设计最困难时候,王教师指引与协助使我度过了难关,她给了我诸多中肯参照意见,系统成功实现离不开她辛勤汗水。同步也十分感谢在实验室各位同窗,从器件焊接调试到程序编写和最后调试完毕,她们予以了我非常多协助,让我感受到了咱们这个集体温暖和情谊,是值得我毕生爱惜。在设计中,由于个人能力有限,设计中存在一定漏洞和错误,敬请各位教师指正批评,以使我对自己局限性得到及时发现并修正。在这里,向在这次毕业设计中予以过协助我教师们表达衷心感谢。参照文献[3]张毅刚,彭喜元.单片机原理与应用设计[M].北京:电子工业出版社,:56-60[6]李群芳,肖看.单片机原理、接口及应用[M].北京:清华大学出版社,:46-49[9]于志赣.液显LCD1602模块应用[J].期刊论文机电技术,:13-14附录主程序:#include"reg52.h"#include"gsm.h"#include"uart.h"#include"lcd.h"#include"STC12EEPROM.H"#define INTRAM_enable() AUXR&=~0x02sfrP1ASF=0x9D; //12C5AsfrADC_CONTR=0xBC; //带AD系列sfrADC_RES=0xBD; //带AD系列sfrADC_RESL=0xBE; //带AD系列#defineADC_OFF() ADC_CONTR=0#defineADC_ON (1<<7)#defineADC_90T (3<<5)#defineADC_180T (2<<5)#defineADC_360T (1<<5)#defineADC_540T 0#defineADC_FLAG (1<<4) //软件清0#defineADC_START (1<<3) //自动清0#defineADC_CH0 0#defineADC_CH1 1#defineADC_CH2 2#defineADC_CH3 3#defineADC_CH4 4#defineADC_CH5 5#defineADC_CH6 6#defineADC_CH7 7sbitK1=P1^1;sbitK2=P1^2;sbitK3=P1^4;sbitSPK=P1^5;sbitLED=P1^6;bittel_number_ready=0; unsignedchargsm_ok=0;unsignedcharxdatanum[20]={0};unsignedcharxdatanum_to_send[20]={0};unsignedcharxdatamsg[40]={0};unsignedcharstate=0;unsignedcharcur_value=0;unsignedcharwaring_value;unsignedintad_value;unsignedintadc10_start(unsignedcharchannel);voidinit();voiddisplay();voidread_sensor();voidnv_init();voidkey();voidwaring();unsignedcharis_tel_number(unsignedchar*s);voidmain(){ unsignedchar*p=NULL; init();// send_message("","test"); while(1) { key(); display(); waring(); read_sensor(); if(gsm_ok==0) { if(is_message_coming()!=0) { get_message(num,msg); send_message(num,"receive"); if(strstr(msg,"set:")!=NULL) { p=strchr(msg,':'); p++; memset(num,0,14); memcpy(num,p,11); if(is_tel_number(num)) { memcpy(num_to_send,num,11); EEPROM_write_n(1,num_to_send,11); tel_number_ready=1; } else { p=NULL; } } memset(msg,0,40); } } }}voidinit(){ uart1_init(); LCD_Init(); nv_init(); switch(gsm_init()) { caseAT_ERROR: LCD_ShowString(0,0,"ATERROR"); gsm_ok=1; break; caseCSCA_ERROR: LCD_ShowString(0,0,"CSCAERROR"); gsm_ok=1; break; caseCNMI_ERROR: LCD_ShowString(0,0,"CNMIERROR"); gsm_ok=1; break; caseCMGF_ERROR: LCD_ShowString(0,0,"CMGFERROR"); gsm_ok=1; break; default: LCD_ShowString(0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度美容院健康体检与会员服务合同2篇
- 2025年度新能源车辆运输合同
- 二零二五年宁波租赁房屋租赁合同租赁物维修责任
- 2025年度影视作品版权授权合同样本二4篇
- 2025年度足浴店品牌连锁经营合同
- 二零二五年度2025版智慧城市建设项目采购合同4篇
- 2025年度酒厂电子商务平台建设合同
- 2025年度高端品牌形象设计顾问聘请合同书2篇
- 二零二五年度环保工程公司股东股权变更与项目执行合同
- 二零二五年度出口产品购销合同样本知识产权保护策略4篇
- 2024年人教版小学三年级信息技术(下册)期末试卷附答案
- TB 10012-2019 铁路工程地质勘察规范
- 新苏教版三年级下册科学全册知识点(背诵用)
- 乡镇风控维稳应急预案演练
- 脑梗死合并癫痫病人的护理查房
- 苏教版四年级上册脱式计算300题及答案
- 犯罪现场保护培训课件
- 扣款通知单 采购部
- 电除颤操作流程图
- 湖北教育出版社三年级下册信息技术教案
- 设计基础全套教学课件
评论
0/150
提交评论