第4章系统程序的设计4
1 系统设计内容系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、测量序列号子程序、显示数据刷新子程序等
1 主程序主程序主要功能是负责温度的实时显示、读出处理 DS18B20 的测量温度值
主程序流程图如图4-1 所示:图 4-1 主程序流程图4
2 读出温度子程序读出温度子程序的主要功能是读出RAM 中的 9 字节
在读出时须进行 CRC校验,校验有错时不进行温度数据的改写
读出温度子程序流程图如图4-2 所示:开始调用显示子程序显示当前四路温度初始化读取并显示序列号图 4-2 读出温度子程序流程图4
3 温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12 位分辨率时,转换时间约为750ms
在本程序设计中,采用1s 显示程序延时法等待转换的完成
温度转换命令子程序流程图如图4-3 所示:图 4-3 温度转换命令子程序流程图4
4 计算温度子程序计算温度子程序将RAM 中读取值进行BCD 码的转换运算,并进行温度值正负的判定
计算温度子程序流程图如图4-4 所示:发 DS18B20 复位命发跳过 ROM 命令发温度转换开始命令结束开始复位 DS18B20 发跳过 ROM 命令发 出 温 度 转 换 命转换完毕复位 DS18B20 发匹配 ROM 命令发 1 个 DS18B20 序列读温度值存入储存器指向下一个延时N Y 图 4-4 计算温度子程序流程图4
5 温度数据的计算处理方法从 DS18B20 读取出的二进制值必须转换成十进制值,才能用于字符的显示
DS18B20 的转换精度为 9~12 位,为了提高精度采用12 位
在采用 12 位转换精度时,温度寄存器里的值是以0
0625 为步进的,即温度值为寄存器里的二进制值乘以 0
0625,就是实际的十进制温度值