18b20数码管实现过温报警与LCD显示
需积分: 10 200 浏览量
更新于2024-09-14
收藏 4KB TXT 举报
本文档主要介绍了如何使用18b20温度传感器、1602液晶屏以及51单片机(如STC89C52)实现一个过温报警系统。系统通过串口通信将18b20采集到的温度数据传输到上位机,并在LCD上实时显示温度值。当温度超过预设的警告区间时,会触发亮灯和蜂鸣器报警功能。
1. **硬件连接与初始化**:
- 使用P2.2引脚作为DS(Data Select)数码管数据线,P2.6引脚作为段选线(Data Line A),P2.7引脚作为公共端(Com),P2.3引脚控制蜂鸣器,P3.4引脚EN(Enable)和P3.5引脚RS(Register Select)分别用于1602液晶屏的使能和指令线。
- 在程序开始时,需要初始化LCD,通过Write_LCD_Command函数发送0x01(清屏)、0x38(设置16x2字符尺寸)和0x0c(显示模式设置)命令,以及0x06(两行显示,第一行显示温度)来配置屏幕。
2. **温度传感器与读取**:
- 使用18b20作为温度传感器,该设备通常通过I2C或单总线方式连接到51单片机。程序中未直接提供这部分代码,但假设有一个函数获取并转换温度值,存储在`uinttemp`或`f_temp`变量中。
3. **温度范围警报**:
- 定义了两个警告下限`warn_l1`(100℃)和`warn_l2`(90℃),以及两个警告上限`warn_h1`(400℃)和`warn_h2`(420℃)。当温度超过这些阈值时,会触发报警功能。
- 通过比较当前温度值,如果超出警告范围,程序会控制LED灯(led0, led1, led2, led3)的状态来表示警告级别。
4. **LCD显示与报警指示**:
- 温度数据显示函数`Write_LCD_Data()`用来将`LCD_Temp_title`和`LCD_Temp`数组中的字符写入LCD的相应位置,显示格式为"Temperature: "和实际温度值。
- 当温度超过警告值时,除了在LCD上显示,还会通过点亮特定的LED灯(如:低于警告下限亮led0,高于警告下限亮led1和led2,超过上限亮led3)以及触发蜂鸣器(通过`beep`引脚)进行报警。
5. **延时与控制函数**:
- 提供了`delay()`函数,通过嵌套循环实现简单的定时延时,用于在液晶屏和LED操作之间插入适当的时间间隔。
6. **串口通信**:
- 文档中没有明确提到如何通过串口通信将温度数据发送到上位机,但这是整个系统的一个关键部分,通常会用到UART或其他串行通信协议,比如通过发送ASCII码或其他自定义协议将温度值发送出去。
这个项目是基于51单片机的智能仪表应用,利用18b20温度传感器、1602液晶屏和串口通信技术,设计了一个能够实时显示温度并具备过温报警功能的系统。通过编程实现了数据采集、处理和显示,以及与上位机的交互。
2012-04-23 上传
2020-08-10 上传
2015-06-06 上传
2023-05-30 上传
2024-06-20 上传
2024-10-31 上传
2023-05-27 上传
2023-11-26 上传
2024-10-29 上传
y-grey
- 粉丝: 33
- 资源: 1
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜