为什么IO口的电平不会变化

img

img

#include<reg51.h>
void delay(unsigned char i)
{
    unsigned char j=0;
    while(i--)
    {
     for(j=0;j<500;j++);
    }
}
char r[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
char c[]={0x00,0x66,0xFF,0xFF,0xFF,0x7E,0x3C,0x18};
void matrix()
{
    unsigned char k=0;
    for(k=0;k<8;k++)
    {  
        P2=~r[k];
        P3=c[k];
        delay(5);
    }
}
void main()
{
    while(1)
    {
    matrix();
    }
}

是不是要把delay时间加大一点

io口配置上拉电阻试试看