MCU如何用4个IO控制12个流水灯

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:29:38
RT. 12个流水灯控制为:类似拖影一样,第一个灯亮,然后第二个灯亮,然后一直到第四个灯亮,到第五个灯亮的时候第一个灯灭。然后第六个灯亮时,第二个灯再灭。。。如此一直到第十二个灯亮,再来就是第九个灯灭,第十个十一个十二个灯依次灭。这为一个周期。 I/O口就4个! 头大。。。。谢谢各位。
大哥,很感谢你,不过......我以为你用了12个IO口, = =|

类似贪吃蛇。
-------------------------------
12个LED,只用一个半IO接口即可,假设为P1和P2的半个口。

MOV P1, #0FFH ;开始时,灯全关
MOV P2, #0FFH

START:

MOV P1, #01111111B ;第一个灯亮
LCALL DELAY ;调用延时子程序

MOV P1, #00111111B ;第二个灯亮
LCALL DELAY ;调用延时子程序

MOV P1, #00011111B ;第三个灯亮
LCALL DELAY ;调用延时子程序

MOV P1, #00001111B ;第四个灯亮
LCALL DELAY ;调用延时子程序

MOV P1, #10000111B ;第五个灯亮,第一个灯灭
LCALL DELAY ;调用延时子程序

MOV P1, #11000011B ;第六个灯亮,第二个灯灭
LCALL DELAY ;调用延时子程序

MOV P1, #11100001B ;第七个灯亮,第三个灯灭
LCALL DELAY ;调用延时子程序

MOV P1, #11110000B ;第八个灯亮,第四个灯灭
LCALL DELAY ;调用延时子程序

MOV P1, #11111000B ;第五个灯灭
MOV P2, #01111111B ;第九个灯亮
LCALL DELAY ;调用延时子程序