单片机实验:LED闪烁程序设计与延时原理

需积分: 10 6 下载量 174 浏览量 更新于2024-07-28 收藏 2.21MB PDF 举报
"35个单片机实验实例" 在单片机的学习和实践中,实验是理解和掌握基础知识的重要途径。这个资源提供了35个不同的单片机实验实例,旨在帮助学习者深入理解单片机的工作原理及其应用。第一个实验是关于闪烁灯的实现,这是一个基础且经典的实验,它涵盖了单片机控制硬件的基本操作。 实验任务是通过单片机的P1.0端口连接一个发光二极管L1,让L1以0.2秒的周期进行亮灭交替。为了完成这一任务,首先需要了解电路原理,将单片机的P1.0端口与发光二极管模块的L1端口相连。 程序设计是实验的核心部分。在单片机中,由于指令执行速度非常快,直接使用指令往往无法达到所需的延时效果。因此,需要编写延时程序。在这个实验中,使用了一个基于12MHz石英晶体的定时方法。每个机器周期为1微秒,通过循环计数器R6和R7的配合,可以实现不同长度的延时。例如,当R6=20,R7=248时,延时10ms。根据实验需求,设置R5=20,R6=20,R7=248,即可达到200ms的延时,即0.2秒。 输出控制则涉及到对P1.0端口的高低电平控制。当P1.0为高电平时,二极管不亮;为低电平时,二极管发光。通过SETB和CLR指令,可以切换P1.0的电平状态,实现二极管的亮灭。 程序框图和汇编源代码进一步解释了如何实现这个过程。程序从ORG0开始执行,首先清除P1.0(CLRP1.0),调用延时子程序(LCALL DELAY),然后设置P1.0(SETBP1.0)并再次调用延时子程序,最后跳转回START,形成无限循环,保持灯的闪烁。 通过这样的实验,学习者不仅可以学习到单片机的硬件连接,还能掌握基本的延时算法、端口控制以及程序设计。这些基础实验对于进一步学习和理解单片机的复杂应用至关重要。