51单片机DS18B20温度传感器汇编程序
需积分: 1 98 浏览量
更新于2024-07-28
收藏 70KB DOC 举报
"该资源提供了一个使用51单片机操作DS18B20的汇编源程序,旨在帮助用户理解和应用DS18B20数字温度传感器。"
这篇内容涉及的知识点主要包括:
1. **DS18B20**:DS18B20是一种流行的数字温度传感器,它可以直接在一根数据线上与微控制器通信,无需额外的接口电路。该传感器能够提供9至12位的温度分辨率,并且具有自校准功能。
2. **51单片机**:51系列单片机是基于Intel 8051微处理器的微控制器,广泛用于嵌入式系统设计。在这个程序中,51单片机被用来控制DS18B20并读取温度数据。
3. **汇编语言编程**:程序使用的是汇编语言,这是一种低级编程语言,直接对应于机器指令。汇编代码通常更接近硬件操作,因此可以实现更精细的控制,比如在这里控制DS18B20的数据总线。
4. **初始化程序**:`INIT_1820` 是DS18B20的初始化程序,它通过一系列延时操作来确保与传感器的正确通信。初始化包括设置数据总线状态、发送特定的命令序列等步骤,以便让DS18B20进入已知状态。
5. **标志位**:`FLAG1` 用于指示DS18B20是否存在或已成功初始化。如果在规定时间内接收到DS18B20的响应,则设置`FLAG1`为1,表明传感器存在;反之,如果未收到响应,则清零`FLAG1`。
6. **延时子程序**:程序中使用了多个延时子程序,如`TSR1`, `TSR2`, `TSR3`, `TSR4` 和 `TSR6`,这些子程序通过循环计数器实现,用于满足DS18B20通信协议所需的最小时间间隔。
7. **写入DS18B20命令**:`RE_CONFIG` 子程序负责重新配置DS18B20的存储器。它先检查`FLAG1`,如果DS18B20存在,就会发送一系列命令,如`SKIPROM`(跳过ROM命令),`WRITE_1820`(写入DS18B20命令),然后设置温度报警上下限和温度分辨率。
8. **写入DS18B20数据**:`LCALLWRITE_1820` 是一个调用,用于将特定的8位数据写入DS18B20。在这个例子中,设置报警上下限为0℃,并选择9位温度分辨率,这样传感器将以较高的精度输出温度值。
这个程序对于学习如何直接使用汇编语言与DS18B20通信非常有帮助,同时也展示了如何实现基本的温度传感器初始化和配置。
170 浏览量
2022-09-23 上传
220 浏览量
2014-03-21 上传
2014-09-30 上传
wangjian2013
- 粉丝: 0
- 资源: 1
最新资源
- 埃森哲如何帮助沃尔玛成就卓越绩效
- ElectricRCAircraftGuy/MATLAB-Arduino_PPM_Reader_GUI:使用 Arduino 从 RC Tx 中的 PPM 信号中读取操纵杆和开关位置,并绘制和记录-matlab开发
- C#写的IOC反转控制源代码例子
- 供应商质量体系监察表
- Hedgewars: Continental supplies:centinental 供应的“主要”开发页面-开源
- 元迁移学习的小样本学习(Meta-transfer Learning for Few-shot Learning).zip
- .NET Core手写ORM框架专题-代码+脚本
- 《物流管理》第三章 物流系统
- Python_Basic:关于python的基本知识
- 王者荣耀段位等级图标PNG
- 使用 PVsystem 升压转换器的逆变器设计.mdl:带有使用 PV 的升压转换器的简单逆变器模型-matlab开发
- touchpad_synaptics_19.0.24.5_w1064.7z
- Analise播放列表做Spotify --- Relatorio-Final
- 开放式旅行商问题 - 遗传算法:使用 GA 为 TSP 的“开放式”变体找到近乎最优的解决方案-matlab开发
- fr.eni.frontend:培训前端
- kracs:克拉斯