基于单片机的智能型浴室混水阀控制器的设计初稿毕业论文.doc_第1页
基于单片机的智能型浴室混水阀控制器的设计初稿毕业论文.doc_第2页
基于单片机的智能型浴室混水阀控制器的设计初稿毕业论文.doc_第3页
基于单片机的智能型浴室混水阀控制器的设计初稿毕业论文.doc_第4页
基于单片机的智能型浴室混水阀控制器的设计初稿毕业论文.doc_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

学校代码 11059 学 号 0605074001 Hefei University 毕毕业业论论文文 设设计计 BACHELOR DISSERTATION 论文题目 基于单片机的智能型浴室混水阀控制器的设计基于单片机的智能型浴室混水阀控制器的设计 基于单片机的智能型浴室混水阀控制器基于单片机的智能型浴室混水阀控制器 中中 文文 摘摘 要要 随着信息技术的飞速发展以及人们生活水平的大幅度提高 人们对生活的需求已 从追求简单向着追求质量 功能 服务等多重需求过渡 在冬天 热水器是人们使用 很频繁的家用电器 但传统的机械式混水阀的对水温的调节操控性并不是很好 因而 本设计针对热水器的混水阀控制器进行改进 使其具有自动调节水温的功能以及良好 的操控性 本文采用 AT89C52 单片机来检测整个系统 温度传感采集水管现场数据 经过信 号处理模块对信号进行处理 通过模数转换器 将信号送入单片机 显示处理结果 硬件部分介绍温度传感器 A D 转换器 单片机 显示模块及步进电机 软件部分主 要介绍设计思想及主程序流程图 系统调试部分包括调试软件 调试过程及调试过程 中出现的问题和解决方法 关键词 混水阀 单片机 温度 传感器混水阀 单片机 温度 传感器 Based on Microprocessor Intelligent Controller of Mixing Valve Abstract With the rapid development of information technology people s living standards greatly improved demanding people seeking a simple life toward the pursuit of quality functionality and service multiple needs of the transition In winter water heater is very frequent the use of household appliances but the traditional mechanical mixing valve for regulating water temperature is not very good handling Therefore the design of the mixing valve controller for the water heater to improve it has the automatic adjustment function of temperature and good handling In this paper AT89C52 microcontroller to detect the entire system water temperature sensing field data collection through the signal processing module processing the signal through the ADC the signal into the microcontroller display processing results Temperature sensor section describes the hardware A D converter microcontroller display module and stepper motor Software design and introduce some of the main program flow chart system debugging section includes debugging software the debugging process and the debugging process problems and solutions Keywords mixing valve microcontroller Temperature sensor 目目 录录 第一章 绪论 1 1 1 课题研究的背景及依据来源 1 1 1 1 课题研究的背景 1 1 1 2 课题的依据来源 1 1 2 传统机械式混水阀 2 1 2 1 传统机械式浴室混水阀的工作原理 2 1 2 2 传统机械式混水阀存在的问题 2 1 3 智能型浴室混水阀 2 1 3 1 智能型浴室混水阀控制器的基本组成 2 1 3 2 智能型浴室混水阀控制器工作原理 3 第二章 系统方案的设计与论证 3 2 1 系统功能 3 2 2 系统总体方案规划 4 2 3 各模块方案选择及论证 4 2 3 1 中央处理单元 4 2 3 2 键盘输入模块 4 2 3 3 温度显示模块 5 2 3 4 温度采集模块 5 2 3 5 执行机构 5 第三章 主要元器件的设计 7 3 1 AT89C52 单片机 7 3 1 1 功能特性描述 7 3 1 2 管脚描述 8 3 1 3 引脚功能 8 3 2 AD590 温度传感器 10 3 2 1 概述 10 3 2 2 AD590 工作原理 11 3 3 ADC0809 模数转换器 11 3 3 1 主要特性 11 3 3 2 ADC0809 工作原理 12 3 4 1602 字符液晶 13 3 4 1 引脚说明 13 3 4 2 字符集 15 3 4 3 指令集 16 3 5 4 4 矩阵键盘 16 3 6 步进电机 17 3 6 1 概述 17 3 6 2 分类 18 3 6 3 基本原理 18 3 7 步进电机驱动芯片 L297 19 3 7 1 概述 19 3 7 2 L297 各引脚功能说明 20 3 7 3 L297 驱动相序的产生 22 第四章 系统硬件设计 22 4 1 扩展外围接口 22 4 2 温度检测电路设计 23 4 3 1 设计目标 23 4 3 2 设计的出发点 23 4 3 4 转换电路 23 4 3 显示电路设计 24 4 4 执行机构的设计 24 第五章 系统的软件设计 25 5 1 系统软件设计思想 25 5 1 1 系统流程图 25 5 1 2 冷热水的配比 26 5 2 子程序描述及流程图 26 5 2 1 系统初始化子程序 26 5 2 2 A D 转换子程序 26 5 2 3 键盘扫描子程序 26 5 2 4 温度显示子程序 27 5 2 5 打开电机子程序 27 5 3 6 温度控制子程序 27 5 2 7 水位控制 28 5 2 8 中断子程序 28 第六章 系统调试与仿真 29 6 1 温度采集的调试 29 6 2 4 4 键盘的调试 30 6 3 供水部分的调试 30 6 4 步进电机的调试 30 6 5 PROTEUS 系统仿真 30 5 5 总结 30 结束语 30 参考文献 31 致谢 31 附录 32 第一章第一章 绪论绪论 1 11 1 课题研究的背景课题研究的背景及依据来源及依据来源 1 1 1 课题研究的背景 随着电子技术以及应用需求的发展 单片机技术得到了迅速的发展 在高集成度 高速度 低功耗以及高性能方面取得了很大的进展 由于单片机具有功能强 体积小 可靠性好 和价格低廉等独特优点 因此 在智能仪器仪表 工业自动控制 计算机 智能终端 家用电器 儿童玩具等许多方面 都已得到了很好的应用 因而受到人们 高度重视 取得了一系列科研成果 成为传统工业技术改造和新产品更新换代的理想 机种 具有广阔的发展前景 温度是工业控制中主要的被控参数之一 特别是在冶金 化工 建材 食品 机 械等工业中 具有举足重轻的作用 因此 温度控制系统是典型的控制系统 伴随着科 学技术的发展 电子技术有了更高的飞跃 我们现在完全可以运用单片机和电子温度 传感器对某处进行温度检测 而且我们可以很容易地做到多点的温度检测 我们还可 以进行不同地点的实时温度检测和控制 1 1 2 课题的依据来源 目前 在宾馆 家庭以及公共浴室中使用的混水阀 大多数是机械式混水阀 其 类型有冷热水手调式 单把开关调温式等几种 虽然外形设计多种多样 美观大方 但是洗浴者对水温的调节都是依靠机械式混水阀对热水管道与冷水管道阀门的开启比 例来实现的 其操作过程往往需要操作者通过肢体 比如 手 触觉进行测量来反映 混合后水温是否合适 使用多有不便 并且容易导致混水阀门的使用寿命缩短 随着 计算机智能技术的发展 特别是微型计算机技术的发展 利用单片机开发智能型浴室 混水阀控制器实现对出水口水温 水流速度以及淋浴头水流方式的控制具有实际的使 用价值 对推进人们的健康生活与家居智能化以及节水都具有现实意义 21 世纪是信息社会 更是现代化社会 而现代化不仅要工业现代化 人们的日常 生活也要跟上现代化的步伐 而这些是离不开一些智能控制的装置 在人们的家居生 活中 大部分人还是使用着传统的机械式淋浴系统 这种系统易损坏且调温不准 容 易烫伤皮肤 为使浴室也智能化 因此设计智能型浴室混水阀控制器来改善人们的生 活品质 1 21 2 传统机械式混水阀传统机械式混水阀 1 2 1 传统机械式浴室混水阀的工作原理 在传统的浴室供水系统中 一般冷 热水有各自的独立管道 个人家庭中使用的 太阳能热水器也是如此 通过一个混水阀或两个混水阀来调节水温 一般情况下混水 阀由一个冷水进水口 一个热水进水口和一个温水出水口 使用者通过调节混水阀旋 钮来选择适合自己淋浴的水温 一般情况下 传统机械式混水阀如图 1 所示 图 1 传统机械式混水阀示意图 1 2 2 传统机械式混水阀存在的问题 从日常生活经验中可以看出 通过机械式混水阀出来的水温很不稳定 并且不容 易用手控制合适的水温 主要原因有两个 一是热水和冷水的温差波动大 二是冷水 与热水管道内各自的压力不同 从而压力影响了冷水与热水的流速 进而冷水与热水 的进水量也就不均衡 1 31 3 智能型浴室混水阀智能型浴室混水阀 1 3 1 智能型浴室混水阀控制器的基本组成 智能型浴室混水阀控制器采用 Intel 公司的 8051 单片机作为主控制芯片 总控制 电路主要由温度采集模块 键盘输入模块 温度显示模块 步进电机驱动模块 水位 控制 主控制芯片和电源模块组成 本设计的结构框图如图 2 所示 AT89C52 冷水进水管 热水进水管 步进电机 温度传感器 AD590 温水出水管 键盘 LCD显示 冷水温度 热水温度 温水温度水位控制 图 2 智能型浴室混水阀控制器的方框图 1 3 2 智能型浴室混水阀控制器工作原理 针对机械式混水阀存在的问题 智能型混水阀控制器能够较好改进这些问题 智 能型混水阀控制器采用温度传感器 能够对进 出水管实时检测和显示对应的温度 步进电机用来调节进水管的开度 使用者通过键盘设定期望温度 由单片机对设定的 温度值和实际温度进行比较来调节步进电机的转动量 进而动态的控制冷热水进水管 的进水量 以此来达到温度平衡 从而可以达到出水管温度的控制 解决出水温度不 稳定的问题 另外 本系统人机界面良好 还有多路水管温度显示 半自动上水的功能 第二章第二章 系统方案的设计与论证系统方案的设计与论证 2 12 1 系统功能系统功能 1 从键盘输入设定温度值并显示 2 通过温度传感器检测三个水管的温度 并显示进水口的冷 热水温度和出水 口的温水温度 3 控制器比较设定温度和温水温度是否一致 不一致就控制步进电机电机调节 冷热水的进水量的比例 从而使出水管的水温与设定的温度值一致 4 半自动上水功能 上满水后由 LED 灯提示报警 2 22 2 系统总体方案规划系统总体方案规划 根据系统的功能要求 系统可规划为中央处理单元 单片机 温度采集模块 键 盘输入模块 温度显示模块 水位控制 执行机构和电源模块 如图 3 所示 中央处理单元 单片机机 键盘输入模块温度显示模块 温度采集模块 执行单元模块 电源模块 水位控制 图 3 系统基本模块方框图 2 32 3 各模块方案选择及论证各模块方案选择及论证 2 3 1 中央处理单元 目前 生产单片机的公司很多 但技术成熟 芯片工作稳定性好的就少了 主流 的生产厂家主要有 Intel 公司 Atmel 公司 Maxim 公司等等 基于经济实用 轻 巧灵活 功耗低和熟悉其工作原理及设计方法的原则 我们选择了 Intel 公司的 80C51 单片机内核的 AT89C52 芯片 2 3 2 键盘输入模块 键盘作为数据输入接口 是大部分自动控制系统不可或缺的一部分 而键盘的接 线方法主要有两种 独立式键盘和矩阵式键盘 独立式键盘占用系统 I O 口多 且接 线麻烦 在本设计中 需要的按键较多 故采用 4 4 的矩阵式键盘以节省 I O 口资源 2 3 3 温度显示模块 该模块主要是对出水口的温水温度和键盘设定的温度进行显示 温度由两位数据 组成 目前的显示 LCD 显示 7 段数码管显示和 VGA 显示等等 对于 LCD 和 VGA 显示器 件显示内容丰富 可读性高 但价格相对 LED 数码管偏高 并且驱动程序复杂 7 段数 码管具有价格便宜 原理简单 显示数字清晰等诸多优点 在大型报时屏幕 银行利 率显示 城市霓虹灯建设中得到广泛应用 但是 7 段数码管显示内容单调 且占用 CPU 的 I O 资源较多 根据本设计的需要 采用 LCD1602 的液晶屏作为显示器件 2 3 4 温度采集模块 该模块主要是对两个进水管 一个出水管的温度 即冷水 热水和温水的温度进 行检测 然后送到 A D 转换器件进行 A D 转换 最后送到单片机中进行数据处理 在 温度采集器件中 有热电偶 热敏电阻 AD590 DS18B20 等等温度传感器 热电偶和 热敏电阻检测电路复杂 DS18B20 作为数字温度传感器价格贵 而 AD590 具有响应时间 短 输出电流和温度严格成正比例关系 线性度好 要求功率低 广泛应用于加热 空调机及家用电器中 AD590 是一个不错的选择 对于 A D 转换 本系统对温度的要求不是很高 检测温度范围为 0 100 C 因此 不需要位数很高的 A D 转换芯片 采用 8 位的转换芯片就够了 并且 ADC0809 支持多 通道的数 模转换 符合本设计的三通道温度采集的要求 为此 我们选择常用的 ADC0809 作为系统的 A D 转换芯片 2 3 5 执行机构 在系统中 控制对象为冷水管和热水管的进水量 为了准确的控制进水量 使用 直流电机是不能达到目的的 另一种电机是步进电机 这种电机是一步一步转动的 不同型号的步进电机的步进角不同 但它们都能精确定位 步进电机可分为三种类型 1 反应式步进电机 VR 反应式步进电机一般为三相 可实现大转矩输出 步进角一般为 1 5 但噪声和 振动都很大 目前这种电机已被淘汰 2 永磁式步进电机 PM 永磁式步进一般为两相 转矩和体积较小 步进角有 7 5 15 和 30 3 混合式步进电机 HB 混合式步进电机是指混合了永磁式和反应式两者的优点 它又分为两相和五相 两相的步进角一般为 1 8 而五相的步进角一般为 0 72 五相步进电机较佳 加减速 时间较短 动态惯性较低 它广泛应用于各种领域中 我们也选择二相的混合式步进 电机作为执行机构 同时 选择应用广泛的步进电机驱动芯片 L297 来驱动步进电机 本设计采用单管式混水阀 即只用一个步进电机来控制冷 热进水管的两个阀门 这样的话 冷 热进水管阀门的开度大小相等 方向相反 只要通过计算 调节冷热 水的比例 就可以得到不同的出水温度了 并且可以保持出水流量大小的恒定 第三章第三章 主要元器件的设计主要元器件的设计 3 13 1 AT89C52AT89C52 单片机单片机 3 1 1 功能特性描述 AT89C52 是一个低电压 高性能 CMOS 8 位单片机 片内含 8k bytes 的可反复擦写 的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器 RAM 器件采用 ATMEL 公司的高密度 非易失性存储技术生产 兼容标准 MCS 51 指令系统 片内置通用 8 位 中央处理器和 Flash 存储单元 功能强大的 AT89C52 单片机可提供许多较复杂系统控 制应用场合 图 4 为 ATMEL 公司生产的 AT89C52 实物图 图 4 AT89C52 实物图 主要功能特性 兼容 MCS51 指令系统 8k 可反复擦写 1000 次 Flash ROM 32 个双向 I O 口 256x8bit 内部 RAM 3 个 16 位可编程定时 计数器中断 时钟频率 0 24MHz 2 个串行中断 可编程 UART 串行通道 2 个外部中断源 共 6 个中断源 2 个读写中断口线 3 级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 3 1 2 管脚描述 AT89C52P 为40 脚双列直插封装的 8 位通用微处理器 采用工业标准的C51内 核 在内部功能及管脚排布上与通用的 8xc52 相同 其主要用于会聚调整时的功 能控制 功能包括对会聚主 IC 内部寄存器 数据 RAM 及外部接口等功能部件的初 始化 会聚调整控制 会聚测试图控制 红外遥控信号IR 的接收解码及与主板 CPU 通信等 主要管脚有 XTAL1 19 脚 和 XTAL2 18 脚 为振荡器输入输出 端口 外接 12MHz 晶振 RST Vpd 9 脚 为复位输入端口 外接电阻电容组成的 复位电路 VCC 40 脚 和 VSS 20 脚 为供电端口 分别接 5V 电源的正负端 P0 P3 为可编程通用 I O 脚 其功能用途由软件定义 在本设计中 P0 端口 32 39 脚 被定义为 N1 功能控制端口 分别与 N1的相应功能管脚相连接 13 脚定义为 IR 输入端 10 脚和11脚定义为 I2C 总线控制端口 分别连接 N1的 SDAS 18脚 和 SCLS 19脚 端口 12 脚 27 脚及28 脚定义为握手信号功能 端口 连接主板 CPU 的相应功能端 用于当前制式的检测及会聚调整状态进入的控 制功能 管脚图如图 5所示 图 5 AT89C52 管脚图 3 1 3 引脚功能 RST 复位引脚 输入高电平使 89C52 复位 返回低电平退出复位 VPP 运行方式时 为程序存储器选择信号 接地时 CPU 总是从外部存储EAEA EA 器中取指令 接高电平时 CPU 可以从内部或外部取指令 FLASH 编程方式时 该引 EA 脚为编程电源输入端 VPP PSEN 外部程序存储器读选通信号 从外部存储器取指令时 从 PSEN 引脚输出读选 通信号 负脉冲 ALE PROG 运行方式时 ALE 为外部存储器低八位地址锁存信号 FLASH 编程方式时 该引脚为编程脉冲输入端 XTAL1 XTAL2 为内部振荡器电路 反相放大器 的输入端和输出端 外接晶振电路 P0 口 P0 口是一组 8 位漏极开路型双向 I O 口 也即地址 数据总线复用口 作 为输出口用时 每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路 对端口 P0 写 1 时 可作为高阻抗输入端用 在访问外部数据存储器或程序存储器时 这组口线分时 转换地址 低 8 位 和数据总线复用 在访问期间激活内部上拉电阻 在 Flash 编程 时 P0 口接收指令字节 而在程序校验时 输出指令字节 校验时 要求外接上拉电 阻 P1 口 P1 是一个带内部上拉电阻的 8 位双向 I O 口 P1 的输出缓冲级可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口写 1 通过内部的上拉电阻把端 口拉到高电平 此时可作输入口 作输入口使用时 因为内部存在上拉电阻 某个引 脚被外部信号拉低时会输出一个电流 IIL 与 AT89C51 不同之处是 P1 0 和 P1 1 还可分别作为定时 计数器 2 的外部计数输入 P1 0 T2 和输入 P1 1 T2EX Flash 编程和程序校验期间 P1 接收低 8 位地址 P2 口 P2 是一个带有内部上拉电阻的 8 位双向 I O 口 P2 的输出缓冲级可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口 P2 写 1 通过内部的上拉电阻 把端口拉到高电平 此时可作输入口 作输入口使用时 因为内部存在上拉电阻 某 个引脚被外部信号拉低时会输出一个电流 IIL 在访问外部程序存储器或 16 位地址 的外部数据存储器 例如执行 MOVX DPTR 指令 时 P2 口送出高 8 位地址数据 在 访问 8 位地址的外部数据存储器 如执行 MOVX RI 指令 时 P2 口输出 P2 锁存器 的内容 Flash 编程或校验时 P2 亦接收高位地址和一些控制信号 P3 口 P3 口是一组带有内部上拉电阻的 8 位双向 I O 口 P3 口输出缓冲级可驱 动 吸收或输出电流 4 个 TTL 逻辑门电路 对 P3 口写入 1 时 它们被内部上拉 电阻拉高并可作为输入端口 此时 被外部拉低的 P3 口将用上拉电阻输出电流 IIL P3 口除了作为一般的 I O 口线外 更重要的用途是它的第二功能 P3 口还接收一些用 于 Flash 闪速存储器编程和程序校验的控制信号 3 23 2 AD590AD590 温度传感器温度传感器 3 2 1 概述 AD590 是 AD 公司利用 PN 结正向电流与温度的关系制成的电流输出型两端温度传感 器 实际上 中国也开发出了同类型的产品 SG590 这种器件在被测温度一定时 相当 于一个恒流源 该器件具有良好的线性和互换性 测量精度高 并具有消除电源波动 的特性 即使电源在 5 15V 之间变化 其电流只是在 1 A 以下作微小变化 AD590 是电流型温度传感器 通过对电流的测量可得到所需要的温度值 根据特性 分档 AD590 后缀以 I J K L M 表示 AD590L AD590M 一般用于精密温度测量电 路 其电路外形如图所示 它采用金属壳 3 脚封装 其中 1 脚为电源正端 V 2 脚为 电流输出端 I0 3 脚为管壳 一般不用 集成温度传感器的电路符号如图 6 所示 图 6 AD590 的外形电路图及电路符号 AD590 的主要特性参数如下 工作电压 4 30V 工作温度 55 150 保存温度 65 175 正向电压 44V 反向电压 20V 焊接温度 10 秒 300 灵敏度 1 A K 3 2 2 AD590 工作原理 在被测温度一定时 AD590 相当于一个恒流源 把它和 5 30V 的直流电源相连 并 在输出端串接一个 1K 的恒值电阻 此电阻上流过的电流与被测温度成正比 此时电 阻两端将会有 1mV K 的电压信号 其基本电路如图 7 所示 图7 感温部分的核心电路 图7是利用 URE特性的集成PN结传感器的感温部分核心电路 其中T1 T2起恒流作 用 可用于使左右两支路的集电极电流I1和I2相等 T3 T4是感温用的晶体管 两个 管的材质和工艺完全相同 但T3实质上是由n个晶体管并联而成 因而其结面积是T4的 n倍 T3和T4的发射结电压URE3和URE4经反极性串联后加在电阻R上 所以R上端电压为 URE 因此 电流II为 II URE R KT q Inn R 对于AD590 n 8 这样 电路的总电流将与热力学温度T成正比 将此电流引至负载电 阻RL上便可得到与T成正比的输出电压 由于利用了恒流特性 所以输出信号不受电源 电压和导线电阻的影响 图3中的电阻R是在硅板上形成的薄膜电阻 该电阻已用激光 修正了其电阻值 因而在基准温度下可得到1 A K的I值 3 33 3 ADC0809ADC0809 模数转换器模数转换器 3 3 1 主要特性 ADC0809的主要特性指标 分辨率 n 8 时钟频率 小于640KHZ 转换时间 大于等于100微秒 不可调误差 1LSB 电源 单电源正5V 模拟输入量 8路 模拟输入范围 0 5V 参考电压 Uref Uref 5V 3 3 2 ADC0809 工作原理 ADC0809为逐次逼近式A D转换器 具有8个模拟量输入通道 它能与微型计算机的 大部分总线兼容 可在程序的控制下选择8个模入通道之一进行A D转换 然后把得到 的8位二进制数据送到微机的数据总线 供CPU处理 转换器是ADC0809的核心部分 它由D A转换 逐次逼近寄存器 SAR 比较器等 组成 其中 D A转换电路采用了256RT型电阻网络 即2n个电阻分压器 此处n 8 它在启动脉冲的上升沿来到时被复位 在启动脉冲的下降沿A D开始转换 如果在转换 过程中接收到新的启动转换脉冲 则终止转换 转换结束信号EOC在A D转换完成时为 1 ADC0809的内部结构如图8所示 8 路 模 拟 量 开 关 8 路 A D 转 换 器 三 态 输 出 锁 存 器 地址锁存 与译码器 Vref Vref OE D0 D7 D6 D5 D4 D3 D2 D1 EOC IN0 IN7 IN6 IN5 IN4 IN3 IN2 IN1 A B C ALE STCLK ADC0809的内部逻辑结构 图8 ADC0809的内部结构 3 43 4 16021602 字符液晶字符液晶 工业字符型液晶 能够同时显示 16x02 即 32 个字符 16 列 2 行 图 9 为 LCD 的示意图 图 9 LCD 示意图 3 4 1 引脚说明 1602 字符型 LCD 通常有 14 条引脚线或 16 条引脚线的 LCD 多出来的 2 条 线是背光电源线 VCC 15 脚 和地线 GND 16 脚 其控制原理与 14 脚的 LCD 完全一样 其中 管脚功能如表 1 所示 表 1 引脚的功能的说明 引脚符号功能说明 1VSS一般接地 2VDD接电源 5V 3V0 液晶显示器对比度调整端 接正电源时对比度最弱 接地电源 时对比度最高 对比度过高时会产生 鬼影 使用时可以通过 一个 10K 的电位器调整对比度 4RS RS 为寄存器选择 高电平 1 时选择数据寄存器 低电平 0 时 选择指令寄存器 5R W R W 为读写信号线 高电平 1 时进行读操作 低电平 0 时进 行写操作 6EE 或 EN 端为使能 enable 端 下降沿使能 7DB0底 4 位三态 双向数据总线 0 位 最低位 8DB1底 4 位三态 双向数据总线 1 位 9DB2底 4 位三态 双向数据总线 2 位 10DB3底 4 位三态 双向数据总线 3 位 11DB4高 4 位三态 双向数据总线 4 位 12DB5高 4 位三态 双向数据总线 5 位 13DB6高 4 位三态 双向数据总线 6 位 14DB7 高 4 位三态 双向数据总线 7 位 最高位 也是 busy flag 15BLA背光电源正极 16BLK背光 电源负极 寄存器选择的控制如表 2 所示 表 2 寄存器选择 的控制表 RSR W操作说明 00写入指令寄存器 清除屏等 01读 busy flag DB7 以及读取位址计数器 DB0 DB6 值 10写入数据寄存器 显示各字型等 11从数据寄存器读取数据 注 关于 E H 脉冲 开始时初始化 E 为 0 然后置 E 为 1 再清 0 busy flag DB7 在此位为被清除为 0 时 LCD 将无法再处理其他的指令 要求 3 4 2 字符集 1602 液晶模块内部的字符发生存储器 CGROM 已经存储了 160 个不同的 点阵字符图形 这些字符有 阿拉伯数字 英文字母的大小写 常用的符号 和日 文假名等 每一个字符都有一个固定的代码 比如大写的英文字母 A 的代码是 01000001B 41H 显示时模块把地址 41H 中的点阵字符图形显示出来 我们就 能看到字母 A 因为 1602 识别的是 ASCII 码 试验可以用 ASCII 码直接赋值 在单片机编 程中还可以用字符型常量或变量赋值 如 A 以下是 1602 的 16 进制 ASCII 码 如表 3 所示 表 3 1602 的 16 进制 ASCII 码 读的时候 先读上面那列 再读左边那行 如 感叹号 的ASCII 为 0 x21 字母 B 的 ASCII 为 0 x42 前面加 0 x 表示十六进制 显示地址 12345678910111213141516 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 40H 41H 42H 43H 44H 45H 46H 47H 48H 49H 4AH 4BH 4CH 4DH 4EH 4FH 3 4 3 指令集 1602 通过 D0 D7 的 8 位数据端传输数据和指令 显示模式设置 初始化 0011 0000 0 x38 设置 16 2 显示 5 7 点阵 8 位数据接口 显示开关及光标设置 初始化 0000 1DCB D 显示 1 有效 C 光标显示 1 有效 B 光标闪烁 1 有效 0000 01NS N 1 读或写一个字符后地址指针加 1 unsigned int steps 60 步进电机的初始转数为 60 使出水管温度保持适度 bit turn 1 定义步进电机的转向 bit turn 1 表示正转 unsigned char hotwater coldwater outwater keycode setwater setup 0 定义热水温度 冷水温度 出水温度 键值 设定的温度 键盘设定值 bit ok 0 start 0 reset 0 确定 开始 重设 sbit CW P3 0 步进电机转向 sbit PLUSE P3 1 步进电机的脉冲数 sbit motor P3 3 上水标志位 sbit full P3 2 满水位标志位 void Sys Init 系统初始化函数 void delay50ms int 延时函数 50ms void onPress 按键功能函数 void work 显示函数 主函数 void main void Sys Init DisplayString 3 0 Welcome while 1 coldwater ADC0809 0 选择通道 hotwater ADC0809 1 outwater ADC0809 2 keycode KeyScan if keycode 16 onPress if start if full 0 motor 1 显示函数 void work DisplayString 0 0 cold 显示冷水温度 DisplayOneChar 5 0 coldwater 100 10 0 x30 百位显示 DisplayOneChar 6 0 coldwater 10 10 0 x30 十位显示 DisplayOneChar 7 0 coldwater 10 0 x30 个位显示 DisplayString 9 0 hot 显示热水温度 DisplayOneChar 13 0 hotwater 100 10 0 x30 百位显示 DisplayOneChar 14 0 hotwater 10 10 0 x30 十位显示 DisplayOneChar 15 0 hotwater 10 0 x30 个位显示 DisplayString 0 1 out 显示出水温度 DisplayOneChar 4 1 outwater 100 10 0 x30 百位显示 DisplayOneChar 5 1 outwater 10 10 0 x30 个位显示 DisplayOneChar 6 1 outwater 10 0 x30 单位显示 DisplayOneChar 7 1 C DisplayString 9 1 set 显示设置温度 if setup 1 显示设置温度值的个位 DisplayOneChar 14 1 setwater 0 x30 else if setup 2 显示设置温度值的十 个 位 DisplayOneChar 13 1 setwater 10 10 0 x30 DisplayOneChar 14 1 setwater 10 0 x30 温度控制 if setwater outwater steps setwater outwater hotwater coldwater 100 升温 turn 0 else if outwater setwater steps outwater setwater hotwater coldwater 100 降温 turn 1 按键功能函数 void onPress switch keycode case 10 start 1 break 开始 case 11 start 0 break 关闭 case 12 ok 1 break 确定 case 15 reset 1 break 重设 case 14 motor 0 break 加水 if reset 1 重设复位 ok 0 setup 0 reset 0 setwater 0 if start DisplayString 0 0 Please setup DisplayString 0 1 then press ok if setup 3 if turn 1 CW 0 if i 0 PLUSE 0 i PLUSE 1 else CW 1 if i 0 PLUSE 0 i PLUSE 1 TH1 65536 50000 256 TL1 65536 50000 256 延迟函数 约为 50ms void delay50ms int x int i j for i 0 i x i for j 0 j 600 j include lcd1602 h voidLcd WriteData unsigned charTempData voidLcd WriteCmd unsigned charTempData unsigned charBuysC void Lcd ReadStatus void unsigned char Lcd ReadData void void Delay unsignedint delaytime sbitLcd RS P3 5 sbitLcd RW P3 6 sbitLcd E P3 7 sbit clock P2 0 sbit dat P3 4 unsigned charLcd Data voidLcd WriteData unsigned charTempData int t2 Lcd ReadStatus Lcd Data TempData for t2 0 t2 8 t2 dat bit Lcd Data clock 0 clock 1 Lcd Data Lcd Data 1 Lcd RS 1 Lcd RW 0 Lcd E 0 Lcd E 0 Lcd E 1 Lcd E 0 写指令 voidLcd WriteCmd unsigned charTempData unsigned charBuysC int t2 if BuysC Lcd ReadStatus Lcd Data TempData for t2 0 t2 8 t2 dat bit Lcd Data clock 0 clock 1 Lcd Data Lcd Data 1 Lcd RS 0 Lcd RW 0 Lcd E 0 Lcd E 0 Lcd E 1 Lcd E 0 Lcd E 0 读数据 unsigned char Lcd ReadData void Lcd RS 1 Lcd RW 1 Lcd E 0 Lcd E 0 Lcd E 0 Lcd E 0 Lcd E 1 Lcd E 0 return Lcd Data void Lcd ReadStatus void Delay 100 void Lcd Init void LCM 初始化 Lcd Data 0 Lcd WriteCmd 0 x38 0 三次显示模式设置 不检测忙信号 Delay 6000 Lcd WriteCmd 0 x38 0 Delay 6000 Lcd WriteCmd 0 x38 0 Delay 6000 Lcd WriteCmd 0 x38 1 显示模式设置 开始要求每次检测忙信号 Lcd WriteCmd 0 x08 1 关闭显示 Lcd WriteCmd 0 x01 1 显示清屏 Lcd WriteCmd 0 x06 1 显示光标移动设置 Lcd WriteCmd 0 x0C 1 显示开及光标设置 按指定位置显示一个字符 void DisplayOneChar unsigned char X unsigned char Y unsigned char DData Y X 限制 X 不能大于 15 Y 不能大于 1 if Y X 0 x40 当要显示第二行时地址码 0 x40 X 0 x80 算出指令码 Lcd WriteCmd X 0 这里不检测忙信号 发送地址码 Lcd WriteData DData 按指定位置显示一串字符 void DisplayString unsigned char X unsigned char Y unsigned char DData unsigned char ListLength ListLength 0 Y X 限制 X 不能大于 15 Y 不能大于 1 while DData ListLength 0 若到达字串尾则退出 if X 1 0 x80 if ii 4 break ii 0 Key 0 x7f return16 袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀 罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁 肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀 聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄 罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃 蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂

温馨提示

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

评论

0/150

提交评论