当前位置:首页 > 基于51单片机数字温度计的设计毕业论文-基于51单片机温度计
玉溪师范学院毕业设计(论文)
开始DS18B20初始化读取温度转换值调用数据处理子程序判断温度是否在设定范围内?NY灯灭灯闪结束
图4.1主程序设计流程图
4.2 读温度子程序
读温度子程序的功能:读出通过A/D转换后的温度值,并保存。其设计思路如下:
Step1:系统初始化。
Step2:当DS18B20的DQ引脚接高电平,温度传感器则复位。 Step3:通过一个判决对是否读温度进行判断。即FLAG1=1?。
Step4:若FLAG1=1,系统发出一个跳过ROM匹配命令,单片机接收到此命令后发出一个温度转换命令存储在寄存器RAM中,此时系统将调用一个延时程序,接着DS18B20重新初始化,系统又发一个跳过ROM匹配命令,单片机收到此命令后调用存储在RAM中的温度转换命令直接进行温度转换,转换成功后调用读数据子程序,读出温度值则存入存储器。
Step5:若FLAG1=0,则直接退出程序。系统流程图如图4.2所示
14
玉溪师范学院毕业设计(论文)
开始DQ置1DS18B20复位FLAG=1?Y跳过ROM匹配发出温度转换命令延时DS18B20初始化N跳过ROM匹配发送温度转换命令调用读数据子程序返回
图4.2 读温度子程序流程图
4.3 温度转换命令子程序
温度转换命令子程序的功能:系统对执行温度转换过程发出命令。其算法步骤为: Step1:系统初始化。
Step2:温度传感器DS18B20复位成功。 Step3:复位成功后,发一个跳过ROM命令。
Step4:系统接收到此ROM命令后发一个温度转换开始命令,单片机接收到此转换命令则执行温度转换命令。
温度转换命令子程序流程图如图4.3所示:
15
玉溪师范学院毕业设计(论文)
DS18B20复位跳过ROM发温度转换开始命令结束 图4.3 温度转换命令子程序流程图
4.4 计算温度子程序 4.4.1功能
系统将存储在RAM寄存器中的内容转换成BCD码,完成温度计算和显示功能。其算法如下:
Step1:系统初始化。
step2:调用计算温度子程序对温度进行正负判断。
Step3:当温度低于0摄氏度时,对温度值取补码置“—”符号,然后再对转换后温度值进行BCD码计算;
Step4:当温度高于零摄氏度时,不需要显示“+”符号,直接对数据进行计算 。 程序流程图如图4.4所示
16
玉溪师范学院毕业设计(论文)
开始温度零下?N不用显示“+”符号Y温度值取补码置“—”符号计算温度BCD码值结束
图4.4 计算温度子程序流程图
4.4.2 温度处理方法
DS18B20温度传感器采集到的数据为二进制,必须转换成十进制值才能用于字符的显示,其转换精度为9~12位,为了提高精度采用12位[7]。在采用12位转换精度时,温度寄存器里的值以0.0625为步进进行计算,即温度值为寄存器里的二进制值乘以0.0625,就是实际的十进制温度值[8]。 4.5 小结
本章对系统的软件设计作了详细概述,把整个系统软件设计细分为主程序设计、
读温度子程序设计、温度转换命令子程序设计和计算温度子程序设计,分别对这些子程序详细介绍其流程图以及功能实现。
17
共分享92篇相关文档