




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
苏州科技学院本科生毕业设计 论文 I 基于单片机的酒精浓度测试仪设计毕业设计基于单片机的酒精浓度测试仪设计毕业设计 目 录 第 1 章 绪论 1 1 1 酒精测试仪现状和发展趋势 1 1 2 酒精浓度检测仪设计的意义 1 1 3 研究内容 2 1 4 系统总体思路 2 第 2 章 系统总体方案设计 3 2 1 总体设计 3 2 2 控制模块方案论证 3 2 3 显示模块方案论证 3 第 3 章 硬件电路设计 5 3 1 单片机电路设计 5 3 1 1 单片机介绍 5 3 1 2 STC89C52 的功能特性 6 3 1 3 STC89C52 的原理说明 6 3 2 MQ3 气体传感器 7 3 2 1 MQ 3 主要技术指标 7 3 2 2 MQ 3 结构 外形 测试电路 8 3 2 3 MQ 3 传感器调理电路 10 3 3 电源电路 11 3 4 ADC0809 11 3 5 LCD 液晶显示模块 12 3 5 1 LCD1602 显示模块技术参数 12 3 5 2 LCD602 显示模块功能 13 3 6 发光二极管显示报警电路 15 3 7 阈值存储电路 16 苏州科技学院本科生毕业设计 论文 II 3 8 系统硬件设计原理图分析 16 第 4 章软件系统的设计与实现 18 4 1 主程序设计 18 4 2 分部分软件设计 19 4 2 1 ADC 程序流程图 19 4 2 2 LCD 程序流程图 20 第 5 章 系统的调试及实验结果 21 5 1 调试步骤 21 5 1 1 按键修改酒精阈值程序 21 5 1 2 模数转换测试 21 5 1 3 液晶显示程序设计 22 5 1 4 声光报警测试 25 5 1 5 整体功能调试程序 25 5 2 实验结果 25 结 论 27 致 谢 28 参 考 文 献 29 附录 A 译文 30 STC89C51RC RD 系列 MCU 30 附录 B 外文原文 38 STC89C51RC RD SERIES MCU 38 附录 C 51 附录 a 全局变量头文件和延时模块 51 附录 b AD 转化模块 53 附录 c 24c08 存储模块 54 附录 d LCD 显示模块 59 附录 e 主函数 64 苏州科技学院本科生毕业设计 论文 1 第第 1 章章 绪论绪论 1 1 酒精测试仪现状和发展趋势酒精测试仪现状和发展趋势 汽车的发明 使世界的文明跨出了一大步 汽车产业的飞速发展使得拥有汽车 已不是遥不可及的梦 现在几乎每家每户都有汽车 汽车让人们的距离不再遥远 但交通事故却给人们带来了不可挽回的悲剧 交通事故多发的原因有很多 其中能 避免的就是由于酒后驾车引起的交通事故 中国的酒桌文化由来已久 很多人认为 自己虽然喝了酒 但是还是能掌控车辆 但是这是完全错误的 在酒精的作用下 人的大脑并不能做出正确的判断 容易错误的操控车辆 从而导致悲剧的发生 为 了从根源上遏制由于酒后驾车引发的交通事故的发生 酒精浓度检测仪的诞生便可 以方便快捷的解决这一问题 不仅如此 涉及到酒精浓度检测的食品加工 酿酒等 行业 也广泛运用酒精浓度检测仪来提高生产安全性 由于科技的飞速发展 用于 检测酒精浓度的首要元件 气体传感器越来越符合现代社会的生产需求 用来检 测酒精浓度的传感器正朝着功耗低 功能多 方便 快捷的方向发展 地球上大部 分国家使用的都是呼吸式酒精浓度检测仪 只要驾驶人员对着检测仪呼气 就可以 现场检测出驾驶员体内的酒精浓度 确定他们有没有酒后驾车 以及是否为醉酒开 车 这样就可以大大减少这种可避免的交通事故的发生 1 2 酒精浓度检测仪设计的意义酒精浓度检测仪设计的意义 进入二十一世纪以来 我国的经济发生了突飞猛进的发展 人们的生活水平越 来越高 私家车几乎成为每家每户的必备品 凡事有利有弊 有私家车的人大多生 活质量还不错 这种情况下 聚会 谈生意等场合下饮酒的可能性也相对比较大 由于驾驶员饮用大量酒精后导致驾驶人员判断力降低 不能很好的操控机动车 从 而导致非常严重的交通事故 家破人亡 惨绝人寰的事情频频发生 为什么喝酒以 后不宜开车呢 那是因为酒后驾车 由于驾驶员体内酒精浓度比较高 会使其反应 速度比较慢 对危险的评估能力比较低 因而不能对危险起到很好的控制 悲剧就 此发生 而酒精浓度检测仪可以检测出驾驶员体内的酒精浓度 从而预防驾驶员酒 后驾车 从而减少因酒后驾车导致的交通事故的发生 因此研究酒精浓度测试仪对 苏州科技学院本科生毕业设计 论文 2 这个社会的安定和谐是有重大意义的 1 3 研究内容研究内容 本论文研究的主要内容如下 1 气体传感器 本设计使用的是 MQ 3 气体传感器 主要研究 MQ 3 气体传 感器的性能特性 以及怎样将其运用到本设计中去 2 单片机 选择 STC89C52 单片机 作为控制单元 3 模数转换 模拟电压信号经放大电路被放大后 通过单片机内部的模数转 换器 将模拟电压信号变成数字电压信号 4 LCD 显示器 数码管显示器上显示其测得的酒精浓度 并与所设置的浓 度阈值进行对比 若超过阈值 则通过蜂鸣器发出报警 5 软件方面 通过对单片机的编程 最终实现数据在数码管上的显示 1 4 系统总体思路系统总体思路 设计酒精浓度检测仪首先要有一个气体传感器将乙醇的浓度变成电信号 本设 计选择的是 MQ 3 型气体传感器 该传感器灵敏度高 价格低 使用方便 是做酒 精浓度检测仪的不二之选 而传感器得到的电信号不能直接用来传输给单片机 因 此得到的信号要经过一定的电路处理 变成 0 5V 的模拟电压后方能输出 由于这 里得到的是模拟电压 要经过 A D 转换器才能将其变成数字电压 这里选用 STC89C52 单片机的好处就体现出来了 因为 STC89C52 单片机内部自带的 A D 转 换模块 无需外接转换器 这样就大大地降低了设计难度和设计成本 模拟信号通 过 A D 转换后便会输出酒精浓度的数据 把该数据与预先设定的醉酒阈值进行对比 要想实现酒精浓度值在数码管上显示或报警 就要将该该数据送到单片机的 P1 口 再通过 STC89C52 单片机进行一些软件程序的处理 苏州科技学院本科生毕业设计 论文 3 第第 2 章章 系统总体方案设计系统总体方案设计 2 1 总体设计总体设计 图 2 1 总体设计框图 本论文的第一步就是信号采集模块 即由传感器采集酒精浓度信号 然而采集 到的仅仅是模拟信号 所以要通过一个模数转换器 将原本的模拟信号转变成数字 信号 这就要求单片机内部能进行模数转换 出于这方面的考虑 就选择了 STC89C51 型单片机 这样省去了不少麻烦 单片机作为控制模块与 LCD 显示器相 连接 并通过编程 控制其显示出所测试的乙醇的浓度 同时单片机还与键盘连接 这样就能改变阈值 使所设计的酒精浓度检测仪适应多种场合需要 另外所测得的 酒精浓度与阈值做比较 当超过预设阈值时 报警器就会发出报警 2 2 控制模块方案论证控制模块方案论证 控制模块主要是由单片机来完成 单片机接收酒精浓度传感器送来的模拟数据 首先要将其变成数字量 然后通过对单片机的一系列编程 使其控制 LCD 显示器显 示酒精浓度值 同时 通过键盘改变阈值 把设置的阈值传送给单片机 这样就能 使测得的酒精浓度与实时阈值相比较 并将比较结果通过单片机传达给声光报警器 最终实现报警功能 苏州科技学院本科生毕业设计 论文 4 2 3 显示模块方案论证显示模块方案论证 显示模块选择 LCD 液晶显示器来完成 因其符合设计的需求 将单片机的 P0 口与 LCD 相连便可传输经过单片机处理的数据 使酒精浓度值在 LCD 上显示 通 过一系列编程 便能达到设计预想的结果 苏州科技学院本科生毕业设计 论文 5 第第 3 章章 硬件电路设计硬件电路设计 3 1 单片机电路设计单片机电路设计 3 1 1 单片机介绍单片机介绍 STC89C52单片机是宏晶公司生产的STC系列增强型8051单片机 这种单片机几 乎囊括了采集数据和系统控制过程中所有的单元模块 这种单片机的指令代码完全 可以兼容传统的8051单片机 这样既能使元件性能提高 又不用大费周章的重新编 写指令代码 STC89C52单片机在标准的8051基础上新增了许多实用功能 ISP IAP编程方式 6时钟 机器周期模式 内部扩展RAM 双DPTR数据指针 扩展P4口 内置看门狗电 路 多种复位方式 省电模式实现超低功耗 PCA PWM功能 相较于传统的8051功 能更加强大 其引脚图和内部结构如图3 1所示 图 3 1 STC89C52 单片机管脚图 苏州科技学院本科生毕业设计 论文 6 3 1 2 STC89C52 的功能特性的功能特性 1 内有增强型52内核 2 工作电压 3 4 5 5V 3 内部集成MAX810专用复位 使复位可靠更高 8级可选复位门槛电压 彻底省掉外部复位电路 4 低功耗设计 5 工作频率 0 35MHz 相当于普通8051 0 4205MHz 6 通用I O口 无需上拉电阻便可作为总线扩展用 但必须加上上拉电阻才 能作为I O口使用 8 UART 通用异步串行口 9 具有片上集成512字节RAM数据存储器 10 具有片内EEPROM功能 11 ISP IAP 无需编程器 仿真器便可通过串口直接下载用户程序 而且速 度非常快 12 8通道 8位逐次逼近式ADC 13 捕获 比较单元 PWM PCA 3 1 3 STC89C52 的原理说明的原理说明 图 3 2 单片机系统原理图 苏州科技学院本科生毕业设计 论文 7 STC89C52 单片机为 52 内核 8 位单片机 选择这个型号的单片机的一个重大原 因是它内部集成了 8 位多路 A D 转换模块 如图 3 2 所示 这个单片机系统原理图 适用于常用检测 该原理图中 STC89C52 占主要地位 MQ 3 传感器模块将检测电 压信号通过 AOUT 这条线送入单片机的 ADC7 端口进行处理 然后经过单片机内部 的 ADC0809 处理后 变成数字电平信号 由单片机的 P0 口送出 P0 口则与 LCD 显示器相连 通过把数据信号传送给 LCD 使其显示出测得的浓度 这样更加直观的 让使用者知道浓度的具体值 然后比较测得的酒精浓度与阈值大小 如果测得的信 号如果超出阈值 就会发出报警信号 另外上图最下方是一个时钟电路 用于产生 时钟信号 P1 0 与 P1 1 是与外部存储器相连的 这个存储器用于存储设定的阈值 这样就能更加人性化 使该设计的应用场合更加广泛 3 2 MQ3 气体传感器气体传感器 酒精浓度检测的准确性决定于其所用的传感器 而MQ 3乙醇气体传感器具有较 高的灵敏度 和较好的稳定性 可以应用用于机动车驾驶人员及其他严禁酒后作业 人员的现场检测 也用于其他场所乙醇蒸汽的检测 其技术特点为 灵敏度高 酒精浓度的细微变化 都能检测出来 对于外界的干扰具有良好的选择性 具有快速的响应恢复特性 有效工作时间比较长而且比较稳定 具有简单的驱动回路 具有信号输出指示 能够输出两路信号 TTL 输出有效信号为低电平这时可直接接单片机 苏州科技学院本科生毕业设计 论文 8 3 2 1 MQ 3 主要技术指标主要技术指标 表 3 1 MQ 3 主要技术指标 3 2 2 MQ 3 结构 外形 测试电路结构 外形 测试电路 如图 3 3 所示 是 MQ 3 传感器的内部主要结构 因其良好的特性 而且价格便宜 所以这 种传感器被广泛用于单片机学习中 和一般的电子元器件一样 它只需要 5V 电压为其供电 因 此功耗比较低 使用时应注意要预热 20s 这样更能确保其检测的准确性 图 3 3 MQ 3 气敏元件结构图 苏州科技学院本科生毕业设计 论文 9 表 3 2 MQ 3 传感器的主要组成材料表 下图3 4为MQ 3乙醇气体传感器的灵敏度曲线 其工作原理是 当酒精气体浓 度发生改变时 MQ 3的气敏电阻也随之改变 由图可以看出 该传感器的灵敏度非 常高 因此准确性也比较高 图 3 4 MQ 3 乙醇气体传感器灵敏度曲线 苏州科技学院本科生毕业设计 论文 10 3 2 3 MQ 3 传感器调理电路传感器调理电路 图3 5为MQ 3乙醇气体传感器接入电路原理图 其实物图如图3 6所示 MQ 3测 得的信号 经过一定的电路处理后 在输入单片机的A D转换模块 这样更便于单 片机处理信号 AB H 1 3 6 4 5 2 QM N10 VCCVCCVCC R3 LED C1 VCC 2 3 4 1 8 U1A R1 1 2 3 4 P1 Rp 产产产产 产产产 产产产产产产产产 R2 5V DOUT AOUT GND 图 3 5 传感器模块原理图 图 3 6 MQ 3 传感器模块实物图 本论文所设计的传感器模块为了方便与单片机系统连接组成酒精浓度检测仪 RP是用来调节阈值的 当LM393的2脚 即测得的酒精浓度信号 比3脚高时 其1脚就 会输出低电平 这时LED灯就会亮起 图中R3为限流电阻 C1为滤波电容 而且该 电路有两路信号输出 另一路是MQ 3检测到的模拟量 通过AOUT与单片机ADC7 端口相连 实现模拟信号送入A D转换模块 苏州科技学院本科生毕业设计 论文 11 3 3 电源电路电源电路 本设计采用 USB 接口供电 供电电压为 5V 当 USB 接口与电脑相连时 并不 能直接供电 而要通过内含的 PL2303 芯片的转换电路才能实现对单片机进行程序 编写 其电路原理如图所示 图 3 7 供电及程序下载电路 3 4 ADC0809 ADC0809 是 8 路 8 位逐次逼近式的 A D 转换器 该器件的主要性能如下 1 采用单一的 5v 电源逐次逼近式 A D 转换 实现 A D 转换所需要的时间极端 仅为 100s 2 分辨率为 8 位二进制码 总失调误差为1LSB 3 具有 8 通道模拟量选通开关控制 可以直接接入 8 个单端模拟量 4 转换后的数字信号采用三态逻辑 输出符合 TTL 电平 ADC0809 引脚功能如下 1 IN0 IN7 8 个模拟输入通道的输入引脚 2 D0 D7 8 位数字量输出引脚 输出转换结果 3 START 启动信号输入引脚 A D 转换由正脉冲启动 其上升沿使 ADC0809 复位 下降沿启动 A D 转换 4 ALE 地址锁存允许信号 输入 A B C3 位地址码被送入内部的地址锁存器中 以选择模拟输入通道 5 EOC 转换结束信号 输出 启动信号后经延时 使 EOC 降为低电平 待转换 苏州科技学院本科生毕业设计 论文 12 结束 恢复到高电平 6 OE 高电平允许输入 7 CLK 时钟信号 典型值为 640KHz 范围为 10KHz 1280KHz 8 和 参考电压的正负端输入引脚 其典型值为 5V REF V REF V R V R V 0V 9 和 GND 5V 的电源和地 cc V 图 3 8 模数转换 IN0 用于接收 MQ 3 传感器传来的模拟电压信号 IN1 为比较器 LM393 的电压 信号 D0 D7 用来输出转换后的数字电压信号 3 5 LCD 液晶显示模块液晶显示模块 LCD 即液晶显示器 是一种低功耗的显示器 其应用十分广泛 液晶显示器可 根据需要将电极做成各种文字 数字 图形以获得各种形态的显示 1602 是一款通用的字符型 LCD 由于其价格低 采购容易 方便控制 得到广 泛运用 1602 有 14 和 16 条引脚线两种 区别在于多了 2 条背光电源线 主要功能 有 40 通道点阵 LCD 驱动 有行驱动和列驱动两种选择 3 5 1 LCD1602 显示模块技术参数显示模块技术参数 苏州科技学院本科生毕业设计 论文 13 表 3 3 LCD1602 的主要技术参数 3 5 2 LCD602 显示模块功能显示模块功能 表 3 4 LCD1602 引脚 符号功能说明 引脚标号状态说明 Vss1接地 VDD2电源正极 5V VL3用于调整液晶显示器的对比度 RS4输入用于选择用何种寄存器 高电平时选择数据寄存器 低电平时选择指令寄存器 R W5输入读写选择 高电平时进行读操作 低电平时进行写 操作 E6输入使能端 当 E 端从高电平变成低电平 液晶模块执 行命令 D0 D77 14三态8 位双向数据 IO BLA15输入背光源正极 BLB16输入背光源负极 显示容量 16 2 个字符 芯片工作电压4 5 5 5V 最佳工作电压5 0V 最佳工作电流2 0mA 字符尺寸 2 95 4 35mm 苏州科技学院本科生毕业设计 论文 14 表 3 5 LCD1602 部分指令说明表 指令码功能 01H显示清屏 数据指针清 0 所有显示清 0 08H显示关闭 06H显示光标移动设置 0CH显示开及光标设置 02H显示回车 数据指针清 0 1602 液晶显示器要想得到广泛运用 就需要包含数字 英文字母等常见字符 要能拥有这些字符 则需有存储器存储这些字符 即有字符发生存储器 CGROM 如何将这些不同形式的字符存储到液晶显示器内 就需要一种代码 这种代码称为 ASCII 码 而且为了不造成混乱 每一个字符都有自己的专属代码 比如数字 0 的 代码是 30H 显示时模块把地址 30H 中的点阵字符图形显示出来 我们就能看到数 字 1 具体寄存器的选择控制表 3 11 有操作说明 通过对 ASCII 码赋值 实现对 LCD 显示器的操作 当然也可以直接用字符型常 量或者变量赋值 表 3 6 LCD1602 寄存器选择控制表 单片机控制 LCD 的接口电路如图 3 9 所示 其中 J2 的 3 脚为背光引脚 与 R9 和 R10 电阻连接主要为了调节背光亮度 使其不至于出现鬼影 单片机对 LCD 显 示器的控制主要通过 J2 的 4 5 6 引脚 这三个引脚为液晶显示器的 RS E W 和 E 控制引脚与单片机的 P2 5 P2 6 P2 7 相连 J2 的 7 14 引脚与单片机的 P0 0 P0 7 相连 用于传输数据 苏州科技学院本科生毕业设计 论文 15 图 3 9 LCD 与单片机接口电路 3 6 发光二极管显示报警电路发光二极管显示报警电路 图 3 10 声光报警电路 当经过 A D 转换后的数字信号值比预设的阈值大时 单片机的 P3 3 口输出低电 平 而 P3 3 口语声光报警电路相连 当其为低电平时 三级管 Q1 就会导通 那么 二极管就会发光 而且蜂鸣器也会发出蜂鸣声 当 P3 3 口输出高电平时 声光报警 电路将不能导通 不会有报警现象 3 7 阈值存储电路阈值存储电路 当对传感器模块的 Rp 进行调节时 所设立的阈值会相应的做出改变 这个值 苏州科技学院本科生毕业设计 论文 16 必须经过存储 才能用于比较大小 所以必须要有一个存储器 单片机通过 P1 0 和 P1 1 口对 EEPROM 进行编程 EEPROM 将新的阈值存储到芯片中 从而实现阈值 的重新设置 芯片 AT24C04 的 SCL 和 SDA 分别与单片机的 P1 0 和 P1 1 相连 图 3 11 EEPROM 存储电路 3 8 系统硬件设计原理图分析系统硬件设计原理图分析 图 3 12 系统硬件设计原理图 上图中 USB 接口与电脑相连 与单片机的 RXD0 口和 TXD 口相连 给单片机 苏州科技学院本科生毕业设计 论文 17 提供 5V 电源 当按下 K1 键时 电路接通 指示灯亮起 说明有供电 EEPROM 存储电路的 SCL 口和 SDA 口分别与单片机的 P1 0 和 P1 1 相连 用于存储新设定的 阈值 下面要解决的问题就是怎样把传感器测得的信号传给单片机了 传感器的两 个接口 AOUT 和 DOUT 分别与单片机的 P1 7 和 P1 4 相连 用来给单片机传输测得 的模拟电压 经过单片机内部的模数转换功能 将模拟变压变成数字电压 并将其 传送给 LCD 显示器 单片机通过 P2 7 P2 6 P2 5 与 LCD 显示器的 4 5 6 引脚相连 控制其工作 7 14 引脚分别与单片机的 P0 0 P0 7 相连 用于传输数据 苏州科技学院本科生毕业设计 论文 18 第第 4 章软件系统的设计与实现章软件系统的设计与实现 4 1 主程序设计主程序设计 图 4 1 主程序流程图 程序设计的第一步便是使系统初始化 因为本设计可以自行设定阈值 所 以只能通过中断来设定需要的阈值 如果没有中断即没有设置阈值 那么就用之前 的阈值 如果有外部中断 那么就启动设定阈值操作 另一方面 气体传感器检测 到酒精后 要经过 A D 转换模块 然后经过一系列的数据处理 得到酒精浓度值 这个值一方面要在 LCD 上显示出来 另一方面要与阈值进行对比 若大于阈值 就 要启动声光报警器 若小于阈值就不报警 程序的主要难点就在怎样得到酒精浓度 苏州科技学院本科生毕业设计 论文 19 值上面 而这项操作主要在单片机内完成的 所以本论文设计的酒精浓度测试仪 功耗低 速度快 结果准确 4 2 分部分软件设计分部分软件设计 4 2 1 ADC 程序流程图程序流程图 ADC 程序流程图 图 4 2 ADC 程序流程图 因为 A D 转换必须依靠下降沿触发才能启动 所以编程时要注意做一定的延时 通常为 10ms 再进入下一步操作 然后才进行 A D 转换 如果转换完成 就会得 到数字电压 然后经过调用数据处理程序就能够得到所测得的酒精浓度值 如果转 换未完成 则继续转换 苏州科技学院本科生毕业设计 论文 20 4 2 2 LCD 程序流程图程序流程图 图 4 3 LCD 控制流程图 在对系统进行初始化后 如果检测到该酒精浓度检测仪有外部中断 那么就可 以重新设置酒精浓度阈值 这个阈值不仅要设置 还要储存起来 以便与以后要检 测的酒精浓度进行比较 如果没有外部中断响应 那么测得的酒精浓度值还是与之 前的阈值比较 苏州科技学院本科生毕业设计 论文 21 第第 5 章章 系统的调试及实验结果系统的调试及实验结果 5 1 调试步骤调试步骤 5 1 1 按键修改酒精阈值程序按键修改酒精阈值程序 设置酒精浓度阈值的程序的思路就是 如何让单片机知道使用者正在设置阈值 这就要求检测仪要不间断地检测 一旦发现有按键被按下 就知道要修改阈值 并 且按照按键按下的次数修改 检测到的酒精浓度应与最新设置的阈值相比较 一旦 比阈值大 蜂鸣器就要工作而且指示灯要亮起 5 1 2 模数转换测试模数转换测试 A D 转换模块首先要初始化 然后将得到的关于酒精浓度的模拟量经过一系列 处理 变成数字量 而且要将其通过单片机传送到液晶显示上面 同时得到的数字 量还要与预先设立的阈值相比较 苏州科技学院本科生毕业设计 论文 22 5 1 3 液晶显示程序设计液晶显示程序设计 液晶显示器程序首先是要将其初始化 要实现其能接收单片机传来的数据 苏州科技学院本科生毕业设计 论文 23 苏州科技学院本科生毕业设计 论文 24 苏州科技学院本科生毕业设计 论文 25 5 1 4 声光报警测试声光报警测试 当测得酒精浓度超过阀值时 单片机的 P3 3 口就会变成低电平 就会激发蜂鸣 器和指示灯工作 5 1 5 整体功能调试程序整体功能调试程序 本设计分成几个部分共同完成操作 然后分别对不同的模块进行调试 最后再 进行整合 再将所有的程序放到 keil 编译器里面进行编译 编译成功后 便会生成 HEX 文件 再将改程序烧录到单片机中 然后上电便可以工作了 上电以后 所设 计的酒精浓度测试仪便会按照所设置的初始化程序工作 酒精浓度的阈值也是当初 设定的 如果酒精浓度超过该阈值 测试仪就会发出报警 如果设定酒精浓度阈值 的按键被使用者按下 则酒精浓度的阈值就会被重新设定 并被保存下来 所测得 的酒精浓度将与重新设定的阈值进行比较 如果超过阈值 就会报警 而且所测得 的酒精浓度值也会在液晶显示器上显示 5 2 实验结果实验结果 本设计是基于单片机的酒精浓度测试仪 采用模块化程序设计思想 相对来 说 结构简单 而且使用起来方便 通过硬件电路的设计和软件方面的调试 最终实现 苏州科技学院本科生毕业设计 论文 26 了酒精浓度的检测 其实验结果基本能够满足设计要求 而且通过按键 可以修 改门限值 当检测到的酒精浓度超出所设定的阈值时 就会显示所测得的酒精浓度 值 而且系统会自动报警 此次酒精测试仪的设计 在软件方面参考了一些网上的资料 在硬件方面也找 了许多书本作为参考 选用 STC89C52 单片机的主要原因是其内部含有 A D 转换功 能 这样就比较方便 而且操作起来也相对简单 刚开始设计电路时 想直接把阀 值设置为定值 直接烧进单片机的程序里 但是后来发现这样不能应用于实际 那 研究也就失去了原本的意义 于是增加了 AT24C02 用来存储阈值 并通过两个电位 键来调整阈值的大小 本次毕业设计 让我受益匪浅 我熟悉了 protel 的操作 Keil 的运用 c 语言的 知识以及单片机的使用 我相信将所学到的知识用到以后的工作中去 一定会增加 自己的砝码 在这期间我发现的自身的不足 也促使我在将来的学习工作中逐渐改 善 通过本次学习实践 我的知识能力得到了提高 也增强了我学习新知识的能力 苏州科技学院本科生毕业设计 论文 27 结结 论论 本次设计的总的方向的把握不是很难 思路很清晰 要检测浓度 首先要有传 感器 有了传感器得到模拟信号就要有模数转换 变成数字信号后 要让使用者知 道浓度具体值的大小 那就需要一个显示器 同时还要有一个评判是否酒驾的阈值 要想更具实用性 阈值得能随意改动 就需要一个存储阈值的存储器 而且需要一 个比较器 比较测得的浓度和阈值 比较结果通过报警器是否工作来实现 大体需 要哪些东西心里有数了 但是元器件的选择也是个难点 首先要准确 其次要方便 操作 同时还要功耗低 在具体电路连接时也要考虑其可操作性 电路搭建好了就 是编程 这又是一大难点 在参考了好多相关资料和老师的帮助下 终于如愿得到 了预期的效果 总的来说 通过这次设计 发现自己还有很多不足 还有很多地方 需要学习 也使我学到了很多知识 每个新知识的学习都会在以后的道路上给自己 增添底气 苏州科技学院本科生毕业设计 论文 28 致致 谢谢 首先非常感谢老师能在百忙之中抽空指导我的论文 在老师的帮助下 我由原 来对单片机不大了解的人 渐渐熟悉起来 原本也从未用过 protel 在老师的帮助下 也渐渐知道怎么用 学到了一样新的技能 我对 c 语言的知识已经忘得差不多了 在老师的帮助下也完成了软件方面的设计 要不是老师给予我的帮助 我可能根本 无法完成这次课程设计 衷心感谢老师 苏州科技学院本科生毕业设计 论文 29 参参 考考 文文 献献 1 肖金球 冯翼 增强型 51 单片机与仿真技术 M 北京 清华大学出版社 2011 22 318 2 肖金球 单片机原理与接口技术 M 北京 清华大学出版社 2004 17 128 3 周鸿武 基于单片机的酒精浓度检测仪设计 J 制造业自动化 2012 02 6 8 4 赵书红 张健健 基于单片机的酒精气体浓度测试仪的设计与制作 J 电子世界 2013 20 1 10 5 李亚梅 郝雪明 马艳玲 基于单总线技术的智能测温报警仪研制 晋中学院学报 N 2008 25 6 康华光 电子技术基础模拟部分 第五版 M 北京 高等教育出版社 2006 123 340 7 康华光 电子技术基础数字部分 第五版 M 北京 高等教育出版社 2006 10 256 8 纪宗南 单片机外围器件使用手册 输入通道器件分册 M 北京 北京航空航天大学 出版 社 2005 121 126 9 贾伯年 传感器技术 M 南京 东南大学出版社 2000 55 60 10 孙传友 温控系统原理与设计 M 北京 北京航空航天大学出版社 2002 15 27 11 何希才 传感器及其应用 M 北京 国防工业出版社 2001 36 45 12 郑学坚 微型计算机原理及应用 M 北京 清华大学出版社 2006 332 351 苏州科技学院本科生毕业设计 论文 30 附录附录 A 译文译文 STC89C51RC STC89C51RC RD RD 系列系列 MCUMCU 8 2 UART 操作模式 通过在 SFR SCON 中设置 SM0 和 SM1 可以使串口 UART 在 4 种不同模式 下工作 其中模式 1 模式 2 和模式 3 是异步通信 而在模式 0 下 UART 仅作为 一个简单的移位寄存器 8 2 1 模式 0 8 位移位寄存器 当写 0s 到 SCON 的 SM1 和 SM0 时 就会选择模式 0 使串口进入 8 位移位寄 存器模式 通过 RXD 串行数据进入和输出 TXD 口输出移位时钟 8 个数据位 最先用 LSB 发送 接收数据 波特率固定为 1 12 系统时钟周期默认值 如果相同的 情况在 STC ISP 中写 编程 波特率将为 1 6 系统时钟周期 传输是通过使用 SBUF 作为目标寄存器的指令开始的 写入 SBUF 信号也以 为着加一个 1 到发送移位寄存器的第 9 位 并通知 TX 控制模块开始传输 内部 定时是这样的 一个完整的系统时钟周期从 写 SBUF 开始到激活发送结束 SEND 把移位寄存器的输出值发送到 P3 0 的选择输出口 同时将移位时钟发送 到 P3 1 的选择输出口 在移位时钟的下降沿 移位寄存器内的数据将右移 当数据位正好把 0 从左边移到右边 当数据的 MSB 字节在移位寄存器中时 苏州科技学院本科生毕业设计 论文 31 被存到第 9 位的 1 的正好位于 MSB 的左侧 并且左边的所有位置都包含零 这 种情况下标志着 TX 控制模块做最后一次移位 然后解除 SEND 并设置 TI 这两种 行为都是在 写 SBUF 后发生的 当 REN 1 和 RI 0 时 开始接收 在那之后 RX 控制单元写 11111110 到负 责接收的移位寄存器 并在下一时钟激活接收 接收使能移位时钟到 P3 1 的选择输 出端 在接收被激活时 接收移位寄存器的内容向左移一个位置 从右侧取到的值 就是 P3 0 在移位时钟的上升沿的取样值 当把右边的数据向左侧移一位 当最初加载到移位寄存器最右边位置的 0 移 到最左边的位置 标志着 RX 控制区将做最后一次移位并加载 SBUF 然后 RECEIVE 被清除 RI 被设置 8 2 2 模式 1 8 位可变波特率的 UART 在模式 1 情况下 STC89xx 串行端口可作为一个 8 位可变波特率的 UART 或 者是 通用异步接收器 发射器 这是一个接收和发送一系列数据的设备 每个数 据字符接收和发送串行数据之前有一个起始位 低 后面是一个停止位 高 奇 偶校验位的最后一个数据位和停止位之间有时会插入相同位 UART 的一个基本操 作就是并行到串行输出数据的转换和串行到并行输入数据的转换 在模式 1 情况下 10 比特通过 TXD 传送或通过 RXD 接收 该数据帧包括一个 起始位 0 8 个数据位 LSB 在前 以及一个停止位 总是 1 对于接收操作 停止位进入在 SFR SCON 中的 RB8 波特率由定时器 1 或定时器 2 的溢出率决定 在模式 1 下的波特率 2SMOD 32 定时器 1 溢出率 或 2SMOD 16 定时器 2 溢出率 传输就是通过使用 SBUF 作为目标寄存器的指令开始 在 写 SBUF 信号也加载 一个 1 进入发送移位寄存器的 9th 位时 标志着正在发送请求 TX 控制单元 实 际上发送过程发生在 16 位计数器的下次翻转 因此 位时间与 16 计数器是同步的 而不是与 写入 SBUF 信号同步 激活 SEND 以后开始传输 这使 TXD 是起始位 一比特时间后 DATA 被激 活 这使发送移位寄存器输出到 TXD 第一个移位脉冲发生在那之后 苏州科技学院本科生毕业设计 论文 32 当数据位移到右边 零是从左边移入 当数据字节的 MSB 在移位寄存器的输出 位置 则 1 就被最初被植入 MSB 左边的第 9 位 并且所有包含零的都在左侧位置 这种情况标志 TX 控制单元将做最后一次移位 然后解除 SEND 并给 TI 置位 这发 生在第 10 除以 16 翻转在 写 SBUF 之后 通过检测 1 到 0 的转变开始接收 RXD 为了这个目的 RXD 被既定波特率的 16 倍速度采样 当检测到转换时 分逐 16 计数器立即复位 同时将 1FFH 写入输入 移位寄存器 对照其循环翻转重新划分 16 位计数器 16 位计数器将每个位时间分成 16 份 在每个位时间的第 7 第 8 和第 9 计数 状态时 位检测样品 RXD 的值 接受的值是被认为在至少 2 3 的采样的值 这样做 是为了抑制噪声 为了防止错误位 如果在第一个位时间接受的值不是 0 接收电 路就会复位 单元继续寻找另一个 1 到 0 的转变 这是为了防止错误的起始位 如 果起始位有效 则移入输入移位寄存器 继续接受该帧的其余部分 当数据位 1 从右边移出到左侧 当起始位到达移位寄存器的最左边的位置 这是在模式 1 下的 9 位寄存器 标志着 RX 控制区将做最后一次移位 载入 SBUF 和 RB8 并且设置 RI 该信号加载 SBUF 和 RB8 并设置如果 RI 生成 且仅当以下 条件满足时产生最后一个移位脉冲的时间 1 RI 0 而且 2 无论是 SM2 0 或 SM2 0 和接收到的停止位 1 如果任这两个条件不满足 接收到的数据帧都会丢失 如果两个条件都满足时 停止位进入 RB8 而 8 位数据则进入 SBUF 并且 RI 被激活 此时 在上述条件是 否得到满足 该单元继续寻找一个 1 到 0 的 RXD 过渡 8 2 3 模式 2 9 位有固定波特率的 UART 当 SM1 1 和 SM0 0 时 串行端口在模式 2 下作为一个 9 位固定波特率的 UART 11 位通过 TXD 传送或通过 RXD 接收 数据帧包括一个起始位 0 8 个 数据位 一个可编程的第 9 位数据和一个停止位 1 发送时 第 9 位来自 SCON 中的 TB8 在接收时 第 9 个数据位进入 SCON 的 RB8 波特率可编程为 1 32 或 1 64 的系统时钟周期 模式 2 下的波特率 2SMOD 64 SYSCLK 苏州科技学院本科生毕业设计 论文 33 传输是通过使用 SBUF 作为目标寄存器的指令开始 写 SBUF 信号也加载 TB8 到移位寄存器的第 9 位 并且告诉 TX 控制单元 请求发送 实际上发送过程 发生在按 16 划分的计数器的下次翻转 因此 位时间是与 16 计数器同步划分的 而不是与 写入 SBUF 信号 当 SEND 被激活 传输开始 这使 TXD 在一比特后开始 DATA 被激活 使 移位寄存器向 TXD 输出比特 第一移位脉冲在那之后发生 第一个移位时钟的 1 停止位 插入移位寄存器的第 9 位 此后 只有 0 被计时了 当数据位转移到 右边 0 从左边移入 当 TB 的数据字节在移位寄存器的输出位置时 停止位刚 好在 TB8 的左边 并且所有的位置都在包含 0 的左边 这种情况标志 TX 控制单 元将做最后一次移位 然后停用 SEND 并置位 TI 这发生在 写 SBUF 的 16 次翻 转中的第 11 次 在 RXD 检测 1 到 0 的转变开始接收 为了这个目的 RXD 被的任何波特率 16 倍采样 无论波特率是否确定 当检测到转换时 分逐 16 计数器立即复位 同时将 1FFH 写入输入移位寄存器 在每个位时间的第 7 第 8 和第 9 计数状态时 都要对 RXD 的值进行位检测 只有 2 3 的采样值被接受 这样做是为了抑制噪声 为了防止错误位 如果在第一 个位时间接受的值不是 0 接收电路复位 单元继续寻找另一个 1 到 0 的转变 如 果起始位有效 则移入输入移位寄存器 继续接受该帧的其余部分 当数据位从右边进来 1 移出到左侧 当起始位到达移位寄存器的最左边的位 置 这是一个模式 2 和 3 下的 9 位寄存器 它标志着 RX 控制区将做最后一次移 位 加载 SBUF 和 RB8 并且设置 RI 该信号加载 SBUF 和 RB8 并设置如果 RI 生成 且仅当以下条件满足时产生最后一个移位脉冲时间 1 RI 0 而且 2 无论是 SM2 0 或接收到的第 9 位数据 1 如果这两个条件任一个不满足 接收到的数据帧都会丢失 如果两个条件都满 足时 停止位进入 RB8 前 8 位数据则进入 SBUF 并且 RI 被激活 这时 上述条 件是否被满足 该单元继续寻找 1 至 0 的 RXD 输入转换 需要注意的是接收到的停止位的值与 SBUF RB8 或 RI 无关 苏州科技学院本科生毕业设计 论文 34 8 2 4 模式 3 9 位可变波特率的 UART 模式 3 9 位可变波特率的 UART 除了波特率是可变的 其他和模式 2 是一 样 模式 3 下的波特率 2SMOD 32 x 定时器 1overflow 率 或 2SMOD 16 定时器 2 溢出率 在四种模式中 传输是通过使用 SBUF 作为目标寄存器的指令开始 当 RI 0 和 REN 1 时 在模式 0 下开始接收 如果 REN 1 且输入的起始位 1 是到 0 的过 渡 那么在其他模式下启动一次接收 8 3 帧错误检测 当用于帧错误检测时 UART 会在通讯丢失停止位 如果缺少位将设置 SCON 寄存器的 FE 位 FE 位股 SCON 7 位和 SM0 SCON 7 的功能由 PCON 6 SMOD0 决定 如果 SMOD0 被设置 那么 SCON 7 的功能是 FE SCON 7 的功能是 SM0 当该位用来作为 cleared When FE SCON 7 只能由 software Refer 清除下图 8 4 多机通信 模式 2 和 3 对 multiproceasor 通信的特殊规定 在这些模式中 9 位数据被接收 第 9 位进入 RB8 接着进来一个停止位 该端口可以进行编程 这样当收到停止位 后 串口中断将仅当 RB8 1 此功能是通过设置位 SM2 SCON 中启用激活 一种 方法要使用此功能在多处理器系统如下 当主处理器要数据块传输到某一台从机时 首先发送一个地址字节以识别目标 从机 地址字节不同于数据字节的第 9 位为 1 的地址字节和 0 byte With SM2 1 数 据 从没有将一个数据字节中断 地址字节 但是 将中断所有从机 这样每个从 机可以检查接收到的字节 看看它是否正在 addressed The 寻址的从机将清零 SM2 位 并准备接收数据字节将到来 那些没有被 ING 的奴隶解决离开 SM2S 设置 并 继续他们的工作 忽略进来的数据字节 SM2 在模式 0 中没有任何影响 并且在模式 1 可以用来检测停止位的有效性 在接收模式 1 中 如果 SM2 1 接收中断不会被激活 除非 vatid 停止位被接收 8 5 自动地址识别 苏州科技学院本科生毕业设计 论文 35 自动地址识别是一个未来的 它允许 UART 使用硬件进行比较 识别串行比特 流特定的地址 此功能通过省去软件来检测通过串行端口每串行地址节省了大量的 软件开销 该功能通过设定 SCON 的 SM2 位来开启 在 9 位 UART 模式 模式 2 和模式 3 接收中断标志 RI 当接收的字节中包含 给定 地址或 广播 地址 会被自动设置 在 9 位模式下要求第 9 个信息位为 1 以指示所接收的信息是地 址而不是数据 8 位模式 即模式 1 下 如果 SM2 已启用 收到的信息有一个有效的停止位后 的 8 位地址和信息是一个给定或广播 address Mode 0 RI 标志将被设置是移位寄存器 模式 SM2 被忽略 使用自动地址识别功能可以让一个主机选择性的同一个或多个从机通过调用给 定的从机地址或地址进行通信 所有从机可以使用广播地址可以联系 两个特殊功 能寄存器用来定义从机地址 SADDR 和地址屏蔽 SADEN SADEN 用于定义这些 都是 SADDR 位要使用的 哪些位是 不关心 SADEN 屏蔽可以逻辑与 SADDR 打造的 给定 地址 主机使用该地址对每一从机 使用给定地址允许扣除其多个 从机被认可 下面的例子就显示了该方案的通用性 在前面的例子中 SADDR 是相同的 而 SADEN 数据被用于在两个从站之间进 行区分 从机 0 要求在 0 位是 0 而忽略位 1 从机 1 需要一个 0 位和 1 位 0 被忽略 一个独特的地址从 0 将是自 11000010 从机 1 需要一个 0 位 1 唯一地址从 1 是 11000001 因为一个 1 位 0 将排除从 0 奴隶都可以在选定的由具有位 0 0 从机 0 和位 1 0 用于药膏 1 一个地址同一时间 因此 既可以解决与 11000000 在一个更复杂的系统以下可用于从机 1 和 2 而不会从 0 另外 在上述实施例中的 3 从站的分化是在较低的 3 个地址 bits Slave 0 要求的 bit0 0 它可以通过 11100110 从机 1 被唯一寻址要求位 1 0 它可以由 11100101 被唯一寻址从机 2 要求位 2 0 和其唯一地址是 11100011 要选择药膏 0 和 1 不包 含从属 2 使用地址 11100100 由于有必要使位 2 1 以排除从 2 广播地址为每个从由 SADDR 和 SADEN 服用逻辑或创建的 在这个结果零趋 于为不用管它 在大多数的关心 解释不用管它因为那些 广播地址为 FFH 苏州科技学院本科生毕业设计 论文 36 复位时 SADDR 和 SADEN 都含有 0 这将产生的所有 不用管它 以及广 播地址的所有的 无关 一个给定的地址 这样有效地禁止了自动寻址模式 允许 微处理器使用标准 80C51 型 UART 驱动器不使用此功能 例如 写一个程序 不断 发送缓冲器发送字符 如果输入的字符在串行端口上检测 将它们存储在接收缓冲 区起始于内部 RAM 的位置 50H 假设 STC89C51RC RD 系列单片机串口已在模 式 1 初始化 当定时器 1 作为波特率发生器 定时器 1 的中断应该在此应用程序被禁用 定 时器本身可针对 定时器 或 cormter 操作进行配置 并且在任何的三种运行模 式中 8 6 波特率和演示程序 波特率在模式 0 是固定的 模式 0 波特率 12 SYSclk 波特率在模式 2 取决于位 SMOD 的特殊功能寄存器 PCON 的价值 如果 SMOD 0 这是复位值 波特率 1 64 的系统时钟周期 如果 SMOD 1 波特率 为 1 32 系统时钟周期 模式 2 波特率 SYSCLK SYSCLK 在 STC89xx 系列 波特率在模式 1 和 3 是由定时器 1 或定时器 2 溢出 rate The 波特率模式确定 1 和 3 是固定的 模式 1 3 波特率 2SMOD 32 定时器 1 溢出率 2SMOD 32 2 定时器溢出率 定时器 1 溢出率 SYSCLK 12 256 TH1 定时器 2 溢出率 SYSCLK 655
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国大陆地区早期诊断骨质疏松症及干预阈值探讨
- 解读2021入团积极分子团课服务国家服务人民学习解读
- 认识与实践十分钟
- 物流专业面试常见问题与答案精 编
- 环保行业求职面试经典题库
- 循环结构细致讲解
- 2026届北京市西城外国语学校高一化学第一学期期中质量检测试题含解析
- 企业筹资名词解读
- 水彩笔画教程讲解
- 月相变化教学讲解
- 华师大版(新)七年级上册数学全册教案(教学设计)及教学反思
- 近几年大学英语四级词汇表(完整珍藏版)
- GB/T 4857.17-2017包装运输包装件基本试验第17部分:编制性能试验大纲的通用规则
- GB/T 23469-2009坠落防护连接器
- GB/T 13477.11-2017建筑密封材料试验方法第11部分:浸水后定伸粘结性的测定
- 语文课程与教学论课件
- LTD2100探地雷达技术培训探测过程课件
- CCU二月份理论考试试题
- 医疗器械生产质量管理标准标准教材
- Q∕GDW 12106.3-2021 物联管理平台技术和功能规范 第3部分:应用商店技术要求
- Q∕GDW 10799.7-2020 国家电网有限公司电力安全工作规程 第7部分:调相机部分
评论
0/150
提交评论