51单片机实现DS18B20温度传感器程序及应用
需积分: 10 198 浏览量
更新于2024-09-16
收藏 193KB DOC 举报
"这篇资源是关于使用51单片机(具体型号为89C51)配合DS18B20温度传感器进行温度测量的程序。程序采用C语言编写,能够实现对DS18B20传感器的复位、写命令、读取数据等操作,并通过16x2的LED显示器展示温度读数。"
DS18B20是一种数字温度传感器,具有较高的精度和宽广的温度测量范围。它可以直接通过单总线(1-Wire)与微控制器通信,减少了所需的硬件接口,降低了系统复杂性。该传感器的特点包括:
1. **电压范围**:3.0V至5.5V,适合各种电源环境。
2. **温度范围**:-55℃至+125℃,覆盖了大多数工业和消费电子应用的需求。
3. **分辨率可编程**:用户可以根据需求设置9至12位的分辨率,以达到不同的精度要求。
4. **温度报警设置**:可以设置非易失性的温度报警点,便于系统在超出预设范围时自动响应。
程序中涉及的主要子程序包括:
1. **reset()**:执行DS18B20的复位序列,初始化通信过程。
2. **write_byte(uchar val)**:向DS18B20发送一个8位的数据字节。
3. **read_byte(void)**:从DS18B20接收一个8位的数据字节。
4. **read_temp()**:调用DS18B20的温度转换功能,读取当前的温度值。
5. **work_temp()**:处理读取到的温度数据,可能包括数据校验、转换成适合显示的格式等操作。
6. **display数据变量**:用于存储和显示温度值的数组,这里使用5个字符来显示整数和小数部分。
此外,程序还包含了一个延迟函数`delay1(uint t)`,用于在通信过程中插入适当的延时,确保信号的稳定传输。主函数`main()`中循环调用这些子程序,持续监测和显示温度。
为了将温度值转化为易于人眼识别的形式,程序使用了一个查找表`editab[]`,这个表用于将二进制数据转换为对应的ASCII字符,显示在LED显示器上。通过这种方式,温度的小数部分可以被准确地表示出来。
这份资源提供了一个完整的DS18B20温度传感器与51单片机集成应用的实例,对于学习单片机控制温度传感器以及实践相关项目有着很高的参考价值。
2015-05-09 上传
2011-04-20 上传
2009-04-23 上传
2023-05-26 上传
2023-05-03 上传
2023-05-16 上传
2023-05-13 上传
2023-04-07 上传
2023-04-01 上传
abwbl
- 粉丝: 1
- 资源: 2
最新资源
- 达梦数据库DM8手册大全:安装、管理与优化指南
- Python Matplotlib库文件发布:适用于macOS的最新版本
- QPixmap小demo教程:图片处理功能实现
- YOLOv8与深度学习在玉米叶病识别中的应用笔记
- 扫码购物商城小程序源码设计与应用
- 划词小窗搜索插件:个性化搜索引擎与快速启动
- C#语言结合OpenVINO实现YOLO模型部署及同步推理
- AutoTorch最新包文件下载指南
- 小程序源码‘有调’功能实现与设计课程作品解析
- Redis 7.2.3离线安装包快速指南
- AutoTorch-0.0.2b版本安装教程与文件概述
- 蚁群算法在MATLAB上的实现与应用
- Quicker Connector: 浏览器自动化插件升级指南
- 京东白条小程序源码解析与实践
- JAVA公交搜索系统:前端到后端的完整解决方案
- C语言实现50行代码爱心电子相册教程