51C程序实现DS18B20多点测温与1602显示

4星 · 超过85%的资源 需积分: 12 13 下载量 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上显示温度值。对于想要学习如何在嵌入式系统中集成温度监控功能的开发者来说,这是一个实用的示例。