我拿共阴级的数码管来作例子
静态的,共阴极直接接地,用IO口接阳极驱动。好处是,编程简单,给IO口置个位,就不用管了。
但是,有没有感到很浪费MCU的IO口?有N个数码管就要占用N*8个IO。数码管一多,怕是再多的IO口都不够用。
当然,有一种办法可以解决,就是加锁存器,每个数码管配一个锁存器。增加的是硬件成本。
动态刷新的数码管,阳极一起接在8位并口总线上,阴极分别接位选IO。 N个数码管要占用8+N个IO口。和静态方式比,是不是省了许多IO?
但它的显示要麻烦得多,原理如下:
利用视觉暂留效果,一次只给一个数码管的阴极置低电平,只让这一个发光。
例如:D0置低电平,D1~D7高电平。最低位数码管发光。只让它亮很短的时间,例如:10mS。
然后D0置低,D1置0D2~D7置高,第二个点亮。持续10mS。
再D1置高D2置低……以此类推。
一般我们都是用定时器去刷新它们。
-----------------------------------------------------------------------
总结:当数码管少的时候,可以使用静态方式。编程简单,硬件上花费不大。
数码管多的时候必须使用动态显示,节省硬件成本。