DS18B20设置高低温限值(写暂存器)
来源:互联网 发布:网络课程视频怎么快进 编辑:程序博客网 时间:2024/05/02 00:11
最近使用到DS18B20,一个总线挂载多个传感器,为了识别每个传感器的实际位置,想了一个办法:在使用前先对DS18B20编号并记录该编号的实际放置位置。这样在读取数据后即可得到是哪个位置编号的温度值。看了看手册发现内部的高低温报警阈值是存储在EEPROM正好用来存储位置编号。
首先了解下通讯过程,ROM指令,RAM指令以及寄存器内容:
位置编号存储在 高温限值(TH)和低温限值(TL)中
写入编号程序如下:
DS18B20_Start (); // ds1820 start convert
DS18B20_Rst();
DS18B20_Check();
//rom指令
DS18B20_Write_Byte(0xcc);// skip rom
//ram指令
DS18B20_Write_Byte(0x4e);// 写暂存器
//写报警值
DS18B20_Write_Byte(addrH);// 写入高位
DS18B20_Write_Byte(addrL);// 写入低位
DS18B20_Rst();
DS18B20_Check();
//rom指令
DS18B20_Write_Byte(0xcc);// skip rom
//ram指令
DS18B20_Write_Byte(0x4e);// 写暂存器
//写报警值
DS18B20_Write_Byte(addrH);// 写入高位
DS18B20_Write_Byte(addrL);// 写入低位
写入以后需要存储到EEPROM中,程序如下:
DS18B20_Start (); // ds1820 start convert
DS18B20_Rst();
DS18B20_Check();
DS18B20_Rst();
DS18B20_Check();
//rom指令
DS18B20_Write_Byte(0xcc);// skip rom
//ram指令
DS18B20_Write_Byte(0x48);// 复制暂存器
DS18B20_Write_Byte(0xcc);// skip rom
//ram指令
DS18B20_Write_Byte(0x48);// 复制暂存器
读取编号程序如下:
DS18B20_Start (); // ds1820 start convert
DS18B20_Rst();
DS18B20_Check();
DS18B20_Rst();
DS18B20_Check();
DS18B20_Write_Byte(0xcc);// skip rom
DS18B20_Write_Byte(0xbe);// 读暂存器
DS18B20_Write_Byte(0xbe);// 读暂存器
TL = DS18B20_Read_Byte(); // 温度低位0
TH = DS18B20_Read_Byte(); // 温度高位1
ADDRH = DS18B20_Read_Byte(); // 地址高位2
ADDRL = DS18B20_Read_Byte(); // 地址低位 3
0 0
- DS18B20设置高低温限值(写暂存器)
- 高低温试验箱操作规程
- 固态硬盘高低温测试方法
- msp430f2618写DS18B20
- ds18b20驱动终于写好了
- 高低温试验箱的相关知识和作用分析
- stm32 ds18b20 寄存器设置问题!
- ds18b20
- DS18B20
- DS18B20
- DS18B20
- DS18B20
- DS18B20
- DS18B20
- DS18B20
- ds18b20
- DS18B20
- ds18b20
- 1066. Root of AVL Tree (25)
- QT5编辑中文字符编译报错问题解决办法
- Android jar包混淆
- MySQL数据库30条规范解读
- 选项卡
- DS18B20设置高低温限值(写暂存器)
- UML
- Python3 & OpenCV 视频转字符动画
- 从斐波拉契数例的实现看Python的自定义迭代器和装饰器优势
- 比特币、区块链
- bucardo5安装过程中遇到的问题
- 动态清空LinearLayout中的所有控件
- 根据json来生成打印java字段(属性),解析方法,类--1
- webservice基础(1)