动态扫描,是用比较快的速度依次点亮需要点亮的笔划。
你这里需要的是半秒一个逐步提升位数的显示效果,这个不是动态扫描。
比较清晰的动态扫描驱动思路,一般是放在某个固定的时钟中断里面,根据时钟计数,取对应缓冲区,输出到段扫描和位扫描。
需要实现0.5秒显示效果的,你只是需要在缓冲区,按照0.5秒的节奏,改写要点亮或者熄灭的段位就成。
比如我需要显示数据是4位,8段,则正好一个8位4字节数组,作显示缓冲。
对应的组成成员按照LED顺位排列,数组【0】=第一位LED,如果里面是1111111,则显示一个8+。当全部为0则熄灭。
而动态扫描,则根据时钟计数,是第一位显示的,则位扫描值就是0,再根据笔划扫描时钟,读取位显示缓冲,直接按位输出就行了。
|