2 u014626563 u014626563 于 2014.04.23 20:15 提问

51单片机数码管动态显示的问题

我想比如在数码管输出5201314的话,采用动态刷新,用delay函数,但是现在发现一个问题,我把delay的时间设置的越短越不抖动,但为什么不加delay却显示不对了呢?我认为不加delay就是delay的时间无限短,那不应该显示的更清楚更不抖动么?好疑惑

#include
sbit duan=P2^6;
sbit wei=P2^7;
//#define a 200
void delay(unsigned int i)
{
while(--i);
}
void main()
{
while(1)
{
P0=0xfe;
wei=1;
wei=0;

    P0=0x6D;
    duan=1;
    duan=0;

    //delay(a);

    P0=0xfd;
    wei=1;
    wei=0;

    P0=0x5B;
    duan=1;
    duan=0;
    //delay(a);

    P0=0xfb;
    wei=1;
    wei=0;

    P0=0x3f;
    duan=1;
    duan=0;
    //delay(a);

    P0=0xf7;
    wei=1;
    wei=0;

    P0=0x06;
    duan=1;
    duan=0;
    //delay(a);

    P0=0xef;
    wei=1;
    wei=0;

    P0=0x4f;
    duan=1;
    duan=0;
    //delay(a);

    P0=0xdf;
    wei=1;
    wei=0;

    P0=0x06;
    duan=1;
    duan=0;
    //delay(a);

    P0=0xbf;
    wei=1;
    wei=0;

    P0=0x66;
    duan=1;
    duan=0;
    //delay(a);


}

}

Csdn user default icon
上传中...
上传图片
插入图片