这篇文章是关于18B20温度传感器的汇编程序实现,用于读取并显示温度值。18B20是一款由Dallas Semiconductor(现Maxim Integrated)生产的数字温度传感器,它能够提供精确的温度测量,广泛应用于各种环境监测系统中。 在程序中,可以看到以下几个关键部分: 1. **初始化程序**:程序开始时会执行初始化操作,这通常包括设置IO口,如DQ(Data Line)的初始状态,以及可能的电源或时钟设置。初始化18B20可能涉及设置其工作模式,例如单线通信协议的配置。 2. **读写操作**:通过`GET_TEMPER`子程序,程序会发送命令到18B20,首先设置DQ线,然后发出0CCH(跳过ROM匹配)和44H(温度转换命令)的命令。等待一段时间后,再次发送命令读取温度值。`READ_1820`子程序用于从传感器读取一个字节的数据,而`READ_18200`则读取两个字节的温度数据,分别存储在`TEMPER_L`和`TEMPER_H`寄存器中,表示温度的高低位。 3. **温度转换**:读取的原始数据需要经过`TEMPER_COV`子程序进行处理,该程序舍去温度低位中小数点后的四位,然后进行四舍五入处理。转换后的数据存储在`TEMPER_NUM`寄存器中,以便后续显示。 4. **LED显示**:虽然这部分没有在给出的代码中详细描述,但通常会有一个子程序负责将转换后的温度值转化为适合LED显示的格式,然后控制LED阵列显示温度值。 5. **键盘控制**:程序中提到了键盘,这表明系统可能有用户交互功能,比如设定温度范围、启动/停止测量等。不过,具体实现的代码未给出。 6. **延时函数**:`DELAY`和`DELAY1`子程序是程序中的重要组成部分,它们提供了必要的延时,确保通信协议的时间要求得到满足,如等待传感器的转换完成。 7. **16进制到BCD转换**:`BIN_BCD`子程序将16进制的温度数据转换为压缩BCD(Binary-Coded Decimal)码,这是许多显示器和七段数码管常用的显示格式。 这个汇编程序展示了如何使用微控制器与DS18B20温度传感器进行通信,包括初始化、读取温度、转换数据以及可能的用户交互。通过这样的程序,可以构建一个基本的温度监控系统,适用于家庭、实验室或者工业环境的温度测量。
剩余8页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 【java毕业设计】校园资产管理源码(springboot+vue+mysql+说明文档+LW).zip
- 【java毕业设计】人事管理系统源码(springboot+vue+mysql+说明文档+LW).zip
- 问题- pip install pyqt6-tool失败.pdf
- 【java毕业设计】老年一站式服务平台源码(springboot+vue+mysql+说明文档).zip
- 【java毕业设计】科研项目验收管理系统源码(springboot+vue+mysql+说明文档+LW).zip
- java电商书城系统源码带本地搭建教程数据库 MySQL源码类型 WebForm
- 小熊派读取浊度、TDS、PH值和温湿度传感器的数据
- 【java毕业设计】智慧生活商城系统设计与实现源码(springboot+vue+mysql+说明文档+LW).zip
- 基于RBAC模型的权限控制的一整套基础开发平台,前后端分离,后端采用 django+django-rest-framework,前端采用 vue+ElementUI
- 扰动观测器(时域)-Matlab/Simulink开发