电子数显温度计控制器 - 图文

发布时间 : 星期四 文章电子数显温度计控制器 - 图文更新完毕开始阅读

江苏城市职业学院南通办学点

(4)测温范围:-55 ~+125 ℃。固有测温分辨率为0.5 ℃。 (5)通过编程可实现9~12位的数字读数方式。 (6)用户可自设定非易失性的报警上下限值。

(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。 (8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 3.4.1 DS18B20传感器工作原理

DS18B20的测温原理并不复杂,DS18B20中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55 ℃ 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。

另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。

图3.6 DS18B20的内部结构

C 64 位 ROM 和 单 线 接 口 8位CRC发生器 高速缓存 温度传感器 存储器与控制 高温触发器TH 低温触发器TL 配置寄存器

9

江苏城市职业学院南通办学点

3.5 数码显示模块

设计的显示部分为一个四位数码管,四位数码管是一种半导体发光器件,其基本单元是发光二极管。能显示4个数码管叫四位数码管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

10

江苏城市职业学院南通办学点

4 软件部分设计

系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。

4.1 主程序

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4.1、4.2所示。

温度数据移入显示寄存器 开始 N 温度零下? Y N 十位数0? Y 置“+”标志 百位数0? N 温度值取补码置Y 计算小数位温度BCD值 十位数显示符号百位数不显示 百位数显示数据(不显示符 号) 计算整数位温度BCD值 结束 结束 图4.1 计算温度流程图 图4.2 显示数据刷新流程图

4.2 读温度子程序

读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图4.3示。

11

江苏城市职业学院南通办学点

发DS18B20复位命令

发跳过ROM命令 发温度转换开始命令 结束 图4.3 温度转换流程图

4.3计算温度子程序

计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图4.4、4.5所示。

计算整数位温度BCD值 结束 结束 开始 N 温度零下? Y N 温度数据移入显示寄存器 十位数0? 温度值取补码置置“+”标志 Y 百位数0? N Y 计算小数位温度BCD值 十位数显示符号百位数不显示 百位数显示数据(不显示符号) 图4.4 计算温度流程图 图4.5 显示数据刷新流程图

12

联系合同范文客服:xxxxx#qq.com(#替换为@)