DS18B20温度传感器汇编程序实现

需积分: 9 3 下载量 86 浏览量 更新于2024-09-19 收藏 53KB DOC 举报
"这篇文档是关于DS18B20温度传感器的汇编语言程序设计,主要用于实现温度的检测和显示。程序包含了初始化、读写操作、数据转换以及LED显示和键盘控制的相关功能。" 在电子工程和嵌入式系统领域,DS18B20是一种常用的数字温度传感器,它能够提供精确的温度测量并直接输出数字信号。以下将详细解释该程序的关键部分: 1. **初始化程序(INIT_1820)**:这是DS18B20传感器的初始化过程,通常包括设置数据线(DQ)的状态,确保与传感器的通信链路建立。此过程可能涉及到复位序列和配置寄存器的设置。 2. **读取温度值(GET_TEMPER)**:这部分代码首先设置定时入口,然后通过发送特定命令(如0CCH用于跳过ROM匹配,44H用于启动温度转换)来触发DS18B20进行温度测量。在等待一定延迟后,再发送命令读取温度数据。数据读取过程使用了中断和循环等待的方式,确保数据稳定可靠。 3. **写入命令(WRITE_1820)**:该子程序用于向DS18B20发送控制命令,例如设置工作模式、配置寄存器等。通过循环移位和DQ线状态的控制完成数据的串行写入。 4. **读取数据(READ_1820)**:读取DS18B20返回的温度数据,使用了一种称为“单线协议”的通信方式,逐位接收数据并存储。通过循环和移位操作将接收到的8位数据还原为原始值。 5. **数据转换(TEMPER_COV)**:读取到的原始数据通常是二进制补码形式,需要进行转换才能得到实际的温度值。这个过程可能包括数据的位移、符号判断、温度单位转换等步骤。 6. **显示子程序(DISPLAY)**:处理转换后的温度值,并将其显示在LED显示器上。可能涉及数值的BCD(二进制编码的十进制)转换和LED驱动控制。 7. **延迟函数(DELAY and DELAY1)**:在与DS18B20的通信中,往往需要等待一定时间以确保操作的正确性。这些延迟函数通常由循环结构实现,以满足不同的延时需求。 8. **标志位(FLAG1)**:用于检测通信状态或中断,当操作完成或出现错误时,该标志位会进行相应设置。 9. **键盘控制**:虽然在给出的部分中没有详细描述,但根据描述,程序还包含键盘控制功能,可能用于用户交互,如启动温度测量、设置参数等。 整体来看,这个汇编程序提供了一个完整的DS18B20温度传感器系统,包括硬件初始化、数据采集、转换和显示。这种程序设计对于理解DS18B20的工作原理和嵌入式系统编程具有很高的参考价值。