两片移位寄存器控制数码管的消影问题.

移位寄存器是74HC595,数码管进行动态扫描时显示不清晰,如何编写程序进行消影。

我也曾经碰到过,那是因为:输出锁存时钟没有拉低,导致不停的输出数据,所以有重影!下面我是写的一个子函数,供参考:
void hc595_dat(uc dat)
{
uc j,biti;
for(j=0;j<8;j++)
{
biti=(dat<<j)&0x80;//PB5输入数据
if(biti==0) PORTB&=~BIT(PB5);
if(biti==0x80) PORTB|=BIT(PB5);
PORTB&=~BIT(PB7);//制造移位时钟
delayus(1);
PORTB|=BIT(PB7);
}
PORTB&=~BIT(PB4);//制造输出时钟
delayus(1);
PORTB|=BIT(PB4);
delayus(1);//最后必须将输出锁存端拉低
PORTB&=~BIT(PB4);//否则将不停输出,出现重影
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-04
注意程序的延时就行了,一般的话只要延时恰当了就没有追问

不是啊,我觉得是移位寄存器的问题,段选显示时,位选码进入导致显示不清楚的.所以是编程的问题.

追答

如果是你说的那样的话,不是有影,而是显示的乱七八糟的

相似回答