DS18B20数字温度计的设计与实现

发布时间 : 星期二 文章DS18B20数字温度计的设计与实现更新完毕开始阅读

8255DS18B20微机系统 PC0显示电路

图5 电路结构框图

在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。

六、软件设计

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

1.主程序

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度

测量每1s进行一次,其程序流程图如图6。

初始化调用显示子程序N1S到?YY初次上电?N读出温度值、温度计算处理、显示数据刷新发温度转换开始命令

图6 主程序流程图

2.读出温度子程序

读出温度子程序的主要功能是读出RAM中的9字节,在读出时需要进行CRC校验,

校验有错时不进行温度数据的改写。其程序流程图如图7所示。

发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验N9字节完?YCRC校验正确?Y移入温度暂存器N结束 图7 读出温度子程序流程图

3.温度转换命令子程序

温度转换命令子程序主要是发温度转换开始命令,当采用12位分辩率时转换时间约为

750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图8所示。 4.计算温度子程序

计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,

其流程图如图9所示。

发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束

图8 温度转换命令子程序流程图

开始温度零下?Y温度值取补码置“—”标志计算小数位温度BCD码计算整数位温度BCD码结束N置“+”标志 图9 计算温度子程序流程图

显示数据刷新子程序

显示数据刷新子程序主要是对显示缓冲区中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图10所示。

温度数据移入显示寄存器十位数为0?Y百位数为0?Y十位显示符号百位不显示百位显示数据(不显示符号)N结束 图10 显示数据刷新子程序流程图

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