智能热水器设计毕业论文.doc_第1页
智能热水器设计毕业论文.doc_第2页
智能热水器设计毕业论文.doc_第3页
智能热水器设计毕业论文.doc_第4页
智能热水器设计毕业论文.doc_第5页
免费预览已结束,剩余41页可下载查看

下载本文档

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

文档简介

武汉理工大学 毕业设计 论文 智能热水器设计智能热水器设计 学院 系 专业班级 学生姓名 指导教师 I 目目 录录 摘摘 要要 V ABSTRACT VI 绪论绪论 1 1 主要器件和编程语言简介主要器件和编程语言简介 2 1 1 本设计所用到的主要元器件本设计所用到的主要元器件 2 1 21 2 器件简介器件简介 2 1 2 11 2 1 FPGA 简介 2 1 2 21 2 2 单片机简介单片机简介 3 1 2 31 2 3 DS1302DS1302 简介简介 3 1 2 41 2 4 DS18B20DS18B20 简介简介 5 1 31 3 编程语言简介编程语言简介 6 1 3 11 3 1 VHDL 简介简介 6 1 3 21 3 2 C51 语言简介语言简介 6 2 系统方案选择和论证系统方案选择和论证 8 2 12 1 设计要求设计要求 8 2 22 2 各模块方案论证和选择各模块方案论证和选择 8 2 2 12 2 1 控制器模块方案的论证和选择控制器模块方案的论证和选择 8 2 2 22 2 2 水位控制模块方案的论证和选水位控制模块方案的论证和选 9 2 2 32 2 3 水温控制模块方案的论证和选择水温控制模块方案的论证和选择 9 2 2 42 2 4 定时开关控制模块方案的论证和选择定时开关控制模块方案的论证和选择 10 2 2 52 2 5 时钟模块方案的论证和选择时钟模块方案的论证和选择 10 2 2 62 2 6 键盘模块方案的论证和选择键盘模块方案的论证和选择 11 2 2 72 2 7 显示模块方案的论证和选择显示模块方案的论证和选择 11 2 32 3 硬件系统框图和总体软件系统流程图硬件系统框图和总体软件系统流程图 11 2 42 4 硬系统总体电路图硬系统总体电路图 14 II 2 4 12 4 1 FPGAFPGA 模块电路图模块电路图 14 2 4 22 4 2 单片机控制模块电路图单片机控制模块电路图 15 3 硬件电路组装调试硬件电路组装调试 17 3 13 1 各模块的硬件组装各模块的硬件组装 17 3 1 13 1 1 FPGAFPGA 模块模块 17 3 1 23 1 2 单片机模块单片机模块 18 3 23 2 组装和改进系统硬件电路组装和改进系统硬件电路 19 3 33 3 各硬件电路调试方法各硬件电路调试方法 20 3 3 13 3 1 FPGAFPGA 调试方法调试方法 20 3 3 23 3 2 继电器电路的调试方法继电器电路的调试方法 21 4 软件调试及仿真软件调试及仿真 22 4 14 1 各模块的软件调试 仿真和实物测试各模块的软件调试 仿真和实物测试 22 4 1 14 1 1 FPGAFPGA 软件调试 仿真和实物测试软件调试 仿真和实物测试 22 4 1 24 1 2 DS1302DS1302 软件调试 仿真和实物测试软件调试 仿真和实物测试 23 4 1 34 1 3 DS18B20DS18B20 软件调试 仿真和实物测试软件调试 仿真和实物测试 23 4 2 整个系统软件调试 仿真和实物测试整个系统软件调试 仿真和实物测试 24 4 2 14 2 1 主程序的调试 仿真和实物测试主程序的调试 仿真和实物测试 24 4 2 24 2 2 水位调节子程序的调试 仿真和实物测试水位调节子程序的调试 仿真和实物测试 26 4 2 34 2 3 水温调节子程序的调试 仿真和实物测试水温调节子程序的调试 仿真和实物测试 26 4 2 44 2 4 定时开关子程序的调试 仿真和实物测试定时开关子程序的调试 仿真和实物测试 28 4 2 54 2 5 校时程序仿真校时程序仿真 29 4 2 64 2 6 按键功能提示界面的程序仿真按键功能提示界面的程序仿真 30 4 2 74 2 7 没有实现的第二定时功能提示界面的程序仿真没有实现的第二定时功能提示界面的程序仿真 30 5 总体设计电路的优缺点总结及改进意见和展望总体设计电路的优缺点总结及改进意见和展望 31 5 15 1 优点优点 31 5 25 2 缺点缺点 31 5 35 3 改进意见和展望改进意见和展望 31 III 结结 论论 32 参考文献参考文献 33 附录附录 A A VHDLVHDL 语言源程序语言源程序 34 附录附录 B B C51C51 语言程序主程序名及头文件名语言程序主程序名及头文件名 35 致致 谢谢 36 插图索引 图 1 DS1302 封装图 4 图 2 KEIL uVision2 C51 编译器所支持的数据类型 7 图 3 智能热水器系统设计总体框图 12 图 4 FPGA 控制器设计总体框图 12 图 5 MCU 控制器设计总体框图 12 图 6 矩阵键盘特征值分布图 13 图 7 总体程序流程图 13 IV 图 8 校时 调温功能按键分布图及对应特征值 14 图 9 FPGA 控制模块电路图 15 图 10 单片机控制模块电路图 16 图 11 自制水位传感器 17 图 12 继电器驱动电路 17 图 13 矩阵键盘电路 18 图 14 LCD12864 的显示电路 18 图 15 DS1302 电路 19 图 16 DS18B20 电路 19 图 17 改进后的继电器驱动电路 20 图 18 自制水位传感器 20 图 19 自顶向下的设计流程 22 图 20 FPGA 控制器的时序仿真图 22 图 21 FPGA 控制器结构图 22 图 22 DS1302 仿真图 23 图 23 DS18B20 仿真图 23 图 24 主程序流程图 24 图 25 主程序仿真图 25 图 26 提示功能界面仿真图 25 图 27 水位调节程序的流程图 26 图 28 水位调节程序仿真图 a 26 图 29 水位调节程序仿真图 b 26 图 30 水温调节子程序流程图 27 图 31 水温调节仿真图 27 图 32 按确定键后的水温调节界面 28 图 33 定时开关子程序流程图 28 图 34 定时开关功能仿真图 28 图 35 按确定键后的仿真图 29 图 36 校时功能界面仿真 29 图 37 按确定键后的校时功能界面仿真 29 图 38 提示功能界面仿真 30 图 39 没实现的定时功能提示界面仿真 30 V 摘 要 智能化的热水器一般的用单片机作为控制器 能实现恒温和水位的自动调 节的功能 本设计是以FPGA 和单片共同作为控制器件设的智能化热水器 在减 少了一些外围器件的同时实现了恒温和水位的自动调节控制 还能实施时间监控 根据不同的月份 不同的日期 不同的时间而自动开启和关断热水器的电源 从 而使得热水使用更加方便 设定后不需要人的干预 同时能节约电能 本设计编 程语言使用VHDL 语言和C51 运行环境分别是MAX plus II 10 0 和 Keil uVision3 用Proteus 7 Professional 画系统的电路图并进行仿真调试 FPGA 芯 片使用Altera 公司的EPF10K10TC144 4 单片机使用STC89C52RC 关关键键词词 智能 热水器 FPGA EDA VHDL 单片机89C51 C51 恒温控制 液位控制 时钟控制 键盘控制 液晶显示 VI Abstract Water heaters are generally use MCU as the controller This kind of water heaters could achieve to constant temperature and water level automaticlly The design of intelligent water heater is based on FPGA and MCU control reducing the number of peripheral devices while achieving the automatic adjustment of temperature and water level control and also monitor the implementation of the time according to a different month different days different times and automatic turned on and off the power of the intelligent water heater making the use of water hearter more convenient Settings without human intervention saving energy at the same time The design of programming language uses VHDL language and C51 operating environment are MAX plus II 10 0 and Keil uVision3 with Proteus 7 Professional painting system and the simulation circuit debug FPGA chip use Altera s EPF10K10TC144 4 microcontroller use STC89C52RC Key words Smart water heaters FPGA EDA VHDL MCU 89C51 C51 temperature control water level control clock control keyboard control liquid crystal display 0 绪论 选题的背景及目的选题的背景及目的 市场上适合家庭使用的热水器有两类 一类是燃气式 另一类是电热式 而购买热水器主要考虑价格 安全性 方便性 寿命 成本等因素 一般 来说 燃气热水器的优点是价格低 加热快 出水量大 温度稳定 缺点是必 须分室安装 不易调温 需定期除垢 在使用中易产生有害气体 因此其使用 受到一定限制 储水式电热水器的优点是干净 卫生 不必分室安装 不产生 有害气体 调温方便 高档产品还有到达设定温度后自动断电 自动补温等功 能 本设计是基于已有的储水式电热水器基础上实现时钟定时开关的控制和高 温断路保护功能 同时用 FPGA 作为数据采集器 使得液位和温度的实时性更 强 液位和温度的精准度更高 同时可手动调节液位和温度 用 LCD 显示相关 信息 整个系统外围器件少 稳定性高 同时安装使用方便 研究现状分析研究现状分析 目前大多数智能热水器都是基于单片机控制的智能热水器 利用 EDA 技术 和单片机技术 设计的基于 FPGA 电热式热水器控制器 实现系统的硬件电路 及相关配套软件的设计 使系统能完成热水器定时开关 热水器温度 水位参 数的采集 对采集数据实时记录 处理 分析 显示和控制等功能 此设计将 FPGA 和单片机结合使用 既发挥了 FPGA 高速数据采集的特点 有发挥了单片机在控制方便的优点 因此整个系统的实时性比一般的仅用单片 机设计的系统的实时性强 但在其性价比低 因而 此设计仅适用于练习 FPGA 与单片机的通信功能 练习用 FPGA 和单片机完成一个具体系统的具体 功能的设计 如果希望此产品能具有一定的实用价值和市场竞争力 可以用单 片机单独完成此设计 用 DS1302 时钟芯片完成时钟的嵌入和定时控制的功能 研究方法研究方法 通过分析现有电热式热水器的功能和结构的和查阅相关文献 资料 总结 现了市场上现有的热水器的种类 结构和功能特点 在已有产品的功能基础上 加入了定时开关功能 使得此产品更人性化也符合社会提倡的节能的需要 此 设计先通过 Proteus 和 MasplusII 等软件仿真 然后在系统板上进行逐个的功能 调试 在逐个功能完成的基础上进行系统总体功能调试 1 2 1 主要器件和编程语言简介 1 1 本设计所用到的主要元器件 FPGA 芯片 EPF10K10TC144 4 一片 单片机 STC89C52RC 一片 时钟芯片 DS1302 一片 温度传感器 DS18B20 一个 液晶显示器 LCD12864 一片 继电器 HLS8L DC5V S C 三个 电平转换芯片 MAX232 一片 1 21 2 器件简介 1 2 11 2 1FPGA 简介 FPGA 是英文 Field Programmable Gate Array 的缩写 即现场可编程门阵 列 它是在 PAL GAL EPLD 等可编程器件的基础上进一步发展的产物 它 是作为专用集成电路 ASIC 领域中的一种半定制电路而出现的 既解决了定 制电路的不足 又克服了原有可编程器件门电路数有限的缺点 FPGA 采用了逻辑单元阵列 LCA Logic Cell Array 这样一个新概念 内 部包括可配置逻辑模块 CLB Configurable Logic Block 输出输入模块 IOB Input Output Block 和内部连线 Interconnect 三个部分 FPGA 的基本 特点主要有 1 采用 FPGA 设计 ASIC 电路 用户不需要投片生产 就能得到合用的芯 片 2 FPGA 可做其它全定制或半定制 ASIC 电路的中试样片 3 FPGA 内部有丰富的触发器和 I O 引脚 4 FPGA 是 ASIC 电路中设计周期最短 开发费用最低 风险最小的器件 之一 5 FPGA 采用高速 CHMOS 工艺 功耗低 可以与 CMOS TTL 电平兼容 可以说 FPGA 芯片是小批量系统提高系统集成度 可靠性的最佳选择之 一 目前 FPGA 的品种很多 有 XILINX 的 XC 系列 TI 公司的 TPC 系列 ALTERA 公司的 FLEX 系列等 3 FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的 因此 工作时 需要对片内的 RAM 进行编程 用户可以根据不同的配置模式 采用不同的编 程方式 加电时 FPGA 芯片将 EPROM 中数据读入片内编程 RAM 中 配置完成后 FPGA 进入工作状态 掉电后 FPGA 恢复成白片 内部逻辑关系消失 因此 FPGA 能够反复使用 FPGA 的编程无须专用的 FPGA 编程器 只须用通用的 EPROM PROM 编程器即可 当需要修改 FPGA 功能时 只需换一片 EPROM 即可 这样 同一片 FPGA 不同的编程数据 可以产生不同的电路功能 因 此 FPGA 的使用非常灵活 FPGA 有多种配置模式 并行主模式为一片 FPGA 加一片 EPROM 的方式 主从模式可以支持一片 PROM 编程多片 FPGA 串行模式可以采用串行 PROM 编程 FPGA 外设模式可以将 FPGA 作为微处理器的外设 由微处理器对其编 程 1 2 21 2 2单片机简介单片机简介 单片机 STC89C52RC 和 89C51 单片机基本相同 具体资料参照参考教科书 单片微型计算机原理及应用 张毅坤 陈善久 裘学红编著 1 2 31 2 3DS1302DS1302 简介简介 DS1302 是美国 DALLAS 公司推出的一种高性能 低功耗 带 RAM 的实 时时钟电路 它可以对年 月 日 周日 时 分 秒进行计时 具有闰年补 偿功能 工作电压为 2 5V 5 5V 采用三线接口与 CPU 进行同步通信 并可 采用突发方式一次传送多个字节的时钟信号或 RAM 数据 DS1302 内部有一个 31 8 的用于临时性存放数据的 RAM 寄存器 DS1302 是 DS1202 的升级产品 与 DS1202 兼容 但增加了主电源 后背电源双电源引脚 同时提供了对后背电 源进行涓细电流充电的能力 引脚功能及结构 DS1302 的引脚排列 其中 Vcc1 为后备电源 VCC2 为主电源 在主电源 关闭的情况下 也能保持时钟的连续运行 DS1302 由 Vcc1 或 Vcc2 两者中的 较大者供电 当 Vcc2 大于 Vcc1 0 2V 时 Vcc2 给 DS1302 供电 当 Vcc2 小于 Vcc1 时 DS1302 由 Vcc1 供电 X1 和 X2 是振荡源 外接 32 768kHz 晶振 RST 是复位 片选线 通过把 RST 输入驱动置高电平来启动所有的数据 传送 RST 输入有两种功能 首先 RST 接通控制逻辑 允许地址 命令序列 送入移位寄存器 其次 RST 提供终止单字节或多字节数据的传送手段 当 RST 为高电平时 所有的数据传送被初始化 允许对 DS1302 进行操作 如果 在传送过程中 RST 置为低电平 则会终止此次数据传送 I O 引脚变为高阻态 4 上电运行时 在 Vcc 2 5V 之前 RST 必须保持低电平 只有在 SCLK 为低电 平时 才能将 RST 置为高电平 I O 为串行数 据输入输出端 双向 后 面有详细说明 SCLK 为时钟输入端 DS1302 的引脚功能图如下图 图 1 DS1302 封装图 DS1302 的控制字节 DS1302 的控制字如图 2 所示 控制字节的最高有效位 位 7 必须是逻辑 1 如果它为 0 则不能把数据写入 DS1302 中 位 6 如果为 0 则表示存取日 历时钟数据 为 1 表示存取 RAM 数据 位 5 至位 1 指示操作单元的地址 最低有 效位 位 0 如为 0 表示要进行写操作 为 1 表示进行读操作 控制字节总是从最 低位开始输出 数据输入输出 I O 在控制指令字输入后的下一个 SCLK 时钟的上升沿时 数据被写入 DS1302 数据输入从低位即位 0 开始 同样 在紧跟 8 位的控制指令字后的 下一个 SCLK 脉冲的下降沿读出 DS1302 的数据 读出数据时从低位 0 位到高 位 7 DS1302 的寄存器 DS1302 有 12 个寄存器 其中有 7 个寄存器与日历 时钟相关 存放的数 据位为 BCD 码形式 其日历 时间寄存器及其控制字见表 1 此外 DS1302 还有年份寄存器 控制寄存器 充电寄存器 时钟突发寄 存器及与 RAM 相关的寄存器等 时钟突发寄存器可一次性顺序读写除充电寄 存器外的所有寄存器内容 DS1302 与 RAM 相关的寄存器分为两类 一类是 单个 RAM 单元 共 31 个 每个单元组态为一个 8 位的字节 其命令控制字为 C0H FDH 其中奇数为读操作 偶数为写操作 另一类为突发方式下的 RAM 寄存器 此方式下可一次性读写所有的 RAM 的 31 个字节 命令控制字为 FEH 写 FFH 读 为了实现系统报警计时等功能 此设计采用了 DS302 实时时钟芯片 DS1302 是美国 DALLAS 公司推出的一种高性能 低功耗 带 RAM 的实时时 5 钟电路 它可以对年 月 日 周日 时 分 秒进行计时 具有闰年补偿功 能 工作电压为 2 5V 5 5V 采用三线接口与 CPU 进行同步通信 并可采用 突发方式一次传送多个字节的时钟信号或 RAM 数据 DS1302 内部有一个 31 8 的用于临时性存放数据的 RAM 寄存器 DS1302 是 DS1202 的升级产品 与 DS1202 兼容 但增加了主电源 后背电源双电源引脚 同时提供了对后背电 源进行涓细电流充电的能力 2 1 引脚功能及结构 DS1302 的引脚排列 其中 Vcc1 为后备电源 VCC2 为主电源 在主电源关闭的情况下 也能保持时钟的 连续运行 DS1302 由 Vcc1 或 Vcc2 两者中的较大者供电 当 Vcc2 大于 Vcc1 0 2V 时 Vcc2 给 DS1302 供电 当 Vcc2 小于 Vcc1 时 DS1302 由 Vcc1 供电 X1 和 X2 是振荡源 外接 32 768kHz 晶振 RST 是复位 片选线 通过把 RST 输入驱动置高电平来启动所有的数据传送 RST 输入有两种功能 首先 RST 接通控制逻辑 允许地址 命令序列送入移位寄存器 其次 RST 提供终止单字节或多字节数据的传送手段 当 RST 为高电平时 所有的数据传 送被初始化 允许对 DS1302 进行操作 如果在传送过程中 RST 置为低电平 则会终止此次数据传送 I O 引脚变为高阻态 上电运行时 在 Vcc 2 5V 之前 RST 必须保持低电平 只有在 SCLK 为低电平时 才能将 RST 置为高电平 I O 为串行数据输入输出端 双向 后面有详细说明 SCLK 始终是输入端 1 2 41 2 4DS18B20DS18B20 简介简介 DS18B20 的数字温度计提供 9 至 12 位 可编程设备温度读数 信息被发 送到 从 DS18B20 通过 1 线接口 所以中央微处理器与 DS18B20 只有一个一 条口线连接 为读写以及温度转换可以从数据线本身获得能量 不需要外接电 源 因为每一个 DS18B20 的包含一个独特的序号 多个 ds18b20s 可以同时 存在于一条总线 这使得温度传感器放置在许多不同的地方 它的用途很多 包括空调环境控制 感测建筑物内温设备或机器 并进行过程监测和控制 存储器 DS18B20 的存储器包括高速暂存器 RAM 和可电擦除 RAM 可电擦除 RAM 又包括温度触发器 TH 和 TL 以及一个配置寄存器 存储器能完整的确 定一线端口的通讯 数字开始用写寄存器的命令写进寄存器 接着也可以用读 寄存器的命令来确认这些数字 当确认以后就可以用复制寄存器的命令来将这 些数字转移到可电擦除 RAM 中 当修改过寄存器中的数时 这个过程能确保 数字的完整性 高速暂存器 RAM 是由 8 个字节的存储器组成 第一和第二个字节是温度 的显示位 第三和第四个字节是复制 TH 和 TL 同时第三和第四个字节的数字 可以更新 第五个字节是复制配置寄存器 同时第五个字节的数字可以更新 6 六 七 八三个字节是计算机自身使用 用读寄存器的命令能读出第九个字节 这个字节是对前面的八个字节进行校验 温度的读取 DS18B20 在出厂时以配置为 12 位 读取温度时共读取 16 位 所以把后 11 位的 2 进制转化为 10 进制后在乘以 0 0625 便为所测的温度 还需要判断正 负 前 5 个数字为符号位 当前 5 位为 1 时 读取的温度为负数 当前 5 位为 0 时 读取的温度为正数 1 31 3编程语言简介编程语言简介 1 3 11 3 1VHDL 简介简介 VHDL 语言是一种用于电路设计的高级语言 VHDL 的英文全写是 VHSIC Very High Speed Integrated Circuit Hardware Description Language 即超 高速集成电路硬件描述语言 其主要用于描述数字系统的行为 结构 功能和 接口 目前 它在中国的应用多数是用在 FPGA CPLD EPLD 的设计中 在使 用 VHDL 等高级语言时 有专用的工具来实现将语言描述的电路功能转换为实 际的电路 所以使用者就用不着对底层的电路很熟悉 也用不着对 CPLD FPGA 的结构很熟悉 除了含有许多具有硬件特征的语句外 VHDL 的语言形式和描述风格与句 法是十分类似于一般的计算机高级语言 VHDL 的程序结构特点是将一项工程 设计 或称设计实体 可以是一个元件 一个电路模块或一个系统 分成外部 或称可是部分 及端口 和内部 或称不可视部分 即涉及实体的内部功能和 算法完成部分 在对一个设计实体定义了外部界面后 一旦其内部开发完成后 其他的设计就可以直接调用这个实体 这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点 应用 VHDL 进行工程设计的优点是多方面的 1 与其他的硬件描述语言相比 VHDL 具有更强的行为描述能力 从而决定 了他成为系统设计领域最佳的硬件描述语言 强大的行为描述能力是避开具体 的器件结构 从逻辑行为上描述和设计大规模电子系统的重要保证 2 VHDL 丰富的仿真语句和库函数 使得在任何大系统的设计早期就能查验 设计系统的功能可行性 随时可对设计进行仿真模拟 3 VHDL 语句的行为描述能力和程序结构决定了他具有支持大规模设计的分 解和已有设计的再利用功能 符合市场需求的大规模系统高效 高速的完成必 须有多人甚至多个代发组共同并行工作才能实现 7 4 对于用 VHDL 完成的一个确定的设计 可以利用 EDA 工具进行逻辑综合 和优化 并自动的把 VHDL 描述设计转变成门级网表 5 VHDL 对设计的描述具有相对独立性 设计者可以不懂硬件的结构 也不 必管理最终设计实现的目标器件是什么 而进行独立的设计 1 3 21 3 2C51 语言简介语言简介 语言数据结构 每写一个程序 总离不开数据的应用 在学习 C51 语言的过程中掌握理解 数据类型也是很关键的 先看表 2 1 表中列出了 KEIL uVision2 C51 编译 器所支持的数据类型 在标准 C 语言中基本的数据类型为 char int short long float 和 double 而在 C51 编译器中 int 和 short 相同 float 和 double 相同 这里就不列出说明了 下面来看看它们的具体定义 数据类型长度值域 unsigned char 单字节0 255 signed char单字节 128 127 unsigned int 双字节0 65535 signed int双字节 32768 32767 unsigned long 四字节0 4294967295 signed long四字节 2147483648 2147483647 float四字节 1 175494E 38 3 402823E 38 1 3 字节对象的地址 bit位0 或 1 sfr单字节0 255 sfr16双字节0 65535 sbit位0 或 1 图 2 KEIL uVision2 C51 编译器所支持的数据类型 8 9 2 系统方案选择和论证系统方案选择和论证 2 12 1 设计要求设计要求 1 基本功能要求 实现温度自动调节控制 使得温度能维持在某个一定的 范围之内 液位自动调节控制 使得液位能维持某个范围之内 定时开启和关 断控制 根据不同日期和时间 开启和关断热水器电源 键盘设定温度及时间 校正功能 能设定维持温度的范围的最大值和最小值 同时可以用键盘校正时 间 2 扩展功能要求 实现恒温控制 使得温度能温度在具体的某个值 而不 是维持在某个范围之内 即实现温度的实时监控 实现水位的调节功能 能使 水位维持在某个具体的数值 而不是维持在某个范围之内 即实现水位的实时 监控 3 本设计软件部分主要采用 VHDL 硬件描述语言编程实现 FPGA 的数据 采集和控制功能 用 C51 语言实现单片机的控制功能 并利用 MAX PLUS 和 Keil uVision3 软件开发平台进行编程调试 对于 VHDL 语言程序要调试等待 准确的仿真时序图 对于 C51 程序 要用 Keil 编译 并用 Proteus 7 Professional 得到准确的仿真结果 其中 FPGA 和 MCU 的通信的的程序则直接 用实物进行调试 并要求得到与理论分析相一致的结果 4 本设计由控制器模块 水位控制模块 水温控制模块 定时开关控制模 块 时钟模块 键盘模块和显示模块七大硬件模块构成 各模块相互关联 控 制器是各模块相互联系沟通的桥梁 2 22 2 各模块方案论证和选择各模块方案论证和选择 2 2 12 2 1控制器模块方案的论证和选择控制器模块方案的论证和选择 方案 A 单独使用 FPGA 作为控制器 如果单独使用 FPGA 作为控制器件 优势是大大的简化了外围电路 提高了整个系统的稳定性和可靠性 控制引脚 能足够的满足我们的设计要求 且不需要外部 EEPROM 和时钟芯片 可以直接使 用 FPGA 内部的高速 ROM 也可以编写时钟模块的程序 且 FPGA 速度要比单片 机快的多 但是要完成 LCD 显示 温度数据的采集 键盘控制等众多控制功能 FPGA 与单片机相比没有优势 FPGA 的主要优势是能实现片上系统 大大简化外 围电路 且能完成数据的高速采集 单片机的主要优势是控制简单方便 在此 设计中单独使用 FPGA 不能很好的体现它在高速数据采集方面的优势 方案 B 单独使用单片机作为控制器 如果单独使用单片机使用作为控制 10 器 优势是能较简单方便实现水位控制模块 水温控制模块 定时开关控制模 块 时钟模块 键盘模块和显示模块等各个功能模块的控制功能 同时成本大 大降低 但是增加了一些外围元件 如需要增加时钟芯片和 EEPROM 芯片 外围 电路的复杂性增加 这使得电路的稳定性和可靠性与方案 A 相比有所降低 方案 C 同时使用 FPGA 和单片作为控制器件 这样的方案主要是综合两种 控制器件的优势 但是成本提高 本设计采用方案 C 原因是为了探索 FPGA 在控制功能方面的应用领域 利 用低端 FPGA 实现一些控制功能 不仅电路大大简化 而且成本也与单片机相当 2 2 22 2 2水位控制模块方案的论证和选水位控制模块方案的论证和选择择 方案 A 采用超声波 用超声波实时监测水位的高度 因为本设计用到 DS18B20 可以根据温度用软件补偿因为温度变化而引起的超声波速度的变化 这样能较 准确的实时监控热水器内水位的高度 因而可以使等水位维持在某个值附近 方案 B 采用压力传感器 用压力传感器测量出热水器不装水时的重量 再测量出 装入水后的重量 即先要用压力传感器设计成一个电子称 根据这个差值可以 计算出液位的高度 此方式能十分准确的测出液位高度 因此可以通过电磁阀 将水位稳定在某个值 但是传感器的成本较高 一般的压力传感器一直在负重 之下 时间长了误差增大 最终损坏 方案 C 自制传感器 自己制作一个传感器测量出一个水位的最低值 测量出一个 水位的最高值 当水位低于最低值时打开电磁阀 热水器进水 当水位达到水 位的最高时 关闭电磁阀 这样能将水位维持在某个范围之内 同时自制的传 感器简单 而且成本很低 比较上述几种方案 本设计采用方案 C 成本低 同时能满足设计要求 2 2 32 2 3水温控制模块方案的论证和选择水温控制模块方案的论证和选择 温度采集模块温度采集模块 方案 A 采用 AD590 AD590 的测温范围为 55 150 AD590 的电源电压范围 为 4V 30V 电源电压可在 4V 到 6V 范围变化 电流变化 1mA 相当于温度变化 1K AD590 可以承受 44V 正向电压和 20V 反向电压 因而器件反接也不会被损 坏 但是 AD590 需要放大电路和 A D 转换电路 电路较为复杂 方案 B 11 采用 DS18B20 DS18B20 能测量 55 摄氏度到 125 摄氏度的温度值 采用 一线总线 内嵌 A D 转换 可直接与控制器件连接外围电路简单 两种方案比较 方案 B 能很好的满足我们的设计要求 而且电路比方案 A 简单 同时成本较方案 A 要低的多 因此本设计采用方案 B 热电阻丝控制方式热电阻丝控制方式 方案 A 采用用 PWM 控制方式 通过改变 MOS 管或电力开关三极管的控制级信号的 占空比来调整输出端电压的有效值 这种控制方式能使得温度稳定在某个值附 近 当时需要将交流电转换成直流电 即需要设计市电压的整流电路 还需要 耦合器件和电力开关管 电路较为复杂 成本较高 方案 B 采用继电器 使用继电器控制热电阻丝的电源的开和关 当温度 值低于最低值是继电器闭合 热电阻丝通电工作 当温度高于最高值是继电器 断开 热电阻丝断电停止工作 这种方式的缺点是继电器断开和吸合的瞬间存 在电弧 存在安全隐患 而且对继电器的寿命有影响 但是这种方式电路简单 实现方便 而且能很好的满足设计要求 综合考虑 本设计采用方案 B 方案 B 简单易行 可实现性强 但在实际 设计时应注意做好绝缘保护的工作 2 2 42 2 4定时开关控制模块方案的论证和选择定时开关控制模块方案的论证和选择 方案 A 采用可控硅 将可控硅串入电路 通过控制的高低电平 来接通和断开 热水器的系统的电源 这样不存在电弧和电火花的现象 而且响应速度很快 方案 B 采用继电器 将继电器接入系统电路 通过控制端来开启和关断电源 这 样相对与可控硅而言 高压区和低压区的隔离效果好 但存在电弧和电火花 因为温度控制电路已经采用了继电器控制的方式 在这个模块中可以和水 温控制模块共用继电器 以简化电路 节约成本 因此在这个模块的方案选择 方案 B 2 2 52 2 5时钟模块方案的论证和选择时钟模块方案的论证和选择 方案 A 在 FPGA 中嵌入时钟 这样电路简化了电路 但还有要实现记录年月日的信 息 这样用 FPGA 实现起来软件工作量大大的增加了 方案 B 直接选用一种时钟芯片 选用时钟芯片 DS1302 接在单片机上 能十分方便 准确的记录年月日信息 而且电路也比较简单 这样用简单的硬件电路使得软 12 件工作量大大减少了 而且节约的控制器的资源 有利于整个系统的进一步扩 展 综上 本设计采用方案 B 2 2 62 2 6键盘模块方案的论证和选择键盘模块方案的论证和选择 方案 A 使用独立键盘 使用四个独立键盘 这样电路十分的简单 但是软件的工 作量有所增加 方案 B 使用用 4x4 键盘 电路也十分简单 软件工作量有所减少 但是设计的成 本提高 鉴于本设计用于实验探索研究 选用方案 B 在系统调试成功后或产品需 要实际使用时则改用方案 A 2 2 72 2 7显示模块方案的论证和选择显示模块方案的论证和选择 方案 A 使用 LED 显示 用 LED 显示亮度高 显示字迹清楚显眼 但是 LED 不能显 示汉字 而且数码管多了 占用控制器件很多的端口 同时本设计中显示的内 容较多 利用 LED 很难达到本设计要求的显示效果 方案 B 使用 LCD12864 或 LCD1602 使用 LCD12864 或 LCD1602 都能满足本设计的 要求 如果考虑成本因素 则选用 LCD1602 如果注重人性化 使得整个系统 的操作和使用更加的方便 则选用 LCD12864 考虑到本设计是实验研究 因此选用方案 B 中的 LCD12864 如过要批量生 产 实际应用这种产品 怎选用 LCD1602 或其他能满足设计要求的更经济显示 器件 2 32 3 硬件系统框图和总体软件系统流程图硬件系统框图和总体软件系统流程图 系统总体设计框图如下所示 本系统主要由两个大的模块构成 FPGA 控制模块和 MCU 控制模块 13 图 3 智能热水器系统设计总体框图 下面是 FPGA 控制器的设计框图 编程时器件端口就是根据这个图设计的 图 4 FPGA 控制器设计总体框图 单片机的控制器的设计框图如下图所示 下面的框图已经将 MCU 的 I O 资 源进行了分配 有关单片机模块的具体的电子线路就是根据这个系统框图设计 的 图 5 MCU 控制器设计总体框图 本系统使用了 4X4 的扫描键盘 下图是按键扫描程序所得到的特征值 每 个按键都有唯一对应的一个特征值 根据这个唯一的特征值 可以确定是哪个 按键被按下 并进行相应的按键处理 14 图 6 矩阵键盘特征值分布图 程序流程图时编写程序时不能缺少的一个步骤 本系统在设计前 经分析 设计了如下图所示的程序流程图 并根据此图编写单片机模块的 C51 程序 成 功完成了设计要求实现的功能 系统上电进入主界面 进行按键扫描和相应的显示 当扫描到按键时进行 相关的按键处理 如当扫描到的按键的特征值为 0 x71 时 程序进入了校时界面 这个子程序的循环中依然进行按键扫描和相应的显示 当扫描的按键的特征值 为 0 xe8 时 程序从新回到主界面的状态 图 7 总体程序流程图 当程序进入校时 定时和温度调节的界面时 按键的特征值分布如下右图 所示 和 分别表示调节量左移和右移 每按一下实现调节量左移 或右移一个单位 和 分别表示增大和减少调节量 没按以下实现加 一或减一 15 图 8 校时 调温功能按键分布图及对应特征值 2 42 4 硬系统总体电路图硬系统总体电路图 2 4 12 4 1FPGAFPGA 模块电路图模块电路图 16 图 9 FPGA 控制模块电路图 2 4 2单片机控制模块电路图单片机控制模块电路图 图 10 单片机控制模块电路图 17 18 3 硬件电路组装调试硬件电路组装调试 3 13 1 各模块的硬件组装各模块的硬件组装 3 1 13 1 1FPGAFPGA 模块模块 外围电路有自制传感器电路 继电器驱动电路 驱动电磁阀 控制电热阻 丝的电源 与单片机通信控制口 自制传感器传感器如下图一所示 前端是两导体 后面是绝缘的导线 当 A B 之间有水时 就相当于用一根导线将 A B 连接起来 再通过如图二所示 的电路就能将可以将 A B 之间是否导通转换成高低电平 当 A B 导通是输出 端 Uo 为低电平 当 A B 导通断开时 Uo 为高电平 图 11 自制水位传感器 继电器电路继电器电路 图 12 继电器驱动电路 LED 只是电路的通道状态 当电热阻丝通电时 LED 点亮 与单片机通信控制口 FPGA 和单片机的电平可以兼容 因此 FPGA 的 I O 可以 19 直接与 MCU 的 I O 口连接 不需要另外附加电平转换电路 但是两者间如果是 用导线相连接的话 导线不宜过长 3 1 23 1 2单片机模块单片机模块 单片机除了必备的保证系统正常工作电路外 还有 4x4 按键电路 LCD12864 的显示电路 与时钟芯片的连接电路 与传感器 DS18B20 的连接电路 与 FPGA 的通信口 图 13 矩阵键盘电路 键盘的 8 个口接单片机的 P1 口 图 14 LCD12864 的显示电路 与时钟芯片的连接电路 20 图 15 DS1302 电路 注意 这个电路中的上拉电阻不能少 实际电路中 VCC2 接 4 2V 的纽扣电池 图 16 DS18B20 电路 DS18B20 在 Proteus 中仿真时数据线 DQ 不需要接上拉电阻 如果接了上电 阻 不能实现仿真 而实际电路中必须接入一个上拉电阻 阻值通常为 10K 与 FPGA 的通信口 FPGA 和单片机的电平可以兼容 因此单片机的 I O 可以直 接与 FPGA 的 I O 口连接 3 23 2 组装和改进系统硬件电路组装和改进系统硬件电路 按照上面所描述的各个模块 显设计好每个模块电路 并逐个的调试 因为电 路中没有比较复杂的模拟电路 因此整个硬件的制作过程中没有遇到大的问题 单片机系统直接用已有的开发上面的最小系统 这个系统上有 DS1302 DS18B20 和 LCD12864 电路图与上面各模块所给出的电路图一致 FPGA 系统直接用我们系实验室的实验箱上面的最小系统 继电器电路电路和自制的传感器的电路较简单 为节约设计实时没有制作 PCB 板 而是设计好电路图之后 直接用万用板焊接出相关电路 继电器模块 焊接好后发现用电源的 5V 能驱动 而用单片机或 FPGA 的高低电平无法驱动 因此检查硬件电路 经过分析知道是驱动电流不够 于是将电路改成如下形式 并调试检测电路能正常工作 21 图 17 改进后的继电器驱动电路 在前面设计的自制传感器在用导体直接断路时能得到准确结果 而在水中 调试时行不通 因此将之做如下改正 并调试成功 图 18 自制水位传感器 这是改进后的检测水位传感器 浮标知识液面的高度 当液面低于 A1 A2 时 浮标下降到 A1 A2 的水平位置 导体棒将 A1 A2 接通 当液面高于 B1 B2 时 浮标上升到 B1 B2 的水平位置 导体棒将 B1 B2 接通 注意导体 棒的电阻很小可以忽略 整个装置能承受 100 摄氏度的温度 也就是能在沸水 中正常工作 而且此传感器能检测出一个高水位和一个低水位 在完成了各模块电路的设计并经过调试确认没有问题后 再按照系统总体 电路图连接实际电路 3 33 3 各硬件电路调试方法各硬件电路调试方法 3 3 13 3 1FPGAFPGA 调试方法调试方法 先测试系统能否载入程序 能否工作 直接给一些 高电平 通过 LED 验证是否符合逻辑 测试自制传感器电路的方法 将 A B 端直接用导线或者其他导体短接 比 22 较 A B 导通前与导通后输出端 Uo 的电平变化 如果按照分析得到变化规律变 化则说明电路没有问题 为使得电路测试条件与本设计的其实际工作环境更加 接近 这里在实际电路调试将自制传感器放入水中和从水中拿出观察输出端的 电平变化是否符合逻辑 3 3 23 3 2继电器电路的调试方法继电器电路的调试方法 直接用高低电平接控制端 观察继电器的负载端是否接通或断开 这样测 试没有问题后 在继电器的负载端接入热电阻丝 用高低电平控制 观察热电 阻丝的的电源能否按高低电平接通和断开 如果能则说明此电路没有问题 单片机调试方法 测试法和先测试系统能否载入程序 能否工作 直接给 一些 高电平 通过 LED 验证是否符合逻辑 测试 DS1302 电路方法 先写入数据到 DS1302 相关寄存器 用 Proteus 仿 真 观察能否写入 再从 DS1302 相关寄存器读取刚好写入的数据 并将数据所 的单片机 I O 口 用 Proteus 仿真 观察数据是否和刚好写入的数据相符合 值得注意的是在测试之前一定要保证测试程序没有问题 最好用已经验证了的 又非常简单的程序 这样便于于确保程序的准确性和可靠性 3 3 33 3 3测试测试 DS18B20DS18B20 电路方法电路方法 读取其中相关寄存器数据 并将数据送至单片机的 I O 口 用 LED 检测各 位的高低电平 观察与仿真中显示的值是否相同 同时分析是否符合芯片资料 中介绍的相关信息相符合 要注意的问题是在测试之前一定要保证测试程序没 有问题 最好用已经验证了的又非常简单的程序 这样便于于确保程序的准确 性和可靠性 整个系统硬件调试方法 连接好所有模块后 再单独用简单的程序测试各 个模块能否正常 如果各个模块都能单独正常工作 则整个系统的电路没有问 题 23 4 软件调试及仿真软件调试及仿真 4 14 1 各模块的软件调试 仿真和实物测试各模块的软件调试 仿真和实物测试 4 1 14 1 1FPGAFPGA 软件调试 仿真和实物测试软件调试 仿真和实物测试 VHDL 语言编程采取的是自上而下的设计思路 设计流程如下图所示 图 19 自顶向下的设计流程 按前面的 FPGA 系统框图编写 VHDL 语言程序 并按上面的流程操作 并将程序 下载到 FPGA 芯片EPF10K10TC144 4 中 得到的时序仿真图如下图所示 图 20 FPGA 控制器的时序仿真图 时序图与设计中所预期的逻辑相符合 而且实物调试也能实现设计中要求实现 的功能 下面是编译 VHDL 语言程序后生产的器件系统结构图 图 21 FPGA 控制器结构图 24 注 图左边的全部是输入口 图 右边的全部是输出口 4 1 24 1 2DS1302DS130

温馨提示

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

评论

0/150

提交评论