深圳市电工技师答辩论文(单片机应用).pdf_第1页
深圳市电工技师答辩论文(单片机应用).pdf_第2页
深圳市电工技师答辩论文(单片机应用).pdf_第3页
深圳市电工技师答辩论文(单片机应用).pdf_第4页
深圳市电工技师答辩论文(单片机应用).pdf_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1 论文题目 论文题目 单片机在齿轮箱油温监测及冷却控单片机在齿轮箱油温监测及冷却控 制中的运用制中的运用 单位名称 东部华侨城单位名称 东部华侨城 申报工种 电申报工种 电工工 申报等级 技申报等级 技师师 论文作者 韩均勇论文作者 韩均勇 指导教师 杨本雄指导教师 杨本雄 联系电话 联系电话 1581851441515818514415 单位地址 盐田区大梅沙东部华侨城单位地址 盐田区大梅沙东部华侨城 邮政编码 邮政编码 518000518000 上报时间 上报时间 20152015 年年 4 4 月月 2424 日日 2 论文题目论文题目 单片机在齿轮箱油温监测及冷却控单片机在齿轮箱油温监测及冷却控 制中的运用制中的运用 工工种 种 电电工工 等等级 级 技技师师 3 目录 摘要 3 关键词 3 引言 3 1功能设计 4 2总体方案设计 4 2 1 方案论证 4 2 2 总体框图设计 5 3系统的硬件设计 5 3 1 单片机 5 3 1 1 STC89C52 性能 5 3 1 2STC89C52 接线图 6 3 2 数字温度传感器 DS18B20 6 3 2 1 DS18B20 性能 6 3 2 2 DS18B20 外形及引脚说明 7 3 2 3 DS18B20 接线及时序图 7 3 2 4 DS18B20 数据处理 8 3 2 5 DS18B20 控制指令 9 3 3 时钟芯片 PCF8563 10 3 3 1 PCF8563 性能 10 3 3 2 PCF8563 相关寄存器概况 11 3 3 3 PCF8563 接线图 11 3 4 字符型液晶屏 12864 12 3 4 1 12864 性能 12 3 4 2 12864 引脚说明 13 3 4 3 12864 基本控制指令表 13 3 4 4 12864 接线图 14 3 5 MAX232 串口编程电路 15 3 6 蜂鸣器报警电路 15 3 7 按键输入电路 16 4 3 8 风压传感器电路 16 3 9 风机启停控制电路 17 3 10 电源电路 17 4系统软件流程图设计 18 4 1 系统流程图设计 18 4 2 温度处理流程图设计 18 4 3 数字温度传感器 DS18B20 流程图设计 20 4 4 时钟芯片 PCF8563 流程图设计 21 4 5 LCD12864 初始化流程图设计 22 4 6 按键扫描流程图设计 23 5结束语 23 6致谢 25 7参考文献 25 8附录 26 8 1 系统总电路图 26 8 2 源程序 27 8 3 实物演示 43 5 摘要摘要 本文应用数字温度传感器 DS18B20 芯片 实时动态测量减速机齿轮箱油温 以单 片机 STC89C52 作为核心控制器 人机对话界面采用 LCD12864 液晶显示屏 控制器通过 实时读取油温值并和预设的冷却启停温度值 报警值作算术比对 控制减速机液压油管 道冷却风机的启停 实现油温 冷却风机启停的闭环控制系统 此外 还具有风机运行 检测信号输入 当控制器启动风机运行而又未接收到风机运行确认信号时 屏幕显示相 应故障信息文本作提示 同时蜂鸣器以慢 滴 声报警 当控制器检测到油温超过报警 界限时 屏幕也显示相应故障信息文本作提示 同时蜂鸣器以快 滴 声报警 人机界 面以中文方式可显示时钟 现场实时油温 冷却风机启 停温度 超限报警温度值 时 钟的显示 调整 只需 4 个独立按键进行操作 相当便捷 关键词关键词 DS18B20油温闭环控制故障报警提示LCD 显示时钟芯片 PCF8653 引言引言 项目利用直流电机做动力驱动 通过减速机齿轮箱输出转矩带动驱动大轮运转 从 而拖动带有载客吊具的钢丝绳运行 实现景区交通运输功能 减速箱作为力矩传递关键 设备 其工作的稳定性影响着整套拖动系统的稳定性 由于减速箱在运行过程中产生大 量的热量 液压油在减速箱中不仅起着重要的润滑作用 同时在油泵的作用下液压油经 过冷却管道 利用管道与周围环境之间的温差 将从齿轮箱内部带走的热量散发掉 从 而降低减速箱内部工作温度 保证了减速箱齿轮结构的稳定运行 由于该设备设计之初 未把减速箱油温检测考虑到设计中 只设计了简单的的液压油流量计指示 为了查看减 速箱工作状况 需要当班检修人员利用手持红外测温仪实时测量减速箱温度 并记录 由于减速箱工作位置远离设备控制室 从而造成每次温度检测都需要通过攀爬上 下检 修通道 才能到达减速箱工作现场 再利用手持红外线测温仪每两小时测量一次油温 造成每次油温测量都显得非常费人费时 同时也造成温度检测不够及时的情况 与此同 时 通过长期仔细观察发现 当拖动系统一上电 按下复位按钮后 该减速箱油温冷却 风机就立即启动 不论减速箱工作与否 油温高低与否 都持续运行 直到系统关机断 电 在周围环境温度较低的月份也如此 尽管风机额定功率只有一个千瓦 但造成了不 必要的能源浪费和一定的设备损耗 为了检验自己在技师学习中对单片机知识的掌握程 度和在实际工作中对单片机的应用能力 决定抓住这个机会 利用单片机作控制器 实 现减速箱油温的实时监测及对风机的自动控制功能 达到节省人力和设备节能目的 6 1 1功能设计功能设计 1 将现场测量到的减速机齿轮箱油温实时通过 LCD 显示出来 其中 LCD 温度画面显 示内容包括 实时油温检测值 冷却启动设定值 冷却停止设定值 报警界限设定值 2 冷却风机停止温度设定为 45 启动温度设定为 55 当减速箱油温低于 45 时 停止冷却风机工作 达到 55 时 启动冷却风机工作 3 当油温达到及超过报警界限设定值 75 或者主机发出风机运行指令 却未检测到 风机运行确认信号时 通过人机界面 LCD12864 显示相应故障文本信息和当前温度值 同时蜂 鸣器报警提示 当故障排除后 按下相应复位键 方可返回主画面 即温度测量显示画面 4 附带时钟显示功能 当系统处于温度显示画面时 可通过一键切换 查看当前时 钟画面 同时 可通过按键设定 调整时钟信息 当 LCD 处于时钟显示画面 且在 15 秒钟内 无任何操作时 系统将自动返回至温度测量显示画面 同时为了更贴切于工作 方便当班检修 人员定时观察 记录减速机齿轮箱油温 增加了闹钟报警功能 在设备运行周期内 早晨 8 点到下午 18 点 每隔两小时自动闹铃 需工作人员通过相关按键手动复位 5 附带熄屏功能 为了减小电路板功耗 减低电源端温升 同时延长液晶屏使用寿 命 本系统具备单键开启或关闭液晶屏背光灯的功能 当屏幕处于熄屏状态时 任何报警信号 或相关按键操作可激活液晶屏背光灯点亮 2 2总体方案设计总体方案设计 2 12 1方案论证方案论证 由于本设计主要针对的是油温的实时测量 因此最先考虑到选用热电偶温度传感器或者 铂电阻温度传感器作为测温单元 将随被测温度变化的电流或电压信号采样 经过 A D 转换 然后用单片机进行数据处理 最后实现温度显示 但这种设计需要用到 A D 转换电路 增加了 电路的复杂性 同时由于元器件的增加 也增加了电路的功耗和电路的硬件故障率 选用数字温度传感器 DS18B20 作为测温单元 此传感器为单总线数字温度传感器 它不 需要额外的 A D 转换电路 而是直接将温度转化为串行的数字信号送给单片机处理 另外 DS18B20 具有 3 引脚的小体积 安装方便 可根据现场位置灵活使用 综合以上两种测温单元相比较 第二种的电路 软件设计更简单 更符合设计需要 故 本设计采用数字温度传感器 DS18B20 作为测温单元 7 2 22 2总体框图设计总体框图设计 独立按键 PCF8563 时钟电路 12864 液晶屏显示 5V 稳压工作电源 为系统提供工作电源 STC89C52单片机 DS18B20 单线智能温度传感器 蜂鸣器报警电路 风机启停控制电路 风压传感器 图 2 2 系统框图 3 3系统的硬件设计系统的硬件设计 系统组成 单片机 STC89C52 主控单元 LCD12864 显示单元 5V 稳压工作电源 温 度传感器 DS18B20 单元 PCF8563 时钟单元 风压传感器电路 独立按键电路 蜂鸣器报 警电路 风机启停控制电路 3 13 1单片机系统单片机系统 3 1 13 1 1STC89C52STC89C52 性能性能 STC89C52RC 单片机是宏晶科技推出的新一代高速 低功耗 超强抗干扰的单片机 指令 代码完全兼容传统 8051 单片机 12 时钟 机器周期和 6 时钟 机器周期可以任意选择 主要特 点如下 工作频率范围 0 40MHz 相当于普通 8051 的 0 80MHz 实际工作频率可达 48MHz 可多次擦写程序 用户应用程序空间为 8K 字节 片上集成 512 字节 RAM ISP 在系统可编程 和 IAP 在应用可编程 无需专用编程器 无需专用仿真器 可通过串口直接下载用户程序 数秒即可完成 综合以上该单片机所具有的特点以及从本次设计的规模大小考虑 使用 STC89C52RC 单片 8 机完全能满足本次设计需要 3 1 23 1 2STC89C52RCSTC89C52RC 工作电路图工作电路图 图 3 1 2 STC89C52 工作电路图 3 23 2数字温度传感器数字温度传感器 DS18B20DS18B20 3 2 13 2 1DS18B20DS18B20 性能性能 适应电压范围宽 电压范围在 3 0 5 5V 在寄生电源方式下可由数据线供电 支持多点组网功能 多个 DS18B20 可以并联在唯一的三条线上 实现组网多点测温 但数目最好不要超过 8 个 在使用中不需要任何外围原件 全部传感原件及转换电路集成在形如一只三级管的集 成电路内 测温范围为 55 125 以 0 5 递增 在 10 85 时精度为 0 5 可编程分辨率为 9 12 位 对应的可分辨温度分别为 0 5 0 25 0 125 和 0 0625 9 DALLAS DS18B20 可实现高精度测温 在 9 位分辨率时 最多在 93 75ms 内把温度转换为数字 12 位分辨率时 最多在 750ms 内把温度值转换为数字 测量结果直接输出数字温度信号 以 一线总线 串行传送给 CPU 同时可传送 CRC 检验码 具有极强的抗干扰纠错能力 负压特性 电源极性接反时 芯片不会因为发热而烧毁 但不能正常工作 3 2 23 2 2DS18B20DS18B20 外形及引脚说明外形及引脚说明 GND DQ VDD俯视图 图 3 DS18B20TO 92 封装及俯视图1 DS18B20 引脚定义如下 GND 电源负极 DQ 信号输入输出 VDD 电源正极 3 2 33 2 3DS18B20DS18B20 接线及时序图接线及时序图 图 3 2 3a DS18B20 接线图 DS18B20 接线图见 3 2 3a 在本次设计中 DS18B20 供电方式是从 VCC 引脚接入一个 5V 的外部电源 这样做的好处是数据口 OUT 端不需要强上拉 而且总线控制器不需要在温度转换 期间总保持高电平 这样在转换期间 可以允许在单线总线上进行其他数据往来 123 10 图 3 2 3b DS18B20 初始化时序图 初始化时序见图 3 2 3b 主机总线 t0 时刻发送一复位脉冲 最短为 480us 的低电平信 号 接着在 t1 时刻释放总线并进入接收状 DSl820 在检测到总线的上升沿之后 等待 15 60us 接着 DS1820 在 t2 时刻发出存在脉冲 低电平持续 60 240 us 如图中虚线所示 图 3 2 3c DS18B20 写 0 时序图 图 3 2 3d DS18B20 写 1 时序图 当主机总线在 t0 时刻从高拉至低电平时 就产生写时间隙见图 3 2 3c 3 2 3d 从 t0 时刻开始 15us 之内应将所需写的位送到总线上 DSl820 在 t0 后 15 60us 间对总线采样 若 是低电平 写入的位是 0 见图 3 2 3c 若是高电平 则写入的位是 1 见图 3 2 3d 与此同 时应注意连续写两位间的间隙应大于 1us 图 3 2 3e DS18B20 读时序图 图3 2 3e中 主机总线在t0时刻从高拉至低电平时 总线只须保持低电平1us之后在 t1 时刻将总线拉高 产生读时间隙 读时间隙在 t1 时刻后 t2 时刻前有效 t2 距 t1 为 15us 也就是说在 t2 时刻前 主机必须完成读位 并在 t0 后的 60us 120us 内释放总线 3 2 43 2 4DSB18B20DSB18B20 数据处理数据处理 DS18B20 的温度测量结果存放在高速暂存器 RAM 中 高速暂存器 RAM 由 9 个字节的存储 器组成 具体分配详见下表 第 0 1 个字节是温度的显示位 第 2 和第 3 个字节是复制的 TH 11 和 TL 同时第 2 和第 3 个字节的数字可以更新 第 4 个字节是配置寄存器 同时第 4 个字节 的数字可以更新 第 5 6 7 三个字节是保留的可电擦除 EEPROM 又包括温度触发器 TH 和 TL 以及一个配置寄存器 表 3 2 4a高速暂存器 RAM 表 寄存器内容字节地址 温度值低位 LSB 0 温度值高位 MSB 1 高温限值 TH 2 低温限值 TL 3 配置寄存器4 保留5 保留6 保留7 CRC 校验值8 表 3 2 4b12 位分辨率时的温度数据存储格式 位 7位 6位 5位 4位 3位 2位 1位 0 84211 21 41 81 16 位 1514位 13位 12位 11位 10位 9位 8 SSSSS643216 DS18B20 在出厂时默认配置为 12 位 其中最高位为符号位 即温度值共 11 位 单片机 在读取数据时 一次会读 2 字节共 16 位 读完后将低 11 位的二进制数转换为十进制数后再乘 以 0 0625 便为所测的实际温度值 另外还须判断温度的正负 前 5 个数字为符号位 这 5 位 同时变化 我们只需判断 11 位就可以了 前 5 位为 1 时 读取的温度为负值 且测到的数值 需要取反加 1 再乘以 0 0625 才可得到实际温度值 前 5 位为 0 时 读取的温度为正值 只需 要乘以 0 0625 即可得到实际温度值 1 如 125 的数字输出为 07D0H 那么其实际温度值 07D0H 0 0625 2000 0 0625 125 2 如 55 数字输出为 FC90H 则应将 11 位数据取反加 1 得 370H 符号位不变 也不 作运算 那么其实际温度值 370H 0 0625 880 0 0625 55 在本次设计中 使用的分辨率是 DS18B20 出厂时默认的 12 位 3 2 53 2 5DS18B20DS18B20 控制指令控制指令 12 1 33H 读 ROM 读 DS18B20 温度传感器 ROM 中的编码 即 64 位地址 2 55H 匹配 ROM 发出此命令之后 接着发出 64 位 ROM 编码 访问单总线上与该编 码相对应的 DS18B20 并使之作出响应 为下一步对该 DS18B20 的读 写做准备 3 F0H 搜索 ROM 用于确定挂接在同一总线上 DS18B20 的个数 识别 64 位 ROM 地址 为操作各器件做好准备 4 CCH 跳过 ROM 忽略 64 位 ROM 地址 直接向 DS18B20 发温度变换命令 适用于一 个从机工作 5 ECH 告警搜索命令 执行完后只有温度超过设定值上限或下限的芯片才做出响 应 以上这些指令涉及的存储器是 64 位光刻 ROM 下表列出了它的各位定义 表 3 2 564 位光刻 ROM 各位定义 8 位 CRC 码48 位序列号8 位产品类型标号 64 位光刻 ROM 中的序列号是出厂前被光刻好的 可以看做该 DS18B20 的地址序列码 其 各位排列顺序是 开始 8 位为产品类型标号 接下来 48 位是该 DS18B20 自身的序列号 最后 8 位是前 56 位 CRC 循环冗余校验码 CRC X8 X5 X4 1 光刻 ROM 的作用是使每一个 DS18B20 都各不相同 这样就可以实现一条总线上挂接多个 DS18B20 自身的序列号 当主机需要对众多在线 DS18B20 中的某一个进行操作时 首先应将主机逐个与 DBS18B20 挂接 读出其序列号 然后再将所有的 DS18B20 挂接到总线上 单片机发出匹配 ROM 命令 55H 紧接着主机提供的 64 位序列号之后的操作就是针对该 DS18B20 的 如果主机只对一个 DS18B20 进行操作 就不需要读取 ROM 编码以及匹配 ROM 编码了 只 要跳过 ROM CCH 命令 就可进行如下温度转换和读取操作 如下 1 44H 温度转换 启动 DS18B20 进行温度转换 12 位转换时最长为 750ms 9 位为 93 75ms 结果存入内部 9 字节的 RAM 中 2 BEH 读暂存器 读内部 RAM 中 9 字节的温度数据 3 4EH 写暂存器 发出向内部 RAM 的第 2 3 字节写上 下限温度命令 紧跟该命 令之后 是传送两字节的数据 4 48H 复制存储器 将 RAM 中第 2 3 字节的内容复制到 EEPROM 中 5 B8H 重调 EEPROM 将 EEPROM 中的内容恢复到 RAM 中的第 2 3 字节 6 B4H 读供电模式 读 DS18B20 的供电模式 寄生供电 寄生电源 即通过数据线 供电 当数据线电平为高时 给器件内的电容充电 为低电平时 电容放电给器件充电 DS18B20 13 采用该方式供电时 VDD 接地 该供电输出端近似恒压电源 但是输出的电流非常小 时 DS18B20 发送 0 外界电源供电时 DS18B20 发送 1 3 33 3时钟芯片时钟芯片 PCF8563PCF8563 3 3 13 3 1PCF8563PCF8563 性能性能 PCF8563 是低功耗的 CMOS 实时时钟 日历芯片 低工作电流典型值为 0 25uA 工作电 源 VDD 5V 工作温度 Tamb 25 PCF8563 提供一个可编程时钟输出 输出频率为 23 768KHZ 1024HZ 32HZ 1HZ 大工作电压范围 1 0 5 5V 所有地址和数据通过 IIC 总线接口串行传递 最大总线速度为 400Kbit s IIC 总线从地址 读为 0A3H 写为 0A2H 具有片内电源复位功能 内部集成有振荡器电容 同时具有掉电检测功能 3 3 23 3 2PCF8563PCF8563 相关寄存器概况相关寄存器概况 表 3 3 2寄存器概况 地址寄存器 名称 Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0 00H控 制 状态寄 存器 1 TEST0STOP0TESTC000 02H秒VL00 59BCD 格式码 03H分钟 00 59BCD 格式码 04H小时 00 23BCD 格式码 05H日 00 31BCD 格式码 06H星期 0 6 07H月 世 纪 C 0 12 BCD 格式码 08H年0 99 BCD 格式码 09H分钟报 警 AE00 59BCD 格式码 0AH小时报 警 AE 00 23BCD 格式码 0BH日报警AE 00 31BCD 格式码 0CH星期报 警 AE 0 6 注 表明 的位无效 14 3 3 33 3 3接线图接线图 图 3 3 6 PCF8563 时钟芯片接线图 本接线图中设置了一颗 3 6V 的直流可充电电池 目的是保证在系统断电情况下 维持时 钟芯片正常工作 当再次通电开机时 不会发生因断电 时间被重置的意外 同时在正常电源 供电时 该电池可通过贴片二极管 1N4148 对自身进行涓流充电 3 43 4液晶显示屏液晶显示屏 1286412864 3 4 13 4 11286412864 性能性能 带中文字库的 12864 是一种具有 4 位 8 位并行 2 线或 3 线串行多种接口方式 内部含 有国标一级 二级简体中文字库的点阵图形液晶显示模块 其显示分辨率为 128 64 内置 8192 个 16 16 点汉字 和 128 个 16 8 点 ASCII 字符集 利用该模块灵活的接口方式和简单 方便的操作指令 可构成全中文人机交互图形界面 可以显示 8 4 行 16 16 点阵的汉字 也 可完成图形显示 同时低电压低功耗是其又一显著特点 其基本特性如下 1 低电源电压 VDD 3 0 5 5V 2 显示分辨率 128 64 点 3 内置汉字字库 提供 8192 个 16 16 点阵汉字 简繁体可选 4 内置 128 个 16 8 点阵字符 5 2MHZ 时钟频率 6 显示方式 STN 半透 正显 7 驱动方式 1 32DUTY 1 5BIAS 8 视角方向 6 点 9 背光方式 侧部高亮白色 LED 功耗仅为普通 LED 的 1 5 1 10 10 通讯方式 串行 并口可选 11 内置 DC DC 转换电路 无需外加负压 15 12 无需片选信号 简化软件设计 13 工作温度 0 55 存储温度 20 60 3 4 23 4 21286412864 引脚说明引脚说明 12864 液晶模块引脚说明见下表 表 3 4 212864 液晶模块引脚说明 编 号 符号引脚说明编 号 符号引脚说明 1VSS电源地11D4数据口 2VDD电源正极12D5数据口 3VO液晶显示对比度调节端13D6数据口 4RS CS 数据 命令选择端 H L 串片选 14D7数据口 5R W SID 读 写选择端 H L 串 数据端 15PSB并 串选择 H 并行 L 串行 6E SCLK 数据口16NC空脚 7D0数据口17RST复位脚 低电平有效 8D1数据口18NC空脚 9D2数据口19BLA背光电源正极 10D3数据口20BLK背光电源负极 3 4 33 4 31286412864 基本控制指令表基本控制指令表 表 3 4 312864 液晶基本指令表 RE 0 基本指令 指令指令码功能 D7D6D5D4D3D2D1D0 清除显示00000001将DDRAM 填满 20H 并 且设定DDRAM 的地址计 数器 AC 到 00H 地址归位 0000001X 设定DDRAM 的地址计数 器 AC 到 00H 并且将 游标移到开头原点位置 这个指令不改变 DDRAM 的内容 显示状态开 关 00001DCB D 1 整体显示 ON C 1 游标 ON B 1 游标位置反白允 许 进入点设定 000001I DS 指定在数据的读取与 写入时 设定游标的 移动方向及指定显示 16 的移位 游 标 或 显 示 移位控制 0001S CR LXX 设定游标的移动与显 示的移位控制位 这 个指令不改变 DDRAM 的内容 功能设定 001DLXREXX DL 0 1 4 8 位数据 RE 1 扩充指令操作 RE 0 基本指令操作 设定 CGRAM01AC5AC4AC3AC2AC1AC0设定 CGRAM 地址 设定 DDRAM 地 址 10AC5AC4AC3AC2AC1AC0 设定 DDRAM 地址 显 示位址 第一行 80H 87H 第二行 90H 97H 读 取 忙 标 志 和地址 BFAC6AC5AC4AC3AC2AC1AC0 读取忙标志 BF 可以 确认内部动作是否完 成 同时可以读出地 址计数器 AC 的值 3 4 43 4 4LCD12864LCD12864 理图理图 图 3 4 5 LCD12864 接线图 如图所示 该液晶屏的背光灯点亮与否 受单片机端口 LCD BL 控制 只有正确地设置了 该端口 才能保证液晶屏的正常显示 这样做的目的是确保液晶屏显示受控制 同时 将 LCD 对比度设定成了合适的固定值 这样做的目的是防止该调节被任意更改 导致显示效果不佳 17 3 53 5MAX232MAX232 串口编程电路串口编程电路 图 3 5 2 MAX232 工作接线图 MAX232 芯片是美信公司专门为电脑的 RS 232 标准串口设计的单电源电平转换芯片 使 用 5V 单电源供电 在本次设计中 该串口主要功能是 通过该端口 完成对电路板上的单片 机进行在线编程烧写操作 3 63 6蜂鸣器报警电路蜂鸣器报警电路 图 3 6 蜂鸣器报警电路 功能如下 当温度达到或者超过高温报警界限设定值或当系统启动冷却风机 却未检测到风机运 行结果时 该蜂鸣器以相应发生频率作故障报警提示 当系统上电时 该蜂鸣器作为开机提示 当有按键按下时 蜂鸣器作按键提示 提醒操作者操作 18 3 73 7按键电路按键电路 图 3 7 独立按键电路 在综合考虑温度设定的必要性和系统运行的稳定性后 决定将温度的设定和修改只放在 串口中 即只能通过串口来修改 冷却启动值 冷却停止值及报警界限值等三项内容 这也符 合工程的实际应用 但可通过按键修改及设定时钟 同时可切换查看 温度显示画面和时钟画 面 由于本设计的主要功能是油温实时查看及通过温度控制冷却电机的启停 因此将温度显 示画面作为主屏画面亦即第一画面 时间画面作为副屏画面亦即第二画面 该四个独立按键依次是 S1 时钟设定键 S2 时钟数值增大键 S3 时钟数值减小键 S4 画面切换键 同时 S1 具有第二功能 即风机异常报警复位功能 S2 也具第二功能 即油温超 高报警复位功能都 两复位键均在相关故障消除后 按下才有效 否则一直显示故障报警画面 提醒当班人员排除故障 具体按键功能介绍如下 其中画面切换键的功能是 切换 LCD 显示画面 正常情况下显示油温测量画面 当需要 查看时间时 按一次 S4 键即可进入显示时钟内容的画面 再按一次此键 即可返回到温度测 量显示画面 时钟增大键与减小键的功能是增大或者减小相关时钟设定值 时钟设定键的功能 是依次将光标定位到秒 分 时 周 日 月 年的设定位置上 进行相应时钟值的设定 同 时当风机异常故障消除后 按 S1 键可返回主画面显示 当油温超高故障消除后 按 S2 键可返 回主画面显示 3 83 8风压传感电路风压传感电路 19 该开关的主要功能是用于确认风机的启动 当系统发出启动风机命令后 再读取风压传 感器的状态 就可确认风机已经动作 如若风机没正常启动则触发风机异常报警信号 提醒当 班检修人员查看风机故障情况 3 93 9风机启停控制电路风机启停控制电路 图 3 9 风机启停继电器控制电路 如图所示 在本设计中使用 5V 的直流继电器作为冷却风机启停的控制器件 通过其常 开触点与冷却风机接触器线圈电路构成控制回路 当测量温度达到冷却启动设定值后 单片机 发出冷却启动命令 将电机控制端口 Motor control P1 7 置低电平 三极管 8550 在此低 电平的作用下 由截止状态变成导通状态 从而控制继电器线圈得电动作 同时该继电器动合 触点动作闭合 当其闭合时接通冷却电机 24V 直流接触器线圈供电回路 冷却风机得电运行 加快管道中的齿轮箱液压油散热 当测量温度达到冷却停止设定值后 单片机执行冷却停止命 令 将端口 P1 7 置高电平 促使三极管由导通状态变成截止状态 从而控制继电器线圈断电 复位 其动合触点断开 进而断开冷却电机直流接触器线圈的供电回路 冷却风机停止运行 3 103 10 电源电路电源电路 20 图 3 8 电源电路 如图所示 通过外接 12V 的直流电源 经过稳压滤波后得到 5V 的系统工作电源 选择 外接 12V 电源是因为考虑到在项目控制柜中已有 12V 的蓄电池组 因此很容易获得稳定的的 12V 直流电源 而不需要其他外置整流滤波电路 从而减少电路硬件设计 同时在一定程度 上可以提高系统的抗干扰能力和稳定性 4系统的软件设计系统的软件设计 4 14 1系统流程图设计系统流程图设计 系统上电 初始化 主循环 打开 LCD 背光灯 上电提示 主屏固定内容 显示 温度采集 温度处理及显 示 键盘扫描 温 度 时钟画面切 换显示 时钟设 置 图 4 1 系统流程图 4 24 2温度处理流程图设计温度处理流程图设计 21 故障 是否 消 除 是 温度处理 是 油温超 高报警 屏幕 提示相 关故障 内容 蜂鸣器 报警 风机是否运 行 是 温度值是否小 于冷却停止设 定值 停止风机 温度值是否大 于等于冷却启 动设定值 启动风机 风机是否运 行 风机异常 报警 屏 幕提示相 关故障内 容 蜂鸣 器报警 温度值是否大 于报警界限设 定值 风机异常报 警 油温超高 报警 屏幕提 示相关故障内 容 蜂鸣器报 警 是 否 是 否 否 是 是 否 否 故障 是否 消 除 按键 S1 是 否按 下 按键 S2 是 否按 下 清除屏幕报警提示 文本 显示温度画面 清除屏幕报警提示 文本 显示温度画面 否 否 否 否 是 是 22 图 4 2 温度处理流程图 4 34 3DS18B20DS18B20 温度采集流程图设计温度采集流程图设计 上电 初始化 忽略 ROM 初始化 温度转换 忽略 ROM 读暂存器 数据处理 送 LCD 显示 延时 数据口置 0 延时 数据口置 1 延时 数据口置 1 图 4 3 DS18B20 温度采集流程图 23 4 44 4时钟芯片时钟芯片 PCF8563PCF8563 流程图设计流程图设计 起动 PCF8563 发送写字节命令 发送秒地址 接收时钟数据 起动 PCD8563 数据处理 送 LCD 显示 读时钟 停止 PCF8563 判断总线 忙否 判断总线 忙否 接收完成 否 繁 忙 空 闲 繁 忙 空 闲 是 否 发送除秒外的时钟地址 接收时钟数据 图 4 4 时钟 PCF8564 流程图 24 4 54 5LCD12864LCD12864 初始化流程图设计初始化流程图设计 初始化 功能设定控制字 显示开关控制字 清屏控制字 进入设定点控制字 上电 结束 延时 40ms 延时 120ms 功能设定控制字 延时 40us 延时 120ms 延时 10ms 图 4 5 LCD12864 初始化流程图 25 4 64 6按键扫描流程图设计按键扫描流程图设计 否 按键 S4 按下否 退出小循环 主屏 送显 按键扫描 按键 S4 按 下否 副屏 时钟 内容送显 小循环 主屏 温度 内 容送显 按键 S1 按 下否 S1 功能处理 按键 S2 按 下否 S2 功能处理 按键 S3 按 下否 S3 功能处理 是 是 是 否 否 否 否 是 是 计 15 秒 钟到否 否 是 图 4 6 按键扫描流程图 5结束语结束语 这是自己第一次尝试有关单片机的设计 在设计 制作 调试过程中碰到了许多的问题 不论是在电路硬件方面还是软件方面 其中问题更多的是集中在软件设计和调试过程中 现将 遇到的主要问题总结如下 26 1 由于缺乏设计经验 在程序编写初期 没有注意到编写流程图的重要性 导致花了大 量的时间去琢磨自己想要实现的功能 基本上是想到一点写一点 再调试一点 最终导致程序 越调越乱 乱到自己都不知道要做什么 所以编写流程图非常重要 只有流程图清晰了 无论 是编写程序还是调试都才能够达到事半功倍的效果 2 在处理屏幕的动态刷新内容时 总是想面面俱到 比如起初想在一个画面同时显示油 温和时钟信息 导致系统对油温的检测及处理变得迟钝 同时时钟信息也变得不同步 由于主 要功能目标是实现油温的检测与自动冷却控制 因此只有保证了油温的实时准确测量 才能确 保系统的有用性 而不是主次不分地去一味追求时钟信息和油温信息的同屏同步显示 因此最 终将油温放在第一画面显示 即主屏显示 时钟放在第二画面显示 即副屏显示 只有需要时 才查看时钟信息画面 正常情况下单片机只对油温全速处理 这就保证了油温测量的准确性和 系统对油温冷却控制的有用性 3 在调试过程中发现 开机上电瞬间 温度显示为 85 虽然只有短短的不到 1 秒钟的 显示 但足以导致系统的误动作 即瞬间启动冷却风机 又瞬间停止冷却风机 导致风机及电 路出现不必要的冲击 最后在温度转换程序段部分 将上电初始温度值设定为常温 25 这 样就避免了系统开机时 因为初始温度而误报警及动作 4 在制作故障信息提示文本的过程中 发现当系统检测到故障后 通过 LCD 显示出来的 故障信息提示文本始终出现一半正常 一半乱码的现象 却始终找不到根源 起初以为是 LCD 程序问题 但查看所有程序后 还是没发现异常 于是删掉故障信息提示文本 重新录入 这 时发现自己为了缩小冒号与汉字之间的距离 在输入冒号时 使用了西文输入法 于是抱着试 一试的心态 切换至中文输入法后 输入冒号 然后再通过 LCD 显示 发现故障文本显示正常 至此解决了文本信息显示乱码的问题 5 在系统调试过程中发现 当 LCD 处于在时钟显示画面时 若未按下切换键 S4 发现 LCD 一直处于时钟显示画面 导致系统失去了最主要也是最关键的温度检测及控制功能 为了解决 这一由于时钟显示可能会导致系统失灵的问题 几经尝试 在时钟显示及处理函数中 加入 15 秒计数中断 倘若 LCD 处于时钟显示画面 若在 15 秒钟之内无任何操作 系统自动切换至 温度实时测量画面 恢复测温及冷却控制功能 6 在温度画面设计过程中 起初将冷却启动温度 冷却停止温度 报警界限温度三项设 计为可调项 即可通过独立键盘时刻修改这三项温度设定值 最后在导师的提醒下 去掉了该 项功能 原因有二 其一 从实用性来说 设计这一功能就是多此一举 因为温度只要按照设 备要求一旦设定合适就没有修改的必要性 其二 从系统安全性和稳定性来说 频繁修改或误 修改该三项系统工作指标值 将导致系统失去智能控制的作用 更有可能导致设备安全隐患 27 7 由于 PCF8563 时钟芯片在数据写入和读取时都采用的是 BCD 格式的数码 在利用独立 键盘对时钟芯片时间修改的过程中 发现不论是调节增大数字键还是减小数字键 个位数字在 0 9 之间调节 显示均正常 当个位数字大于 9 或小于 0 后均出现 6 个乱码 虽然知道是数制 转换间出了问题 因为十进制与十六进制只差 6 个元素 但怎么移位或者运算都没能解决问题 最后在导师的提点下 只需要小小的改动就解决了困扰我许久的问题 即调节増大键时数值加 6 调节减小键时数值减 6 可能是我平时程序编写的太少 但根本点还是自己对 BCD 码没有 全面的认知 通过本次设计 使自己从整体上提高了对单片机的认识和运用 将课本所学用于工作所 用 增强了自身的成就感 更同时激发了自己思考问题及动手解决问题的热情 同样由于自身 的不足导致在这次设计中倍感压力 尤其是对电路版的设计 制作 比如 对信号电路的处理 电源电路的处理 元器件的选用和调试 但最后还是一一克服了下来 最终完成了本次设计 通过模拟测试及运行 系统运行稳定 各项功能都能符合设计要求 同时希望将来对系统能加 以扩展 实现多路测温 同时对其他现场设备作温度监测 如主电机温度 电源柜整流器温度 等 6致谢致谢 在论文的撰写过程 得到了深圳市第二技校的任课老师 实操辅导老师 课题辅导老师 的悉心帮助 并从中得到许多启发 论文撰写才得以完成 由于本人的经验不足和水平有限 加之成文时间仓促 难免有疏漏错误之处 恳请各位专家指正 在此一并表示感受谢 7参考文献参考文献 1 郭天祥 51 单片机 C 语言教程 北京 电子工业出版社 2009 1 2 李宏 液晶显示器件应用技术 北京 机械工业出版社 2004 3 何立民 单片机应用系统设计 北京 航空航天大学出版社 1995 4 王建校 51 系列单片机及 C51 程序设计 北京 人民邮电出版社 2003 28 8附录附录 8 18 1 系统总电路图系统总电路图 8 28 2源程序源程序 include include define uchar unsigned char define uint unsigned int 29 sbit Fun Pressure P3 3 冷却电机运行状态检测 sbit s1 P1 3 时间设定键 sbit s2 P1 4 增大键 闹铃复位键 sbit s3 P1 5 减小键 LCD 背光灯关闭键 sbit s4 P1 6 画面切换键 sbit Motor control P1 7 定义该端口为油冷却电机启停控制端 sbit pcf8563 scl P2 1 PCF8563 串行时钟线 sbit pcf8563 sda P2 0 PF8563 串行数据线 sbit TEMP P3 6 温度测量端口 uint temp uint motor stop 450 定义冷却停止值为 45 是温度值乘以 10 后的结果 uint motor start 550 定义冷却启动值为 55 是温度值乘以 10 后的结果 uint warn temp high 750 定义油温报警界限值为 75 12864 液晶端口定义 sbit bl P2 2 sbit rw P2 5 sbit rs P2 4 sbit en P2 6 sbit beep P3 4 定义蜂鸣器端口 bit busy 0 uchar t t1 t2 t3 t4 t5 charsecond minute hour day month week year day number s1num alarm AF alarm1 固定画面显示内容 uchar dis00 Gear box uchar dis0 一 char dis01 二 uchar dis02 三 uchar dis03 四 uchar dis04 五 uchar dis05 六 uchar dis06 日 uchar dis1 20 uchar dis2 周 uchar dis4 时 uchar dis40 分 uchar dis41 秒 uchar dis5 年 uchar dis6 月 uchar dis7 日 uchar code dis8 冷却启动 55 0 uchar code dis9 冷却停止 45 0 uchar code dis10 报警界限 75 0 uchar code dis11 Gear box Systerm uchar code dis12 报 警 油 温 异 常 uchar code dis13 报警 风机异常 uchar code dis14 Alarm uchar code dis15 点 uchar code dis16 分 voidstart pcf8563 voidsend pcf8563 byte voidstop pcf8563 void receive pcf8563 byte void write pcf8563 uchar subadd uchar dat void read pcf8563 30 void LcdIni void void write cmd uchardat void write date uchardat void display1 void void delay uint void display uint Temp void di void void di1 void void First screen void First screen1 void Second screen void lcd pos uchar X uchar Y void deal1 void warn1 void back light void delay 0 uint 韩 均 勇 自 主 知 识 产 权 的 按 键 扫 描 函 数 程 序 段 void keyscan uchar num uint JB if s4 0 delay 10 if s4 0 while s4 di 判断 S4 键释放与否 如果释放就 滴 一声 若没有就继续等待 Second screen 时钟画面固定显示内容 num 1 JB 0 while num 1 read pcf8563 读当前时间 nop nop nop nop nop display1 时间显示处理函数 JB if s1 0 检测 s1 delay 10 if s1 0 s1num 记录按键次数 while s1 di if s1num 1 write pcf8563 0 x00 0 x20 停止时钟芯片工作 write cmd 0 x96 光标定位到秒位置 while 1 write cmd 0 x0f 光标开始闪烁 if s2 0 while s2 di write cmd 0 x0c second if second if second 0 x59 second 0 write pcf8563 0 x02 second read pcf8563 display1 write cmd 0 x96 if s3 0 while s3 di write cmd 0 x0c second if second if second9 minute 0 x06 if minute 0 x59 minute 0 write pcf8563 0 x03 minute read pcf8563 display1 write cmd 0 x94 if s3 0 while s3 di write cmd 0 x0c minute if minute if minute9 hour 0 x06 if hour 0 x24 hour 0 write pcf8563 0 x04 hour read pcf8563 display1 write cmd 0 x92 if s3 0 while s3 di write cmd 0 x0c hour if hour if hour9 day 0 x06 if day 0 x31 day 1 write pcf8563 0 x05 day read pcf8563 display1 write cmd 0 x8f if s3 0 while s3 di write cmd 0 x0c day if day if day9 month 0 x06 if month 0 x12 month 1 write pcf8563 0 x07 month read pcf8563 display1 write cmd 0 x8d if s3 0 while s3 di write cmd 0 x0c month if month if month9 year 0 x06 if year 0 x99 year 0 write pcf8563 0 x08 year read pcf8563 display1 write cmd 0 x8b if s3 0 while s3 di write cmd 0 x0c year if year if year9 alarm 0 x06 if alarm 0 x24 alarm 0 write pcf8563 0 x0a alarm read pcf8563 display1 write cmd 0 x9d if s3 0 while s3 di write cmd 0 x0c alarm if alarm if alarm9 alarm1 0 x06 if alarm1 0 x59 alarm1 0 wri

温馨提示

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

评论

0/150

提交评论