数码管的动态显示中这段代码的作用DataPort=WM[i]; LATCH2=1; LATCH2=0; DataPort=ziMa[i]; LATCH1=1; LATCH1=0; Delay(20); i++; if(8==i)i=0; } if(key==0) { DataPort=WM[i]; LATCH2=1; LATCH2=0; DataPort=DuanMa[i]; LATCH1=1; LATCH1=0; Delay(20); i++; if(8==i)i=0; } } }
时间: 2023-10-23 15:08:39 浏览: 177
数码管动态显示
5星 · 资源好评率100%
这段代码是数码管动态显示的核心代码,主要实现了按照固定的时间间隔,依次在数码管的不同位上显示不同数字或字符。
具体实现过程如下:
1. 首先通过DataPort口输出WM[i],即指定数码管的位码,然后将LATCH2置为1,再将LATCH2置为0,以产生锁存时序信号,控制锁存器将DataPort口上的数据锁存。
2. 然后通过DataPort口输出ziMa[i],即指定数码管的字码,再将LATCH1置为1,再将LATCH1置为0,以产生锁存时序信号,控制锁存器将DataPort口上的数据锁存。
3. 延时20ms,以便数码管有足够的时间完成显示。
4. i自增1,如果i已经等于8,则将i重新赋值为0。这里i的作用是控制数码管显示的位数,通过不断地改变i的值,实现在数码管不同的位上依次显示数字或字符。
5. 如果key==0,即按键未被按下,则执行与上述步骤类似的操作,不同之处在于通过DataPort口输出DuanMa[i],即指定数码管的段码,以实现在数码管不同的段上显示不同的数字或字符。
6. 循环执行以上步骤,实现数码管的动态显示。
需要注意的是,数码管的显示是依赖于PWM[i]、ziMa[i]和DuanMa[i]这三个数组的值的,这三个数组分别存放了数码管的位码、字码和段码。因此,在使用这段代码时,需要根据具体的需求修改这三个数组的值,以实现不同的显示效果。
阅读全文