当前位置:首页 > 基于DS18B20的数字温度计设计
4.2方案的总体设计框图
温度计电路设计总体设计方框图如4-1所示,控制器采用单片机AT89C2051,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。
单片机复位 主控制 报警点按键调整 器时钟振荡 温度传感器图4-1 总体设计方框图
4.3 系统整体硬件电路
4.3.1主板电路
系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,如图4-2 所示。
图4.2中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。
.5.
图4-2 单片机主板电路
图4-2 中的电路是上电之后单片机的外部连接电路,使用比较方便。 4.3.2显示电路
图4-3硬件原理图
4.4系统软件算法分析
系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子
.6.
程序,显示数据刷新子程序等。
4.4.1主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4-4所示。
初始化
发DS18B20复位命令 发跳过ROM命令 调用显示子程序 N 1S到? Y Y 初次上电 N 读出温度值温度计算处理显示数据刷新 发读取温度命令 读取操作,CRC校验 Y N 9字节Y CRC校验N 移入温度暂存器 发温度转换开始命令 结束 图4-4 主程序流程图 图4-5读温度流程图
4.4.2 读出温度子程序
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,
.7.
校验有错时不进行温度数据的改写。其程序流程图如图4-5示
4.4.3温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图,图4-6所示
发DS18B20复位命令 发跳过ROM命令 发温度转换开始命令 结束 开始 N 温度零下? Y 温度值取补码置“—”标志 置“+”标志 计算小数位温度BCD值 计算整数位温度BCD值 结束 图4-6 温度转换流程图 图4-7 计算温度流程图
4.4.4 计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图4-7所示
4.4.5 显示数据刷新子程序
显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图4-8。
.8.
共分享92篇相关文档