DS18B20温度传感器编程与数据显示
需积分: 9 38 浏览量
更新于2024-09-11
1
收藏 5KB TXT 举报
"DS18B20温度传感器程序是一个使用C语言编写的控制程序,用于读取DS18B20传感器的温度数据,并将结果显示在LED显示器上。程序包含了必要的延时函数、温度传感器初始化、数据传输以及数据显示等关键模块。"
本文将详细讲解DS18B20温度传感器的使用以及程序中的关键知识点。
DS18B20是一种数字温度传感器,它可以直接输出数字信号,无需额外的A/D转换器。其工作原理是通过单总线(One-Wire)通信协议与微控制器进行交互,只需要一个数据线即可完成数据传输。在该程序中,`sbit DQ = P3^7;`定义了单总线的数据线DQ连接到P3口的第7位。
程序中,`ow_reset(void)`函数执行的是DS18B20的复位操作,这是与传感器通信的第一步。复位脉冲通常需要保持至少480us的高电平,然后迅速拉低,如果传感器存在,会在约960us后响应一个低电平。在程序中,`while(presence)`循环检测传感器是否已正确响应复位。
接着,程序中定义了多个数组,如`editab[]`,`dis_7[]`,`scan_con[]`,它们分别用于编码数字和符号,以便在LED显示器上显示。`disdataP0`和`discanP2`定义了数据线和扫描线的端口,而`uchar temp_data[2]`用于存储从DS18B20读取的温度数据。
`void delay(uint t)`函数实现了简单的延时功能,用于满足DS18B20通信过程中的时间要求。在单总线通信中,精确的延时是至关重要的,因为数据的发送和接收都依赖于特定的时间间隔。
`scan()`函数负责LED显示部分,它遍历4个LED位,根据`display[]`数组中的值点亮相应的LED,以显示温度。`display[]`数组存储了待显示的温度数值。
读取DS18B20温度数据的过程没有在给出的代码片段中完全展示,但通常会涉及发送读温度命令,等待转换完成,然后接收并解析返回的温度数据。这部分代码可能包含在其他未显示的函数中,如`read_temperature()`。
这个程序提供了DS18B20温度传感器的基本控制框架,包括传感器的初始化、数据读取以及结果显示。实际应用中,还需要补充完整读取和处理温度数据的代码,以及可能的错误处理机制。
2018-06-04 上传
2021-01-06 上传
2021-10-01 上传
258 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
jingzhouzongli
- 粉丝: 1
- 资源: 1
最新资源
- 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应用无响应并报告异常