51单片机驱动的电子万年历:子程序设计与DS18B20温度控制

需积分: 50 13 下载量 147 浏览量 更新于2024-08-10 收藏 590KB PDF 举报
在"子程序的设计-交流电机数字控制系统最新第三版"这篇文章中,主要探讨了如何在基于51单片机的电子万年历设计中运用子程序来实现特定功能。文章的核心内容集中在3.2节的子程序设计部分,特别是针对DS18B20温度子程序的实现。 DS18B20是一个数字温度传感器,其子程序设计的关键步骤包括配置通信寄存器(如CONFIG12),读取温度数据(通过LCALL RDTEMP)以及处理数据(如计算平均值、校准等)。例如,子程序LCALL WRITE111用于数据通信,LCALL DL1MS可能涉及定时器操作,而LCALL ERAD111则可能是错误检测或数据解析的部分。子程序中的MOV、ANL、ORL和SETB等指令展示了如何使用位操作来处理数据和控制输出。 温度子程序的流程包括读取温度(TEMPL和TEMPH),处理后的数据存储,以及与显示设备如DAT引脚的交互,确保温度信息能够正确显示在LED上。此外,子程序如CHUSHI和ERAD111可能是循环执行或错误处理的代码块,而LCALL RESET用于复位系统状态。 设计者强调了理论知识和实践经验的重要性,因为单片机编程不仅需要硬件选择(如AT89C52单片机,考虑到其低功耗和工作电压范围)、LED显示电路(7SEG-MPX8-CA和7SEG-MPX4-CA)以及按键控制电路的设置,还需要熟练掌握汇编语言来编写高效、稳定的程序。在整个设计过程中,作者经历了从知识准备到实际编程的挑战,最终在老师的指导和同学的帮助下成功完成了万年历的硬件和软件设计。 关键词如"时钟电钟"、"DS1302"(一个常用的实时时钟芯片)、"DS18B20"(温度传感器)、"动态扫描"(可能指LED的显示方式)、以及"单片机"等,表明了设计中的关键技术元素和实现手段。通过这些子程序的设计,作者不仅实现了电子万年历的基本功能,还具备了对温度数据的实时监测,提高了系统的实用性和智能化水平。