51C程序实现DS18B20多点测温与1602显示
4星 · 超过85%的资源 需积分: 12 185 浏览量
更新于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上显示温度值。对于想要学习如何在嵌入式系统中集成温度监控功能的开发者来说,这是一个实用的示例。
2011-07-29 上传
2010-03-26 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
爱好者howard
- 粉丝: 0
- 资源: 32
最新资源
- 深入理解23种设计模式
- 制作与调试:声控开关电路详解
- 腾讯2008年软件开发笔试题解析
- WebService开发指南:从入门到精通
- 栈数据结构实现的密码设置算法
- 提升逻辑与英语能力:揭秘IBM笔试核心词汇及题型
- SOPC技术探索:理论与实践
- 计算图中节点介数中心性的函数
- 电子元器件详解:电阻、电容、电感与传感器
- MIT经典:统计自然语言处理基础
- CMD命令大全详解与实用指南
- 数据结构复习重点:逻辑结构与存储结构
- ACM算法必读书籍推荐:权威指南与实战解析
- Ubuntu命令行与终端:从Shell到rxvt-unicode
- 深入理解VC_MFC编程:窗口、类、消息处理与绘图
- AT89S52单片机实现的温湿度智能检测与控制系统