DS1820温度传感器的控制与错误处理汇编编程

需积分: 9 2 下载量 18 浏览量 更新于2024-11-26 收藏 29KB DOC 举报
本篇文档主要介绍了在使用DS1820温度传感器的汇编程序设计中,如何通过NS128B30握手协议实现温度读取并处理可能遇到的问题。首先,温度传感器DS1820是一种用于测量环境温度的器件,它的工作原理涉及到发送和接收特定命令以完成温度转换,并通过编程指令与单片机进行交互。 在编程流程中,程序首先设置定时器以触发读取操作。"GET_TEMPER"子程序中,程序初始化与DS1820的通信,通过定时入口SETBDQ,然后发送命令以启动温度转换。如果DS1820存在(检测到返回信号),则执行延迟并继续读取温度数据;否则,程序会返回到初始状态。 "READ_1820"和"WRITE_1820"函数分别负责向DS1820发送单个字节和两个字节的数据,其中"READ_18200"用于读取完整的温度值,将其高位和低位分别存储在特定地址。这些函数利用循环结构确保数据正确传输,包括清零寄存器、设置和清除定时器等步骤。 在实际应用中,需要特别注意的是,如果DS1820未正确连接或者出现故障,可能导致程序在等待返回信号时陷入死循环。为了避免这种情况,设计者必须在软件中加入错误处理机制,例如在GET_TEMPER中的S22和ABC标号处检查返回信号(通过FLAG1位的状态),如果没有接收到预期信号,程序可以采取适当措施,如重新尝试或者报告错误。 此外,由于涉及到的硬件配置,如晶振频率设置为12MHz,以及温度转换命令(如0BEH)和读取命令的编码,都显示了对底层硬件的理解和对通信协议的掌握。这篇文章详细介绍了如何在单片机环境下通过NS128B30握手协议正确地与DS1820通信,确保数据的准确读取和异常情况的处理。这对于编写高效稳定的测温程序至关重要。