我的板子是89C52的,有2个74HC573,他们的输入端都通过P0口与单片机相连,有8位共阴数码管,如何 动态显示

我想让第一位数码管先显示1-9的数字,当第一位显示到9时,就让第二显示1并保持住不变,第一位再从1显示到9,当第一位又显示到9时,再让第二位显示2并保持住不变;以此使8位数码管均能动态的显示1-9。请问如何操作?是不是需要用到定时器/计数器?或是需要把位选与段选分别赋于单片机不同的IO口?

需要用到定时器相当于计数,到9进一位;可以参考一下这个程序具体得看你的硬件电路连接了void init1()
{
TMOD=0x01; //定时器工作在方式1
ET0=1;
EA=1;
TH0=(65536-50000)/256; //对TH0 TL0赋值
TL0=(65536-50000)%256; //使定时器0.05秒中断一次
TR0=1;
}
void main()
{
init1();
init2();
miao=read_add(2);
fen=read_add(3);
shi=read_add(4);
while(1)
{
display(miao,fen,shi);
keyscan();
if(write1==1)
write_add(2,miao);
//delayms(50);
write_add(3,fen);
//delayms(50);
write_add(4,shi);
//delayms(50);
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==20)
{
//write1=1;
count=0;
if(miao==59)
{
miao=0;
fen++;
if(fen==59)
{
fen=0;
shi++;
if(shi==23)
{
shi=0;
}
}
}
write1=1;
miao++;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-24
74HC573锁存器用于单片机只要先写一,读入数据之后马上写0.具体怎么动态这个是集成块的功能
相似回答
大家正在搜