单片机实验:LED闪烁0.2秒间隔

需积分: 10 1 下载量 187 浏览量 更新于2024-07-24 收藏 2.21MB PDF 举报
"35个单片机实验实例" 在单片机的学习和实践中,实验是理解和掌握技术的关键步骤。这个资料提供了35个不同的单片机实验实例,旨在帮助学习者深入理解单片机的工作原理及其应用。首个实验是关于制作一个简单的闪烁灯,这个实验不仅介绍了基本的硬件连接,还涉及到了程序设计和延时程序的实现。 1. 闪烁灯实验 - 实验目标是通过单片机的P1.0端口控制发光二极管L1以0.2秒的周期交替亮灭。这需要精确的延时控制,因为单片机的指令执行速度非常快,需要通过延时程序来达到所需的时间间隔。 2. 电路原理 - 在实验中,P1.0端口与发光二极管L1相连,当P1.0输出高电平时,二极管不亮;输出低电平时,二极管点亮。因此,通过改变P1.0的电平状态,就能控制二极管的亮灭。 3. 延时程序设计 - 延时程序通常采用循环结构,通过计数器的递减来实现。在这个例子中,使用了R6和R7寄存器进行双重循环,基于12MHz的晶振计算出每个机器周期的时间,然后通过设定计数器的初始值来达到所需的延时时间。例如,当R6=20, R7=248时,总延时为10ms,进而可以通过调整R5的值达到200ms(即0.2秒)的延时。 4. 输出控制 - 输出控制是通过P1.0端口的高低电平变化来实现的。SETB指令用于将P1.0置位(输出高电平),而CLR指令则用于清零(输出低电平),从而控制二极管的亮灭状态。 5. 程序框图与源程序 - 程序框图和源代码显示了整个程序的流程。程序从START开始,首先清零P1.0,然后调用DELAY子程序延迟0.2秒,接着设置P1.0为高电平,再次调用DELAY,然后跳转回START,形成无限循环,使得二极管持续闪烁。 6. 汇编语言 - 源程序采用汇编语言编写,这是一种低级编程语言,直接对应于单片机的机器指令。程序中包含了延时子程序DELAY以及主程序中的开关操作指令。 通过这样的实验,学习者可以了解单片机控制硬件的基本方法,掌握延时程序设计技巧,并对单片机的输出控制有更直观的理解。这些基础实验对于后续更复杂的项目开发是非常重要的。