环境温度检测与报警课程设计(编辑修改稿)内容摘要:

所示。 表 34 分辨率转换 头 2 个字节包含测 得的温度信息,第 3 和第 4 字节 TH 和 TL的拷贝,是易失的,每次上电复位时被刷新。 第 5 个字节, 为配置寄存器,它的内容用于确定温度值的数字转换分辨率。 DS18B20 工作时寄存器中的分辨率转换为相应精度的温度数值。 该字节各位的定义如图 3 所示。 低 5 位一直为 1, TM 是工作模式位,用于设置 DS18B20 在工作模式还是在测试模式, DS18B20 出厂时该位被设置为 0,用户要去改动, R1 和 R0 决定温度转换的精度位数,来设置分辨率。 DS18B20 温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。 因此,在实际应用中要将分辨率和转换时间权衡考虑。 当 DS18B20 接收到温度转换命令后,开始启动转换。 转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 2 字节。 单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以 ℃/ LSB 形式表示。 下表为 DS18B20 温度转换时间表。 R0R1000101119101112分辨率/ 位 温度最大转向时间/ m s9 3 . 7 51 8 7 . 53 7 57 5 0.... 16 减法计数器 1 对低温度系数晶振产 生的脉冲信号进行减法计数,当减法计数器 1的预置值减到 0 时,温度寄存器的值将加 1,减法计数器 1的预置将重新被装入,减法计数器 1重新开始对低温度系数晶振产生的脉冲 信号进行计数,如此循环直到减法计数器计数到 0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。 其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。 另外,由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。 系统对 DS18B20 的各种操作按协议进行。 操作协议 为:初使化 DS18B20(发复位脉冲)→发 ROM 功能命令→发存储器操作命令→处理数据。 按键查询电路 本系统设有四个独立按钮,如图 34 所示。 为确保随时可以控制进入和退出查询状态,所以设有一个进入和退出查询状态的复用按键,自进入查询状态时,再按对应的通道查寻键即可查询各通道信息,例如按下通道 0查询,假若当前显示的是通道 0的当前温度及对应的数字量为上线,如果再次按下该键,则显示的是为报警的下线,如果超温次数大于设定值,则会出现报警现象,提示需对该路的控制对象进行必要的检查。 图 35 按键电路 17 单片机硬件资源分配 I/O 口配表 P0 口 LED 数码管 A 段 P2 口 LED数码管 W3 位选端 LED 数码管 B 段 LED数码管 W1 位选端 LED 数码管 C 段 LED数码管 W2 位选端 LED 数码管 D 段 LED数码管 W4 位选端 LED 数码管 E 段 独立 键盘的 S4 列选端 LED 数码管 F 段 独立 键盘的 S3 列选端 LED 数码管 G 段 独立 键盘的 S2 列选端 LED 数码管 DP段 独立 键盘的 S1 列选端 P3 口 蜂鸣器 Ds18b20 接口 18 第 4 章 应用软件设计 主函数的设计 整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。 从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核 心,专门用来协调各执行模块和操作者的关系。 二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。 每一个执行软件也就是一个小的功能执行模块。 这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。 各执行模块规划好后,就可以规划监控程序了。 首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。 主程序流程见图 41。 开 始初 始 化检 测 温 度显 示与 设 定 温 度 比 较 是 否 超 范 围报 警返 回yn 图 41 主函数流程 19 键盘扫描函数的设计 图 42为键盘扫描函数 流程图,为防止误读电平,读引脚时先写“ 1”。 本系统在 P2 口低四位接有四个开关,故将低四位写“ 1”。 首先判断有无键按下,然后延时去抖动后再次判有无键按下,然后等待键的释放,最后是键的识别。 假若 ,则 K1=1,因为四个键均为复用键,所以 d[0]++表示当前是查询该路的温度,对于其他 2路通道也照此设计。 键盘扫描延时去抖动键盘扫描有键闭合找到闭合键闭合键释放建立无效标志建立有效标志返回NYNY 图 42 键盘扫描函数流程 20 读出温度子程序 读出温度子程序的主要功能是读出 RAM 中的 9字节,在读出时需进行CRC 校验,校验 有错时不进行温度数据的改写,流程如图 43所示。 读 取 操 作 , C R C 效 验发 读 取 温 度 命 令发 跳 过 R O M 命 令9 字 节 完。 C R C 校 验 正。 移 入 温 度 寄 存 器返 回NYNY发 D S 1 8 B 2 0 复 位 命 令 如图 43 报警子程序 报警根据通过键盘设定的上下限温度值来比较是否触发报警装置。 流程如图 44所示。 读 取 更 新 温 度值是 否 超 过 温 度 限 制正 常 显 示 温 度执 行 温 度 报 警函 数系 统 初 始 化 图 44 报警子程序函数 21 第 5 章 硬件调试与结果分析 调试方法 首先将用 KEIL 编译好的程序进行编译,程序无错误运行后产生 hex文件,然后用单片机连接电脑用软件下载到单片机中试运行看结果。 调试时单片机 p0 口一次连接显示管 a 到 dp,将 j6 用线短接, s1 到s4 分别连接单片机 到 显示管位选连接单片机 到 ,温度检测原件 ds18b20 连接 ,连接好电源都打开调试。 调试中出现的问题及解决办法 单片机调试时出现显示闪烁太大,以至于显示看不清,应看显示抖动程序是否正确,调试时按键加减显示过快出现跳跃式显示,应该看看按键显示程序的延时是否符合标准, 调试结果 ( 1)开机正常显示温度 图 531 开机显示 22 ( 2)按下矩阵键盘最后一排第一个键显示上限定,按两下为下限设定。 图 532 上线显示。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。