74hc573驱动数码管显示的问题,求教高手,

我用74hc573驱动5个数码管显示,voidAD_date(ulongADdate){uchari;buf_nb[0]=(ADdate/10000)%10;buf_nb... 我用74hc573驱动5个数码管显示,
void AD_date(ulong ADdate)
{
uchar i;
buf_nb[0]=(ADdate/10000)%10;
buf_nb[1]=(ADdate/1000)%10;
buf_nb[2]=(ADdate/100)%10;
buf_nb[3]=(ADdate/10)%10;
buf_nb[4]=ADdate%10;
//buf_nb[3]=buf_nb[3]+24;
if(buf_nb[0]==0)
{
buf_nb[0]=23;
if(buf_nb[1]==0)
{
buf_nb[1]=23;
if(buf_nb[2]==0)
{
buf_nb[2]=23;
if(buf_nb[3]==0)
buf_nb[3]=23;
}
}
}
if((fuhao==1)&&(ADdate!=0))
{
if(buf_nb[3]==23)
buf_nb[3]=22;
else if(buf_nb[2]==23)
buf_nb[2]=22;
else if(buf_nb[1]==23)
buf_nb[1]=22;
else if(buf_nb[0]==23)
buf_nb[0]=22;
}
for(i=0;i<5;i++)
disbuf[i]=buf_nb[i];
}
void display()
{
uchar x;
for(x=0;x<5;x++)
{
dula=1;
coner=disbuf[x];
coner=table[coner];
P0=coner;
dula=0;
P0=0x00;
wela=1;
P0=tablewe[x];
wela=0;
P0=0xff;
delay(1);
}
}
void main()
{
//fuhao=1;
init();
while(1)
{
AD_date(ADdate);
display();
}
}
void timer0() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65536-50000)%256;
temp++;
if(temp==20)
{
temp=0;
ADdate++;
}
}
功能都正常,就是显示的时候有影子,比如显示10,百位上就有个很暗的和十位上的数一样的数在动,我加了消影了,还是这样,这是怎么回事呢,烦请那位高手指点指点!

还有那位有我这种接法的573的静态扫描的帮我发一个在这里谢谢了,能用的话还会加分!!!!375223692@qq.com
展开
 我来答
做而论道
高能答主

推荐于2016-01-07 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
试试看:
void display()
{
uchar x;
for(x = 0; x < 5; x++) {

wela=1;
P0 = 0; //关闭所有的位,才能消隐.
// P0 = 255; //0、255,根据你的电路,只能选用其中一种.
wela=0;

dula = 1;
P0 = table[disbuf[x]];
dula = 0;

wela=1;
P0 = tablewe[x];
wela=0;

delay(1);
}
}
更多追问追答
追问
谢谢你的指导,我根据你说的改了一下,影子是没了,正常了可是现实的亮度不一样了,最低位很亮,其余几位亮度都是一样的,为什么会这样呢?  修改过的程序
void display()
{
uchar x;
for(x=0;x<5;x++)
{
wela=1;
P0=0;
wela=0;
dula=1;
coner=disbuf[x];
coner=table[coner];
P0=coner;
dula=0;
P0=0x00;
wela=1;
P0=tablewe[x];
wela=0;
//P0=0xff;
delay(1);
}
}
追答
这回差不多了:

for(x=0;x<5;x++)
{
coner=disbuf[x];
coner=table[coner];

dula=1;
P0=coner;
dula=0;

wela=1;
P0=tablewe[x];
wela=0;

delay(1);

wela=1;
P0=0;
wela=0;
}
pctops
2011-10-29 · TA获得超过935个赞
知道小有建树答主
回答量:1154
采纳率:50%
帮助的人:434万
展开全部
我用595,可以驱动很多数码管。看你电路图,应该是动态扫描。
追问
是动态扫描的,显示功能正常,就是有影子, 
我想用573写个静态的,写出来,5个数码管为什么一起变化,,,,
追答
因为你的电路是动态解法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式