51单片机实现DS1820温度传感器数码管显示
需积分: 0 98 浏览量
更新于2024-07-13
收藏 1.85MB PPT 举报
"该资源是关于C51单片机如何在LED数码管上显示温度值的教程,涉及了温度传感器DS1820的使用和数据处理方法。"
在这个教程中,我们聚焦于51系列单片机,特别是如何通过C51编程语言与温度传感器DS1820进行交互,将采集到的温度值在LED数码管上实时显示。DS1820是一种由Dallas公司生产的数字温度传感器,它采用独特的单总线接口,仅需连接到单片机的一个端口就能实现双向通信。这种传感器的优势在于可以直接将温度转化为串行数字信号,简化了数据处理步骤,同时支持在同一总线上挂接多个传感器,适合远距离多点温度检测。
DS18B20(DS1820的改进型号)的温度测量范围为-55℃至+125℃,具有±0.5℃的精度(在-10℃至+85℃范围内)。它有三个引脚:VDD(电源)、GND(接地)和DQ(数据)。即使电源极性接反,芯片也不会立即损坏,但会发热。
DS18B20的内部结构包括64位ROM、单线端口、电源检测、存储器、控制逻辑和温度传感器等组件。其工作过程依赖于两个振荡器:一个低温度系数振荡器为计数器1提供稳定的计数脉冲,另一个高温度系数振荡器则为计数器2提供随温度变化的计数脉冲。通过这两个计数器的相互配合,实现温度的精确测量。
温度测量原理是:首先预置温度寄存器为-55℃,然后计数器1从预置数开始递减计数,每计数到0,温度寄存器增加1℃。斜坡累加器负责提供新的预置数,确保在不同温度下,每增加1℃所需的计数个数适应温度的变化。计数器1持续此过程,直到计数器2计数到0,完成一次温度测量。
在C51程序中,`disp_temp`函数用于将温度值转换为便于显示的形式,分配给LED数组,而`display`函数则负责将这些值实际输出到数码管上。P2口用于选择数码管的段选,P0口则负责位选,通过`table[LED[i]]`查找对应的数码管编码并延时显示,确保每个数码管位有足够的点亮时间。
本教程讲解了如何使用C51单片机配合DS18B20温度传感器进行温度检测,并将结果显示在LED数码管上,为学习单片机应用和温度传感提供了实践案例。
254 浏览量
1784 浏览量
339 浏览量
2023-07-10 上传
219 浏览量
2022-01-12 上传
2022-12-14 上传
2021-11-24 上传
2022-07-08 上传

劳劳拉
- 粉丝: 24
最新资源
- Tornado环境下的ARM9编程:串口、IIS及NAND Flash操作
- 托管核心库Managed Commons Core的新版本发布
- phystudy安装74cms:简单快捷的下载与部署指南
- 全球热战游戏:多人实时对抗与谷歌地图API的结合
- 探索百度地图API的应用实例
- ZedGraph控件全面教程:加载与使用方法
- 基于PHP Laravel的多语言电商系统源码剖析
- C#XP平台下的自定义按钮实现与应用
- 探索ZeroMQ源码:跨平台高性能通信框架
- 管家婆辉煌版v7.1a功能详解及VCHTYPE.DBF文件解析
- PFE-ESTS-covid19 SIBD 2019-2020研究项目分析
- 安卓涂鸦程序终极功能介绍
- Protoc-gen-doc:Google Protobuf文档生成器插件解析
- 高效大规模立体匹配技术及其工程应用
- MSwf2Gif实用工具:SWF到GIF的高效转换
- Python实现的美国人口普查地理编码工具