键控流水灯仿真运行时LED都不亮

照搬了教材上键控流水灯的代码,仿真图也按照教材连接了,但是仿真运行时还是不亮,怎么按都没有反应,请大家帮帮我,以下是我的电路图和代码

img


```c
#include "reg51.h"
unsigned char led[]={0xfe,0xfd,0xfb,0xf7};
void delay(unsigned chartime)
{
    unsigned int j=15000;
    for(;time>0;time--)
        for(;j>0;j--);
}
void main()
{
    bit dir=0,run=0;
    char i;
    while(1)
    {
        switch(P0&0X0f)
        {
            case 0x0e:run=1;break;
            case 0x0d:run=0,dir=0;break;
            case 0x0b:dir=1;break;
            case 0x07:dir=0;break;
        }
        if(run)
            if(dir)
                for(i=0;i<=3;i++)
                {
                    P2=led[i];
                    delay(200);
                }
            else
                for(i=0;i>=0;i--)
                {
                    P2=led[i];
                    delay(200);
                }
            else P2=0xff;
    }
}

```


 
```c
#include "reg51.h"
unsigned char led[]={0xfe,0xfd,0xfb,0xf7};
void delay(unsigned chartime)
{
    unsigned int j=15000;
    for(;time>0;time--)
        for(;j>0;j--);
}
void main()
{
    bit dir=0,run=0;
    char i;
    while(1)
    {
        switch(P0&0X0f)
        {
            case 0x0e:run=1;break;
            case 0x0d:run=0,dir=0;break;
            case 0x0b:dir=1;break;
            case 0x07:dir=0;break;
        }
        if(run){
            if(dir){
                for(i=0;i<=3;i++)
                {
                    P2=led[i];
                    delay(200);
                }
            else
                for(i=0;i>=0;i--)
                {
                    P2=led[i];
                    delay(200);
                }
               }
             }
            else P2=0xff;
    }
}