51单片机DS18B20低温测量详解及程序
需积分: 10 155 浏览量
更新于2024-09-15
收藏 50KB DOC 举报
51单片机DS18B20温度测量是一种基于DALLAS公司生产的数字温度传感器在嵌入式系统中的应用。DS18B20是一款一线式温度传感器,它具有3个引脚的TO-92封装,适用于紧凑的空间设计。这款传感器的工作温度范围广泛,可以从-55℃到+125℃,并且可以通过编程调整A/D转换精度,最低可达0.0625℃的测温分辨率。
在硬件方面,该系统的核心是51单片机,比如AT89S51型号,配合一个11.0592MHz的晶振,确保了精确的时间控制。温度传感器与单片机通过一根数据线(DQ)连接,这个引脚用于双向通信,即既能发送命令给DS18B20,也能接收其测量结果。
在软件实现上,程序主要分为几个部分。首先,包含了必要的头文件,如<reg51.h>,这使得程序可以访问单片机的特定寄存器和功能。接下来,定义了一个共阳LED段码表,用于显示温度读数。然后,定义了端口DQ作为数据线,并声明了全局变量tempL、tempH用于存储温度值的低、高位,以及一个浮点型变量temperature来存储最终的温度测量结果。
核心部分是延时子程序,其作用是为通信提供适当的时间间隔,确保测量过程的稳定性和准确性。在函数`void delay(unsigned int k)`中,输入参数k代表一个定时周期,程序会执行一个计数循环,以此来实现指定的延时。
DS18B20的测量流程通常包括以下几个步骤:
1. 初始化:设置单片机的I/O引脚为输出模式,准备好发送起始信号。
2. 发送命令:通过数据线发送寻址命令和特殊功能寄存器地址,指示DS18B20进入测量模式并获取温度数据。
3. 数据采集:等待DS18B20完成测量,然后读取其返回的16位温度值,将其分时存入tempL和tempH。
4. 数据处理:将高低位值组合,根据DS18B20的温度补偿特性进行修正,计算出实际温度值。
5. 显示或记录:将温度值转换为用户可读的格式,并通过LED段码或其他方式显示出来。
在编写实际的51单片机DS18B20温度测量程序时,开发者需要结合上述硬件和软件细节,遵循单片机的I/O操作规范,同时确保程序的错误处理和异常情况处理,以实现准确、稳定的温度测量功能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-10-12 上传
点击了解资源详情
2024-06-23 上传
2022-07-04 上传
2021-12-10 上传
2023-04-03 上传
s2020314
- 粉丝: 2
- 资源: 97
最新资源
- AgileZap
- TagUI:创建TagUI示例以提高生产率
- generator-sails-plugin-hook:Yoeman 生成器创建帆钩,将其自身插入帆结构中
- 毕业设计&课设--趁早(quickearly)早餐外卖微信小程序--方便面的毕业设计.zip
- matlab-(含教程)基于sift特征提取的图像配准和拼接算法matlab仿真
- Excel模板00固定资产明细账.zip
- Hotel-Management-System:Django中的酒店管理系统
- dotfiles:我的dotfiles
- pscc2015:Capstone 2015 - 来自 KUB 与 PSTCC 的合作
- tlvc-api
- 毕业设计&课设--车辆管理系统本科毕业设计,php+mysql+python.zip
- matlab-(含教程)基于传感器融合(UWB+IMU+超声波)的卡尔曼滤波多点定位算法matlab仿真
- Excel模板收据打印模板.zip
- swipe-listener:零依赖性,最小化手势手势的Web侦听器
- chittiBirthday:学习NodeJS和Google云
- github-issue-agent:使用带有令牌的 Github 问题基础结构的 Node.js 项目