毕业设计(论文)-基于单片机的酒精浓度测试仪.doc
《毕业设计(论文)-基于单片机的酒精浓度测试仪.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于单片机的酒精浓度测试仪.doc(43页珍藏版)》请在咨信网上搜索。
毕业设计论文 基于单片机的酒精浓度测试仪 提供全套,各专业毕业设计 毕 业 设 计 论 文 基于单片机的酒精浓度测试仪 仇 新 指导老师姓名: 张睿 专 业 名 称: 电气自动化技术 班 级 学 号: 11137211 论文提交日期:2013年11月12日 论文答辩日期:2013年11月15日 2013年 12月 30日 摘要 毕业设计论文 摘 要 本研究设计的酒精浓度测试仪是一款实用性强、安全可靠的气体乙醇浓度检测工具,采用高精度MQ-3乙醇气体传感器对空气中的乙醇浓度进行检测,利用宏晶公司高性能低成本单片机STC12C5A16AD对检测信号进行A/D转换和处理,最后通过液晶屏显示输出。本研究设计的酒精浓度测试仪还具有醉酒阈值设定功能,可以根据法律法规或用户需要设定修改醉酒阈值,并进行保存。本测试仪体积较小便于携带,且操作简单方便,造价较低廉,性价比较高,适合推广使用。 关键词:酒精浓度;单片机;传感器;阀值 37 目录 毕业设计论文 Abstract Alcohol concentration tester designed in this study is the gas concentration of ethanol detection tool for a practical, safe and reliable, high precision of MQ-3 alcohol gas sensor to detect the concentration of ethanol in air, A/D conversion and processing of signal detection using macro crystal, high performance and low cost microcontroller STC12C5A16AD, finally through the LCD screen display output. Alcohol concentration tester designed in this study has drunk threshold setting function, can according to laws and regulations or the user needs to set the threshold to modify the drunk, and save. The instrument is small volume to carry, simple and convenient operation, low cost, high performance, suitable for the promotion of the use of. Key words: alcohol; MCU; Alcohol concentration sensor; threshold 目录 第一章 绪论 1 第二章 总体设计 2 2.1 设计要求 2 2.2 设计方案 2 第三章 硬件设计 3 3.1 硬件设计原理分析 3 3.2 酒精传感器模块 4 3.2.1 MQ-3主要技术指标 4 3.2.2 MQ-3结构、外形、测试电路 4 3.2.3 MQ-3传感器调理电路 6 3.3 单片机模块 7 3.3.1 STC12C5A16AD的功能特性 8 3.3.2 STC12C5A16AD的引脚说明 9 3.3.3 单片机系统原理图 10 3.4 显示模块 12 3.5 存储模块 13 3.6 供电及程序下载模块 14 第四章 软件设计 15 4.1 主程序模块 15 4.1.1 A/D转换模块 16 4.1.2 按键输入模块 16 4.1.3 液晶显示输出模块 17 4.2 主程序 18 第五章 PCB设计 25 5.1 PCB软件简介 25 5.2 PCB板设计 25 第六章 下载与调试 27 6.1 USB转串口驱动安装 27 6.2 下载程序 27 6.3 调试与说明 28 七章 总结与展望 29 7.1 设计结果 29 7.2 设计体会与展望 29 致 谢 30 参考文献 31 附录A 实验原理图和电路图 32 附录B 元件清单 34 附录C 实验现象图片 35 毕业设计论文 基于单片机的酒精浓度测试仪 第一章 绪论 从工厂企业到居民家庭,酒精泄露的检测、监控以及对酒后驾车的监测对居民的人身和财产安全都是十分重要且必不可少的。同时,随着我国经济的高速发展,人民的生活水平迅速提高,越来越多的人有了自己的私家车,酒后驾车是导致交通事故的一个主要因素,资料显示,我国近几年发生的重大交通事故中,有将近三分之一是由酒后驾车引起的。由于人们安全意识增强,对环境安全性和生活舒适性要求的提高,为了防止机动车辆驾驶人员酒后驾车,现场实时对人体呼气中酒精含量的检测已日益受到重视,酒精浓度测试仪逐渐得到广泛应用。此外,酒精测试仪也可应用于食品加工、酿酒等需要监控空气中酒精浓度的场合。如今,气体传感器向低功耗、多功能、集成化方向的发展,因此,酒精浓度测试仪具有十分广阔的现实市场和潜在的市场要求。 本设计基于STC12C5A16AD单片机设计的酒精气体浓度探测仪,可用来检测酒精气体浓度,酒精气体浓度测试仪在生产生活中有重要的应用,比如,在一些环境要求严格的生产车间,用这种酒精浓度探测仪,可随时检测车间内的酒精气体浓度,当酒精气体浓度高于允许限定值时,发出警报,提醒人们及时通风换气,做到安全生产,此酒精测试仪经过再一步的改进可以使用到酒后驾驶测试上面去,利用该测试仪来告诫驾驶员请勿酒后驾驶。 在这次的设计中,利用了MQ-3型酒精的传感器通过对空气中的酒精浓度测试转换成0~5V的模拟量电压进行输出,把这个0~5V的电压传送到STC12C5A16AD内部自带的A/D转换模块中去,通过模拟量模块的转换输出一个8位0~255的数据给单片机的P1口,再通过单片机进行一些软件程序的处理显示在LCD的液晶上面。 目前对酒精测试的装置有燃料电池型,半导体型,红外线型,气体色谱分析性和比色型五种类型。但由于价格方面的原因目前市场上用的是燃料电池型和半导体型。 燃料电池型是世界都在研究的环保型能源。它可以把气体直接转换为电能而不产生污染。酒精传感器只是它的一个分支。在燃烧室内充满特种催化剂。使进入燃烧室内的酒精能进行充分燃烧转换为电能。也就是在电极上产生电压消耗在外加负载上。使电压与燃烧室内的酒精浓度成正比。 与半导体型相比,燃料电池型的呼吸酒精测试仪具有稳定性好、精度高、抗干扰性能好等优点。但由于其传感器结构要求特别高所以生产成本提别高,制造难度特别大所以只有少数国家能够生产。 第二章 总体设计 2.1 设计要求 本设计的主要内容是用由MQ-3乙醇气体传感器、单片机、EEPROM存储电路、液晶屏和键盘组成的、设计一个酒精浓度测试仪。实现的功能是: 1) 实时测量空气中的乙醇气体浓度,在液晶屏上显示。 2) 具有乙醇浓度超高报警功能,当测量得到的乙醇浓度超过预先设定的阈值,则红灯报警。 3) 电路设计了两个红灯,另一个红灯是传感器直接输出的模拟报警信号,其阈值通过调节传感器模块上的兰色电位器改变,一般可以不用。 4) 醉酒阈值可存储至EEPROM存储器,并在液晶屏显示。系统掉电后醉酒阈值不失,可以保持。 2.2 设计方案 本设计主要由传感器电路、单片机系统、显示电路、存储电路、供电及程序下载电路组成的。 单片机的选择是: 1) STC12C5A16AD芯片为52内核8位单片机,内部集成了10位多路A/D转换模块; 2) 单片机STC12C5A16AD工作频率为12MHz。 用高精度MQ-3乙醇气体传感器对空气中的乙醇浓度进行检测,利用宏晶公司高性能低成本单片机STC12C5A16AD对检测信号进行A/D转换和处理,通过按键对芯片写入数据来控制阈值的大小,另外电路外接EEPROM芯片,关闭电源,数据自动存储不会丢失,最后通过液晶屏显示输出。如图2-1: 模数转换 数字输出 模拟输出 传感器 控制输出 单片机 LCD显示输出 图2-1 系统设计方框图 第三章 硬件设计 3.1 硬件设计原理分析 本硬件由五部分组成:单片机模块,酒精传感器模块,显示模块,存储模块供电及程序下载模块。本系统由单片机STC12C5A16AD控制,其直接控制两个模块:阀值存储模块将与酒精传感器采集到并输送到单片机控制处理后的数字信号相比较,LCD显示模块可以将经过单片机处理过的酒精气体浓度具体量化值显示出来。MQ-3乙醇气体传感器输出信号经信号调理电路处理,输出随乙醇浓度变化的电压信号,该电压信号送入单片机系统,经A/D转换,与设定的醉酒阀值进行比较,并显示或报警。如图3-1: MQ-3传感器模块DDDDMOKUAIMOKUAIMOKUAI 信号处理电路 模/数转换 电压/酒精浓度转换 阀值比较 报警 外部EEPROM STC12C5A16AD单片机 MQ-3传感器 酒精浓度显示 图3-1 酒精浓度测试仪硬件结构图 3.2 酒精传感器模块 MQ-3乙醇气体传感器可以应用用于机动车驾驶人员及其他严禁酒后作业人员的现场检测,也用于其他场所乙醇蒸汽的检测。其技术特点为: l 对乙醇蒸汽有很高的灵敏度和良好的选择性 l 快速的响应恢复特性 l 长期的寿命、可靠的稳定性和简单的驱动回路 3.2.1 MQ-3主要技术指标 表3-1 主要技术分类 3.2.2 MQ-3结构、外形、测试电路 MQ-3气敏元件的结构和外形如图3-2所示, 由微型Al2O3陶瓷管、SnO2敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,加热器为气敏元件提供了必要的工作条件。封装好的气敏元件有6只针状管脚,其中4个用于信号取出,2个用于提供加热电流,表3-2对各个部件进行了详细的描述。 图3-2 MQ-3气敏元件的结构外形图 表3-2 MQ-3气敏元件的组成材料表 部件 材料 1 气体敏感层 二氧化锡 2 电极 金(Au) 3 测量电极引线 铂(Pt) 4 加热器 镍铬合金(Ni-Cr) 5 陶瓷管 三氧化二铝 6 防爆网 100目双层不锈钢(SUB316) 7 卡环 镀镍铜材(Ni-Cu) 8 基座 胶木 9 针状管脚 镀镍铜材(Ni-Cu) 毕业设计论文 基于单片机的酒精浓度测试仪 MQ-3乙醇气体传感器灵敏度曲线如图3-3所示,其传感原理为气敏电阻的输出阻值随乙醇气体等浓度变化而变化。 图3-3 MQ-3乙醇气体传感器灵敏度曲线 3.2.3 MQ-3传感器调理电路 MQ-3乙醇气体传感器及其调理电路原理如图3-4所示,技术指标如表3-3所示。经过调理,检测信号由电阻值转变成电压值,便于后续电路进行A/D转换和处理。 图3-4 传感器及调理模块原理图 该传感器模块具有如下特点(如图3-4),方便与单片机系统接口组成检测仪器。 l 具有信号输出指示。 l 双路信号输出(模拟量输出及TTL电平输出) l TTL输出有效信号为低电平。 (当输出低电平时信号灯亮,可直接接单片机) l 模拟量输出0~5V电压,浓度越高电压越高。 l 对乙醇蒸汽具有很高的灵敏度,良好的选择性,快速的响应恢复特性。 主要技术指标: 表3-3 技术指标 产品型号 MQ-3 产品类型 半导体气敏元件 检测气体 酒精蒸汽 检测浓度 0.04-4mg/L 负载电阻 可调 3.3 单片机模块 STC12C5A16AD是宏晶科技生产的新一代8051单片机,包含有中央处理器(CPU)、程序存储器(FLASH)、数据存储器(SRAM)、定时/计数器、UART串口、串口2、I/O接口、高速A/D转换、SPI接口、PCA、看门狗及片内R/C振荡器和外部晶振振荡等模块。 STC12C5A16S2单片机相比传统C51功能更加强大,有些特殊功能寄存器被扩展为专用的特殊寄存器。其引脚图和内部结构如图3-5所示: 图3-5 STC12C5A16AD单片机管脚图 3.3.1 STC12C5A16AD的功能特性 (1) 高速:1个时钟/机器周期,增强型8051内核,速度比普通8051快8~12倍。 (2) 宽电压:3.3~5.5V。 (3) 增加外部掉电检测电路,可在掉电时及时将数据保存进EEPROM,正常工作时无需操作EEP。 (4) 增加第二复位功能脚,(高可靠复位,可调复位门槛电压,频率小于12Hz,无需此功能)。 (5) 低功耗设计:空闲模式(可由任意一个中断唤醒);掉电模式(可由外部中断唤醒),可支持下降沿/上升沿和远程唤醒。 (6) 工作频率:0~35MHz,相当于普通8051:0~4205MHz。 (7) 时钟:外部晶体或内部RC振荡器可选,在ISP下载编程用户程序时设置。 (8) 8/16/20/32/40/48/52/56/60/62K字节片内FLASH程序存储器,擦写次数10万次以上。 (9) 1280字节片内RAM数据存储器。 (10) 芯片内EEPROM功能,擦写次数10万次以上。 毕业设计论文 基于单片机的酒精浓度测试仪 (11) ISP/IAP,在系统可编程/在在应用可编程,无需编程器/仿真器。 (12) 8通道,10位高速ADC,高速可达25万次/秒,2位PWM还可当2路D/A使用。 (13) 2通道捕获/比较单元(PWM/PCA/CCP),也可用来再实现2个定时器或2个外部中断(支持上升沿/下降沿中断)。 (14) 4个16位定时器,兼容8051的定时器T1/T0,2路PCA实现2个定时器。 (15) 可编程时钟输出功能,T0在P3.4输出时钟,T1在P3.5输出时钟,BRT在P1.0输出时钟。 (16) 硬件看门口(WDT)。 (17) 高速SPI串行通信端口。 (18) 全双异步串行口(UART),兼容普通8051串口。 (19) 先进的指令集结构,兼容普通8051指令集,有硬件乘法/除法指令。 (20) 通用I/O口(37/40/44个),复位后为准双向口/弱上拉(普通8051 I/O口)可设置成四种模式:准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不超过100mA。 3.3.2 STC12C5A16AD的引脚说明 单片机采用40引脚的双列直插封装方式。图3-7为引脚排列图,40条引脚说明如下: 1)主电源引脚Vss和Vcc 2)外接晶振引脚XTAL1和XTAL2 3)控制或与其它电源复用引脚RST,ALE和NA 4)输入/输出引脚P0.0~P0.7,P1.0~P1.7,P2.0~P2.7,P3.0~P3.7 (1)P0口(P0.0~P0.7)是一个漏极开路型准双向I/O口。在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉电阻。 (2)P1口(P1.0~P1.7)是带内部上拉电阻的8位双向I/O口。在EPROM编程和程序验证时,它接收低8位地址。 (3)P2口(P2.0~P2.7)是一个带内部上拉电阻的8位双向I/O口。在访问外部存储器时,它送出高8位地址。在对EFROM编程和程序验证期间,它接收高8位地址。 (4)P3口(P3.0~P3.7)是一个带内部上拉电阻的8位双向I/O口。在访问外部存储器时,它送出高8位地址。在对EFROM编程和程序验证期间,它接收高8位地址。 3.3.3 单片机系统原理图 该芯片为52内核8位单片机,内部集成了10位多路A/D转换模块,适用于常用检测电路。由STC12C5A16AD组成的单片机系统原理图如图3-6所示。图中AOUT为MQ-3传感器模块输出的检测电压信号,送入ADC7端口进行处理,DOUT为传感器模块输出的数字电平信号,该信号可以根据乙醇气体浓度直接输出报警信号,报警阈值通过模块上的电位器进行调节。 图3-6 单片机系统原理图 图中,按键K2和K3为醉酒阈值调整键,其中K2为“增加”,K3为“减小”按键。L2和L3为报警指示灯,分别可以进行酒后和醉酒两级报警。 复位电路用于单片机控制系统开机时所需的信号,通过RST引脚是复位信号的输入端。复位信号是高电平有效实践单片机整个内部状态初始化。高电平有效的持续时间应为24个振荡周期以上。若时钟频率为6MHz,则复位信号至少应持续4微秒以上,才可以使单片机复位。复位以后,07H写入栈指针SP,P0口一P3口均置1(允许输入),程序计数器PC和其它特殊功能寄存器SFR全部清“0”。只要该脚保持高电平,单片机便循环复位。当RST端由高变低后,由ROM的0000H开始执行程序。单片机的复位操作不影响内部RAM的内容。本单片机的复位方式是手工复位如下图3-7所示: 图3-7 复位电路图 XTAL1(19脚)和XTAL2(18脚):外接晶体引脚。当晶振确定后,也确定了单片机的基本时序周期。一条指令译码产生的一系列微操作信号在时间上有严格的先后次序,这种次序就是计算机的时序。其基本时序周期有如下四种。 ●振荡周期:指振荡源的周期,若为内部产生方式,则为石英晶体的振荡周期。T振荡周期=1/fosc。 ●机器周期:一个机器周期含6个时钟周期(S周期)。T机器周期=6*T时钟周期=12* T振荡周期=12/fosc; STC12CXX系列单片机有1个时钟周期/机器周期。 ●时钟周期:(称S周期)为振荡周期的两倍,时钟周期=2倍的振荡周期T时钟周期=2* T振荡周期。 ●指令周期:完成一条指令占用的全部时间。805l的指令周期含1—4个机器周期,其中多数为单周期指令,还有2周期和4周期指令。 当使用芯片内部时钟时,两个引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接入外部时钟脉冲信号,晶振电路如图3-8所示。 图3-8 晶振电路图 3.4 显示模块 显示部分采用SMC 1602液晶屏进行数据显示,其主要技术参数如表3-4所示: 显示容量 12×2个字符 芯片工作电压 4.5-5.5V 工作电流 2.0Ma 最佳工作电压 5.0V 字符尺寸 2.95×4.35(WXH)mm 表3-4 液晶屏技术指标 接口信号说明如表3-5所示: 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 Data 1/0 2 VDD 电源正极 10 D3 Data 1/0 3 VL 液晶显示偏压信号 11 D4 Data 1/0 4 RS 数据/命令选择端 12 D5 Data 1/0 5 R/W 读/写选择端 13 D6 Data 1/0 6 E 使能信号 14 D7 Data 1/0 7 D0 Data 1/0 15 BLA 背光源正极 8 D1 Data 1/0 16 BLK 背光源负极 表3-5 液晶屏接口信号说明 与单片机接口电路如图3-9所示。其中J2的3脚为背光引脚,R9和R10电阻用于调节背光亮度。J2的4、5、6引脚分别接液晶的RS、E/W和E控制引脚,J2的7—14引脚为数据引脚。 图3-9 LCD与单片机接口电路 3.5 存储模块 醉酒阈值存储在EEPROM芯片AT24C04中,并可以通过 “增加”、“减少”按键调节并保存。AT24C04是IIC接口的EEPROM芯片,可以用于掉电不易失数据的存储。其电路如图3-10所示。图中A0、A1和A2为芯片的地址引脚,一般接地即可。SCL和SDA为AT24C04和单片机IIC通信的时钟线和数据线。 图3-10 EEPROM存储电路 3.6 供电及程序下载模块 本设计采用USB接口供电,电源电压5V。同时,USB接口通过内含PL2303芯片的转换电路对单片机进行程序编写。其电路原理如图3-11所示。 图3-11 供电及程序下载电路 第四章 软件设计 对于单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。汇编语言的可控性较高级语言来说更具优越性。程序编写语言比较常见的有C语言、汇编语言。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。 C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持C编译器,这样意味着处理器也能很快上手。且具有良好的模块化、容易阅读、维护等优点,且编写的模块程序易于移植。基于C语言和汇编语言的优缺点,本程序采用C语言编写方法。 软件编写的主体思路是将系统按功能模块化划分,包括主程序模块,A/D转换模块,按键输入模块,液晶显示输出模块。然后根据各个模块要实现的功能写各个子程序。 4.1 主程序模块 主程序实现的功能:与硬件相结合实现便携式酒精浓度检测仪的各个功能。主要是包括A/D转换模块,按键输入模块,液晶显示输出模块。见图4-1: 图4-1 主程序模块框图 4.1.1 A/D转换模块 (1)模数转换模块的主要功能就是将经放大器放大的模拟电压信号转化为MCU能够处理的数字信号,并传送给MCU。 (2)A/D转换的流程图见下图4-2: 图4-2 模数转换模块框图 (3)程序介绍: void Timer0_ISR (void) interrupt 1 using 0 { TL0 = 0xcc; TH0 = 0xf8; //定时器赋予初值 //每1秒钟启动一次AD转换 ALCounter ++; if (ALCounter >= 500) { FlagStartAL = 1; ALCounter = 0; } } 4.1.2 按键输入模块 (1)按键时显现人机对话的一个控制按钮,通过按键的操作,对系统进行发送操作指令,后经与MCU串行通信,然后在液晶上显示。 (2)按键查询式的流程图见下图4-3: 图4-3 按键输入模块框图 (3)程序介绍: //定义按键 sbit Key_Up = P3^6; sbit Key_Down = P3^7; //定义LED报警灯 sbit Led_Warn1 = P3^4; sbit Led_Warn2 = P3^5; //定义乙醇传感器TTL电平输出引脚 sbit DOUT = P1^4; 4.1.3 液晶显示输出模块 LCD模块在本系统中主要起着开界面汉字显示,以及各控制效果的显示。采用直接访问方式。液晶显示的操作流程图见下图4-4: 图4-4 液晶显示输出模块框图 (3)程序介绍: L1602_string(1,1," "); L1602_string(2,1," "); L1602_string(1,1,"Alcohol: mg/L"); L1602_string(2,1,"Thresho: mg/L"); //载入设定值 Load_Setting(); L1602_int(2,9,Threshold); 4.2 主程序 下面介绍main.c主程序编写,其他程序略。 (1) 头文件和一些宏定义 #include "STC12c5A.h" #include "1602.h" #include "2402.h" #define uchar unsigned char #define uint unsigned int (2) 常量、变量定义和函数声明 //声明常量 #define ALCH 80 //醉驾标准80mg/L //K_MG_MV和K_ZERO为传感器校准系数,要根据每个MQ-3模块校准 #define K_MG_MV 160/60 //传感器灵敏度系数,可以自行校准 #define K_ZERO 0 //传感器零点漂移 //定义按键 sbit Key_Up = P3^6; sbit Key_Down = P3^7; //定义LED报警灯 sbit Led_Warn1 = P3^4; sbit Led_Warn2 = P3^5; //定义乙醇传感器TTL电平输出引脚 sbit DOUT = P1^4; //定义标识 volatile bit FlagStartAL = 0; //开始转换标志 volatile bit FlagKeyPress = 0; //有键弹起标志 char Threshold; //酒精浓度上限报警值 uint ALCounter; //酒精转换计时器 int ALValue; //酒精测量值 float ALtemp; //计算临时变量 uint keyvalue, keyUp, keyDown; //键值 char * pSave; //EEPROM存盘用指针 //函数声明 void Data_Init(); void Timer0_Init(); void Port_Init(); void ADC_Init(); uchar GetADVal(); void KeyProcess(uint ); (3) 各子程序 //数据初始化 void Data_Init() { ALCounter = 0; ALValue = 0; Led_Warn1 = 1; Led_Warn2 = 2; keyvalue = 0; keyUp = 1; keyDown = 1; } //定时器0初始化,中断时间约2毫秒 //计算:晶振11.0592MHz,定时器时钟11059200/12=921600,每毫秒922个脉冲 // 16位定时器初值65536-1844=63692=0xf8cc void Timer0_Init() { ET0 = 1; //允许定时器0中断 TMOD = 1; //定时器工作方式选择 TL0 = 0xcc; // TH0 = 0xf8; //定时器赋予初值,大约为2毫秒中断1次 TR0 = 1; //启动定时器 } //定时器0中断 void Timer0_ISR (void) interrupt 1 using 0 { TL0 = 0xcc; TH0 = 0xf8; //定时器赋予初值 //每1秒钟启动一次AD转换 ALCounter ++; if (ALCounter >= 500) { FlagStartAL = 1; ALCounter = 0; } } //端口初始化 void Port_Init() { P1M0 = 0x80; //10000000,P1.7作为AD输入 P1M1 = 0x80; // } //ADC初始化 void ADC_Init() 毕业设计论文 基于单片机的酒精浓度测试仪 { uint i; P1ASF = 0x80; //设P1.7为AD输入 ADC_RES = 0; //清先前的结果 ADC_CONTR|=0x80; //POWER=1,打开ADC电源 for(i=5000;i>0;i--) ; //延时 ADC_CONTR = ADC_CONTR&0xE0; //1110,0000 清ADC_FLAG,ADC_START和低3位 ADC_CONTR = ADC_CONTR&0xf8|0x07; //设置当前通道号为P1.7 for(i=2500;i>0;i--) ; //延时 } //进行AD转换,得到当前酒精值 uchar GetADVal() { uint i; ADC_CONTR&=0xf7; for(i=250;i>0;i--); //待输入电压稳定后开始转换 //ADC_RES = 0; ADC_CONTR |= 0x08; //ADC_Start=1, 启动转换 while((ADC_CONTR&0x10)==0); //等待转换结束ADC_FLAG=1 ADC_CONTR&=0xe7; //清ADC_FLAG和ADC_START位,停止转换 return ADC_RES; } //存入设定值 void Save_Setting() { pSave = (char *)&Threshold; //地址低位对应低8位,高位对应高8位 wrteeprom(0, *pSave); //存醉酒阈值低8位 DELAY(300); pSave ++; wrteeprom(1, *pSave); //存醉酒阈值高8位 DELAY(300); } //载入设定值 void Load_Setting() { pSave = (char *)&Threshold; *pSave++ = rdeeprom(0); *pSave = rdeeprom(1); if ((Threshold>=255)||(Threshold<0)) Threshold = 80; } //按键处理程序,参数为键值,1为Up键,2为Down键 void KeyProcess(uint num) { switch (num) { case 1: if (Threshold<255) Threshold++; break; case 2: if (Threshold>1) Threshold--; break; default: break; } L1602_int(2,9,Threshold); Save_Setting(); } void main() { uint i,j; 毕业设计论文 基于单片机的酒精浓度测试仪 EA = 0; Data_Init(); //数据初始化 Timer0_Init(); //定时器0初始化 Port_Init(); //端口初始化 ADC_Init(); //ADC初始化 EA = 1; L1602_init(); L1602_string(1,1,"Welcome to ALCT! "); L1602_string(2,1,"Designed by AAA "); //延时 for (i=0;i<1000;i++) for (j=0;j<1000;j++) {;} //清屏 L1602_string(1,1," "); L1602_string(2,1," "); L1602_string(1,1,"Alcohol: mg/L"); L1602_string(2,1,"Thresho: mg/L"); //载入设定值 Load_Setting(); L1602_int(2,9,Threshold); while(1) { //如果FlagStartAL标志置位,则进行AD转换 if (FlagStartAL == 1) { //酒精浓度换算,50mg/L=62.5ppm,传感器灵敏度应事先校准 ALValue = 500 * GetADVal() / 256; //8位ADC,首先得到电压值,单位10毫伏 ALValue = ALValue - K_ZERO; //首先减去零点漂移,一般是130mV if (ALValue < 0) ALValue = 0; ALValue = ALValue *K_MG_MV; //将mV转变成mg/L,K_MG_MV系数需要校准 L1602_int(1,9,ALValue); if (ALValue > Threshold) Led_Warn1 = 0; //超过阈值,则 Led_Warn1灯报警。 else Led_Warn1 = 1; FlagStartAL = 0; } //查询乙醇传感器TTL电平,该指示灯为传感器模块报警 if (DOUT == 0) Led_Warn2 =- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 单片机 酒精 浓度 测试仪
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文