51C程序实现DS18B20多点测温与1602显示
4星 · 超过85%的资源 需积分: 25 192 浏览量
更新于2024-09-19
收藏 66KB DOC 举报
本文档主要介绍了如何使用DS18B20多点测温传感器在51C编程环境下实现温度测量并显示在1602液晶显示器上。DS18B20是一种常用的数字温度传感器,它支持多点测温和串行通信,通过一个总线接口可以同时读取多个传感器的数据。
首先,文档定义了几个重要的寄存器和引脚,如DQ、RS、RW和EN,这些引脚用于与DS18B20进行数据交互。其中,DQ负责数据线,RS控制命令或数据,RW控制是否从寄存器读取数据,EN是数据有效的控制信号。
程序分为两个部分:读取单个DS18B20的序列号并显示,以及读取和匹配多个DS18B20的温度值。
1. **单个DS18B20序列号读取**:
- 使用`wr_com`和`wr_dat`函数发送特定的命令(如0x44,0x4E)来配置DS18B20进入单次读模式,然后读取8位的序列号存储在`fCode`数组中。
- 序列号读取后,可能需要解析并转换为温度值,这部分代码未在给出的部分显示,但通常会涉及将序列号转换为十进制,然后利用DS18B20的内部算法计算实际温度。
2. **多点测温及1602显示**:
- 对于多点测温,程序需要扩展以处理多个DS18B20的读取,这通常涉及根据已知的地址范围或序列号进行逐个读取。
- 温度值读取后,保存在`tvalue`变量中,同时使用`uchartflag`来标记温度的正负。
- 温度数据被传递给`lcd_init`函数,该函数负责清屏并设置LCD的基本模式,然后使用`wr_com`和`wr_dat`函数发送相应的字符和数字来显示温度值。液晶显示从左到右显示温度,高位在左边。
文章还提到了一个辅助的延时函数`delay1ms`,用于在发送命令和数据之间提供适当的延迟,确保通信稳定。此外,初始化LCD时,需要设置为1602液晶的特定显示模式和功能,如双行显示、5x7点阵字符等。
总结来说,本资源提供了一个基础的DS18B20多点测温程序,展示了如何使用51C语言操作传感器、读取序列号、匹配多个设备,并在LCD1602上显示温度值。对于想要学习如何在嵌入式系统中集成温度监控功能的开发者来说,这是一个实用的示例。
123 浏览量
2010-03-26 上传
2012-07-17 上传
183 浏览量
696 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
爱好者howard
- 粉丝: 0
- 资源: 31
最新资源
- kubernetes-kms:for适用于Kubernetes的Azure Key Vault KMS插件
- Data_Explore_py_pandas_Professional_nanodegree_program:具有一些基本描述性统计信息的用户交互式数据探索程序
- IntelligentAgentsAssignment:第一次尝试在非常简单的环境中实现信念-愿望-意图模型
- flash元件批量改名命令(jsfl)
- fullstackopen:赫尔辛基大学
- Calendar2.rar
- vscode-mono-debug:一个简单的VS Code调试适配器,用于单声道
- packtools:用于处理SciELO PS XML文件的Python库和命令行实用程序
- 使用 MATLAB 进行信用风险建模:这些是 MathWorks 网络研讨会的同名 MATLAB 支持文件。-matlab开发
- 采购管理工程招投标流程
- CBB-Stats
- 12.XGBoost_data.rar
- 电子功用-基于电压跟踪的锂电池剩余电量的计量方法
- 皇家型
- android:android相关代码和示例
- 采购与仓储管理