单片机怎么写8路流水灯程序

要求1流到8后,8亮记起来,接着1亮到7,7亮起来,以此类推,谢谢
2024-12-31 16:28:10
推荐回答(2个)
回答1:

参考程序:           

                  ORG       0000H

                   LJMP       MAIN

                   ORG       0100H

MAIN:          MOV       R7,#8            ;设置外循环次数

                   MOV       R5,#0FFH

LL0:            MOV       A,R7

                   MOV       R6,A             ;设置内循环次数

                   MOV       A,#0FFH

                   CLR        C

LL1:          RLC        A

                   ANL         A,R5

                   MOV       P1,A

                   LCALL     YS20MS     ;流水间隔时间为20毫秒

                   DJNZ       R6,LL1

                   MOV       R5,P1

                   DJNZ       R7, LL0

LEND:         SJMP      LEND           ;循环结束后   暂停

 

YS20MS:     MOV      R4,#67         ;延时子程序

YSLL1:        MOV      R3,#200

YSLL2:       NOP

                   NOP

                   DJNZ      R3,YSLL2

                   DJNZ      R4,YSLL1

                   RET

 

        呵呵       也没有加分啊    就给选一个满意回答吧         

                   

回答2:

#include
void delay();
void main() // (主函数)
{
while(1) //循环标志
{
P1=0xef;
delay();
P1=0xdf;
delay();
P1=0xbf;
delay();
P1=0x7f;
delay();
P1=0xfe;
delay();
P1=0xfd;
delay();
P1=0xfb;
delay();
P1=0xff;
}
}
void delay() //延时子函数
{
int i,j;
for(i=100;i>0;i--)
for(j=100;j>0;j--);
}

这是16进制的,1到8盏的亮法,后面的你先想吧···