温度传感器程序

温度传感器程序

ID:28513352

大小:216.50 KB

页数:6页

时间:2018-12-10

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

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

1、第4章系统程序的设计4.1系统设计内容系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、测量序列号子程序、显示数据刷新子程序等。4.1.1主程序主程序主要功能是负责温度的实时敁示、读出处理DS18B20的测量温度值。主程序流程阁如阁4-1所示:图44主程序流程图4.1.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节。在读出时须进行CRC校验,校验有错吋不进行温度数据的改写。读出温度子程序流程图如图4-2所示:J图4-2读出温度子程序流程图4.1.3温度转换命令子程序温度转换命令子程序主要是

2、发温度转换幵始命令,当采用12位分辨率时,转换吋IX!约为750ms。在本程序设计屮,采用Is显示程序延吋法等待转换的完成。温度转换命令子程序流程图如图4-3所示:图4-3温度转换命令子程序流程图4.1.4计算温度子程序计算温度了程序将RAM中读取值进行BCD码的转换运算,并进行温度值止负的判定。计算温度子程序流程图如图4-4所示:图4-4计算温度子程序流程图4.1.5温度数据的计算处理方法从DS18B20读取出的二进制值必须转换成十进制值,才能用于字符的显示。DS18B20的转换精度为9〜12位,为了提高精度采用12位。在采用1

3、2位转换精度吋,温度寄存器里的值是以0.0625为步进的,即温度值为寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。通过观察表4-1可以发现,一个十进制与二进制间宥很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一字节,这个字节的二进制化为十进制后,就是温度值的百、十、个位字节,所以二进制值范围是0〜F,转换成十进制小数就是0.0625的倍数(0〜15倍)。这样需要4位的数码管来表示小数部分。实际应用不必这么高的精度,采用1位数码管来显示小数,可以精确到o.rc。表4.5二进制与十进制的近似对应关系表

4、小数部分二进制值0123456789ABCDEF十进制值00112334556678894.2源程序4.2.1DS18B20的各条ROM命令(1)ReadROM[33H]。这条命令允许总线控制器独到DS18B20的8位系列编码、唯一的序列号和8位CRC码。只要在总线上存在单只DS18B20时,才能使用该命令。如果总线上有不止一个从机,则当所有从机试图同吋传送信号吋就会发生数据冲突(漏极幵路连在一起形成相“与”的效果)。(2)MatchROM[55H].这是一条匹配ROM命令•跟64位ROM序列,让总线控制器在多点总线上定位一只特定

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

6、时,总线控制器可能并不知道单线总线上有多少个器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。(5)AlarmSearch[OECH]。这条命令的流程与SearchROM相同。然而,只宥在最近一次测温•遇到符合报警条件的情况卜DS18B20才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要DS18B20不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。(6)WriteScratchpad[4EH]。这条命令向DS18B20的暂存器TH和TL中写入数据。可

7、以在任何时刻发出复位命令来中止写入。(1)ReadScratchapad[OBEH]。这条命令读取暂存器的内咎。读取将从第一字节开始,一直进行卜去,直到第九字节(CRC)读完。如果不想读完所有字节,则控制器可以在任何时问发岀复位命令来中止读取。(2)CopyScratchpad!48H

8、o这条命令把暂存器的内容拷贝到DS18B20的E2PROM存储器里,即把温度报普触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20乂忙于把暂存器拷W到E2PROM存储器,则DS18B20就会输岀一个0;如果

9、拷贝结束,则DS18B20输出1。如果使用寄生电源,则总线控制器必须在这条命令发出后立即扃动强上拉,并最少保持10ms。(3)ConvertT[44H]。这条命令启动一次温度转换而无需其他数裾。温度转换命令被执行后DS18B20保持等待状态。如果总

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

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

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