数码管动态扫描的延时时间设为多少人眼才不会感觉到闪烁,具体的延时函数怎么写。我这里没有用到锁存器。

2024-12-21 17:46:28
推荐回答(2个)
回答1:

人眼的视觉暂留时间大概在二十四分之一秒左右(所以一般电视电影至少是24帧以上,才会看起来是连续的动作),延时的时间设置小于40ms即可。延时太短会加重cpu的负担,所以具体数值要自己权衡。
写延时函数有两个方法:
1.如果有用到实时操作系统(RTOS),可以用OS的API,比如: sleep(20)
2.没有用RTOS时,一般用循环语句来实现延时。具体循环次数需要通过系统的主频来计算。代码例子(循环次数 100x500 = 50000次,延时时间=单次循环的时间 x 50000):
int i = 0, j = 0;
for(i = 0; i < 100; i++)
{
for(j = 0; j < 500; j++)
{
;
}
}

回答2:

每位显示的间隔不超过20 ms