DS18B20温度控制及数码管显示汇编教程

版权申诉
0 下载量 183 浏览量 更新于2024-06-25 收藏 561KB PDF 举报
"该文件是关于使用汇编语言控制DS18B20温度传感器,并显示在数码管上的详细教程。文件中包含了程序代码和操作流程,涉及到了温度报警值设定、按键操作以及中断服务子程序等内容。" 这篇文章详细阐述了如何使用汇编语言来实现DS18B20温度传感器的控制以及数码管显示。DS18B20是一种单线数字温度传感器,它能够直接输出数字信号,简化了温度测量系统的硬件设计。在文档中,可以看到以下几个关键知识点: 1. **DS18B20的工作原理**: - DS18B20通过单总线通信,仅需一个数据线即可实现与微控制器的双向通信,减少了硬件接口的复杂性。 - 温度测量范围通常为-55°C到+125°C,具有较高的精度。 2. **温度报警值设定**: - 文档中提到了设定温度报警值的过程,通过P1.6口进入设定状态,可以设置低限报警值TL(例如20°C)和高限报警值TH(例如28°C)。 3. **按键操作**: - 用户可以通过P1.4(加键UP)和P1.5(减键DOWN)快速调整设定的温度值,实现温度报警范围的设置。 4. **中断服务子程序**: - 使用TMOD寄存器配置定时器T0工作在方式1,用于定时50ms。 - 定时器中断计数器TMER_COUN用于跟踪中断次数,可能用于数码管的扫描或更新显示。 - 中断向量INT_T0处理温度读取和数码管显示的更新。 5. **程序结构**: - 主程序`MAIN`初始化堆栈指针SP,设置T0工作模式,预设定时器初值,开启中断,并进行DS18B20的复位与检测。 - 如果检测到DS18B20存在,则进入温度显示和控制流程;否则,会发出报警并重新检测。 6. **变量定义**: - 诸如TIMER_LDATA、TIMER_HDATA等变量用于存储定时器的低8位和高8位数据。 - TEMPLDATA和TEMPHDATA存储当前温度的低8位和高8位,TEMP_THDATA和TEMP_TLDATA则用于报警阈值。 - 通过标志变量FLAG1和FLAG2判断DS18B20的状态。 7. **其他硬件控制**: - BEEP、DATA_LINE和RELAY分别对应蜂鸣器、数据线和继电器的控制,用于报警、数据通信和实际的温度控制。 - K1-K4是用户按键的定义,用于用户交互。 这个文档是学习如何用汇编语言实现温度控制和显示的宝贵资料,涵盖了从硬件接口到软件编程的各个环节,对于想要深入理解嵌入式系统和微控制器应用的读者极具价值。