各位老师,我的累加(1-99)在显示时有阴影,怎么消除?
时间:10-02
整理:3721RD
点击:
我的累加(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);
}
}
在显示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);
}
}
一般这个问题。调节下扫描延时
哦。谢谢你。我今天试一试
所谓消影就是在段的地方把段前辈给关了!
哥啊,扫描延时调 了也是不好用啊!