首页 理论教育 单片机应用技术:LED循环点亮程序设计实例

单片机应用技术:LED循环点亮程序设计实例

时间:2023-10-17 理论教育 版权反馈
【摘要】:如电路原理图3.6所示,在单片机P2口外接8个发光二极管,试编写一个汇编程序,实现LED循环点亮功能:P1.0→P1.1→P1.2→…→P1.0的顺序无限循环。要求用软件延时方式控制闪烁时间间隔约为50ms。图3.6实例1电路原理图分析:由电路图可以看出二极管为低电平驱动,P1口的亮灯编码应能保证P1.0位输出低电平,其余位均为高电平,根据电路要求此编码初值应为0FEH,即D1为亮D2~D8皆为暗。如此反复进行便可实现题目要求的流水灯功能。

单片机应用技术:LED循环点亮程序设计实例

【例3.31】如电路原理图3.6所示,在单片机P2口外接8个发光二极管,试编写一个汇编程序,实现LED循环点亮功能:P1.0→P1.1→P1.2→…→P1.7→P1.6→P1.5…→P1.0的顺序无限循环。要求用软件延时方式控制闪烁时间间隔约为50ms。

图3.6 实例1电路原理图

分析:由电路图可以看出二极管为低电平驱动,P1口的亮灯编码应能保证P1.0位输出低电平,其余位均为高电平,根据电路要求此编码初值应为0FEH,即D1为亮D2~D8皆为暗。此后不断将亮灯编码值进行循环左移输出,亮灯位将随之由上向下变化;循环左移7次后改为循环右移,则亮灯位将随之由下向上变化。如此反复进行便可实现题目要求的流水灯功能。

参考程序如下:

ORG 30H

CYC1 EQU 200

CYC2 EQU 125

MOV A,#0FEH

MOV P1,A

MOV R2,#7

DOWN:RL A ;下行方向

ACALL DEL50

MOV P1,A

DJNZ R2,DOWN(www.xing528.com)

MOV R2,#7

UP:RR A ;上行方向

ACALL DEL50

MOV P1,A

DJNZ R2,UP

MOV R2,#7

SJMP DOWN

DEL50:MOV R7,#CYC1 ;延时50ms

DEL1:MOV R6,#CYC2

DJNZ R6,

DJMZ R7,DEL1

RET

END

由于本书侧重于用C51语言为单片机的应用系统进行编程,汇编语言的介绍仅希望大家能借助指令手册读懂汇编程序即可,因此汇编语言的编程实例这里只做简单介绍,更多的编程方法和实例将在第四章单片机的C51语言学习之后,再给大家以C语言的形式进行展现。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈