基于单片机数字温度计设计_毕业设计(论文)(编辑修改稿)内容摘要:

B20 的管脚 有三个 , DQ 为数据输入 /输出引脚 ,当被用 在寄生电源下,也可以向器件提供电源; GND 为地信号; VDD 为可选择的 电源引脚,当工作于寄生电源时,此引脚必须接地;当 VDD 端口接 电源时是使用外部电源。 DS18B20 测温 原理 DS18B20 的测温原理如图 12所示,图中低温度系数晶振的振荡频率受温度的影响很小 , 用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数门,当计数门打开时, DS18B20 就对低温度系数振荡器产生的时钟脉冲 进行计数,进而完成温度测量。 计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55 ℃ 所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被预置在 55 ℃ 所对应的一个基数值。 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1的预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入 ,减法计数器 1重新开始对低温度系数晶振产生的脉冲信号进行计数 ,如此循环直到减法计数器2计数到 0 时,停止温度寄存器值的累 加,此时温度寄存器中的数值即为所测温 度。 图中的斜率累加器用于补偿和修正测温过程中的非线性 , 其输出用 于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就 是 DS18B20 的测温原理。 中国石油大学胜利学院本科毕业设计 (论文 ) 10 图 12 DS18B20 测温原理图 DS18B20 的工作时 序 DS18B20的 工作协议流程是:初始化→ ROM操作指令→存储器操作指令→数据传输。 其工作时序包括初始化时序、写时序和读时序,如图 13 ( a)( b)( c)所示。 主机控制 DS18B20 完成任何操作之前必须先初始化,即主机发一复位脉冲 (最短为480us 的低电平 ),接着主机释放总线进入接收状态, DS18B20 在检测到 I/O 引脚上的上升沿之后,等待 1560us 然后发出存在脉冲 (60240us 的低电平 )。 写时间片:将数据从高电平拉至低电平,产生写起始信号。 在 15us 之内将所需写的位送到数据线上,在 15us 到 60us 之间对数据线进行采样,如果采样为高电平,就写 1,如果为低电平, 就 写 0。 在开始另一个写周期前必须有 1us 以上的高电平恢复期。 DS18B20 等待 DS18B20Tx 产生 15us— 16us 脉冲 60240 主机复位脉冲 VCC 480usTX960us 主机 Rx min480us 1Wire Bus GND 图 13 ( a)初始化时序 预置 斜率累加器 比较 低温度系数振荡器 计数器 1 温度寄存器 Tx 预置 =0 高温度系数振荡器 =00 计数器 2 T1 加 1 停止 T2 中国石油大学胜利学院本科毕业设计 (论文 ) 11 主机写“ 0”时隙 主机写“ 1”时隙 VCC 60usTX120us 1ustxcc∞ 1Wire Bus GND DS18B20 采样 1us DS18B20 采 样 15us MIN TYP MAX MIN TYP MAX 15us 30us 15us 15us 30us 图 13( b)写时序 VCC 主机读“ 0”时隙 主机读“ 1”时隙 1Wire Bus GND 主机采样 1us 15us 15us 30us 主机采样 15us 图 13( c)读时序 读时间片 :主机将数据线从高电平拉至低电平 1us 以上,再使数据线升为高电平,从而产生读起始信号。 主机在 读时间片下降沿之后 15us 内完成读位。 每个读周期最短的持续期为 60us,各个读周期之间也必须有 1us 以上的高电平恢复期。 测温电路 设计 数字温度传感器 DS18B20 的测温电路如图 14 所示 : 图 14 测温电路 中国石油大学胜利学院本科毕业设计 (论文 ) 12 按键模块 设计 利用单片机的 IO 口实现按键的中断输入。 另外需要一个与门实现与中断端口的连接。 按键电路如图 15 所示 ,期中 按键 K1 为进入 /退出设置键; K2 为增加键; K3 为减少键。 图 15 按键模块 报警电路 设计 三极管驱动蜂鸣器:报警电路如图 16所示 , 三极管 Q5 来驱动喇叭 LS1。 图 16 报警电路 中国石油大学胜利学院本科毕业设计 (论文 ) 13 显示电路 设计 采用四位共阴极 LED 数码管来显示温度 ,可以直接读取, 温度精确到 ℃。 四位数码管的显示电路如图 17 所示,从左到右依次是百位,十位,个位,十分位。 图 17 显示电路 串 口电路 设计 单片机与上位机( PC机)的接口电路如图 18所示 : 图 18 接口电路 中国石油大学胜利学院本科毕业设计 (论文 ) 14 第 二 章 系统软件设计 各模块的程序设计 系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序和按键扫描处理子程序等。 主 程序流程图 主程序的主要功能是负责温度的实时显示、读出并处理 DS18B20 测量的当前温度值,温度测量每 1s 进行一次。 这样可以在一秒之内测量一次被测温度,其程序流程见图 21 所示。 图 21 主程序流程图 读出温度子程序 读出温度子程序的主要功能是读出 RAM 中的 9 字节,在读出时需进行 CRC 校验,初始化 调用显示子程序 1S 到。 初次上电 读出温度值温度计算处理显示数据刷新 发温度转换开始命令 N Y N Y 中国石油大学胜利学院本科毕业设计 (论文 ) 15 校验有错时不进行温度数据的改写。 其程序流程图如图 22所 示: 图 22 读出温度子程序流程图 温度转换命令 子程序 温度转换命令子程序主要是发温度转换开始命令,当采用 12 位分辨率时转换时间约为 750ms,在本程序设计中采用 1s 显示程序延时法等待转换的完成。 温度转换命令子程序流程图如图 23 所示: Y 发 DS18B20 复位命令 发跳过 ROM 命令 发读取温度命令 读取操作, CRC 校验 9 字节完。 CRC校验正。 确。 移 入温度暂存器 结束 N N Y 中国石油大学胜利学院本科毕业设计 (论文 ) 16 发 DS18B20 复位命令 发跳过 ROM 命令 发温度转换开始命令 结束 图 23 温度转换命令子程序流程图 计算温度子程 序 计算温度子 程序流程图如图 24 所示。 图 24 计算温度子程序流程图 开始 温度零下 ? 温度值取补码置“ — ”标志 计算小数位温度 BCD 值 计算整数位温度 BCD 值 结束 置“ +”标志 N Y 中国石油大学胜利学院本科毕业设计 (论文 ) 17 显示数 据刷新子程序 显示数据刷新子程序主要是对分离后的温度显示数据进行刷新操作,当标志位位为 1 时将符号显示位 移入第一位。 程序流程图如图 35所示。 图 25 显示数据刷新子程序流程图 报警 子程序 设置报警标志位 beep,报警流程图如图 26所示: Y 图 26 报警流程图 温度数据移入显示寄存器 十位数 0。 百位数 0。 十位数显示符号百位数不显示 百位数显示数据(不显示符号) 结束 N N Y Y 读取测量温度值 温度值 120或 20? Beep=1,报警 Beep=0 中国石油大学胜利学院本科毕业设计 (论文 ) 18 按 键扫描处理子程序 按键采用扫描查询方式,设置标志位,当标志位为 1 时,显示设置温度,否则显示当前温度。 如 图 27 所示 N N Y Y N Y 图 27 按键扫描子程序流程图 Keil C51 编程软件 Keil C51 简介 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比, C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 用过汇编语言后再使用 C 来开发,体会更加深刻。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。 Keil C51 软件是一个基于 32 位 Windows 环境的应用程序,支持 C语言和汇编语言编程,其 以 上的版本将编译和仿真软件统一为 μVision( 通常称为 μV2)。 Keil 提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成: μVision IDE 集成开发环境 C51 编译器、 A51 汇编器、 LIB51库管理器、 BL51 连接 /定位器、 OH51 目标文件生成器以及 实时操作系统。 Keil C51。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。