DS18B20C51编程实现温度控制与LCD显示

需积分: 13 5 下载量 70 浏览量 更新于2024-09-07 收藏 6KB TXT 举报
"这篇资源是关于使用DS18B20温度传感器和C51语言进行温度控制的程序实现,目标是将当前教室的温度显示在LCM液晶显示屏上,并通过S1和S2按键设定目标温度。" 在这个项目中,主要涉及以下几个知识点: 1. **DS18B20温度传感器**:DS18B20是一种数字温度传感器,它可以直接输出数字信号,简化了温度测量系统的复杂性。它具有高精度、单线通信接口的特点,可以方便地与微控制器如8051(C51语言对应的芯片)连接。 2. **C51编程**:C51是针对8051系列微控制器的编程语言,这里的代码展示了如何使用C51来控制硬件设备,包括读取温度数据、设置LCD显示以及处理用户输入。 3. **液晶显示屏(LCD)**:LCM(Liquid Crystal Module)是液晶显示器,用于显示温度读数。这里使用的是16x16的字符型液晶屏,通过RS、RW、EN等控制引脚实现数据的写入和读取。 4. **按键输入**:S1和S2两个按键用于设定高于和低于当前室温的目标温度。通过读取按键状态,可以改变目标温度值。 5. **温度控制算法**:虽然代码没有明确给出,但根据描述,应该存在一个温度控制算法,用于将当前温度稳定在设定的目标温度。这可能涉及到PID(比例-积分-微分)控制或其他类型的控制策略。 6. **中断与定时器**:C51语言支持中断和定时器功能,可能在程序中用于周期性地获取温度读数、更新LCD显示或者执行控制逻辑。 7. **I/O操作**:代码中的`delay_us()`和`delay()`函数用于实现延时,这是微控制器程序中常见的操作,用于控制程序执行的步调。 8. **串行通信**:DS18B20采用单总线协议,这是一种串行通信协议,允许单个数据线同时传输数据和时钟信息,代码中未具体展示这部分,但在实际应用中需要处理这种通信方式。 9. **液晶屏初始化和显示**:代码中的`write_command()`和`write_data()`函数用于向液晶屏发送命令和数据,`Set_column()`和`Set_row()`函数则用于选择显示的位置。 10. **变量定义与处理**:如`uchar Ek, Ek1, Ek2`,`uchar Kp, Ki, Kd`等,这些可能是用于存储温度读数、控制参数或状态的变量。 通过理解以上知识点,开发者可以实现一个基本的温度控制系统,能够实时监测并控制教室的温度,并在LCD屏幕上直观地显示出来。