51单片机实现18B20温度传感器与1602 LCD显示

需积分: 10 3 下载量 47 浏览量 更新于2024-09-12 收藏 3KB TXT 举报
“18B20通过1602显示(51单片机)”描述了一个实验项目,该项目成功地将18B20温度传感器的数据通过1602 LCD显示器在51系列单片机(如STC89C52)上显示出来,实现了温度测量的精确到小数点后一位的功能。 在给定的代码中,我们可以看到与18B20传感器通信和LCD1602显示相关的函数和定义。18B20是一种数字温度传感器,它使用1-Wire协议进行通信,这使得它只需要一根数据线就可以与控制器进行交互。1602 LCD显示器则用于可视化18B20传感器采集的温度数据。 1. **18B20传感器通信**: - `DS18b20_reset`函数用于对18B20进行复位操作,这是与1-Wire设备通信的初始步骤。 - `write_byte`函数用于向18B20发送8位数据,通过控制DQ引脚的高低电平并在适当时间间隔内调整,实现数据传输。 - `read_byte`函数用于从18B20读取8位数据,同样通过检测DQ引脚的电平变化来获取数据。 2. **LCD1602显示器控制**: - 定义了LCD1602的相关控制引脚,如`lcdrs`、`lcdwr`、`lcden`和`busy`,这些是与LCD通信的关键引脚。 - `delay`和`delay_us`函数用于提供延时,确保信号传输的准确性和稳定性。 3. **数据处理**: - `uchardatadisdata[5]`数组可能用于存储待显示的温度数据,可能包括整数部分和小数部分。 4. **程序流程**: - 首先,通过`DS18b20_reset`复位18B20,然后通过`write_byte`发送指令进行温度转换。 - 转换完成后,通过`read_byte`读取温度值。 - 温度值被处理并存储在`datadisdata`数组中。 - 最后,利用LCD控制函数将处理后的温度数据显示在1602 LCD显示器上。 这个实验项目展示了如何在51单片机环境下,结合18B20传感器和1602 LCD显示器,构建一个简单的温度监测系统。通过理解和应用这段代码,可以进一步学习单片机硬件接口、1-Wire协议以及LCD显示技术。