51单片机DS18B20温度传感器汇编程序

需积分: 1 0 下载量 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通信非常有帮助,同时也展示了如何实现基本的温度传感器初始化和配置。