数字式温度测控器毕业设计(论文)(编辑修改稿)内容摘要:

5 24 当符号位 S=0时,直接将二进制位转换为十进制数;当 S=1时,先将补码变换为原码,在计算十进制值。 部分温度值对应表如 下 表所示 温度(℃) 二进制数 十六进制数 +125 0000 0111 1101 0000 07D0H + 0000 0001 1001 0001 0191H + 0000 0000 0000 1000 0008H 0 0000 0000 0000 0000 0000H 1111 1111 1111 1000 FFF8H 1111 1110 0110 1111 FE6FH 55 1111 1100 1001 0000 FC90H 黄河科技学院毕业设计 (论文 ) 第 16 页 读/写时间片 通过使用时间片( time slots)来读出和写入 DSl820 的数据,时间片用于处理数据位和指定进行何种操作的命令字。 写 时间片( Write Tim slots) 图 当主机把数据线从高逻辑电平拉至低逻辑电平时,产生写时间片。 有两种类型的写时间片:写 1 时间片和写 0 时间片。 所有时间片必须有最短为 60 微秒的持续期,在各写周期之间必须有最短为 l 微秒的恢复时间。 在 I/ 0 线由高电平变为低电平之后, DSl820 在 15us 至 60us 的窗口之间对 I/ O 线采样。 如果线为高电平,写 1 就发生。 如果线为低电平,便发生写 0 对于主机产生写 1 时间片的情况,数据线必须先被拉至逻辑低电平,然后就被释放,使数据线在写时间片开始之后的 15 微秒之内拉至高电平。 对于主机产生写 0 时间片的情况,数据线必须被拉至逻辑低电平且至少保持低电平 60us。 图 DS18B20 的写时序 读时间片 当从 DSl820 读数据时,主机产生读时间片。 当主机把数据线从逻辑高电平拉至低电平时,产生读时间片。 数据线必须保持在低逻辑电平至少 l 微秒;来自 DSl820 的输出数据在读时间片下降沿之后 15 微秒有效。 因此,为了读出从读时间片开始算起 15 微秒的状态主机必须停止把 I/ 0 引脚驱动至低电平(见图 )。 在读时间片结束时,I/ O 引脚经过外部的上拉电阻拉回至高电平。 所有读时间片的最短持续期限为 60 微秒,各个读时间片之间必须有最短为 l 微秒的恢复时间。 黄河科技学院毕业设计 (论文 ) 第 17 页 图 DS18B20 的读时序 LED 显示器 数码管结构 LED 是当外加电压超过额定电压值时发生击穿而发出可见光。 LED 的工作电流通常为 2~20mA,工作压降为2V左右,使用时需加限流电阻。 LED 发光器件一般常用的有两类:数码管和点阵。 单片机应用系统通常使用七段数码管。 七段数码管又称七字型数码管,分为七段,即 a、 b、 c、 d、 e、 f、 g,外加小数 点dp,由 8 个发光二极管构成,通称七段 LED,如图 图 LED 管脚图 从内部电路上看,数码管又可分为共阴极接法和共阳极接法。 通过对公共端( COM) 黄河科技学院毕业设计 (论文 ) 第 18 页 接地或接高电平的控制,可使共阴极或共阳极数码管根据由 a~ g 引脚输入的代码来显示数字或符号。 对数码管公共端的电位控制操作称为位选。 为了数码管显示数字或符号,要为 LED 显示器提供代码,这些代码是为显示器显示字型的,所以也称之为字型 代码、段选码。 七段数码管由 8 个发光二极管的亮暗来构成字型,所以对应于 a~ dp 的字型代码正好是一个字节,其对应关系如下表: 位代码 D7 D6 D5 D4 D3 D2 D1 D0 显示段 dp g f e d c b a 应用中要将一个 8 位并行段选码送至 LED 显示器对应的引脚,送入的段选码不同,显示的数字或字符也不同。 共阴极与共阳极的段选码互为反码。 静态显示器 单片机驱动 LED 数码管的方法有很多,按显示方法可分为静态显示和动态显示。 本设计用到静态显示。 静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通和恒定截至。 这种显示方式的各位数码管相互独立,公共端固定接地或接正电源。 每个数码管的 8 个字段分别与 8 位 I/O 口输出的 1 位相连 .I/O 口只要有段码输出,相应的字符就显示出来,并保持不变,直到 I/O 口输出新的段码。 这种显示方法的每一位都需要有一个 8 位输出口控制。 在单片机系统中,如果并行口的 I/O 资源不够,而串行口又没有其他的作用,那么就可以用 74LS164 来扩展并行 I/O 口,节约单片机资源。 静态显示就是显示驱动电路具有输出锁存功能,单片机将要显示的数据 输出后就不在管理 LED,直到下一次数据传送时传送一次新的显示数据。 如果当前的数据没有变化单片机就不用管 LED,有变化时才传送数据。 静态显示的好处就是数据显示稳定,占用CPU 的时间很少。 但是在静态显示中,每一个显示器都要占用单独的具有锁存功能的 I/O口,该接口用于笔画信息的传送。 这样单片机只要把显示的笔画信息发送到接口电路,数码管就可以显示发送的字符。 要显示新的数据时,单片机再发送新的编码。 黄河科技学院毕业设计 (论文 ) 第 19 页 4 软件部分 流程图 : 图 温度控制主程序 流程图 图 给出了温度控制主程序流程图,图 给出了温度转换及读取子程序流程图,图 给出了 显示温度子程序流程图 ,图 给出了 计算温度子程序流程图 ,图 给出了比较温度程序流程图。 黄河科技学院毕业设计 (论文 ) 第 20 页 图 温度转换及读取子程序流程图 图 显示温度子程序流程图 黄河科技学院毕业设计 (论文 ) 第 21 页 图 计算温度子程序流程图 图 比较温度程序流程图 源程序: ; 主程序 TEMPER_L EQU 31H ; 用于保存读出温度的低字节 TEMPER_H EQU 30H ; 用于保存读出温度的高字节 T_DF EQU 33H ; FORMAT 后的小数部分,半字节的 温度小数(存在低 4 位) T_INTEGER EQU 32H ; FORMAT 后的整数部分,将两字节 温度整合成 1 字节 FLAG BIT 20H ; 标志位 DAT BIT ; DS18B20 数据线 ORG 0000H AJMP MAIN ORG 001BH ; 定时中断入口地址 LJMP IP1 黄河科技学院毕业设计 (论文 ) 第 22 页 ORG 0040H MAIN: CLR EA ; 使用 DS18B20 一定要禁止中断 MOV SP, 60H MOV T_DF, 00H ; 赋初始温度为 20 度 MOV T_INTEGER, 20H MOV 21H, 28H ; 赋标准温度为 28 度 START: LCALL GET_TEMPER ; 调用读温度子程序 LCALL T_FORMAT ; 将读出的两字节温度格式化,并转换为压缩 BCD 码 LCALL COMPARE ; 与设定值比较,进行调节,执行外部电路 LCALL DISPLAY ; 显示温度 AJMP START ; DS18B20 的温度转换子程序 GET_TEMPER: LCALL SET_18B20 MOV A, 0CCH ; 跳过 ROM 匹配 LCALL WRITE_1820 MOV A, 44H ; 发出温度转换命令 LCALL WRITE_1820 LCALL DISPLAY ; 用显示温度(持续 1s 左右)来等 待 A/D 转换结束, 12 位的话要转 换 750ms LCALL SET_18B20 ; 准备读温度前先初始化 MOV A, 0CCH ; 跳过 ROM 匹配 LCALL WRITE_1820 MOV A, 0BEH ; 发出读温度命令 LCALL WRITE_1820 黄河科技学院毕业设计 (论文 ) 第 23 页。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。