DS18B20单片机温度测量与初始化程序详解

需积分: 10 6 下载量 76 浏览量 更新于2024-12-27 收藏 40KB DOC 举报
本资源是一份针对DS18B20单片机的汇编语言程序,主要应用于温度测量系统。DS18B20是一款数字温度传感器,该程序主要包括以下几个关键部分: 1. **标志位与寄存器地址**: - `FLAG1BITF0` 是DS18B20存在状态的标志位。 - `DQBITP1.7` 用于数据线通信,连接到单片机的P1.7引脚。 - `TEMPER_LEQU29H` 和 `TEMPER_HEQU28H` 可能是存储温度读取结果的低位和高位寄存器地址。 - `A_BITEQU35H` 和 `B_BITEQU36H` 可能是用于温度数据的一字节和两字节地址。 2. **程序流程**: - 程序从 `ORG0000H` 开始,通过 `AJMPMAIN` 跳转至主程序。 - 主程序 `MAIN` 包含初始化 (`LCALLINIT_18B20`)、可能的重新配置 (`LCALLRE_CONFIG`, 但此部分代码被注释掉了)和获取温度 (`LCALLGET_TEMPER`)。 - 初始化过程 `INIT_18B20` 用于设置DS18B20的通信参数,包括延时和标志位操作,确保设备就绪。 - `RE_CONFIG` 部分原本设计用于配置DS18B20的暂存器,如温度报警上下限和分辨率,但由于未实际执行,这部分代码也被注释掉。 - `GET_TEMPER` 函数用于触发温度转换,读取并处理转换后的数据。 3. **核心操作**: - 通过 `SETBDQ` 和 `CLRBQ` 操作控制数据线的输出和接收,以及通过 `MOVR0` 寄存器操作来实现延时。 - `LCALL` 命令调用子函数进行特定功能,如写入或读取DS18B20的寄存器。 - `JBFLAG1` (Jump if Bit 1 Set) 语句用于检测DS18B20是否存在,存在的情况下执行后续操作。 这个程序的主要目标是利用DS18B20进行温度测量,并可能设置报警阈值和配置分辨率。对于需要在嵌入式系统中集成温度监控应用的开发人员来说,这份代码提供了一个基本的框架,但实际应用时需要根据具体硬件环境和需求进行修改和优化。