基于单片机酒精溶度检测仪毕业设计.doc_第1页
基于单片机酒精溶度检测仪毕业设计.doc_第2页
基于单片机酒精溶度检测仪毕业设计.doc_第3页
基于单片机酒精溶度检测仪毕业设计.doc_第4页
基于单片机酒精溶度检测仪毕业设计.doc_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

南昌航空大学学士论文 0 基于单片机基于单片机酒精溶度检测仪毕业设计酒精溶度检测仪毕业设计 目目 录录 1 1 前前 言言 1 1 1 选题的依据及意义 1 1 2 研究概况及发展趋势综述 2 2 2 基于单片机酒精溶度测试系统的组成及原理基于单片机酒精溶度测试系统的组成及原理 3 2 1 系统设计要求 3 2 2 系统功能 3 3 3 基于单片机酒精溶度测试系统的硬件设计基于单片机酒精溶度测试系统的硬件设计 5 3 1 系统总体电路设计及工作原理 5 3 2 酒精浓度转换电路设计 5 3 3 89C52 单片机系统 8 3 4 AD 采样电路的设计 16 3 5 液晶显示模块 18 3 5 声光报警模块 19 4 4 基于单片机酒精溶度测试系统的软件设计基于单片机酒精溶度测试系统的软件设计 20 4 1 编译语言的选择 20 4 2 软件功能分析 20 4 3 主程序模块 21 5 5 系统调试系统调试 32 5 1 系统硬件调试 32 5 2 系统软件调试 34 总总 结结 36 参考文献参考文献 37 致致 谢谢 38 附附 录录 39 附录一 原理图 39 附录二 PCB 图 41 附录三 实物图 43 附录四 程序清单 44 南昌航空大学学士论文 1 1 前前 言言 1 11 1 选题的依据及意义选题的依据及意义 根据 WHO 数据 全球 2003 年的人均纯酒精消费量为 6 2L 其中欧洲地区人均 达 11 9L 美洲地区人均为 8 7L 俄罗斯及其周边的东欧国家酒精消费量最高 其 次为欧洲其他国家 在人均国民生产总值 GDP 低于 7000 美元的低收入国家 酒 精消费量与人均 GDP 相关 GDP 越高酒精消费量越高 而随着我国近年来高速发展 的经济水平和居民生活水平 酒精消费量亦呈直线上升趋势 随之而来的是因为饮 酒而造成的一系列社会问题 例如酒后驾驶造成的交通意外 当酒精在人体血液内达到一定浓度时 麻痹神经 造成大脑反应迟缓 肢体不 受控制等症状 人对外界的反应能力及控制能力就会下降 处理紧急情况的能力也 随之下降 对于酒后驾车者而言 其血液中酒精含量越高 发生撞车的几率越大 而根据世界卫组织的事故调查 大约50 69 的交通事故与酒后驾驶有关 酒后驾 驶已经被列为车祸致死的主要原因 在中国 每年由于酒后驾车引发的交通事故达 数万起 其危害触目惊心 已成为交通事故的第一大 杀手 为了实现对人权的尊重 对生命的关爱 使更多人的生命权 健康权及幸福美 满的家庭能得到更好的保护 需要设计一智能仪器能够检测驾驶员体内酒精含量 目前全世界绝大多数国家都采用呼气酒精测试仪对驾驶人员进行现场检测 以确定 被测量者体内酒精含量的多少 以确保驾驶员的生命财产安全 酒精检测仪的设计 与使用有着不可替代的作用 也有着相当的前景和意义 南昌航空大学学士论文 2 1 21 2 研究概况及发展趋势综述研究概况及发展趋势综述 受 20 世纪信息技术的快速发展的影响 传感技术逐渐走向成熟 在生活生产中 的得到了广泛的应用 由于传感器在各个领域都有着举足轻重的作用 因此 高精 度 高可靠性 微型化 微功耗无源化和智能数字化成为其发展方向 为检查醉驾 警察常常使用一种便携式的酒精呼吸检测仪 通过检测驾驶者呼 出的气体判断驾驶者是否饮酒 而目前使用的酒精呼吸检测仪只能初步显示驾驶员 是否饮酒 有醉驾嫌疑的驾驶员还需要接受血检 以确定其体内酒精含量是否超标 为简化其流程 英国内政部已推出一种超级酒精呼吸检测仪 能根据体温 呼吸频 率等情况 当场判断出驾驶者体内的酒精含量 由此可见 高精度 高可靠性与微 型化是酒精浓度检测仪的主要发展方向 至今为止 对气体中酒精含量进行检测的设备有燃料电池型 电化学 半导体 型 红外线型 气体色谱分析型和比色型五种类型 但由于价格和使用方便的原因 目前 截止 2011 年 10 月 常用的只有燃料电池型 电化学型 和半导体型两种 燃料电池是当前全世界都在广泛研究的环保型能源 它可以直接把可燃气体转 变成电能 而不产生污染 酒精传感器只是燃料电池的一个分支 燃料电池酒精传 感器采用贵金属白金作为电极 在燃烧室内充满特种催化剂 使进入燃烧室内的酒 精充分燃烧转变为电能 也就是在两个电极上产生电压 电能消耗在外接负载上 此电压与进入燃烧室内气体的酒精浓度成正比 与半导体型相比 燃料电池型呼气酒精测试仪具有稳定性好 精度高 抗干扰 性好的优点 但是由于燃料电池酒精传感器的结构要求非常精密 制造难度相当大 目前 2012 年 只有美国 英国 德国等少数几个国家能够生产 加上材料成本高 因此价格相当昂贵 是半导体酒精传感器的几十倍 南昌航空大学学士论文 3 2 基于单片机酒精溶度测试系统的组成及原理基于单片机酒精溶度测试系统的组成及原理 2 12 1 系统设计要求系统设计要求 设计一个基于单片机的酒精浓度检测系统 检测结果用 LED 或 LCD 显示器显示 基于 STC89C52 单片机 MQ 3 酒精浓度传感器 本设计设计一种具有检测及超限报 警功能的酒精浓度测试系统 具体技术要求如下 1 设计 51 单片机最小系统电路 2 设计 LCD 显示电路 3 设计信号采集转换电路 4 设计实时时钟电路 5 设计声光报警电路 2 22 2 系统功能系统功能 本设计采用自动检测技术和计算机技术 对人呼出的酒精气体的质量浓度进 行自动测量 自动显示 声光报警 并给出数字提示 电路结构主要由酒精传感 器 测量电路 模数转换电路 单片机 驱动显示器 声光报警电路等部分组成 系统框图如图2 1所示 具体的工作过程是 呼出气体中的酒精质量浓度信号经酒 敏传感器转换为 0 5V 的 电压信号 并且该电压 信号的大 小与气体 中的酒 精 质量浓度 大小成正 比 经过A D 转换后传送 给单片 机 经单片 机内部 的一 些运算 比较程序处 理后输出 给 LCD 显示 和声光报警电 路进行 报 警 设 计 中 选 用 由 美 国 ATMEL 公 司 生 产 的STC89C52作为 智能 检测 装置 的核 心 器件 STC89C52的P1口与AD0804的8位输出端相连 用来接收转换好的8 位数据 P0口与LCD现实模块相连 有内部程序来控制各引脚电平 使LCD显示器 能做出相应的显示 P2口与声光报警模块相连 用来执行报警等操作 南昌航空大学学士论文 4 被测环境气敏传感 器 A D 转换 电路STC89C52 键盘 声光报警 液晶显示 图 2 1 硬件方案总体框图 本课题分为两部分 硬件设计部分和软件设计部分 硬件部分为利用 MQ3 气敏 传感器测量空气中酒精浓度 并转换为电压信号经 A D 转换后传给单片机系统 由 单片机及其外围电路进行信号的处理 显示浓度值以及超阈值声光报警 软件部分 用 C 语言进行编程 程序采用模块化设计思想 各个子程序的功能相对独立 便于 调试和修改 而硬件电路又大体可分为单片机小系统电路 A D 转换电路 声光报 警电路 LCD 显示电路 各部分电路的设计及原理将会在硬件电路设计部分详细介 绍 程序的设计使用 C 语言编程 其模块框图如图 2 2 所示 图 2 2 系统程序模块框图 主程序 AD 采样 程序 模块 中断 服务 模块 L C D 显示 模块 声光 报警 模块 键值 扫描 模块 南昌航空大学学士论文 5 3 基于单片机酒精溶度测试系统的硬件设计基于单片机酒精溶度测试系统的硬件设计 3 13 1 系统总体电路设计及工作原理系统总体电路设计及工作原理 根据自动检测系统的组成结构 该酒精溶度检测仪应该包含酒精气体传感器 信号处理电路和执行指示机构等部分 对于酒精气体传感器 只要是一般性的还原 性气体传感器都能够使用 本设计考虑酒精浓度是由传感器把非电量转换为电量 传感器输出的是 0 5 伏的电压值并且电压值稳定 外部干扰小等 因此 可以直接 把传感器输出电压值经过 ADC0804 采集数据送入单片机进行处理 酒精浓度监测仪 的硬件电路设计主要包括 传感器测量电路 89C51 单片机系统 A D 转换电路 声 光报警电路 LCD 显示电路 酒精浓度监测仪硬件模块电路框图如图 3 1 图 3 1 硬件模块电路框图 3 23 2 酒精浓度转换电路设计酒精浓度转换电路设计 由于本系统直接测量的是呼气中的酒精浓度 再转换为血液中的酒精含量浓度 故采用气敏传感器 考虑到周围空气中的气体成分可能影响传感器测量的准确性 所以传感器只能对酒精气体敏感 对其他气体不敏感 故选用 MQ3 型气敏传感器 其有很高的灵敏度 良好的选择性 长期的使用寿命和可靠的稳定性 MQ3 型气敏 传感器由微型 Al2O3 陶瓷管和 SnO2 敏感层 测量电极和加热器构成的敏感元件固 酒精浓度测试系统的硬件设计 信 号 采 集 A D 转 换 单 片 机 控 制 L C D 显 示 声 光 报 警 南昌航空大学学士论文 6 定在塑料或不锈钢的腔体内 加热器为气敏元件的工作提供了必要的工作条件 传 感器的标准回路有两部分组成 其一为加热回路 其二为信号输出回路 它可以准 确反映传感器表面电阻值的变化 传感器的表面电阻 RS 的变化 是通过与其串联的 负载电阻 RL 上的有效电压信号 VRL 输出面获得的 二者之间的关系表述为 RS RL VC VRL VRL 其中 VC 为回路电压为 10V 负载电阻 RL 可调为 0 5 200K 加热电压 Uh 为 5v 上述这些参数使得传感器输出电压为 0 5V MQ3 型气敏 传感器的结构和外形 标准回路 传感器阻值变化率与酒精浓度 外界温度的关系 图如图 3 2 所示 传感器集成模块电路如图 3 3 所示 为了使测量的精度达到最高 误差最小 需要找到合适的温度 一般在测量前需将传感器预热 20s 图 3 2 传感器电路 结构及关系图 南昌航空大学学士论文 7 图 3 3 MQ 3 传感器电路原理图 为了更好地使用酒精传感器 MQ 3 现将 MQ 3 的标准工作条件和环境条件进 行介绍 如表一和表二所示 表一 酒精传感器 MQ 3 标准工作条件 符号参数名称技术条件备注 Vc 回路电路10VAC OR DC Vh加热电压5VAC OR DC RL负载电阻可调0 5 200K Rh加热器电阻33 5 室温 Ph加热功耗 800Mw 表二 酒精传感器 MQ 3 的环境条件 符号参数名称技术条件备注 Tao使用温度 20 50 Tas储存温度 20 70 Ra相对湿度 95 RH 推荐使用范围 20ppm 1000ppm 乙醇 21 1 标注条 件 不得小于 18 O2氧气溶度 氧气溶度会影响灵敏度 MQ 3 的灵敏度特性曲线如 图 3 4 所示 南昌航空大学学士论文 8 图 3 4 MQ 3 灵敏度特性曲线 3 33 3 89C5289C52 单片机系统单片机系统 单片机是一种集成电路芯片 采用超大规模技术把具有数据处理能力 如算术运 算 逻辑运算 数据传送 中断处理 的微处理器 CPU 随机存取数据存储器 RAM 只读程序存储器 ROM 输入输出电路 I O 口 可能还包括定时计数器 串行通信 口 SCI 显示驱动电路 LCD 或 LED 驱动电路 脉宽调制电路 PWM 模拟多路转 换器及 A D 转换器等电路集成到一块单块芯片上 构成一个虽小然而完善的计算机 系统 这些电路能在软件的控制下准确 迅速 高效地完成程序设计者事先规定的 任务 3 3 13 3 1 单片机片内结构单片机片内结构 51 单片机的片内结构如图 3 5 所示 它把那些作为控制应用所必需的基本内容 都集成在一个尺寸有限的集成电路芯片上 按功能划分 它有如下功能部件组成 微处理器 CPU 数据存储器 RAM 程序存储器 ROM EPROM 4 个 8 位并行 I O 口 P0 口 P1 口 P2 口 P3 口 南昌航空大学学士论文 9 一个串行口 2 个 16 位定时器 计数器 2 个 16 位定时器 计数器 PSEN 88 E O C X T A L 1 CPU 运算器 控制器 数据存储器 RAM P0P2程序存储器 ROM EPROM P1 串 行 口 定时 器 计 数器 中断 系 统 特殊功能 寄存器 SFR P3 ALEEA IN7 I 0 X T A L 2 8 8 RESET 图 3 5 51 单片机片内结构 中断系统 特殊功能寄存器 SER 上述功能部件都是通过片内单一总线连接而成 其基本结构依旧是 CPU 加上外 围芯片的传统结构模式 但 CPU 对各种功能部件的控制是采用特殊功能寄存器的集 中控制方式 下面对框图 2 1 中各功能部件作一简单介绍 1 中央处理器 CPU CPU 是单片机的核心部件 它通常由运算器 控制器和中断电路等器件组成 CPU 进行算术运算和逻辑操作的字长有 4 位 8 位 16 位和 32 位之分 字长越长运 算速度越快 数据处理能力也越强 2 存储器 在单片机内部 ROM 和 RAM 存储器是分开制造的 通常 ROM 存储器容量较大 RAM 存储器的容量较小 这是单片机用于控制的一大特点 1 ROM 存储器 ROM 存储器一般为 1 64K 字节 用于存放应用程序 故又称为程序存储器 南昌航空大学学士论文 10 2 RAM 存储器 通常 单片机片内 RAM 存储器容量为 64 256 字节 最多可达 48K 字节 RAM 存 储器主要用来存放实时数据或作为通用寄存器 数据堆栈和数据缓冲器之用 3 中断系统 中断系统是为使 CPU 具有对单片机外部或内部随机发生的事件的实时处理而设 置的 中断系统由 5 个中断请求源 2 个中断优先级 5 个中断请求源为 1 外部中断 0 请求 由引脚输入 中断请求标志位为 IE0 0INT0INT 2 外部中断 1 请求 由引脚输入 中断请求标志位为 IE1 1INT1INT 3 定时器 计数器 T0 溢出中断请求 中断请求标志为 TF0 4 定时器 计数器 T1 溢出中断请求 中断请求标志为 TF1 5 串行口中断请求 中断请求标志为 TI 或 RI 如表三和四所示 中断请求标志位分别由特殊功能寄存器 TCON 和 SCON 的相应 为锁存 IT0 选择外部中断请求为跳沿触发方式或电平触发方式的控制位 0INT IT0 0 为电平触发方式 引脚上低电平有效 IT0 1 为跳沿触发方式 引脚0INT 上的电平从高到低的负跳变有效 0INT IT1 选择外部中断请求为跳沿触发方式或电平触发方式 其意义和 IT01INT 类似 IE0 外部中断 0 的中断请求标志位 IE1 外部中断 1 的中断请求标志位 TF0 定时器 计数器 T0 溢出中断请求标志位 当启动 T0 计数后 定时器 计数 器 T0 从初值开始加 1 计数 当最高位产生溢出时 由硬件置 1 TF0 向 CPU 申请 中断 CPU 响应中断 TF1 定时器 计数器 T1 溢出中断请求标志位 功能和 TF0 类似 TR0 当为 1 时 定时器 计数器 T0 开始计数 南昌航空大学学士论文 11 TR1 功能和 TR0 类似 表三 TCON 中的中断请求标志位 TCONTF1TR1TF0TR0IE1IT1IE0IT0 位地址8FH8DH8BH8AH89H88H TI 串行口的发送中断请求标志位 RI 串行口接收中断请求标志位 表四 SCON 中的中断请求标志位 SCONTIRI 位地址99H98H 如表五 IE 中各位功能如下 EA 中断允许总控制位 EA 0 CPU 屏蔽所有的中断请求 EA 1 CPU 开放所有中断 ES 串行口中断允许位 ES 0 禁止串口中断 ES 1 允许串口中断 ET1 定时器 计数器 T1 的溢出中断允许位 ET1 0 禁止 T1 中断 ET1 1 允许 T1 中断 EX1 外部中断 1 中断允许位 EX1 0 禁止外部中断 1 中断 EX1 1 允许外部中断 1 中断 ET0 定时器 计数器 T0 的溢出中断允许位 功能与 ET1 类似 EX0 外部中断 0 中断允许位 功能与 EX1 类似 表五 IE 的中断允许控制位 IEEAESET1EX1ET0EX0 位地址AFHACHABHAAHA9HA8H 如表六 IP 中各位功能如下 PS 串行口中断优先级控制位 南昌航空大学学士论文 12 PS 1 串行口中断定义为高优先级中断 PS 0 串行口定义为低优先级中断 PT1 定时器 T1 中断优先级控制位 PT1 1 定时器 T1 定义为高优先级中断 PT1 0 定时器 T1 定义为低优先级 中断 PX1 外部中断 1 中断优先级控制位 PX1 1 外部中断 1 定义为高优先级中断 PX1 0 外部中断 1 定义为低优先 级中断 PT0 定时器 T0 中断优先级控制位 功能与 PT1 类似 PX0 外部中断 1 中断优先级控制位 功能与 PX1 类似 表六 中断优先级寄存器 IP IPPSPT1PX1PT0PX0 位地址BCHBBHBAHB9HB8H 4 定时器 计数器 单片机内有两组 16 位定时 计数器 分别为定时器 0 与定时器 1 两者可独立 操作 各自拥有一个中断向量 定时器输入信号源为振荡器除以 12 的频率 而计数 器输入信号源为外部引脚 T0 与 T1 除此之外计时与计数是不分的 定时 计数器具有 4 种工作方式 如表 4 5 是工作方式寄存器 TMOD 各位功能说 明 GATE 门控位 GATE 0 仅由运行控制位 TRX X 0 1 1 来启动定时 计数器运行 GATE 1 由 TRX X 0 1 1 和外中断引脚 或 上的高电平共同来启0INT1INT 动定时 计数器运行 M1 M0 工作方式选择位 C 计数器模式和定时器模式选择位T C 0 为定时器模式 C 1 为计数器模式 计数器对外部输入引脚 T0 或TT T1 的外部脉冲计数 表七 工作方式寄存器 TMOD 南昌航空大学学士论文 13 T1 方式字段T0 方式字段 GATEC TM1M0GATEC TM1M0 如表八 是定时 计数控制寄存器 TCON 对各位进行如下说明 TF1 TF0 T1 T0 计数溢出标志位 功能在中断系统中已说明 TR1 TR0 计数运行控制位 其余在中断系统中已作说明 表八 定时 计数控制寄存器 TCON TF1TR1TF0TR0IE1IT1IE0IT0 在这个设计中 运用了方式一和二 以下介绍这两种方式 方式一 当 M1 M0 为 01 时 定时 计数器工作与方式一 这时方式一为 16 位的 计数器 由 THX 作高位和 TLX 作低位构成 有关控制位前面已讲述 方式二 当 M1 M2 为 10 时 定时 计数器工作在方式二 其特点 自动恢复初 值的 8 位定时 计数器 THX 作为常数缓冲器 当 TLX 计数溢出时 在置 1 溢出标 志 TFX 的同时 还自动的将 THX 中的常数送至 TLX 使 TLX 从初值开始重新计数 这种工作方式可以省去用户软件中重装初值的程序 简化初值计算 可以相当精确 确定定时时间 5 I O 接口和特殊功能部件 I O 接口电路有串行和并行两种 串行 I O 用于串行通信 它可以把单片机内 部的并行 8 位数据 8 位机 变成串行数据向外传送 也可以串行接收外部送来的数 据并把它们变成并行数据送给 CPU 处理 并行 I O 口电路可以使单片机和存储器或 外设之间并行地传送 8 位数据 8 位机 通常 特殊功能部件包括 定时器 计数 器 A D D A DMA 通道和系统时钟等电路 定时器 计数器用于产生定时脉冲 以实现单片机的定时控制 A D 和 D A 转换器用于模拟量和数字量之间的相互转换 以完成实时数据的采集和控制 DMA 通道可以使单片机和外设之间实现数据的快速 传送 总之 某一单片机内部究竟包括哪些特殊功能部件以及特殊功能部件的数量 是和它的型号有关的 单片机是整个系统的核心 对系统起监督 管理 控制作用 并进行复杂的信 号处理 产生测试信号及控制整个检测过程 所以在选择单片机时 参考了以下标 南昌航空大学学士论文 14 准 1 运行速度 单片机运行速度一般和系统匹配即可 2 存储空间 单片机内部存储器容量 外部可以扩展的存储器 包括 I 0 Fl 空间 3 单片机内部资源 单片机内部存储资源越多 系统外接的部件就越少 这 可提高系统的许多技术指标 4 可用性 指单片机是否能很容易地开发和利用 具体包括是否有合适的开 发工具 是否适合于大批量生产 性能价格比 是否有充足的资源 是否有现成的 技术资源等 5 特殊功能 一般指可靠性 功耗 掉电保护 故障监视等 从硬件角度来看 与 MCS 51 指令完全兼容的新一代 AT89CXX 系列机 比在片外 加 EPROM 才能相当的 8031 单片机抗干扰性能强 与 87C51 单片机技能相当 但功耗 小 程序修改直接用 5V 或 12V 电源擦除 更显方便 而且其工作电压放宽至 2 7V 6V 因而受电压波动的影响更小 而且 4K 的程序存储器完全能满足单片机系 统的软件要求 故 AT89C51 单片机是构造本检测系统的更理想的选择 3 3 23 3 2 89C5189C51 芯片介绍芯片介绍 掌握 MCS 51 单片机 应首先了解 MCS 51 的引脚 熟悉并牢记各引脚的功能 MCS 51 系列中各种型号芯片的引脚是互相兼容的 制作工艺为 HMOS 的 MCS 51 的单 片机都采用 40 只引脚的双列直插封装方式 如图 3 5 所示 南昌航空大学学士论文 15 图 3 5 STC89C52 芯片管脚图 40 只引脚按其功能来分 可分为如下 3 类 电源及时钟引脚 Vcc Vss XTAL1 XTAL2 电源引脚接入单片机的工作电源 Vcc 接 5V 电源 Vss 接地 时钟引脚 XTAL1 XTAL2 外接晶体与片内的反相放大器构成了 1 个晶体振荡器 它为单片机提供了时钟控制信号 2 个时钟引脚也可外接独立的晶体振荡器 XTAL1 接外部的一个引脚 该引脚内部是一个反相放大器的输入端 这个反相放大器构成 了片内振荡器 如果采用外接晶体振荡器时 此引脚接地 XTAL2 接外部晶体的另 一端 在该引脚内部接至内部反相放大器的输出端 若采用外部时钟振荡器时 该 引脚接受时钟振荡器的信号 即把此信号直接接到内部时钟发生器的输入端 控制引脚 ALE RESET RST 此类引脚提供控制信号 有的 PSENEA 还具有复用功能 RST VPD 引脚 RESET RST 是复位信号输入端 高电平有效 当单片机运 行时 在此引脚加上持续时间大于 2 个机器周期 24 个振荡周期 的高电平时 就 南昌航空大学学士论文 16 可以完成复位操作 在单片机工作时 此引脚应为 0 5V 低电平 VPD 为本引脚的 第二功能 即备用电源的输入 当主电源发生故障 降低到某一规定值的低电平时 将 5V 电源自动接入 RST 端 为内部 RAM 提供备用电源 以保证片内 RAM 的信息不 丢失 从而使单片机在复位后能正常进行 ALE 引脚 ALE 引脚输出为地址锁存允许信号 当单片机上电正常工 PROG 作后 ALE 引脚不断输出正脉冲信号 当单片机访问外部存储器时 ALE 输出信号的 负跳沿用于单片机发出的低 8 位地址经外部锁存器锁存的锁存控制信号 即使不访 问外部锁存器 ALE 端仍有正脉冲信号输出 此频率为时钟振荡器频率的 1 6 为该引脚的第二功能 在对片内 EPROM 型单片机编程写入时 此引脚作为编程 PROG 脉冲输入端 引脚 程序存储器允许输出控制端 在单片机访问外部程序存储器时 PSEN 此引脚输出脉冲负跳沿作为读外部程序存储器的选通信号 此引脚接外部程序存储 器的 OE 输出允许端 VPP 引脚 功能为片内程序存储器选择控制端 当引脚为高电平 EAEAEA 时 单片机访问片内程序存储器 但在 PC 值超过 0FFFH 时 即超出片内程序存储器 的 4KB 地址范围时将自动转向执行外部程序存储器内的程序 当引脚为低时 单 EA 片机只访问外部程序存储器 不论是否有内部程序存储器 I O 口引脚 P0 P1 P2 P3 为四个 8 位 I O 口的外部引脚 P0 口 P1 口 P2 口 P3 口是 3 个 8 位准双向的 I O 口 各口线在片内均有固定的上拉电阻 当这 3 个准双向 I O 口作输入口使用时 要向该口先写 1 另外准双向口 I O 口无 高阻的 浮空 状态 由于单片机具有体积小 质量轻 价格便宜 耗电少等突出特点 所以本系统 采用 89C51 单片机 硬件设计电路图如图 1 所示 89C51 内部有 4KB 的 EPROM 128 字节的 RAM 所以一般都要根据所需存储容量的大小来扩展 ROM 和 RAM 本电路 接高电平 没有扩展片外 ROM 和 RAM EA 3 43 4 ADAD 采样电路的设计采样电路的设计 所谓 A D 转换器就是模拟 数字转换器 ADC 是将输入的模拟信号转换成数字 信号 信号输入端可以是传感器或转换器的输出 而 ADC 的数字信号也可能提供给 微处理器 以便广泛地应用 CS RD WR 是数字控制输入端 满足标准 TTL 逻辑电平 其中 CS 和 WR 用 南昌航空大学学士论文 17 来控制 A D 转换的启动信号 CS RD 用来读 A D 转换的结果 当它们同时为低电 平时 输出数据锁存器 DB0 DB7 各端上出现 8 位并行二进制数码 ADC0801 0805 片内有时钟电路 只要在外部 CLKI 和 CLKR 两端外接一对电阻电容即可产生 A D 转换所要求的时钟 其振荡频率为 fCLK 1 1 1RC 其典型应用参数为 R 10K C 150PF fCLK 640KHZ 转换速度为 100 若采用外部时钟 则外部 fCLK 可从 CLKI 端送入 此时不接 R C 允许的时钟频率范围为 100KHZ 1460KHZ INTR 是转换结束信号输出端 输出跳转为低电平表示本次转换 已经完成 可作为微处理器的中断或查询信号 如果将 CS 和 WR 端与 INTR 端相连 则 ADC0804 就处于自动循环转换状态 CS 0 时 允许进行 A D 转换 WR 由低跳 高时 A D 转换开始 8 位逐次比较需 8 8 64 个时钟周期 再加上控制逻辑操作 一次转换需要 66 73 个时钟周期 在典型应用 fCLK 640KHZ 时 转换时间约为 103 114 当 fCLK 超过 640KHZ 转换精度下降 超过极限值 1460KHZ 时 便不能正常工作 被转换的电压信号从 VIN 和 VIN 输入 允许此信号是差 动的或不共地的电压信号 如果输入电压 VIN 的变化范围从 0V 到 Vmax 则芯片的 VIN 端接地 输入电压加到 VIN 引脚 由于该芯片允许差动输入 在共模 输入电压允许的情况下 输入电压范围可以从非零伏开始 即 Vmin 至 Vmas 此时 芯片的 VIN 端应该接入等于 Vmin 的恒值电码坟上 而输入电压 VIN 仍然加到 VIN 引脚上 A D 转换器一般都有这两个引脚 模拟地 AGND 和数字地 DGND 分 别设置引入端 使数字电路的地电流不影响模拟信号回路 以防止寄生耦合造成的 干扰 参考电压 VREF 2 可以由外部电路供给从 VREF 2 端直接送入 VREF 2 端 电压值应是输入电压范围的二分之一所以输入电压的范围可以通过调整 VREF 2 引 脚处的电压加以改变 转换器的零点无调整 3 4 13 4 1 ADC0804ADC0804 接口电路设计接口电路设计 现以程序查询方式为例 说明 ADC0804 在数据采集系统中的应用 采集数据时 首先微处理器执行一条传送指令 在该指令执行过程中 微处理器在控制总线的同 时产生 CS1 WR1 低电平信号 启动 A D 转换器工作 ADC0804 经 100 s 后将输入 模拟信号转换为数字信号存在输出锁存器中 并在 INTR 端产生低电平表示转换结束 并通知微处理器可来取数 当微处理器通过总线查询到 INTR 为低电平时 立即执行 输入指令 以产生 CS RD2 低电平信号到 ADC0804 相应引脚 将数据取出并存入存 储器中 整个数据采集过程 由微处理器有序地执行若干指令来完成 ADC0804 是 8 位全 MOS 中速 A D 转换器 它是逐次逼近式 A D 转换器 片内有 南昌航空大学学士论文 18 三态数据输出锁存器 可以和单片机直接接口 单通道输入 转换时间大约为 100us ADC0804 转换时序是 当 CS 0 许可进行 A D 转换 WR 由低到高时 A D 开 始转换 一次转换一共需要 66 73 个时钟周期 CS 与 WR 同时有效时启动 A D 转换 转换结束产生 INTR 信号 低电平有效 可供查询或者中断信号 在 CS 和 RD 的控 制下可以读取数据结果 AD 转换电路如图 3 6 所示 图3 6 ADC0804模数转换电路图 3 53 5 液晶显示模块液晶显示模块 LCD1602 字符型液晶显示模块是一种专门用于显示字母 数字 符号等点阵式 LCD 目前常用 16 1 16 2 20 2 和 40 2 行等的液晶显示模块 模块组件内 部主要由 LCD 显示屏 控制器 列驱动器和偏压产生电路构成 其硬件原理图见图 3 7 南昌航空大学学士论文 19 图 3 7 液晶显示原理图 3 53 5 声光报警模块声光报警模块 本设计采用蜂鸣器和发光二级管进行报警 当测量的溶度值超过阈值是 蜂鸣器 和二极管发生对应的变换 其原理为 当 P2 1 P2 2 或 P2 3 口为低电平时 发光 二极管点亮 为高电平时熄灭 P2 4 为高电平时 蜂鸣器响 为低电平时不响 具 体接法如图 3 8 图 3 8 声光报警原理图 南昌航空大学学士论文 20 4 基于单片机酒精溶度测试系统的软件设计基于单片机酒精溶度测试系统的软件设计 系统软件采用 C 语言 在 Windows XP 环境下采用 KeiluVision2 进行编写 对 STC89C52 进行编程以实现各项功能 在整个软件的设计过程中 使用了模块化的结 构设计思想使得程序具有灵活可变的特点并且具有较强的可移植性 为系统的二次 开发及类似系统的开发提供了极大的便利 4 14 1 编译语言的选择编译语言的选择 对于单片机的开发应用中 逐渐引入了高级语言 C 语言就是其中的一种 汇 编语言的可控性较高级语言来说更具优越性 程序编写语言比较常见的有 C 语言 汇编语言 汇编语言的机器代码生成效率高 控制性好 但就是移植性不高 C 语言编写的程序比用汇编编写的程序更符合人们的思考习惯 还有很多处理 器都支持 C 编译器 这样意味着处理器也能很快上手 且具有良好的模块化 容易 阅读 维护等优点 且编写的模块程序易于移植 基于 C 语言和汇编语言的优缺点 本系统采用 C 语言编写方法 软件编写的主体思路是将系统按功能模块化划分 然后根据模块要实现的功能 来写各个子程序 整个软件程序的编写采用查询方式编写的 4 24 2 软件功能分析软件功能分析 系统程序主要完成 A D 转换 液晶显示 声光报警 时钟等功能 软件对酒精 传感器的测量信号进行 A D 转换 将测量数值与规定标准进行比较后判断饮酒程度 对不同的酒精浓度调用相应的显示 报警程序 系统初始化后 当酒精传感器 MQ 3 对气体酒精进行采集 然后当检测到酒精气 味时 气体传感器 MQ 3 两个电极端 A B 间电阻将变小 对应与气体传感器负载电阻 的分压将变大 因为 ADC0804 的模拟输入端 VIN 与负载电阻的一端用导线连在 了一起 所以单片机在启动测试模数转换芯片之前要选择通道 0 写入模数转换芯 片 并将用作查询的单片机引脚 P3 3 置位 然后启动对通道 IN0 端输入的采集电压 信号作模数转换 等待转换的结束 利用单片机丰富的 I O 口可以采用查询方式来 检测模数转换是否结束 当单片机引脚 P3 3 为 1 时转换未结束等待 当查询到 P3 3 为 0 时表示模数转换已经结束 可以开始读取数据了 单片机通过 I O 口与模 南昌航空大学学士论文 21 数转换芯片的数据输出口相连读取转换后的数据 读取后的数据送到数据存储器单 元中 经过单片机作相应的处理 即要将该电压值转换为酒精浓度值 然后处理后 的数据转换成三位十进制 BCD 码用液晶显示 4 34 3 主程序模块主程序模块 主程序实现的功能 与硬件相结合实现酒精浓度检测系统的各个功能 酒精溶 度传感器将检测到的信号转变为电压信号 通过数据线传送给 AD 的 6 脚接收 单片 机通过控制 AD 的 CS 和 WR 的高低电平来控制其何时开始转换 数据转换需要一定的 时间 单片机可以通过判断 AD 的 5 脚来确定数据是否转换完 也可以通过延时来等 待其转换完 转换完的数据传送给单片机的 P1 口 单片机通过写指令来选定液晶的 显示模式 液晶分为上下两行 上一行的地址为 0 x80 下一行的地址为 0 x80 0 x40 液晶数据线接通单片机的 P0 口 单片机将 AD 转换完的数据传送给液 晶显示 同时与设定的阈值相比较 超过阈值则报警 主要是检测与显示 门限调 整与显示 检测数据显示功能子函数的调用 系统主程序流程图见图 4 1 南昌航空大学学士论文 22 图 4 1 主程序流程图 开始 初始化 MCU 信号采集 AD 转换 总开关 K 是否按下 显示系统预热时间 显示系统信息 开关 K2 是否按下 并 判断标志位 flag 显示检测值和实时时钟 开关 K0 K1 是否按下 调整阈值 Y flag 0 N Y flag 1 N Y N Y 南昌航空大学学士论文 23 4 3 14 3 1 A DA D 转换模块转换模块 1 模数转换模块的主要功能就是将经放大器放大的模拟电压信号转化为 MCU 能 够处理的数字信号 并传送给 MCU 由于酒精传感器的采集信号较大 不需要放大 器进行放大 直接进行模数转换 采用 ADC0804 其操作时序如图 4 2 图 4 2 AD0804 操作时序图 2 TLC549 转换的流程图见下图 4 3 南昌航空大学学士论文 24 开始 CS 0 WR 0 延时 CS 1 WR 1 延时 10ms CS 0 RD 0 赋值给 adval CS 1 RD 1 返回 图 4 3 数模转换流程图 所谓 A D 转换器就是模拟 数字转换器 ADC 是将输入的模拟信号转换成数字 信号 信号输入端可以是传感器或转换器的输出 而 ADC 的数字信号也可能提供给 微处理器 以便广泛地应用 CS RD WR 是数字控制输入端 满足标准 TTL 逻辑电平 其中 CS 和 WR 用 来控制 A D 转换的启动信号 CS RD 用来读 A D 转换的结果 当它们同时为低电 平时 输出数据锁存器 DB0 DB7 各端上出现 8 位并行二进制数码 ADC0801 0805 片内有时钟电路 只要在外部 CLKI 和 CLKR 两端外接一对电阻电容即可产生 A D 转换所要求的时钟 其振荡频率为 fCLK 1 1 1RC 其典型应用参数为 R 10K C 150PF fCLK 640KHZ 转换速度为 100 若采用外部时钟 则外部 fCLK 可从 CLKI 端送入 此时不接 R C 允许的时钟频率范围为 100KHZ 1460KHZ INTR 是转换结束信号输出端 输出跳转为低电平表示本次转换 已经完成 可作为微处理器的中断或查询信号 如果将 CS 和 WR 端与 INTR 端相连 则 ADC0804 就处于自动循环转换状态 CS 0 时 允许进行 A D 转换 WR 由低跳 南昌航空大学学士论文 25 高时 A D 转换开始 8 位逐次比较需 8 8 64 个时钟周期 再加上控制逻辑操作 一次转换需要 66 73 个时钟周期 在典型应用 fCLK 640KHZ 时 转换时间约为 103 114 当 fCLK 超过 640KHZ 转换精度下降 超过极限值 1460KHZ 时 便不能正常工作 被转换的电压信号从 VIN 和 VIN 输入 允许此信号是差 动的或不共地的电压信号 如果输入电压 VIN 的变化范围从 0V 到 Vmax 则芯片的 VIN 端接地 输入电压加到 VIN 引脚 由于该芯片允许差动输入 在共模 输入电压允许的情况下 输入电压范围可以从非零伏开始 即 Vmin 至 Vmas 此时 芯片的 VIN 端应该接入等于 Vmin 的恒值电码坟上 而输入电压 VIN 仍然加到 VIN 引脚上 A D 转换器一般都有这两个引脚 模拟地 AGND 和数字地 DGND 分 别设置引入端 使数字电路的地电流不影响模拟信号回路 以防止寄生耦合造成的 干扰 参考电压 VREF 2 可以由外部电路供给从 VREF 2 端直接送入 VREF 2 端 电压值应是输入电压范围的二分之一所以输入电压的范围可以通过调整 VREF 2 引 脚处的电压加以改变 转换器的零点无调整 4 3 24 3 2 按键输入模块按键输入模块 按键时显现人机对话的一个控制按钮 通过按键的操作 对系统进行发送操作 指令 后经与 MCU 串行通信 然后在液晶上显示 1 数字按键查询式的流程图见下图 4 4 南昌航空大学学士论文 26 N Y N Y 图 4 4 数字按键查询式的流程图 按键的四个键分别接 P2 0 P3 0 P3 1 P3 2 由于 P2 口 P3 口具有上拉电阻 所以不再需要加上拉电阻进行电流的放大 2 确认按键查询方式的流程图见图 4 5 按键按下 调用延时程序 按键释放 调整阈值 开始 返回 南昌航空大学学士论文 27 开始 按键按下 调用延时子程序 按键是否释放 执行相应的程序 图 4 5 确认按键查询方式流程图 4 3 34 3 3 液晶显示输出模块液晶显示输出模块 LCD1602 模块在本系统中主要起着开界面数字显示 以及各控制效果的显示 采用直接访问方式 液晶显示的操作流程图见下图 4 6 N N Y Y 南昌航空大学学士论文 28 Y N 图 4 6 液晶显示流程图 液晶显示 D0 到 D7 口接 P0 0 到 P0 7 单独使用一个口 为了避免数据的干扰 由于 P0 口没有上拉电阻 所以需要一个排阻进行电流的扩大 4 3 44 3 4 报警模块报警模块 此模块为单片机的输出模块 将实际测量值与阈值相比较 发光二级管和蜂鸣 器做出相应的反应 具体流程图如图 4 7 读状态字 忙 写指令代码 显示数据 读显示数据 开始 传送地址指令码 返回 南昌航空大学学士论文 29 开始 有键按下否 调整阈值 将测量值与阈值进行 比较 测量值 阈值 90阈值 90 测量值阈值 黄 红灯不亮 报 警器不想 黄灯亮 红灯不亮 报警器不响 黄灯不亮 红灯亮 报警器响 返回 N Y AD 转换子程序 图 4 7 报警模块流程图 4 3 54 3 5 时钟模块时钟模块 本次毕设用单片机内部的定时器 1 作为系统时钟 初始时间可以自己设定 然 后通过单片机送给液晶显示 其具体软件流程图如图 4 8 南昌航空大学学士论文 30 开始 开启总中断和定时器 1 中断 设定定时器初 值 执行其他程序 定时器时间是否 已到 执行相应的中断服务 程序 将时 分 秒值送到 液晶显示 返回 N Y 图 4 8 系统时钟模块流程图 4 3 64 3 6 预热模块预热模块 MQ3 酒精传感器是气敏传感器 其具有很高的灵敏度 良好的选择性 长期的 使用寿命和可靠的稳定性 为了使测量的精度达到最高 误差最小 需要找到合适 的温度 一般在测量前需将传感器预热 20 秒钟 采用单片机定时器 0 进行时间控制 其 具体程序流程图如图 4 9 南昌航空大学学士论文 31 开始 开总中断和定时器 0 中断 给定时器 0 赋初值 判断 t1 是否等于 14 执行中断服务程序 将预热时间送液晶显示 返回 N Y 图 4 9 酒精传感器预热时间流程图 南昌航空大学学士论文 32 5 系统调试系统调试 此次设计是硬件 软件结合型的 一般这种情况下调试应该是软硬件交叉进行 的 但一般情况下先确保硬件电路的正确性 再进行软件总体调试 以下是硬件调 试过程 为了提高调试的准确性和高效性 在本次调试过程中使用的是分模块调试 的思想 5 15 1 系统硬件调试系统硬件调试 先做出 PCB 板 焊接前应对整个电路板进行检查 首先 用万用表对印制的电 路板线路进行检查 该过程是在焊接元器件之前的必要工作 主要是检查印制的电 路板线路是否有断路的情况 如果检查没有问题 则可以对元器件进行焊接 焊接 前对电阻 电容的量值要进行测量 筛选 选择与电路中参数值一致的元器件 在 选择芯片时 要注意芯片与设计要求的型号 规格和安装是否一致 在焊接时 应 将印制的电路板认真对照原理图 查看元器件的引脚焊接是否正确 电路板焊接完成后 需要对每个元器件的引脚逐个进行检查 一方面是检查有 没有引脚虚焊或与其他信号线短路 另一方面是对器件引脚功能的再检查 查看设 计是否正确 检查电路焊接没有问题后 则可以进行上电测试 上电测试是调试的 关键部分 按照系统方案设计的模块化思想 应该分模块测试系统 首先还是应该 测试电源部分 系统上电以后 测试各个电源端口和器件的电源部分是否工作正常 同时应注意系统中有无器件过热情况 如果有的话 可能是相应的器件损坏或电路 中有短路 需要认真检查之后再加电 如果没有问题 则可以进行功能的检测 5 1 15 1 1 ADAD 采样模块的调试采样模块的调试 AD 采样电路的调试看似简单 其实不然 尤其在一些细节上没注意的话可能 影响整个电路 在调试中就遇到了这样的事 当焊好电路后 检查了各脚和线均以 连通 上电后 当输入为一个定值时 采样转换值不断变化且没有规律 不知道为 什么 但检查电路 发现没有虚焊 且与电路原理图一样 就是这个问题使得进度 推迟了 后来没办法了就问了一下老师 通过老师的分析 再检查发现是电路原理 图画错了 AD 的 8 位数据线接反了 就是其高低位刚好接反了 经过修改后再上 电发现能正常工作了 这个问题非常容易被人忽视 但这却是十分重要的一步 南昌航空大学学士论文 33 5 1 25 1 2 传感器模块调试传感器模块调试 传感器模块电路的调试很重要 因为这为系统的前端电路 此电路不正常的话 后面的就没意义了 在调试过程中也遇到了一些问题 当焊此电路时 输出端得接 地电阻用了一个 20K 的定值电阻 上电后发现电压变化不明显 则想到了用放大器 由于要进行差分放大 则使得放大电路有点复杂 焊好后发现输出基本不变 放大 器有问题 但后来找了好久都没找到原因 则要另想办法 此时把输出端得接地电 阻换成用了一个变阻器 然后上电调试 发现当电阻为 3 5K 时输出电压可由 1 4V 变化到 4 1V 能达到近 3V 的压差 变化范围明显 接下来就是要找出酒精浓度和电压的关系 在调试时用了多个不同浓度的酒精 气体样品 从小到大 依次用气敏传感器检测 并记录对应的电压值 从而找出记 录样品的浓度和电压值之间的关系 首先根据查找的资料选择 8 个合适的

温馨提示

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

评论

0/150

提交评论