Board logo

标题: 各位老师,我的累加(1-99)在显示时有阴影,怎么消除? [打印本页]

作者: reporter    时间: 2013-10-14 10:29     标题: 各位老师,我的累加(1-99)在显示时有阴影,怎么消除?

我的累加(1-99)在显示时有阴影,怎么消除?
在显示5时,你会看到9.
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dua=P2^2;
sbit wei=P2^3;
uchar bai,shi,ge,num,a;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void init()
{
        num=0;
        TMOD|=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
}
void timer0_plus() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        a++;
        if(a==20)
            {
        a=0;
                num++;
            if(num==100)
                {       
                        num=0;
                }
                bai=num/100;
                shi=num%100/10;
                ge=num%10;
                }
}
void delay(uint t)
{
        while(t--);
}
void display(uchar bai,uchar shi,uchar ge)
{
       
        if(bai!=0)
        {
        P0=0xfe;
        wei=1;
        wei=0;
    P0=table[bai];
    dua=1;
        dua=0;
        delay(2);
       
        }
       
        if(shi!=0)
        {
    P0=0xfd;
        wei=1;
        wei=0;
        P0=table[shi];
    dua=1;
        dua=0;
        delay(2);
}

        P0=0xfb;
        wei=1;
        wei=0;
    P0=table[ge];
    dua=1;
        dua=0;
        delay(2);
}

void main()
{
init();
while(1)
        {
                display(bai,shi,ge);       
        }


}




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0