我的流水灯思路有问题吗?

问题遇到的现象和发生背景

题目要求通过嵌入汇编语言实现流水灯,我打算在delay函数中嵌入,我不明白我的思路对不对,编译通过了,但流水灯没有亮。


```c
#include 
void delay(void)
{
#pragma asm
    MOV R6,#23
    DELAY2:MOV R7,#191
    DELAY1:DJNZ R7,DELAY1
    DJNZ R6,DELAY2
    RET
#pragma endasm
}
void main()
{
    while(1)
    {
        P1=0xfe;//11111110
        delay();
        P1=0xfd;//1111 1101
        delay();
        P1=0xfb;//1011
        delay();    
        P1=0xf7;//0111
        delay();    
        P1=0xef;//1110 1111
        delay();    
        P1=0xdf;//1101 1111
        delay();
        P1=0xbf;//1011 1111
        delay();//0111 1111
        P1=0x7f;
        delay();        
    }
}

```

//你的思路没有问题,是你的延时程序太短了,可以百度一下人眼识别灯亮灭的间隔时间,我的建议是间隔时间做到150MS或以上。
//假设单片机晶振12MHZ,运行单周期指令需要1US。
//下面的DELAY程序,修改a<后面的数值可以调灯亮时间的长短。
void delay(void)
{
unsigned int a,b;
for(a = 0;a<150;a++)
for(b = 0;b<1000;b++);
}

不亮的原因:没有加入库文件C51S.lib