酒精浓度手持仪设计.docx_第1页
酒精浓度手持仪设计.docx_第2页
酒精浓度手持仪设计.docx_第3页
酒精浓度手持仪设计.docx_第4页
酒精浓度手持仪设计.docx_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

酒精浓度手持仪设计 The Design of Alcohol Concentration Hand-hold Set 32酒精浓度手持仪设计酒精浓度手持仪设计电子信息工程专业 刘伟涛摘 要 酒驾是当今交通事故的一大元凶,因此各类酒精测试仪在保证交通安全方面发挥着重要作用。本设计以STC12系列单片机为核心,配合相应的外围电路,来完成酒精浓度的检测。酒精传感器把所检测的酒精浓度转换成其阻值的变化,通过调理电路的调理,送到单片机进行A/D转换,然后把结果显示在LCD12864上。另外,本设计还加入了锂电池充电电路,运用三端离线式PWM开关TOP221进行电压变换,得到稳定的5V电压,再利用充电芯片SL1051对锂电池进行充电;加入PC通讯接口,以便与电脑的连接。关键词 单片机;酒精传感器;液晶;三端离线式PWM开关;充电芯片The Design of Alcohol Concentration Hand-hold SetAbstract:Driving after drinking is one of the major culprits of traffic accident today , so all kinds of Alcohol Concentration Hand-hold Sets are playing an important role in traffic safety. This design is based on the STC12 series MCU, working with the corresponding peripheral circuits to complete the detection. Alcohol sensor convert the alcohol concentration to its resistance changes, through the Conditioning circuit and send it to MCU for A/D converting, then sent the results to LCD12864 to display. In addition, this design also includes a lithium battery charging circuit. Through TOP221, the three-terminal off-line PWM switch to convert the voltage from 220V AD to 5V DC, then use the 5V DC to charge the lithium battery by the charging chip SL1051. This design also include PC communication interface to communicate with PC.Key words: MCU ; Alcohol Concentration; LCD12864; TOP221; SL1051酒精浓度手持仪设计目 录1 引言11.1 课题背景11.2 酒精浓度检测仪的发展状况11.3 课题研究的任务及意义12 硬件电路设计22.1 酒精传感器模块22.2 LCD12864模块52.3 PC通信模块132.4 降压整流模块142.5 电池充电模块152.6 USB供电模块193 系统的软件设计203.1 程序设计203.2 主程序设计203.3 LCD写地址子程序213.4 LCD写数据子程序223.5 LCD初始化子程序233.6 LCD显示子程序234 设计结果24结束语24参考文献25附录25致谢301 引言1.1 课题背景从工厂企业到居民家庭,酒精泄露的检测、监控以及对酒后驾车的监测对居民的人身和财产安全都是十分重要且必不可少的。同时,随着我国经济的高速发展,人民的生活水平迅速提高,越来越多的人有了自己的私家车,酒后驾车是导致交通事故的一个主要因素,资料显示,我国近几年发生的重大交通事故中,有将近三分之一是由酒后驾车引起的。由于人们安全意识增强,对环境安全性和生活舒适性要求的提高,为了防止机动车辆驾驶人员酒后驾车,现场实时对人体呼气中酒精含量的检测已日益受到重视,酒精浓度测试仪逐渐得到广泛应用。此外,酒精测试仪也可应用于食品加工、酿酒等需要监控空气中酒精浓度的场合。如今,气体传感器向低功耗、多功能、集成化方向的发展,因此,酒精浓度检测仪具有十分广阔的现实市场和潜在的市场要求。1.2 气敏传感器的发展状况本课题的传感器是气敏传感器,它的工艺和精确度直接影响着测量结果。气敏元件传感器作为新型敏感元件传感器在国家列为重点支持发展的情况下,国内已有一定的基础。其现状是烧结型气敏元件仍是生产的主流,占总量90以上;接触燃绕式气敏元件已具备了生产基础和能力;电化学气体传感器有了试制产品; 在工艺方面引入了表面掺杂、表面覆膜以及制作表面催化反应层和修隔离层等工艺,使烧结型元件由广谱性气敏发展成选择性气敏;在结构方面研制了补偿复合结构、组合差动结构以及集成化阵列结构,另外低功耗气敏元件已从产品研究进入中试。在应用方面,目前最广泛的是可燃性气体气敏元件传感器,已普及应用于气体泄漏检测和监控,从工厂企业到居民家庭,应用十分广泛。一是气体传感器向低功耗、多功能、集成化方向发展 国外气体传感器发展很快。二是增强可靠性,实现元件和应用电路集成化,多功能化,发展MEMS技术,发展现场适用的变送器和智能型传感器。国外气体传感器发展很快,一方面是由于人们安全意识增强,对环境安全性和生活舒适性要求提高;另一方面是由于传感器市场增长受到政府安全法规的推动。我国气敏元件传感器及其应用技术有了较快进展,但与国外先进水平仍有较大的差距,主要是产品制造技术、产业化及应用等方面的差距,与日本比较仍要落后10年。1.3 课题研究的任务及意义1.31 课题研究的任务本设计主要分为五部分的电路设计:1.主控芯片电路设计,本设计采用的是带有A/D转换的STC12C5A60S2为主控芯片,本部分主要是为主控芯片能够正常工作的提供合适的外围电路;2.电源管理电路的设计,主要为整个设计中的各个器件提供合适的电压,因为该设计为手持设备,需要锂电池供电,因此在本电路设计中需要有充电电路的设计,以便为本设备充电;3.酒精检测电路的设计,主要为酒精传感器的检测提供合适的工作环境。另外,由于传感器输出量不一定能满足单片机的信号输入要求,所以,本电路要包括对传感器输出量进行调理的调理电路,以便满足单片机的对模拟信号的输入量的要求;4.显示电路设计,本设计采用LCD12864液晶进行数据显示,因此要为LCD12864的工作提供合适的工作电路;54.串行接口电路设计,主要用于与PC机的通信。1.3.2 课题研究的意义对酒精浓度的检测无论是在工厂企业,还是在交通运输,都对公民的人身安全起着至关重要的作用。为了防止机动车辆驾驶人员酒后驾车,现场实时对人体呼气中酒精含量的检测已日益受到重视,酒精浓度测试仪逐渐得到广泛应用。因此,酒精浓度检测仪具有十分广阔的现实市场和潜在的市场要求。1.3.3 本设计的实现方法首先,一个完整的应用电路设计要包括电源管理电路的设计。本设计的电源管理电路包括两部分的功能:1.为仪器的各个器件的正常工作提供合适的工作电压,本设计所有芯片的工作电压为3.3V,所以需要将外部提供的5V电压经过降压和稳压,然后为电路供电;2.完成为锂电池的充电,需要将外部提供的5V电压,经过充电芯片,为锂电池充电。另外,由于锂电池工作时电压会浮动,所以要经过稳压后方能为电路供电。有了合适的工作电压,各个器件就能正常的工作了。然后,由酒精传感器将外部酒精浓度转换成相应电阻的变化,通过相应的调理电路将传感器输出量调理到能够满足单片机对输入信号的要求,经过单片机内部的A/D转换器将模拟量转换成数字量,然后配合显示电路,将转换结果显示在LCD12864上,这就完成了对酒精浓度的一次检测。2 系统电路的设计本系统电路设计主要有以下几部分:电源管理电路的设计;主控芯片电路的设计;传感器检测电路设计;液晶显示电路设计;PC通信接口电路设计。系统功能框图如下图1所示:电源管理电路完成对整个系统的供电及对锂电池的充电过程。单片机最小系统完成A/D转换及相应的系统控制过程。酒精检测电路完成酒精浓度到阻值的转换及其调理的过程。液晶显示完成对酒精浓度的显示过程。串行接口完成与PC的通信过程。各个电路的设计采用Altium Designer 10进行设计。单片机最小系统酒精检测电路液晶显示电路串行接口电路电源管理电路图12.1 酒精传感器模块酒精探测模块采用MQ303酒精传感器,该传感器具有高灵敏度、快速的响应恢复、长寿命 、低功耗、小巧的外型等优点。它是一种二氧化锡半导体型酒精气体传感器,对酒精具有高的灵敏度和快速的响应性,适于便携式酒精探测器和汽车燃火系统等等。MQ303的半导体气体敏感部分是一个微型珠状小球,内嵌加热丝和金属电极,这种敏感元件安装在有防爆功能的双层100目不锈钢网的金属壳内。结构如下图:下图为该传感器的测试电路:通过固定或可调外接负载电阻上电压的变化获得元件电阻的变化。为了使元件发挥其好的功能和特定的性能,加热电压、回路电压和负载电阻须限制在下页图表所示的标准工作条件内。传感器通电后通常需要数分钟的预热方可进入稳定工作状态,也可在正常检测前给传感器施加510秒钟2.20.2V的高电压,使传感器尽快稳定并进入工作状态。该传感器的电阻与气体的浓度呈对数关系,随气体浓度的增加而减小。如下图:标准工作条件如下:符号参数技术条件备注V H加热电压0.9V 0.1VAC or DCV C回路电压 6 VDCR L负载电阻可调P S 低I/O缓冲DR配合/W进行写数据或指令高DRI/O缓冲配合R进行读数据或指令低/低高无动作 忙标志:BFBF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据.利用STATUS RD 指令,可以将BF读到DB7总线,从而检验模块之工作状态.字型产生ROM(CGROM)字型产生ROM(CGROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY ON),DDRAM 的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。DFF 的状态是指令DISPLAY ON/OFF和RST信号控制的。显示数据RAM(DDRAM)模块内部显示数据RAM提供642个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM字型及CGROM的中文字型,三种字型的选择,由在DDRAM中写入的编码选择,在0000H0006H的编码中(其代码分别是0000、0002、0004、0006共4个)将选择CGRAM的自定义字型,02H7FH的编码中将选择半角英数字的字型,至于A1以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5(A140D75F),GB(A1A0-F7FFH)。 字型产生RAM(CGRAM)字型产生RAM提供图象定义(造字)功能, 可以提供四组1616点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。地址计数器AC地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一,当RS为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6DB0中。光标/闪烁控制电路 此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。指令说明:指令表1:(RE=0:基本指令)指令 指 令 码功 能RS/R/WDD7DD6DD5DD4DD3DD2D1D0清除显示0000000001将DDRAM填满20H,并且设定DDRAM的地址计数器(AC)到00H地址归位000000001X设定DDRAM的地址计数器(AC)到00H,并且将游标移到开头原点位置;这个指令不改变DDRAM 的内容显示状态开/关0000001DCBD=1: 整体显示 ONC=1: 游标ON B=1:游标位置反白允许进入点设定00000001I/DS指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位游标或显示移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位;这个指令不改变DDRAM 的内容功能设定00001DLXREXXDL=0/1:4/8位数据RE=1: 扩充指令操作RE=0: 基本指令操作设定CGRAM地址0001C5C4C3C2AC1AC0设定CGRAM 地址设定DDRAM地址0010C5C4C3C2AC1AC0设定DDRAM 地址(显示位址)第一行:80H87H第二行:90H97H读取忙标志和地址01FC6C5C4C3C2AC1AC0读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写数据到RAM10数据将数据D7D0写入到内部RAM (DDRAM/CGRAM/IRAM/GRAM)读出RAM的值11数据从内部RAM读取数据D7D0(DDRAM/CGRAM/IRAM/GRAM)指令表2:(RE=1:扩充指令)指令 指 令 码功 能RSR/WD7D6D5D4D3D2D1D0 待命模式0000000001进入待命模式,执行其他指令都棵终止待命模式卷动地址开关开启000000001RSR=1:允许输入垂直卷动地址SR=0:允许输入IRAM和CGRAM地址 反白选择0000000110选择2行中的任一行作反白显示,并可决定反白与否。初始值R1R000,第一次设定为反白显示,再次设定变回正常睡眠模式0000001LXXSL=0:进入睡眠模式SL=1:脱离睡眠模式 扩充功能设定00001LXEG0CL=0/1:4/8位数据RE=1: 扩充指令操作RE=0: 基本指令操作G=1/0:绘图开关设定绘图RAM地址001C6C5C4C3C3C2C2C1C1C0C0设定绘图RAM先设定垂直(列)地址AC6AC5AC0再设定水平(行)地址AC3AC2AC1AC0将以上16位地址连续写入即可备注;当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。并口时序图:MPU写资料到ST7920(8位数据线模式)MPU 从ST7920读资料(8位数据线模式) 软件初始化: 字符显示: FYD12864-0402B每屏可显示4行8列共32个1616点阵的汉字,每个显示RAM可显示1个中文字符或2个168点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。FYD12864-0402B内部提供1282字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:00000006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H7FH显示半宽ASCII码字符,A1A0HF7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH用FYD12864-0402B显示模块时应注意以下几点:欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。当字符编码为2字节时,应先写入高位字节,再写入低位字节。模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。本设计中LCD12864原理图如下:液晶采用并口方式,根据说明书进行初始化及数据显示,程序见附录。2.3 PC通信模块由于本设计采用3V电压供电,故采用MAX3232进行电平转换,该芯片可以采用3V电压供电,工作时只使用四只0.1uF的外部电容。与RS232的连接如下图所示:2.4 降压整流模块本设计采用TOP Switch系列的TOP221三端离线式脉冲调制(PWM)开关对输入的220V交流电压进行降压、整流,最终输出5V的直流电压,以便对锂电池充电。TOP Switch系列在许多新的应用领域占有优势,许多电路性能的增强减少了对电路板的设计和输入电源瞬态的敏感性,使得设计更容易,采用标准的8脚双列直插封装,其内部引线构架使用6条引脚直接将芯片产生的热量传递到电路板,减少了装散热片的成本,TOP Switch将开关模式控制系统的所有功能合并到一只三端集成电路中:功率MOSFET、脉宽(PWM)调制器、高压启动电路、环路补偿和故障自动保护电路。引脚功能描述:漏极引脚:MOSFET漏极引脚的输出,启动工作状态下通过内部的开关式高压电流源提供内部偏置电流,内设电流检测。控制引脚:用于占空比控制的误差放大器和反馈电流的输入脚,与内部的并联稳压器相连,提供正常工作是的内部偏置电流,也用做电源旁路和自动重启/补偿电容的连接点。源极引脚:初级控制电路的公共点和参考点。降压整流模块原理图如下:1、VZ:为压敏电阻,压敏电阻器称为突波吸收器,有时也称为“电冲击(浪涌)抑制器(吸收器)”。当加在它上面的电压低于它的阀值UN时,流过它的电流极小,相当于一只关死的阀门,当电压超过UN时,流过它的电流激增,相当于阀门打开。利用这一功能,可以抑制电路中经常出现的异常过电压,保护电路免受过电压的损害。2、C1与L1组成了EMI滤波器,抑制交流电网中的高频干扰对设备的影响。3、DB为4个二极管组成的全桥,起整流作用,将交流转换成直流。4、DB右面利用TOP221组成了一个4W等待式电源,为锂电池提供5V充电电压。TVS 即瞬态抑制二极管,主要用于对电路元件进行快速过电压保护。它能吸收功率高达数千瓦的浪涌信号。输出电压(5V)有齐纳二极管VR1和光耦(PCB817)直接取样,输出电压等于齐纳二极管的压降与通过光耦中发光二极管的压降(通过R2的压降可以忽略不计)之和。光耦的输出晶体管驱动TOP221的控制脚,C6用于对控制脚旁路提供控制环路补偿和设置自动重启频率。变压器的漏极感电压尖峰通过D1和TVS来钳位,偏置绕组由D3和C5整流、滤波,可以产生非隔离的12V电压,同时也为光耦输出晶体管的集电极提供偏置,隔离的5V输出绕组由D2整流,C3、L2、C4滤波。2.5 电池充电模块本设计锂电池充电采用SL1051电路,SL1051 是一款专门为高精度的线性锂电池充器而设计的电路,非常适合那些低成本、便携式充电器使用。它集高精度预充电、恒定电流充电、恒定电压充电、电池状态检测、温度监控、充电结束低泄漏、充电状态指示等性能于一身,可以广泛地使用于PDA、移动电话、手持设备等领域。SL1051 通过检测电池电压来决定其充电状态:预充电、恒流充电、恒压充电。当电池电压小于阈值电压 VO(MIN)时,处于预充电状态,以较小的电流对电池进行充电,预充电的电流可以通过外部电阻进行调整。预充电使电池电压达到 VO(MIN) 后,进入恒定电流充电的快速充电状态,充电电流可以通过外围电阻调整,恒定电流充电使电池电压上升到恒定电压充电电压VO(REG)(一般为4.2V)。然后进入恒定电压充电状态,充电电压的精度优于1%,在该状态下,充电电流将逐渐减小,当充电电流小于阈值后,充电结束。充电结束后,将始终对电池电压进行监控,当电池电压小于阈值VO(RCH)时,对电池进行再充电,进入下一个充电周期。为了安全起见,在整个充电过程中,SL1051 利用电池内部的热敏电阻和适当的外围电阻对电池的温度进行监控,可以使电池的温度控制在用户设置的范围内。SL1051具有以下优点:单、双节锂离子或锂聚合物电池充电器的理想控制电路;高于1%的电压精度;预充电过程,用户可改变预充电电流;恒定电流充电,充电电流可调;恒定电压充电过程;自动再充电过程;充电过程中的温度监控;LED 充电状态指示;电池不正常状态的检测;电源电压低时,处于低功耗的Sleep模式,电池漏电流极小;极少的外围元器件;小型化的MSOP8/SOP8 封装。主要用于数码相机、PDA、移动电话、手持设备等。管脚排列如下:引脚名称引脚功能VDD电源端TS温度监控输入端,该引脚的输入电压必须在VTS1 与VTS2 之间;否则,将视为电池温度超出设置范围。STAT充电状态指示。在充电过程中,该引脚被上拉到高电平;充电结束后,被下拉到低电平;电池不正常或TS 温度超过设置的范围时,输出为高阻态。GND接地端。CC调整管驱动端。与外部调整管的基极(PNP 晶体管)或栅极(PMOS 管)相连。FB/CE外部反馈输入或充电使能控制。CS电流采样输入。充电电流通过电源和此引角之间的电压差决定。BATT电池电压检测输入端。充电模块原理图如下:充电过程:检测:首先,FB/CE 端连到VDD 或者一个高电平电压,SL1051 检测到如下两种情况之一即开始进入充电周期:a)加上适当的电源后,插上锂电池(VBATTVO(REG);b) 已经插上锂电池(VBATTVO(REG),然后加上适当的电源;预充电:如果锂电池的初始电压低于预充电阈值VO(MIN),则首先进入预充电阶段。在此阶段,预充电电流大约为恒流充电阶段电流的10%左右。恒定电流充电:当电池电压达到VO(MIN),电池将进入下一个充电阶段:恒定电流充电。SL1051 根据VDD 及CS 两端之间的电阻RCS 上的电压VI(SNS)调整充电电流。即I O(REG)= V (I SNS )/Rcs恒定电压充电随着恒定电流充电的进行,电池电压上升,当电池达到一定电压VO(REG) 时,即进入恒定电压充电阶段。在此阶段,电池电压不再上升,被恒定在VO(REG) ,且充电电流逐渐减小。充电结束在恒定电压充电阶段,充电电流逐渐减小,当电流减小到ITERMV(TERM)/RCS 时,电池充电结束,同时,充电电流降为零。温度监控在整个充电过程中,SL1051 将通过电池内部的热敏电阻和TS 引脚外部的分压网络对电池的温度实行实时监控,如图5。避免由于电池温度过高(或过低)而造成对电池的损坏或发生危险。一般情况下,当 TS 端电压 VTS 在 VTS1与 VTS2 之间时,SL1051 正常工作。当 VTSVTS1 或 VTSVTS2,说明此时电池温度“过高”或“过低”,则充电过程被暂停;待 VTS 恢复到 VTS1 与 VTS2 之间,即电池温度恢复到设定范围内,充电继续进行。我们可以根据待设定的温度范围来确定应用线路图中的 RT1 和 RT2,现举例说明如下:假设待设定的温度范围为 TLTH,(其中 TLTH);电池中使用的是负温度系数的热敏电阻(NTC),RTL 为其在温度 TL 时的阻值,RTH 为其在温度 TH 时的阻值,则RTLRTH,那么,在温度TL 时,TS 端的电压为:在温度 TH 时,TS 端的电压为:然后,由 VTSLVTS2,假设取为 k2VDD,VTSHVTS1, 假设取为 k1VDD,则可解得:, 同理,如果电池内部是正温度系数(PTC)的热敏电阻,则 RTHRTL,我们可以计算得到:, 从以上的推导过程中可以看出,待设定的温度范围与电源电压是无关的,仅与 RT1、RT2 、RTH、RTL 有关;其中,RTH、RTL 可通过查阅相关的电池手册或通过实验测试得到。如不用此功能时,可将TS 端与热敏电阻断开,取值RT1=RT2。FB/CE功能:FB/CE 此引脚有两个功能。一个功能是使能端,连接此引脚到VDD 则开启SL1051,连接到GND 则关闭SL1051。另一个功能是作为反馈端,此引脚如图6 所示,此时,此引脚作为调整输出电压的电压源,数值为2.1V。8、充电指示:SL1051 的STAT 有三种状态显示,如下表所示:状态STAT 显示充电高充电结束低温度错误,FB/CE 为低,休眠状态高阻9、再充电:充电结束后,电池电压降低到VO(RCH),SL1051 将进行再次充电循环。2.6 USB供电模块考虑到演示的方便,本设计加入了USB供电模块,由于采用单片机的工作电压为3V,故通过SPX1117M3稳压器将USB的5V降压到3V。SPX1117为低功耗正向电压调节器,可以用在一些高效率、小封装的低功耗设计中。SPX1117有很低的静态电流,在满负载时其低压差仅为1.1V。当输出电流减少时,静态电流随负载变化,并提高效率。SPX1117可调节,可选择1.5V、1.8V、2.5V、2.85V、3.0V、3.3V及5V的输出电压。SPX1117有多种三引脚封装,一个10uF的输出电容可有效地保证稳定性,然而在大多数应用中,仅需要一个更小的2.2uF的电容。在本设计中,采用输入5V,输出3V,电路图如下:在直接运用3V供电时,可将上图的跳线帽处短路,此时不经过SPX1117降压,直接给电路供电。3 系统的软件设计3.1 程序设计程序设计(Programming)是指设计、编制、调试程序的方法和过程。它是目标明确的智力活动。在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序14。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件也占有重要的地位。在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件更为重要。在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。本系统软件采用模块化结构,由主程序A/D中断程序、LCD液晶显示程序等子程序构成。3.2 主程序设计首先,对酒精传感器进行10s大电压的预热,使其尽快达到工作状态。同时对单片机的ADC转换器及LCD12864进行初始化,准备进行A/D转换及数据显示。然后,打开ADC转换开关和总中断开关。最后,将AD转换结果显示在LCD液晶屏上。流程图如下图所示:酒精传感器预热ADC初始化LCD12864初始化开启中断,开始转换延时转换完成结果显示延时3.3 LCD写地址子程序LCD写地址流程图如下:RW=0; RS=0延时50usP0=com; E=1;延时0.5msE=0延时0.1ms3.4 LCD写数据子程序RW=; RS=1延时50usP0=dat;E=1延时0.5msE=0延时0.1msLCD写数据流程图如下:3.5 LCD初始化子程序LCD初始化流程图如下:延时0.1s写地址0x30延时0.2ms写地址0x30延时0.2ms写地址0x0f延时0.2ms写地址0x01延时10ms写地址0x06延时0.5ms3.6 LCD显示子程序LCD显示流程图如下:写地址0x80i+写数据table1i写数据ad_avi16+延时50usNO YES4 设计结果以单片机STC12C5A60S2为控制核心,借助酒精传感器MQ303、LCD12864完成了对酒精浓度的检测转换及显示;借助整流降压和充电模块,完成了对锂电池的充电;借助PC通讯接口,完成了与PC的连接。由于本设计涉及到的芯片在proteus中无法找到,故无法进行proteus软件仿真,本设计经过了严格的理论验证。结束语经过几个月的准备,毕业设计即将完成,在这期间遇到了种种问题。在设计中,需要利用一些陌生的芯片完成相应的功能,对各种芯片的学习和运用是本设计的难点和重点。首先,对于单片机的选择,没有选择自己比较熟悉的AT89S52,而是选择了STC12C5A60S2,主要由于此款单片机内部带有A/D转换,用起来比较方便,操作起来和AT89S52基本差不多。其次,锂电池充电电路的设计,由于是手持设备,内置锂电池充电功能是必须的。要想从220V AD得到5V DC对锂电池进行充电,常规方法是运用电桥和电容先进行整流、滤波,再利用合适的稳压芯片进行稳压。本设计运用TOP Switch系列的TOP221三端离线式脉冲调制(PWM)开关结合相应的电桥和起保护作用的压敏电阻对输入的220V交流电压进行降压、整流,最终输出5V的直流电压,以便对锂电池充电。锂电池充电方面,运用高精度的线性充电电流SL1051,配合简单的外围器件,完成了对锂电池充电。最后,LCD12864液晶显示,本设计采用带有中文字库的LCD12864液晶对结果进行显示。在本设计中,此液晶工作在并行方式,可以显示字符和汉字,根据说明书,完成对液晶的操作。参考文献1 何立民,单片机应用系统设计,航天航空大学出版社,1990年1月,25-37.2 杜树春,单片机应用系统开发实例详解,化学工业出版社,2008年1月.3 李华等,MCS-51 系列单片机实用接口技术北京航空航天大学出版社,2003. 4 楼然苗,51系列单片机设计实例北京航空航天大学出版社,2006年2月.5 MQ30酒精传感器说明书6 高性能锂电池充电控制电路说明书7 STC12C5A60S2-5202AD说明书8 12864中文字库说明书9 MAX3232说明书10 SPX1117芯片手册附录附录1:程序#include#define uint unsigned int#define uchar unsigned char/LCD12864控制端sit E= P20; /LCD12864使能信号sbit RW=P21; /R/W=“H”,E=“H”,数据被读到DB7DB0; R/W=“L”,E=“HL”, DB7DB0的数据被写到IR或DRsbit RS=P22; /RS=“H”,表示DB7DB0为显示数据; RS=“L”,表示DB7DB0为显示指令数据/AD&LCD数据变量double ad_total=0; /AD转换总十位double ad_av=0; /AD转换十次的平均值uchar table1=酒精浓度:;uint n=0; /采集计数值double k=400; /酒精传感器比例系数/12MHz,约50us的延时void delay_50us(uint t) uchar j;for(;t0;t-) for(j=19;j0;j-);/12MHz,约50ms的延时void delay_50ms(uint t)uint j;for(;t0;t-)for(j=62

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论