毕业设计说明书(范文).pdf_第1页
毕业设计说明书(范文).pdf_第2页
毕业设计说明书(范文).pdf_第3页
毕业设计说明书(范文).pdf_第4页
毕业设计说明书(范文).pdf_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 目录目录 1 引言 1 2 方案论证 1 2 1 方案一 2 2 2 方案二 2 2 3 方案三 2 2 4 方案的比较与论证 3 3 分电路设计与论证 3 3 1 单片机电路 3 3 1 1 单片机开发流程 4 3 1 2 单片机的选择 4 3 2 信号采集电路 4 3 2 1AD 转换器的分类 5 3 2 2ADC0809 芯片简介 5 3 3 信号采样电路 5 3 4 信号转换电路 5 3 5 发光二极管显示报警电路 9 3 6 数码显示电路 11 3 7 系统显示电路图 12 4 软件设计 12 4 1 程序流程 13 4 2 程序代码编写 14 4 3 程序 18 4 3 1 主程序 18 4 3 2 各子程序 24 5 软硬件系统的调试 26 6 附录 35 7 参考文献 38 1 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 基于单片机的酒精探测仪设计基于单片机的酒精探测仪设计 摘摘 要要 随着社会经济的发展 人们生活水平的提高 酒精泄露的检测 监控以及对酒后驾车的监测对居 民的人身和财产安全都是必不可少的 居民的生活档次提高 应酬也必不可少 这也导致酒后驾车造成 的交通事故也频频发生 关键词 关键词 酒精探测仪 方案设计 电路 硬件 调试 1 引言1 引言 从工厂企业到我们的日常生活 酒精泄露的检测 监控以及对酒后驾车的监测对居民 的人身和财产安全都是十分重要且必不可少的 同时 随着经济的高速发展 人民的生活 水平也越来越高 越来越多的人有了自己的私家车 当然应酬也就必不可少 而酒后驾车 造成的交通事故也频频发生 一般酒后驾车的危害有 1 触觉能力降低 饮酒后驾车 由于酒精的麻醉作用 人的 手 脚的触觉较平时降低 往往无法正常控制油门 刹车以及方向盘 2 判断能力和操作 能力降低 饮酒后 对光 声刺激反应时间延长 本能反射动作的时间也相应延长 感觉 器官和运动器官如眼 手 脚之间的配合功能发生障碍 因此 无法正确判断距离 速度 3 视觉障碍 饮酒后可使视力暂时受损 视像不稳 辨色能力下降 因此不能发现和正确 领会交通信号 标志和标线 同时饮酒后视野大大减小 视像模糊 眼睛只盯着前方目标 对处于视野边缘的危险隐患难以发现 易发生事故 4 心理变态 在酒精的刺激下 人有 时会高估自己 对周围人的劝告常不予理睬 往往干出一些力不从心的事 5 疲劳 饮酒 后易困倦 表现为形势不规律 空间视觉差等疲劳驾驶的行为 如今 由于人们安全意识 增强 对环境安全性和生活舒适性要求的提高 再加上气体传感器向低功耗 多功能 集 成化方向的发展 因此 酒精探测仪具有十分广阔的现实市场和潜在的市场要求 2 方案论证2 方案论证 2 1 方案一方案一 采用主动呼气式酒精探测仪 框图如图 2 1 所示 酒精 传感器 放大 检 波 指示模块 89C 2051 话筒 温度传感器 启动信号 报警模块 继 电 器 点火 装 置 大 灯 喇 叭 图 2 1 方案一原理框图 2 2 方案二方案二 采用先进的超低功耗 16 位微处理控制器 采用电化学酒精传感器 高可靠 高精度 LCD 液晶显示 美观清晰 精简式键盘操作 极佳人机交互界面 声光报警信息 报警点可调 预热时间短 响应恢复迅速 框图如图 2 2 所示 1 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 电压变换电路 点火控制装置 MSP43F149 单片机 汽车供电 系统 2 图 2 2 方案二原理框图 2 3 方案三方案三 利用气体传感器遇到酒精气体后 阻值发生变化 所要测的电压发生相应的 变化的特点设计电路 将变化的电压值送 LM3914 放大比较 驱动相应的发光二极管发光 显示酒精浓度的高低 单片机不断采集经 ADC0809 模数转换后变化的电压值 经数据处理 交数码管显示 框图如图 2 3 所示 图 2 3 方案三原理框图 2 4 方案的比较与论证 方案一方案一 应用了快速预热的酒精传感器 只有当预热完成时方可进行检测 而且本设计 最大特点是防止驾驶员逃避检测 系统设置一个话筒及一个温度传感器作为呼气检测模 块 呼气时 话筒电流会发生变化 同时口腔呼出的气体应该比环境温度高 温度传感器 会检测到温度上升 只有这两个条件全部满足 才可被视为呼气确认 所以 该方案比较 滤波电路 调理放大 超高灵敏度 酒精传感器 单片机内置 12 位 A D 监控复位 JTAG 接口 键盘设定 LED 液晶显示 声光报警 酒精 气敏传感器 LM3914 发光二极管 A D 转换 单片机 数码管 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 3 麻烦 方案二方案二 采用电化学酒精传感器 虽然报警点可调 预热时间短 响应恢复迅速 但仪 器比较先进 成本较高 所以该方案不适合 方案三方案三 该方案设计简单 电路简单 现象观察也比较容易 因此 我选择方案三 3 分电路设计和论证 3 分电路设计和论证 3 1 单片机电路 3 1 1 单片机开发流程 1 可行性调研 可行性调研的目的 是分析完成这个项目的可行性 进行这方面 的工作 可参考国内外有关资料 看是否有人进行过类似的工作 如果有 则可分析他人 是如何进行这方面工作的 有什么优点和缺点 有什么值得借鉴的 如果没有 则需要做 进一步的调研 此时的重点应放在能否实现这个环节 首先从理论上进行分析 探讨实现 的可能性 所需求的客观条件是否具备 然后结合实际情况 再决定能否立项的问题 2 系统总体方案设计 在进行可行性调研后 热锅可以立项 下一步工作就是系 统总体方案的设计 工作的重点应放在该项目的技术难度上 此时可参考这一方面更详细 更具体的资料 根据系统的不同部分和要实现的功能 参考国内外同类产品的性能 提出 合理而可行的技术指标 编写出设计任务书 从而完成系统总体方案设计 3 设计方案细化 确定软硬件功能 一旦总体方案确定下来 下一步的工作就是 将该项目细化 即需明确哪些部分用硬件来完成 哪些部分用软件来完成 由于硬件结构 与软件方案会相互影响 因此 从简化电路结构 降低成本 减少故障率 提高系统的灵 活性与通用性方面考虑 提倡软件能实现的功能尽可能由软件来完成 但也应考虑软件代 硬件的实质是以降低系统的实时性 增加处理进行为代价的 而且软件费用 研制周期也 将增加 因此系统的软硬件功能分配应根据系统的要求及情况而合理安排 同一考虑 4 一个单片机应用系统经过调研 总体设计 硬件软件设计 制版 元件安装后 在系统的程序存储器中放入编制好的应用程序 系统即可运行 但一次性成功的几乎是不 可能的 由于单片机在执行程序时人工是无法控制的 为了能够调试程序 检查硬件 软 件运行情况 这就需要借助某种开发工具模拟用户实际的单片机 并且能随时观察运行的 中间过程而不改变运行中有的数据性能和结果 从而进行模拟现场的真实调试 3 1 2 单片机的选择 目前使用最为广泛的 MCS 51 系列 8 位单片机为研究对象 介绍单片机的硬件结构 工作原理及应用系统的设计 Atmel 公司的 MCS 系列单片机是目前最受用户欢迎的单片机 它提供了丰富的外围接 口和专用控制器 例如电压比较 USB 控制 MP3 解码及 CAN 控制管 Atmel 公司还把 ISP 技术集成 MCS 51 系列单片机中 使用户能够方便地改变程序代码 从而方便的进行系统 调试 Atmel 公司应用最为广泛的 89 系列单片机的特点如下 1 内部含有 Flash 存储器 在系统的开发过程中可以十分容易地进行程序的修改 大大 缩短了系统的开发周期 同时 在系统工作过程中 能有效地保存一些数据信息 即使外 界电源损坏也不影响信息的保存 2 和 80C51 插座兼容 89 系列单片机的引脚与 80C51 是一样的 所以 当用 89 系列单 片机取代 80C51 时 只要封装相同就可以直接进行代换 3 静态时钟方式 89 系列单片机采用静态时钟方式 可以节省电能 这对于降低便携式 产品的功耗十分有用 4 可进行反复系统试验 用 89 系列单片机设计的系统 可以反复进行系统试验 每次试 验可以编入不同的程序 这样可以保证用户的系统设计达到最优 而且按用户的需要 还 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 4 可以进行修改 使系统能不断满足用户的需求 为了节约成本 在满足系统需要的前提下可以选用 DIP20 封装的 2051 系列芯片 例 如 AT89C2051 该系列单片机是一个低电压 高性能的 CMOS 8 位单片机 与 MCS 51 指令系 统完全兼容 片内 2KB 的 Flash 程序存储器可反复擦写 包含一个模拟比较放大器 具备 可用软件设置的系统睡眠 省电功能 可通过 RAM 定时 计数器 串行口和外中断方式唤 醒 系统唤醒后即可进入继续工作状态 在省电模式下 片内 RAM 将被冻结 时钟停止振 荡 所有功能停止工作 直至系统被硬件复位方可继续运行 具有在系统编程ISP功能的MCS 51系列单片机是目前选用较多的型号 例如AT89S51 AT89S52 等 无须专用的仿真器或编程器 只要通过相应的 ISP 软件 就可以对单片机程 序存储器 Flash 中的代码进行反复下载测试 为单片机使用者提供极大的方便 综上 因此选择单片机 AT89S51 3 2 信号采集电路 3 2 1 AD 转换器的分类 1 积分型 如 TLC7135 积分型 AD 工作原理是将输入电压转换成时间 脉冲宽度信号 或频率 脉冲频率 然后由定时器 计数器获得数字值 其优点是用简单电路就能获得高分辨率 但缺点是由 于转换精度依赖于积分时间 因此转换速率极低 初期的单片 AD 转换器大多采用积分型 现在逐次比较型已逐步成为主流 2 逐次比较型 如 TLC0831 逐次比较型 AD 由一个比较器和 DA 转换器通过逐次比较逻辑构成 从 MAB 开始 顺序 的对每一位将输入电压与内置 DA 转换器输出进行比较 经 n 次比较而输出数字值 其电 路规模属于中等 其优点是速度较高 功耗低 在低分辨率 12 位 时价格很高 3 并行比较型 串并行比较型 如 TLC5510 并行比较型 AD 采用多个比较器 仅作一次比较而实行转换 又称 Flash 型 由于转 换速率极高 n 位的转换需要 2n 1 个比较器 因此电路规模也极大 价格也高 只适用于 视频 AD 转换器等速度特别高地领域 串并行比较型 AD 结构上介于并行型和逐次比较型之间 最典型的是由 2 个 n 2 位的 并行型 AD 转换器配合 DA 转换器组成 用两次比较实行转换 所以称为半快速性 还有分 成三步或多步实现 AD 转换的叫做分级型 AD 而从转换时序角度又可称为流水线型 AD 现 代的分级型 AD 中还加入了对多次转换结果作数字运算而修正特性等功能 这类 AD 速度比 逐次比较型高 电路规模比并行型小 4 电容数组逐次比较型 电容数组逐次比较型 AD 在内置 DA 转换器中采用电容矩阵方式 也可称为电荷再分配 性 一般的电阻数组 DA 转换中多数电阻的值必须一致 在单芯片上生成高精度的电阻并 不容易 如果用电容数组取代电阻数组 可以用低廉成本制成高精度单片 AD 转换器 最 近的逐次比较型 AD 转换器大多为电容数组式的 5 压频变换型 如 AD650 压频变换型是通过间接转换方式实现模数转换的 其原理是首先将输入的模拟信号转 换成频率 然后用计数器将频率转换成数字量 从理论上讲这种 AD 的分辨率几乎可以无 限增加 只要采样的时间能够满足输出频率分辨率要求的累积脉冲个数的宽度 其优点是 分辨率高 功耗低 价格低 但是需要外部计数电路共同完成 AD 转换 综上 因此选用 ADC0809 3 2 2 ADC0809 芯片简介 ADC0809 的工作过程是 首先输入 3 位地址 并使 ALE 1 将地址存入地址锁存器中 此地址经译码 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 3 3 信号采样电路 信号的采样模块电路如图 3 1 所示 MQ 3 的加热电阻两端即 H 引脚接至 5V 直流稳压 电源 用于电阻丝对敏感体电阻的加热 MQ 3 的两个 A 引脚相连 作为敏感体电阻的一个 电极 MQ 3 的两个 B 引脚也连在一起 作为敏感体电阻的另一个电极 将电极断 A 接到电 源正极 电极端 B 接两个 270 欧姆并联的电阻 MQ 3 型气敏传感器与电位器串联构成分压电路 采样点为电位器的分压 MQ 3 型气 敏传感器的敏感部分是由金属氧化物SnO2的N型半导体微晶烧结层构成 当其表面吸附有被 测气体酒精分子时 表面导电电子比例就会发生变化 从而其表面电阻会随着被测气体浓 度的变化而变化 由于这种变化是可逆的 所以能重复使用 当气敏传感器的敏感体电 阻阻值发生改变时 对应的电位器的分压值也会发生相应的变化 即一个电压值对应着一 个被测酒精气体浓度 对酒精气体浓度的采样就可以转化为对电位器分压的采样 在采样硬件电路中实际要考虑到 MQ 3 的实际技术参数 即加热电阻和敏感体电阻的 大小 该部分应与电源正极相连 负载电阻要根据 MQ 3 实际的技术参数而选择阻值合适 的电阻 应为实验所用的 MQ 3 在预热 5 到 10 分钟后 它的敏感体电阻只有 120 千欧姆 所以负载电阻选用两个 270 欧姆并联 构成采样部分的分压电阻 图 3 1 采样模块电路 3 4 信号转换电路 单片微机是单片微型计算机的译名简称 在国内也常称 单片微机 或 单片机 它包括中央处理器 CPU 随机存储器 RAM 只读存储器 ROM 中断系统 定时器 计数器 串行口和 I O 口等等 现在 单片机已不仅仅指单片计算机 还包括微计算机 微处理器 微控制器和嵌入式控制器 单片微机已是它们的俗称 AT89S51 是美国 ATMEL 公司生产的低功耗 高性能 CMOS 8 位单片机 片内含 4K 的可 系统编程的 flash 只读程序存储器 器件采用 ATMEL 公司的高密度 非易失性存储技术生 产 兼容标准 8051 指令系统及引脚 它集 flash 程序存储器 即可在线编程也可以用传 统方法进行编程及通用 8 位微处理器于单片芯中 可灵活应用于各种控制领域 AT89S51 提供以下标准功能 4KBflash 闪存存储器 128B 内部 RAM 32 个 I O 口线 看门狗 两个 5 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 数据指针 两个 16 位定时 计数器 一个 5 向量两级中断结构 一个全双工串行通信口 片内振荡器及时钟电路 根据实际需要 本次设计选用的是 8051 为核心单元 Atmel 公司的低耗 AT89S51 单片 机 AT89S51 芯片有 40 条引脚 采用双列直插式封装 如图 3 2 所示 下面说明各引脚的 功能 图 3 2 单片机引脚图 VCC 运行和程序校验时接电源正端 GND 接地 XTAL1 输入到单片机内部振荡器的反相放大器 XTAL2 反相放大器的输出 输入到内部时钟发生器 P0 口 8 位漏极开路的 使用片外存储器时 作低八位地址和数据分时复用 能驱动 8 个 LSTTL 上拉电阻 P1 口 8 位 准双向 I O 口 P2 口 8 位 准双向 I O 口 使用片外存储器 ROM 及 RAM 时 输出高 8 位地址 可以驱动 4 个 LSTTL 负载 P3 口 8 位 准双向 I O 口 具有内部上拉电路提供各种替代功能 P3 0 RXD 串 行口输入口 P3 1 TXD串行口输出口 P3 2 INT0 外部中断0输入 P3 3 INT1 外部中断 1 输入 P3 4 T0 定时器 计数器 0 的外部输入 P3 5 T1 定时器 计数器 1 的外部输入 P3 6 WR 低电平有效 输出 片外存储器写选通 P3 7 低电平有 效 输出 片外存储器读选通 RST 复位输入信号 高电平有效 在振荡器工作时 在 RST 上作用两个机器周期以 上的高电平 将器件复位 EA VCC 片外程序存储器访问允许信号 低电平有效 高电平时选择片内程序存 储器 低电平时程序存储器全部在片外而不管片内是否有程序存储器 ALE PROG 地址锁存允许信号 输出 ALE 以 1 6 的振荡频率固定速率输出 可作为对 外输出的时钟或用作外部定时脉冲 单片机最小系统的设计包括电源 晶振和复位电路三个部分 这是使单片机正常工作 的必要外围电路部分 针对不同型号的单片机在最小系统设计上会有一些差别 对于选用 的 AT89S51 单片机 根据美国 ATMEL 公司提供的技术资料 可以对它的最小系统作恰当的 设计 对于电源部分 技术资料中性能参数里给出的标准工作电压是 4 0 到 5 5V 因此 单片机的引脚 40 对应的 VCC 接到 5V 电源的接地端 为 AT89S51 单片机提供正常的工作电 6 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 压 对于晶振部分 AT89S51 单片机中有一个用于构成内部振荡器的高增益反相放大器 引脚 19 对应的 XTAL1 和 18 对应的 XTAL2 分别是该放大器的输入端和输出端 这个放大器 与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器 如图所示 石英晶体 及电容 C1 和 C2 接在放大器的反馈回路中构成并联谐振电路 石英晶体的两端分别接到引 脚 XTAL1 和引脚 XTAL2 同时石英晶体的两端分别接一个电容 C1 和 C2 电容的另一端接 地 对于外接电容 C1 和 C2 的大小虽然没有十分严格的要求 但电容容量的大小还是会对 振荡频率的高低 振荡器工作的稳定性 起振的难易程度和温度稳定性带来一定的影响 根据技术资料的推荐 使用石英晶体推荐电容容量为 30PF 10PF 使用陶瓷谐振器推荐电 容容量为 40PF 10PF 因为电路中接的是石英晶体 所以设计中接的两个电容 C1 和 C2 的 容量都为 33PF 对于复位电路部分 AT89S51 技术资料给出 当振荡器工作时 RST 引脚出现两个机 器周期以上的高电平将使单片机复位 复位是单片机的初始化操作 当由于程序运行出错 或操作错误使系统处于死锁状态时 为了摆脱困境 可以按复位键以重新启动 所以复位 电路的设计很有必要 复位操作有上电自动复位 按键点评复位和外部脉冲复位三种方式 本设计选用按键电平复位方式 如图 3 3 所示 10UF 的电容 C3 与 270 欧姆的电阻并联后 再与一个 10 千欧姆的电阻串联 电容的正极端接到电源正极 电容的另一端接至引脚 RST 设计中选用的石英晶体大小为 11 0952MHZ 但复位键按下后 电容和电阻选用的参数值能 够保证给复位端 RST 提供大于 2 个机器周期的高电平复位信号 图 3 3 复位电路图 ADC0809 是 CMOS 单片型逐次逼近式 A D 转换器 内部结构如图 它由 8 路模拟开关 地址锁存与译码器 比较器 8 位开关树型 A D 转换器 逐次逼近寄存器 三态输出锁存 器等其他一些电路组成 因此 ADC0809 可处理 8 路模拟量输入 且有三态输出能力 既 可与各种微处理器相连 也可单独工作 输入输出与 TTL 兼容 ADC0809 的工作过程是 首先输入 3 位地址 并使 ALE 1 将地址存入地址锁存器中 此 地址经译码选通 8 路模拟输入之一到比较器 START 上升沿将逐次逼近寄存器复位 下降 沿启动 A D 转换 之后 EOC 输出信号变低 指示转换正在进行 直到 A D 转换完成 EOC 变 7 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 8 为高电平 指示 A D 转换结束 结果数据已存入锁存器 这个信号可用作中断申请 当 OE 输入高电平时 输出三态门打开 转换结果的数字量输出到数据总线上 当检测到酒精气味时 气体传感器的 A B 间电阻变小 则 AD0809 的模拟输入端 IN0 的电 压变大 采用查询方式低输入模拟信号进行 A D 转换 然后将数据通过三位八段数码管显 示 表 3 1 三位八段数码管显示表 ADDC ADDB ADDA 选通通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 ADC0809 芯片内部没有时钟脉冲冲源 可以用单片机提供的地址锁存控制输入信号 ALE 经 D 触发器二分频后 作为 ADC0809 的时钟输入 ALE 端信号的频率是单片机时钟频率的 1 6 单片机的时钟频率是 11 0952MHZ 则 ALE 端输出信号的频率为 1 8492MHZ 再二分 频后为 0 9246HZ 符合 ADC0809 对时钟频率的要求 由于 ADC0809 具有三态输出数据锁存 器 其 8 位数据输出端可以直接与数据总线相连 地址选通端 ADDA ADDB ADDC 分别与单 片机地址总线的低三位 A0 A1 A2 相连 用于选通 IN0 IN7 中的某一通道 由于 ALE 和 START 连在一起 ADC0809 在锁存通道地址的同时启动 A D 转换 在读取 A D 转换结果时 OE 产生的正脉冲信号用于打开三态输出锁存器 ADC0809 的 EOC 信号与单片机的 P3 3 相 连 作为 A D 转换是否结束的状态信号供单片机查询 ADC0809 与 AT89S51 单片机的接口电路如图 3 4 所示 单片机引脚 P3 6 与 P2 7 经过 或非门后于模数转换芯片的 ALE 端和 START 端子用导线相连接 用于对模数转换芯片写入 数据的写信号 单片机的 RD 端 P3 7 与 P2 7 经过或非门后于模数转换芯片的 OE 端子用导 线相连接 作为单片机读取模数转换数据的读信号 单片机引脚 P3 3 与模数转换芯片的 EOC 端经过或非门后的输出端用导线相连接 用于单片机对模数转换是否结束的查询 模 数转换结束后可以查询到 P3 3 为高电平 为单片机读取数据作准备 单片机的 ALE 端口 接到 D 触发器的时钟信号输入端 CK D 触发器的反相输出端与触发信号输入端用导线相连 D 触发器的清零和复位端为低电平有效 分别接高 7777 电平 D 触发器的正向输出端与模 数转换芯片的 CLK 端子用导线相连接 为模数转换芯片提供正常的时钟信号 把模数转换 芯片的 A2 A1 A0 端分别用导线连接到地址锁存器的低三位 用于选择模数转换的通道 模数转换芯片的 IN0 端子用导线与信号采样部分的负载电阻端相连 作为要模数转换的输 入端 单片机引脚P0 0 P0 7连接到模数转换芯片的数据输出端D0 D1 D2 D3 D4 D5 D6 D7 端 用于读取数模转换后的数据 地址锁存芯片 74LS373 的输入端低三位分别与单片机引 脚 P0 0 P0 2 连接 用于锁存选择模数转换通道的地址 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 9 图 3 4 ADC0809 与单片机 AT89S51 接口电路 3 5 发光二极管显示报警电路 放光二极管集成驱动芯片 LM3914 的管脚图如图 3 5 所示 其内部的缓冲放大器最大 限度的提高了该集成电路的输入电阻 5 脚 电压输入信号经过缓冲器 增益为零 同时 送到 10 个电压比较器的异相输入端 10 个电压比较器的同相输入端分别接到 10 个等值电 阻 1K 欧姆 串联回路的 10 个分压端 因为与串联回路相接的内部参考电压为 1 2V 所 以相邻分压端之间的电压差为 1 2V 10 0 12V 为了驱动 LED1 发光 集成电路 LM3914 的 1 脚输出应该为低电平 因此要求电压比较器异相端的输入电压应大于 0 12V 同理 要 使 LED2 发光 异相端输入电压应大于 0 12 2 0 24V 要使 LED10 发光 异相端输入电压应 大于 0 12 10 1 2V LM3914 的 9 脚为点 条方式选择端 当 9 脚与 11 脚相接为点状显示 当 9 教与 3 脚 相接 则为条状显示 本系统采用条状显示方式 即将引脚 9 与引脚 3 都接到电源的正极 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 图 3 5 LM3914 管脚图 如图 3 6 所示 LM3914 的 3 脚与 9 脚接电源正极 使发光二极管成柱状显示 7 和 8 脚接一个 2K 的电阻 控制发光二极管的亮度 5 脚为采样信号的输入端 10 到 18 脚和 1 脚分别接发光二极管的负极端 4 和 2 脚与发光二极管的正极间接一个 10UF 的电容 作为 发光二极管的虚电源 驱动要反光的二极管点亮 当检测到酒精气味时 气体传感器的 A B 间电阻变小 LM3914 的 5 端电位升高 通过 比较放大 驱动发光二极管依次发光 从而区分出酒精含量的高低 直观的看出所测的酒 精浓度达到了哪个水平值 起到报警的作用 输入灵敏度可以通过负载电阻的调节来实现 即对地电阻调节小时灵敏度下降 反之 灵敏度增加 改变 7 脚与 8 脚之间电阻的阻值可以调节发光二极管的显示亮度 当阻值增 加亮度减弱 反之加强 10 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 图 3 6 发光二极管显示图 3 6 数码显示电路 发光二极管一般是砷化镓半导体二极管 在发光二极管两端加上正向电压 则发光二 极管发光 数码管是由若干发光二极管组合而成的 有共阴极和共阳极两种结构形 8 段 共阴数码管由 a b c d e f g dg 这 8 个发光二极管组成 把 8 个发光二极管的阴 极连接在一起构成共阴极端 接进电路时 共阴极端接地 给要发光显示的二极管的阳极 端接高电平可使该发光二极管导通点亮 如图 3 7 所示 11 图 3 7 8 段共阴极数码管结构图 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 用单片机驱动数码管有静态显示和动态显示 静态显示就是显示驱动电路具有输出锁 存功能 单片机将所要显示的数据送出后就可以驱动数码管显示数据 直到下一次显示数 据需要更新时再传送一次新的数据就可以了 静态显示数据稳定 占用 CPU 时间少 动态 显示需要时刻对显示器件进行数据刷新 显示数据有闪烁感 占用的 CPU 时间多 这两种 显示方式各有利弊 静态显示虽然数据稳定 占用很少的 CPU 时间 但每个显示单元都 需要单独的显示驱动电路 使用的硬件较多 动态显示虽然有闪烁感 占用的 CPU 时间多 但使用的硬件少 能节省线路板空间 设计选用 3 个单位 8 段共阴数码管来显示输出的数据 因为电路硬件相对较简单 所 以选择静态显示方法 选用 3 个移位寄存器 74LS164 驱动数码管发光点亮 电路连接如图 3 8 所示 移位寄存器在电路中一是驱动数码管点亮 二是对输入的串行数据并行输出 起到串并转换的作用 移位寄存器 74LS164 串行数据输入端与前一位的并行输出最高位相 连 第一位移位寄存器的数据输入端与单片机的数据输出端 P1 7 连接 单片机引脚 P1 6 用于给移位寄存器提供移位的时钟脉冲 该引脚与三个移位寄存器的时钟输入端 CLK 相 连 因为每位数据串行输出先输出的是低位 所以数码管引脚 a b c d e f g dg 应顺序与对应位的移位寄存器并行输出端的 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 连接 图 3 8 数码管显示电路 3 7 系统显示电路图 信号采样模块电路的输出接到发光二极管显示 LM3914 的输入端 同时也将采样信号 输出端接至 A D 转换芯片的输入端 再加上单片机最小系统电路 单片机与模数转换芯片 的连接和单片机与数码管显示的连接 即可作出它的整体电路图 见附录 4 软件设计 4 软件设计 12 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 4 1 程序流程 当检测到酒精气味时 气体传感器 MQ 3 两个电极端 A B 间电阻将变小 对应与气体 传感器负载电阻的分压将变大 因为 ADC0809 的模拟输入端 IN0 与负载电阻的一端用导 线连在了一起 所以单片机在启动测试模数转换芯片之前要选择通道 0 写入模数转换芯 片 并将用作查询的单片机引脚 P3 3 置位 然后启动对通道 IN0 端输入的采集电压信号作 模数转换 等待转换的结束 利用单片机丰富的 I O 口可以采用查询方式来检测模数转换 是否结束 当单片机引脚 P3 3 为 1 时转换未结束等待 当查询到 P3 3 为 0 时表示模数转 换已经结束 可以开始读取数据了 单片机通过 I O 口与模数转换芯片的数据输出口相连 读取转换后的数据 读取后的数据送到数据存储器单元中 经过单片机作相应的处理 即 要将该电压值转换为酒精浓度值 然后处理后的数据转换成三位十进制 BCD 码用数码管 显示 程序流程图如图 4 1 所示 A D 转换结束 P3 3 1 单片机选择A D通 道地址 单片机 P3 3 置位并 启动 A D 测试 数码管显示 N Y 单片机初始化 开始 单片机读取数据并 作处理 图 4 1 程序流程图 13 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 14 4 2 程序代码编写 系统电源线接通或者系统复位后 程序从主程序入口进入运行 因为在程序中每次对 模数转换后读取的数据 需要相应的存储空间 同时对读取的数据作适当处理后也要送到 特定的存储空间存储起来 以供后面的数码管显示用 当然 在程序运行的过程当中 还 要用到工作寄存器 因为工作寄存器都是临时存储数据 不需要保存作为以后处理要用到 的数据 所以工作寄存器的初始化这部分可以省去 于是 对于程序的初始化程序代码可 以相应写出 START MOV R7 60H MOV R0 20H CLR A LOOP MOV R0 A INC R0 DJNZ R7 LOOP 初始化程序从数据存储器地址为 20H 单元开始 到 80H 单元全部清零 即每次的初始 化将上次存储的数据全部清除 用于存放当前要存储的数据 对模拟电压信号的数字转换由模数转换芯片ADC0809加单片机AT89S51控制来完成 模拟电压的输入端接在模数转换芯片的 IN0 通道 再根据单片机与模数转换芯片的连接 单片机在选择读写地址时应该为 7FF8H 因为单片机高 8 位地址位的 P2 7 位与单片机的 WR 位经或非后与模数转换芯片的 START 和 ALE 用导线连接 所以单片机在将地址 7FF8H 写入模数转换芯片后 一方面模数转换芯片锁存地址选择线的状态 从而选通相 应的模拟通道 同时启动模数转换 模数转换需要一定的时间 这时可以开始对转换是否 结束进行不断的查询 ADC0809 中模数转换结束输出标志位是 EOC 转换结束时为高电 平有效 该位通过一个反相器与单片机引脚 P3 3 相连 因为启动模数转换之前 P3 3 位被 置位 所以当查询到 P3 3 位为 0 时即表示模数转换结束 最后将转换后的数据读取到单片 机累加器 A 中 根据这思路可以写出模数转换的子程序代码 TEST MOV DPTR 7FF8H SETB P3 3 MOVX DPTR A JB P3 3 MOVX A DPTR RET 把转换后得到的数字电压值读取到单片机后 因为 实际的电压值范围在 0 5V 之 间 而 ADC0809 模数转换芯片对应的是 8 位精度的处理 即从 00000000B 到 11111111B 所以单片机还要对它作个除 51 的处理工作 而在处理过程中对于有些数据的处理 可能 要碰到双字节相除的情况 为此 在第一位单字节除 51 后 接下来的小数部分位的除 51 则要作双字节的除法 这样才能保证使所有位能显示出来 如果所有位都当单字节除法来 运算的话 对于有些要作双字节除法的位上的数字则无法显示 而能是显示 0 相除后对 应的每一位分别送到地址为 7DH 7EH 7FH 的存储单元保存 以供显示或后续处理用 思路明确后 实际电压值转换部分程序可以写出来 MOV B 51 DIV AB MOV 7DH A MOV A B MOV B 10 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 15 MUL AB MOV R6 A MOV R7 B ACALL DIV16 MOV 7EH R6 MOV A R2 MOV B 10 MUL AB MOV R6 A MOV R7 B ACALL DIV16 MOV 7FH R6 经过处理后实际采样到的电压值对应的各个位就分别存储在 7DH 7EH 7FH 三个 存储单元里面了 模数转换后得到的数字电压量被单片机读取后还要作一定的数据处理 其中包括把电 压值转换为与之相对应的酒精浓度值 根据总体设计思路 对电压值都近似作对应区间的 线性转换 即首先 单片机要对采集到的数据在哪个区间作个判断跳转 然后再根据该区 间的线性关系作转换 得到对应的酒精浓度值 根据酒精浓度与电压的线性映射关系 可 以写出该部分的程序代码 MOV B 100 MVL AB MOV R6 A MOV R7 B MOV R5 0 MOV R4 51 ACALL DIV16 MOV 70H R6 MOV 71H R7 MOV A 71H JNZ L5 L1 MOV 72H 75 CLR C MOV A 70H SUBB A 72H JNC L2 ACALL PP0 AJMP PP L2 MOV 72H 145 CLR C MOV A 70H SUBB A 72H JNC L3 ACALL PP1 AJMP PP L3 MOV 72H 173 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 16 CLR C MOV A 70H SUBB A 72H JNC L4 ACALL PP2 AJMP PP L4 MOV 72H 233 CLR C MOV A 70H SUBB A 72H JNC L5 ACALL PP3 AJMP PP L5 MOV 72H 18 CLR C MOV A 70H SUBB A 72H JNC L6 ACALL PP4 AJMP PP L6 MOV 72H 64 CLR C MOV A 70H SUBB A 72H JNC L7 ACALL PP5 AJMP PP L7 MOV 72H 105 CLR C MOV A 70H SUBB A 72H JNC L8 ACALL PP6 AJMP PP L8 ACALL PP7 AJMP PP 从读取到的电压值得到酒精浓度值后 还要把该值转换为 3 位 10 进制 BCD 码 存储 到特定的存储单元以供数码管显示数值 数码管显示选用的是静态显示的方法 要在每次 显示数据时把要显示的 3 个位按顺序串行送到数码管集成驱动电路 74LS164 并行输出 以 同时驱动 3 个数码管同时点亮 根据 7 段数码管的字型码如表 4 1 所示和移位寄存器 74LS164 的逻辑功能 将对应的共阴极字型码放在一个表格中 然后通过查表的方式找到 要显示的数字送移位寄存器驱动数码管显示 单片机对每次移出的位通过 P1 7 输入到移位 寄存器的数据输入端 移位寄存器的时钟脉冲通过单片机 P1 6 模拟的时钟信号提供 于是 可以写出显示部分的程序代码 DISP MOV DPTR TAB 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 17 MOV A 7FH MOVC A A DPTR ACALL SO MOV A 7EH MOVC A A DPTR ACALL SO MOV A 7DH MOVC A A DPTR ACALL SO RET SO MOV R7 8 SO1 CLR P1 6 RRC A MOV P1 7 C SETB P1 6 DJNZ R7 SO1 RET 表 4 1 七段 LED 字型码 显示字符 共阴极字型码 共阳极字型码 0 3FH C0H 1 06H F9H 2 5BH A4H 3 4FH B0H 4 66H 99H 5 6DH 92H 6 7DH 82H 7 07H F8H 8 7FH 80H 9 6FH 90H 程序当中为了显示的精确 在有些位相除时用到了双字节相除的算法 对于多字节无 符号数的除法 可以依照移位相减的基本方法来进行 除法运算是按位进行的 每一位是 一个循环 每个循环中要作三件事 一是被除数左移一位 二是余数减除数 最后根据是 否减来置商位为 1 或 0 对于被除数的移动 最简单的办法是把被除数向余数单元左移 把被除数左移后空出的低位存放商数 当除法完成后 被除数已全部移动到余数单元并逐 次被减而得到余数 而被除数单元中内容已成为商数 据此 可以写出双字节除法的程序 代码 DIV16 MOV R5 0 MOV R4 51 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 18 MOV R3 0 MOV R2 0 MOV R1 16 LP1 CLR C MOV A R6 RLC A MOV R6 A MOV A R7 RLC A MOV R7 A MOV A R2 RLC A MOV R2 A MOV A R3 RLC A MOV R3 A MOV A R2 CLR C SUBB A R4 JC NEXT MOV R0 A MOV A R3 SUBB A R5 JC NEXT INC R6 MOV R3 A MOV A R0 MOV R2 A NEXT DJNZ R1 LP1 RET 根据程序流程图和各个子程序的编写可以得到整个设计的总程序代码 见附录 打开实 验开发平台 MedWin 单片机集成开发环境 在 MedWin 软件代码编辑器编辑程序代码 经 汇编 修改 产生代码 4 3 程序 4 3 1 主程序 include include include define uchar unsigned char define unit unsigned int Sbit DQ P3 3 uchar TEMP 2 读出温度数据 uchar code SMG DM 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 0 xbf uchar code SMG WM 0 x01 0 x02 0 x04 0 x08 0 x10 0 x20 0 x40 0 x80 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 19 uchar bdata busy flg sbit busy 7 busy flg 7 define REG0 XBYTE 0 x0000 写指令 define REG1 XBYTE 0 x0001 读判忙 define REG2 XBYTE 0 x0002 写数据 uchar word1 16 T uchar word2 16 By YuYang uchar code word3 16 uchar code word4 16 I Love 8bit MCU uchar code word5 16 Welcome to uchar code word6 16 Keil uVision3 uchar code word7 16 My uchar code word8 16 DS18B20 void delay uint i while i bit DS18B20 init uchar x DQ 1 DQ 复位 delay 8 DQ 0 delay 80 480us DQ 1 delay 14 x DQ x 0 初始化成功 1 失败 delay 20 return x uchar ReadOneChar 读 1 字节 uchar i 0 uchar dat 0 for i 8 i 0 i DQ 0 dat 1 DQ 1 if DQ dat 0 x80 delay 4 return dat 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 20 void WriteOneChar uchar dat 写 1 字节 uchar i 0 for i 8 i 0 i DQ 0 DQ dat delay 5 DQ 1 dat 1 delay 4 void ReadTemperature 温度值读取 while DS18B20 init 初始化 WriteOneChar 0 xCC 跳过读序列号操作 WriteOneChar 0 x44 启动温度转换 while DS18B20 init 初始化 DS18B20 WriteOneChar 0 xCC 跳过读序列号操作 WriteOneChar 0 xBE 读取温度值寄存器 前两个就是 TEMP 0 ReadOneChar TEMP 1 ReadOneChar void xianshi uint t float tt uchar m 7 uchar i if t 50 for i 1 i 8 i P2 SMG WM i P0 SMG DM 10 delay 500 else m 1 t 100 m 3 t 10 for i 1 i 3 i 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 21 P2 SMG WM i P0 SMG DM m i delay 500 P2 SMG WM 3 P0 SMG DM m 3 128 delay 500 m 4 uchar tt 10 m 5 uchar tt 100 m 4 10 m 6 uchar tt 1000 m 4 100 m 5 10 m 7 uchar tt 10000 m 4 1000 m 5 100 m 6 10 for i 4 i 8 i P2 SMG WM i P0 SMG DM m i delay 500 void Tempprocess uint t float tt uchar temp uchar j if TEMP 1 显示 号 t TEMP 1 t 4 word1 4 t 100 48 word1 5 t 10 10 48 word1 6 t 10 48 temp TEMP 0 temp temp 1 temp temp temp tt temp 0 0625 word1 7 word1 8 uchar tt 10 无无 锡锡 职职 业业 技技 术术 学学 院院 毕业设计 论文 毕业设计 论文 22 word1 9 uchar tt 100 word1 8 10 word1 10 uchar tt 1000 word1 8 100 word1 9

温馨提示

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

评论

0/150

提交评论