51C程序实现DS18B20多点测温与1602显示
4星 · 超过85%的资源 需积分: 12 94 浏览量
更新于2024-09-19
收藏 66KB DOC 举报
本文档主要介绍了如何使用DS18B20多点测温传感器在51C编程环境下实现温度测量并显示在1602液晶显示器上。DS18B20是一种常用的数字温度传感器,它支持多点测温和串行通信,通过一个总线接口可以同时读取多个传感器的数据。
首先,文档定义了几个重要的寄存器和引脚,如DQ、RS、RW和EN,这些引脚用于与DS18B20进行数据交互。其中,DQ负责数据线,RS控制命令或数据,RW控制是否从寄存器读取数据,EN是数据有效的控制信号。
程序分为两个部分:读取单个DS18B20的序列号并显示,以及读取和匹配多个DS18B20的温度值。
1. **单个DS18B20序列号读取**:
- 使用`wr_com`和`wr_dat`函数发送特定的命令(如0x44,0x4E)来配置DS18B20进入单次读模式,然后读取8位的序列号存储在`fCode`数组中。
- 序列号读取后,可能需要解析并转换为温度值,这部分代码未在给出的部分显示,但通常会涉及将序列号转换为十进制,然后利用DS18B20的内部算法计算实际温度。
2. **多点测温及1602显示**:
- 对于多点测温,程序需要扩展以处理多个DS18B20的读取,这通常涉及根据已知的地址范围或序列号进行逐个读取。
- 温度值读取后,保存在`tvalue`变量中,同时使用`uchartflag`来标记温度的正负。
- 温度数据被传递给`lcd_init`函数,该函数负责清屏并设置LCD的基本模式,然后使用`wr_com`和`wr_dat`函数发送相应的字符和数字来显示温度值。液晶显示从左到右显示温度,高位在左边。
文章还提到了一个辅助的延时函数`delay1ms`,用于在发送命令和数据之间提供适当的延迟,确保通信稳定。此外,初始化LCD时,需要设置为1602液晶的特定显示模式和功能,如双行显示、5x7点阵字符等。
总结来说,本资源提供了一个基础的DS18B20多点测温程序,展示了如何使用51C语言操作传感器、读取序列号、匹配多个设备,并在LCD1602上显示温度值。对于想要学习如何在嵌入式系统中集成温度监控功能的开发者来说,这是一个实用的示例。
2011-07-29 上传
2010-03-26 上传
2012-07-17 上传
2013-03-14 上传
2010-10-10 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
爱好者howard
- 粉丝: 0
- 资源: 32
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常