首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

各位老师,我的累加(1-99)在显示时有阴影,怎么消除?

各位老师,我的累加(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);       
        }


}
返回列表