DS18B20C51编程实现温度控制与LCD显示
需积分: 13 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屏幕上直观地显示出来。
2013-03-05 上传
2009-06-12 上传
2013-03-03 上传
2012-05-24 上传
卿卿要冲鸭
- 粉丝: 1
- 资源: 3
最新资源
- 温特线性matlab代码-matlab_NS_solvers:旧的研究代码。主要是涡量公式中的2DNS求解器
- 行业文档-设计装置-一种切纸机的双位刀头.zip
- Lora-32-Connect-by-Wifi
- 视图:场景模块的界面,为发送到渲染器的显示对象提供用户交互输入输出和剔除管理
- omniauth-rails_csrf_protection:在Rails应用程序的OmniAuth请求端点上提供CSRF保护
- ryanatkn
- 基于神经网络的人脸识别.zip
- derrobott.github.io:没事了
- matlab导弹落点代码-missile_simulation_matlab:导弹仿真Matlab代码
- iains:TestAccount
- xlog:xlog是netcontext感知HTTP应用程序的记录器
- 自动驾驶汽车案例研究
- 「基于图像识别的收银台」客户端软件,基于OpenCV + Qt,需要搭配「基于图像识别的收银台」后端服务使用。.zip
- darwish-rainmeter
- CSCI3800_Sp15_Team8:CSCI3800 Spring 2015 Team 8项目
- blog