温度传感器 程序

温度传感器 程序

ID:47025240

大小:41.39 KB

页数:5页

时间:2019-06-28

温度传感器  程序_第1页
温度传感器  程序_第2页
温度传感器  程序_第3页
温度传感器  程序_第4页
温度传感器  程序_第5页
资源描述:

《温度传感器 程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第4章系统程序的设计4.1系统设计内容系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、测量序列号子程序、显示数据刷新子程序等。4.1.1主程序主程序主要功能是负责温度的实时显示、读出处理DS18B20的测量温度值。主程序流程图如图4-1所示:开始调用显示子程序显示当前四路温度初始化读取并显示序列号图4-1主程序流程图4.1.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节。在读出时须进行CRC校验,校验有错时不进行温度数据的改写。读出温度子程序流程图如图4-2所示:开始复位DS18

2、B20发跳过ROM命令发出温度转换命令转换完毕复位DS18B20发匹配ROM命令发1个DS18B20序列号读温度值存入储存器指向下一个延时NY图4-2读出温度子程序流程图4.1.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时,转换时间约为750ms。在本程序设计中,采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如图4-3所示:发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束图4-3温度转换命令子程序流程图4.1.4计算温度子程序计算温度子程序将RAM中读取

3、值进行BCD码的转换运算,并进行温度值正负的判定。计算温度子程序流程图如图4-4所示:开始温度零下?温度值取补码置“-”标志位计算小数位温度BCD值计算小数位温计算小数位温度BCD值度BCD值结束置“+”标志NY图4-4计算温度子程序流程图4.1.5温度数据的计算处理方法从DS18B20读取出的二进制值必须转换成十进制值,才能用于字符的显示。DS18B20的转换精度为9~12位,为了提高精度采用12位。在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为寄存器里的二进制值乘以0.0625,就是实际的

4、十进制温度值。通过观察表4-1可以发现,一个十进制与二进制间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一字节,这个字节的二进制化为十进制后,就是温度值的百、十、个位字节,所以二进制值范围是0~F,转换成十进制小数就是0.0625的倍数(0~15倍)。这样需要4位的数码管来表示小数部分。实际应用不必这么高的精度,采用1位数码管来显示小数,可以精确到0.1℃。表4.5二进制与十进制的近似对应关系表小数部分二进制值0123456789ABCDEF十进制值00112334556678894.2源程序4.2

5、.1DS18B20的各条ROM命令(1)ReadROM[33H]。这条命令允许总线控制器独到DS18B20的8位系列编码、唯一的序列号和8位CRC码。只要在总线上存在单只DS18B20时,才能使用该命令。如果总线上有不止一个从机,则当所有从机试图同时传送信号时就会发生数据冲突(漏极开路连在一起形成相“与”的效果)。(2)MatchROM[55H].这是一条匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS18B20.只有与64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作.所有与

6、64位ROM序列不匹配的从机都将等待复位脉冲.这条命令在总线上有单个或多个器件时都可以使用.(3)SkipROM[0CCH].这条命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下,可以节省时间.如果总线上不止一个从机,则在SkipROM命令之后跟着发一条读命令.由于多个从机同时传送信号,所以总线上就会发生数据冲突(漏极开路下拉效果相当于相“与”)。(4)SearchROM[0F0H]。当一个系统初次启动时,总线控制器可能并不知道单线总线上有多少个器件或它们的64位ROM编码。搜索ROM命令允

7、许总线控制器用排除法识别总线上的所有从机的64位编码。(5)AlarmSearch[0ECH]。这条命令的流程与SearchROM相同。然而,只有在最近一次测温后遇到符合报警条件的情况下,DS18B20才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要DS18B20不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。(6)WriteScratchpad[4EH]。这条命令向DS18B20的暂存器TH和TL中写入数据。可以在任何时刻发出复位命令来中止写入。(7)ReadScratchapad[0BEH

8、]。这条命令读取暂存器的内容。读取将从第一字节开始,一直进行下去,直到第九字节(CRC)读完。如果不想读完所有字节,则控制器可以在任何时间发出复位命令来中止读取。(8)CopyScratchpad[48H]。这条命令把暂存器的内容拷贝到DS18B20的E²PROM存储器里,即把温度报警触发字节存入非易失

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。