四位七段数码管显示
数码管有位选和段选,想让数码管显示不同,只要段选不同就可以了,想一下就明白了
四个位码控制数码管亮灭,段码控制数字显示
是,他们是公用的(但是分时复用的),但他们有一个位选端啊,使能不同的位选,会在不同的时刻选通不同的数码管达到动态扫描的目的,也就是说数码管是一个个亮的,如果扫描频率足够快,人眼的暂留效应导致我们根本分辩不出来数码管是一个个亮还是一块亮,所以我们看起来就是全部都是亮着的! 希望我的解释小编能明白~
位选段选加锁存加人的视觉停留
扫描显示啊亲!
数码管动态扫描,由于人的视觉占留,数码管的扫描时间很短,说以看着是在显示不同的数给你看一段程序
void display(XS_num, time)
{
uchar shi;
shi=time/10;
if(shi!=0) //去掉十位零的显示
{
dual=1;
P0=table_num[shi];
dual=0;
P0=0xff;
weal=1;
P0=0xfb;
delay(1);
P0=0xff; //消影
weal=0;
}
dual=1;
P0=table_num[time%10];
dual=0;
P0=0xff;
weal=1;
P0=0xf7;
delay(1);
P0=0xff;
weal=0;
if(XS_num!=0)
{
dual=1;
P0=table_num[XS_num];
dual=0;
P0=0xff;
weal=1;
P0=0xfe;
delay(1);
P0=0xff;
weal=0;
}
}
非常感谢各位的帮助,现在明白了,扫描频率高于50HZ的话,就基本上是静止的了,其实它是动态扫描的
你自己去查查动态扫描的资料
请问,我自己焊的板子,是用两片74HC575驱动两个七段数码管的,然后焊接的时候把除了使能OE分开之外,其他的数据、时钟什么的那三个引脚焊在一起了,通过控制使能端来显示单片机上温度传感器采集的两位数的温度值,我需要怎么编程?我自己写的程序有错误,已经糊涂了,请帮帮忙,谢谢!
