STC89C52单片机:18b20测温与LCD12864显示与报警实现

版权申诉
0 下载量 139 浏览量 更新于2024-09-08 收藏 18KB DOCX 举报
本资源是一份关于51单片机(如STC89C52)结合DS18B20温度传感器和LCD12864液晶显示器的编程教程文档。主要内容包括以下几个部分: 1. **主程序设计**:这部分代码展示了如何将DS18B20温度传感器的数据读取并转换为可显示的温度值。DS18B20是一种数字温度传感器,通过I2C接口与单片机进行通信。主程序中涉及到与DS18B20的交互、数据处理以及与LCD12864的数据显示。 2. **头文件和库函数**:`lcd.h` 和 `ds18b20.h` 文件包含了一些预定义的类型、宏和常量,例如uchar(无符号字符)、uint(无符号整型)、LCD数据端口寄存器定义等。`lcd.c` 和 `ds18b20.c` 分别是LCD控制和DS18B20驱动的具体实现,可能包含了初始化、数据传输和命令发送等操作。 3. **显示和报警处理**:定义了两个字符数组`Display1`和`Display2`来存储实际温度和报警温度的字符串,用于LCD12864的显示。同时,有标志位`f`用来控制是否触发报警,并使用`sbit`定义了蜂鸣器控制引脚`beep`。整型变量`temp`和`templa`用于存储温度值,`f_temp`则用于浮点型温度的计算。 4. **辅助函数**:如`delay`函数用于实现延时,确保数据稳定后再进行下一步操作,避免干扰。`Key_Scan`函数负责键盘扫描,可能是用于设置报警温度阈值或其他用户输入。 5. **硬件配置**:使用的是11.0592MHz的晶振,开发环境为Keil4.0。该程序旨在演示一个带有温度测量、显示和报警功能的系统,通过LCD12864显示实时温度并在超过预设报警值时启动蜂鸣器。 在阅读这份文档时,学习者可以了解51单片机的基本操作、I2C通信、温度传感器的读取、LCD显示控制以及基本的硬件接口设计。此外,还应关注数据类型定义、函数的实现细节和延时策略,这些都是编写此类程序的基础知识。如果有不明白的地方,可以在文档末尾的注释中找到作者提供的帮助和参考。