没有合适的资源?快使用搜索试试~ 我知道了~
首页慧净HJ-2G开发板上的DS18B20深度解析:温度传感器与AVR应用
慧净HJ-2G开发板上的DS18B20深度解析:温度传感器与AVR应用
需积分: 50 1 下载量 157 浏览量
更新于2024-09-13
收藏 341KB PDF 举报
本篇文档详细介绍了DS18B20中文资料,这是一种广泛应用于实时温度传感的IC,特别针对AVR单片机如C51的学习者设计。DS18B20具有简洁易用的特点,尽管其内部结构较为复杂,但对于实际应用来说,主要关注的是其温度测量功能。 DS18B20的核心组件包括64位的ROM单元,用于存储唯一的序列号或ID,以及9字节的暂存器,其中包含重要的数据。这些暂存器被分配如下: - 字节0和1储存转换后的温度,以16位表示,分辨率高达0.0625℃,通过检查符号位(BIT15~BIT11)判断温度正负。 - 字节2和3作为用户可编程的区域,用于设置温度的上下限报警值,允许软件控制报警功能。 - 字节4用于配置温度转换的精度,支持9~12位的精度调整。 - 字节5至8通常不参与常规使用,但可能包含其他自定义配置信息。 在硬件连接方面,DS18B20通常采用外部供电并通过总线接口连接,总线需要上拉电阻确保在无信号时保持高电平。这显示了一线总线的基本电气特性。 作者使用了慧净HJ-2GAVR开发板作为教学平台,强调了通过实践学习的重要性,通过编写代码来理解温度读取和处理的过程。例如,要计算从DS18B20读取的温度值,需要正确组合字节0和1(如0xD0和0x07),并根据符号位进行适当的调整,最后通过乘以0.0625来得到十进制温度值。 这篇文档提供了DS18B20的全面指南,不仅涵盖了基本概念,还深入剖析了其工作原理和实际编程技巧,对于AVR单片机开发人员理解和应用DS18B20进行温度测量是一个宝贵的学习资源。
资源详情
资源推荐
AVR 单片机学习笔记 -- 基于慧净 HJ-2G AVR 开发板
要求出 正数的十进制值,必须将读取到的
LSB
字节,
MSB
字节进行整合处理,然后乘
以 0.0625 即可。
Eg : 假设从 , 字节 0 读取到 0xD0 赋值于 Temp1 , 而字节 1 读取到 0x07 赋值于 Temp2
,
然后求出十进制值。
unsigned
int
Temp1,Temp2,Temperature;
Temp1=0xD0;
//
低八位
Temp2=0x07;
//
高八位
Temperature = ((Temp2<<8
) |
Temp1
)
* 0.0625;
//
又或者
Temperature = (Temp1 + Temp2 *256) * 0.0625; //Temperature=125
在这里我们遇见了一个问题 , 就是如何求出负数的值呢?很遗憾的 , 单片机不像人脑那
样会心算,我们必须 判断 BIT11~15 是否是 1 ,然后人为置一负数标志。
Eg. 假设从,字节 0 读取到 0x90 赋值于 Temp1 ,而字节 1 读取到 0xFC 赋值于 Temp2
,
然后求出该值是不是负数,和转换成十进制值。
unsigned
int
Temp1,Temp2,Temperature;
unsigned char Minus_Flag=0;
Temp1=0x90;
//
低八位
Temp2=0xFC;
//
高八位
//Temperature = (Temp1 + Temp2 *256) * 0.0625; //Temperature=64656
//
很明显不是我们想要的答案
if(Temp2&0xFC)
//
判断符号位是否为 1
{
Minus_Flag=1;
//
负数标志置一
Temperature = ((Temp2<<8
) |
Temp1
)
//
高八位第八位进行整合
Temperature= ((~Temperature)+1);
//
求反,补一
Temperature*= 0.0625;
//
求出十进制
} //Temperature=55;
else
{
Minus_Flag=0;
Temperature = ((Temp2<<8
) |
Temp1
)
* 0.0625;
}
那个人为的负数标志 , 是真的很有用处的 。 这个要看你你自己的想象力了 , 如何去利用它 。
剩余13页未读,继续阅读
Bin1991214
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- BGP协议首选值(PrefVal)属性与模拟组网实验
- C#实现VS***单元测试coverage文件转xml工具
- NX二次开发:UF_DRF_ask_weld_symbol函数详解与应用
- 从机FIFO的Verilog代码实现分析
- C语言制作键盘反应力训练游戏源代码
- 简约风格毕业论文答辩演示模板
- Qt6 QML教程:动态创建与销毁对象的示例源码解析
- NX二次开发函数介绍:UF_DRF_count_text_substring
- 获取inspect.exe:Windows桌面元素查看与自动化工具
- C语言开发的大丰收游戏源代码及论文完整展示
- 掌握NX二次开发:UF_DRF_create_3pt_cline_fbolt函数应用指南
- MobaXterm:超越Xshell的远程连接利器
- 创新手绘粉笔效果在毕业答辩中的应用
- 学生管理系统源码压缩包下载
- 深入解析NX二次开发函数UF-DRF-create-3pt-cline-fcir
- LabVIEW用户登录管理程序:注册、密码、登录与安全
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功