51单片机与DS1820温度传感器交互
需积分: 0 165 浏览量
更新于2024-07-13
收藏 1.85MB PPT 举报
"该资源是关于C51单片机的第12讲,主题是温度传感器,特别是Dallas公司的数字温度传感器DS1820(也称为DS18B20)。课程涵盖了温度传感器的基本概念,接口方式,性能指标,以及DS18B20的内部结构和工作原理。此外,还提供了相关的数据定义和延时函数的示例代码。"
在C51单片机编程中,数据定义是至关重要的,它帮助我们规范地声明和使用变量。在这个课件中,我们看到了如下数据定义:
1. `#include <reg52.h>` 和 `#include <stdio.h>`:这两行是包含头文件的指令,`reg52.h`包含了51系列单片机的特殊功能寄存器定义,而`stdio.h`提供了标准输入输出函数,如`printf`。
2. `#define`关键字用于创建宏定义,例如`uchar`和`uint`分别定义了无符号字符型和无符号整型的别名,便于代码阅读。`sbit ds=P2^3;`定义了一个位变量ds,它连接到P2口的第3位,作为温度传感器信号线。
3. `uchar code table[11]`是一个查表数组,存储了ASCII码对应的7段数码管显示值,用于将数字转换为LED显示。`uchar LED[8]`则定义了一个8位的数组,可能用于控制LED显示。
4. `void delay(uint z)`是延时函数,通过嵌套循环实现一定时间的延迟。在实际应用中,这种简单的延时方法可能不够精确,但在教学环境中足够说明基本概念。
DS18B20温度传感器是 Dallas 公司生产的一款数字温度传感器,其特点包括:
- 单总线接口:仅需一个端口与微控制器通信,支持双向数据传输。
- 直接数字输出:能将温度转换为串行数字信号,简化了处理过程。
- 三引脚设计:VDD(电源)、GND(接地)和DQ(数据线)。
- 多点温度检测:同一总线上可挂接多个传感器。
- 自供电模式:在高电平时,传感器可为内部电容充电,供低电平使用。
- 工作温度范围:-55℃至+125℃,精度±0.5℃(在特定范围内)。
- 测量时间:约200毫秒。
DS18B20的内部结构包括64位ROM(包含唯一的地址),单线端口,电源检测,存储器,控制逻辑和温度传感器。其工作原理基于两个振荡器:低温度系数振荡器和高温度系数振荡器,通过计数器和斜坡累加器计算温度变化。每个温度增量都会更新温度寄存器,预置数由斜坡累加器提供,根据温度进行调整。
在实际应用中,每个DS18B20都有一个64位的光刻ROM地址,使得在同一总线上可以区分多个传感器,确保了数据通信的准确性和唯一性。这些地址包含产品类型、序列号和CRC校验码,确保了设备的可靠性和身份验证。
169 浏览量
点击了解资源详情
177 浏览量
113 浏览量
2011-01-15 上传
2010-06-10 上传
127 浏览量
2022-06-17 上传
2008-12-12 上传

小炸毛周黑鸭
- 粉丝: 26
最新资源
- SSM框架整合:简易实现spring、springmvc、ibatis集成
- MakeKml与kml小区方向角Excel模板工具包
- 解析Java常用库commons-codec、commons-logging与commons-httpclient
- Win32DiskImager:高效.img格式写入U盘工具
- Docker环境下使用ffmpeg在阿尔卑斯山项目中的应用
- STM32与ESP8266实现阿里云智能4路开关控制源代码解析
- breadCrumbs: 探索校园与故事分享的iBeacons应用
- Flash粒子文字源文件:自定义炫彩动态文字特效
- 深入理解计算机系统:硬件与软件的完美结合
- 全面解析移动前端框架Ionic及其压缩包结构
- Altium Designer9原理图及PCB库:STM32F103/107封装详解
- avisinth蓝光3D解码及渲染工具分析
- C# 实现指定坐标点的自定义尺寸截图功能
- Python 3.7封装的TCG Player API工具介绍
- 得力D991CN计算器1.0版本使用手册
- Android ImageView控件使用及缩放技巧详解