51单片机DS18B20温度监控与LCD显示实现

需积分: 13 6 下载量 152 浏览量 更新于2024-09-07 收藏 13KB DOCX 举报
本篇文章主要介绍了如何使用C语言在51单片机上配合温度传感器DS18B20实现LCD液晶显示屏的温度测量与显示功能。文章首先定义了所需的硬件接口,包括液晶显示屏的使能端口P2.6(LCDEN)和数据端口P0,以及温度传感器DS18B20的数据接口P2.2(ds)。代码中涉及了以下几个关键部分: 1. **头文件包含**: - `reg52.H`:这是一个常用的51单片机库文件,包含了必要的寄存器定义和函数声明。 - `intrins.H`:可能包含了一些内联函数或硬件相关的宏定义。 - `math.H`:尽管在标题中提到,但可能并未实际使用,因为通常用于处理浮点运算的数学库在这个上下文中不太常见。 2. **变量和位定义**: - `sbit dula`, `sbit wela`, `sbit rw`, `sbit RS`, `sbit LCDEN` 分别定义了液晶显示屏的控制引脚,如RS(寄存器选择),RW(读写控制),以及LCDEN(使能信号)。 3. **延时函数**: - `delayUs()` 和 `delayMs()` 分别提供了微秒级和毫秒级的延时函数,这是为了在通信过程中确保稳定的时序。 4. **LCD操作函数**: - `writeComm()`:用于发送LCD指令,将一个字节的命令写入到LCD。 - `writeData()`:用于写入数据,当RS=1时,将数据从P0口输出到LCD。 5. **初始化和显示功能**: - `init()` 函数初始化LCD,设置初始状态和写入必要的显示模式设置,如显示模式、对比度等。 - `writeString()` 函数用于向LCD写入字符串,这里假设已经有一个字符串指针和长度参数。 6. **温度传感器操作**: - `dsInit()` 函数用于初始化DS18B20温度传感器,通过P2.2引脚进行通信,获取传感器的序列号,这通常是读取温度前的预处理步骤。 7. **温度测量**: 文档没有提供具体的温度测量代码,但通常DS18B20会返回一个数字值,需要将其转换为相应的温度并显示在LCD上。这部分需要使用DS18B20的寄存器读取和温度计算函数,可能涉及到温度补偿和单位转换。 本文主要展示了如何在51单片机平台上通过C语言实现DS18B20温度传感器的数据采集,并将结果显示在LCD液晶显示屏上,涉及到硬件配置、LCD通信协议以及温度传感器的基本操作。