查看: 636|回复: 0
打印 上一主题 下一主题

尽管很基础---DS18B20彻底应用,送给需要的人

[复制链接]
跳转到指定楼层
沙发
发表于 2016-5-17 18:43:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个实验的目的就是要通过MEGA128把DS18B20里面能读的东西都读出来,然后通过UART0发出去送给电脑显示,而不是简单的显示一个33度就了事,程序是用CV写的,UART0的发送程序是CV自动生成的,很方便,DS18B20的程序也是在论坛的基础上改的


(原文件名:1.JPG)
这是我的"实验平台",万用板焊的,很寒酸,但很适合我用,手机拍的,不是很清楚

(原文件名:2.JPG)
简单解释一下:
1.the ds18b20 id is 28-C6-9-16-1-0-0-5A
这个是DS18B20的ID,0x28代表它是DS18B20,如果你读出来不是0x28,说明DS18B20是坏的,或着程序电路有问题,C6-9-16-1-0-0是DS18B20的自身的序列号,每个DS18B20都是不一样的,5A是前面56位的循环冗余校验码(CRC=X8+X5+X4+1),详细的内容请看datasheet
2.the temperature lsb is--fb
  the temperature msb is--1
lsb 是温度值的低8位,msb是温度值的高8位,msb的高5位是符号位,如果是0,表示温度>0,是1表示温度<0,详细的内容请看datasheet

3.the th is--4b
  the tl is--46
  这个是高低温报警值,可由自己设定,详细的内容请看datasheet

4.the config is--7f
  配置寄存器的内容,这个每个DS18B20读出来的内容都是一样的,具体的内容请看datasheet
5.the reserved is--ff 1 10
保留位,没必要研究,具体的内容请看datasheet
6.the crc is--a1
  CRC校验值,具体的内容请看datasheet
7.the real temperature is 31.6875c
实际温度值,最高精度显示,把0x1fb转成10进制,再乘上0.0625,就等于31.6875,具体的内容请看datasheet

程序在2楼







回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表