51单片机驱动的温度控制系统仿真与控制代码

需积分: 10 4 下载量 60 浏览量 更新于2024-07-24 收藏 148KB DOC 举报
该资源是关于基于51单片机设计的温度控制系统,通过Proteus软件进行模拟和实现。系统的核心目标是通过编程控制单片机来监控和调节环境温度,确保其保持在设定的范围内。以下是详细介绍: 1. **硬件资源分配**: - 定义了多个存储器地址,如FLAG1、FLAG2、COUNT等,用于存放状态标志位和计数器值。 - 特殊功能寄存器如CSA、CSB、RSE、RWE、EE等,与DS18B20温度传感器通信的控制信号线分配。 - 命令字(COME)、显示数据(DATE)等寄存器,用于LCD12864液晶显示屏的数据传输。 - 多个列(column)和页(page)寄存器,用于多行显示数据的管理。 2. **程序流程**: - **主程序**:从0x0000H地址开始执行,首先跳转至START,初始化堆栈指针、P2口和寄存器,清零按键状态,设置中断次数,并开启LCD12864的初始化子程序。 - **中断处理**:外部中断INT0发生时,执行LCALL子程序,包括清屏、显示温度控制系统的提示信息,以及获取和显示当前温度。 - **控制循环**:在主循环中,持续读取温度并调用显示子程序,如果检测到设置键被按下,进入设置温度的处理逻辑;如果确认键被按下,将进行相应操作,如对比预设和实际温度等。 3. **关键功能模块**: - **温度读取**:通过LCALLGET_TEMPER子程序,单片机从DS18B20传感器获取实时温度数据。 - **显示控制**:通过LCALLDISPLAY系列子程序,将温度值以及其他状态信息显示在LCD12864上,便于用户观察和操作。 - **按键处理**:通过检查特定按键状态,实现设置和确认操作,例如改变预设温度或确认当前温度设置。 4. **软件接口**: - 子程序如LCALLDISPLAY1-5负责不同类型的信息显示,展示了清晰的用户界面设计,增强了系统的易用性。 - ACALLDISPLAY5可能涉及子程序间的调用,以便动态更新显示内容。 该资源提供了基于51单片机的温度控制系统设计,结合硬件资源分配和软件编程逻辑,实现了温度的实时监测和控制,以及用户交互功能,适合于学习单片机应用及嵌入式系统开发。