1 硬件设计
使用单片机系统实现8个LED灯花样流水控制,可以左右来回循环依次亮,也可以两灯并行左移然后右移(每次仅移1位)3个循环等。按照表8-3所示的元器件清单添加元器件,编辑完成后按照如图8-3所示的原理图连接硬件电路。
表8-3 元器件清单(花样流水灯)
图8-3 花样流水灯原理图
2 程序设计
ORG 0000H
ST:MOV R2,#8;闪亮8次设置
MOV A,#0AAH;闪亮初值
LPP:MOV P0,A;状态输出
LCALL DL;延时
CPL A;状态取反实现闪亮
DJNZ R2,LPP;闪亮8次控制
LCALL DL;延时
/******两灯并行左移后右移(每次仅移1位)3个循环******/
MOV R3,#3;左、右移3个循环设定
LRS:MOV R2,#7;两灯左移次数
MOV A,#0FCH;两灯左移初值
LCALL LLS;调用两灯左移子程序
MOV P0,#0FFH;全灭
LCALL DL
MOV R2,#7;两灯右移次数
MOV A,#03FH;两灯右移初值
LCALL RRS;调用两灯右移子程序
MOV P0,#0FFH;全灭
LCALL DL
DJNZ R3,LRS;两灯左右移3个循环控制
/*****从D1~D8逐个递亮******/
MOV R2,#8;递亮次数
MOV A,#0FEH;递亮初值
LCALL LLSS;调用递亮变换程序
MOV P0,#0FFH;递亮完后全灭
LCALL DL
/******从D8~D1灯逐个递亮******/
MOV R2,#8;递亮次数
MOV A,#07FH;递亮初值(www.xing528.com)
LCALL RRSS;调用递亮变换程序
MOV P0,#0FFH;递亮完后全灭
LCALL DL
SJMP ST
LLS:MOV P0,A
RL A
LCALL DL
DJNZ R2,LLS
RET
RRS:MOV P0,A
RR A
LCALL DL
DJNZ R2,RRS
RET
LLSS:MOV P0,A
RL A;状态位左移
DEC A;左移后减1
LCALL DL
DJNZ R2,LLSS
RET
RRSS:MOV P0,A
RR A;状态位右移
CLR C;清借位标志
SUBB A,#80H;清除D7位的“1”
LCALL DL
DJNZ R2,RRSS
RET
DL:MOV R7,#0
DL1:MOV R6,#0
DL2:MOV R5,#2
DJNZ R5,$
DJNZ R6,DL2
DJNZ R7,DL1
RET
END
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。