发布网友 发布时间:2022-04-23 21:38
共1个回答
热心网友 时间:2023-10-10 15:27
关于数码管的显示,是显示完一个位的是数字后,在显示下一个位时要先把上一个位显示彻底关闭掉,通常可以是把全部数码管位全部显示为空的状态,谈后在开下一个位的显示(有延时),这样在开下一个位的锁存时上一个位的数据就不会跑到该位显示,不然会在下一位显示时会与上一个位的数字出现重影现象。。。
还有对于数码管的显示,最好是一次性显示完全部数码管,还没有得位就显示0ff(要记得初始化你的数组)。我个人不建议你这种显示按位数变化方式。。。
for(i=0;i<j;i=i+1)
//每次都显示完8个数码管比较好。。。
{
/*
在此增加把所有数码管显示为0FF状态,全部位都打开显示
*/
display=weima_table[i];
//数码管需要显示的位
weima_latch=1;
//锁存器(位码)打开
weima_latch=0;
//锁存器(位码)关闭
display=cunchudisplay[i];
//数码管需要显示的段
anma_latch=1;
//锁存器(段码)打开
anma_latch=0;
//锁存器(段码)关闭
Delay(100);
}
判断归零一个变量,最好紧跟在修改该值的后面,不用放在主循环里每次循环都要判断,虽然你那没多大问题但可读性不够好。。。
j=j+1;
if(j==8)
{j=0;}