51单片机实现DS18B20温度测量与四数码管显示
5星 · 超过95%的资源 需积分: 18 32 浏览量
更新于2024-09-12
1
收藏 93KB PDF 举报
"这篇资源是关于使用C51语言在51单片机上实现DS18B20温度传感器的测量与显示程序。代码包含了详细的注释,并使用四位共阳数码管进行温度值的显示。DS18B20是一款能够提供12位温度转换精度的传感器,测量范围为-55°C到+125°C,显示精度为0.1度。程序中定义了数据线DQ连接到P1^2口,段码输入连接到P0口,位选控制连接到P3^4到P3^7口。"
在该程序中,主要涉及以下知识点:
1. **DS18B20温度传感器**:DS18B20是一款单线数字温度传感器,可以通过单根数据线与微控制器通信,发送温度数据。它具有内置的温度转换器,可以提供12位的温度分辨率。
2. **51系列单片机**:51单片机是基于Intel 8051架构的微控制器,广泛应用于嵌入式系统中。在这个程序中,单片机被用来接收和处理DS18B20的数据,并驱动数码管进行温度显示。
3. **C51编程**:C51是针对51系列单片机的C语言扩展,允许开发者用高级语言编写底层硬件控制程序。程序中的`#include "reg51.h"`包含51单片机的寄存器定义。
4. **数据线操作**:在代码中,`sbit DQ = P1^2;`定义了DQ引脚(数据线)连接到P1口的第2位,用于与DS18B20的通信。
5. **数码管显示**:四位共阳数码管显示温度值,数码管的段码控制由数组`codedis_7`定义,而列扫描控制字由数组`scan_con`定义。数码管的显示数据存储在`display`数组中。
6. **温度转换和显示**:`temp_data`数组用于暂存从DS18B20读取的温度数据,然后经过处理(可能包括温度的转换和格式化)后,存入`display`数组供数码管显示。
7. **延时函数**:`void delay(uint t)`是一个简单的延时函数,用于满足DS18B20通信中的时序要求。在实际应用中,可能需要更精确的延时函数,如使用定时器。
8. **温度小数部分的查表法**:`editab`数组用于将温度的小数部分转换为数码管的段码,通过查表法快速得到对应的显示值。
通过这个程序,开发者可以学习如何利用C51语言与DS18B20传感器交互,以及如何驱动共阳数码管进行数值显示。这对于初学者理解单片机控制硬件和温度测量的基本原理非常有帮助。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-10-03 上传
2021-10-02 上传
2010-06-07 上传
2010-05-02 上传
2009-06-24 上传
2011-10-23 上传
tobevan
- 粉丝: 9
- 资源: 13
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查