C51语言模块之延时
模块化的原因有:为了需要使用时得心应手,而不必再花太多时间去琢磨;为了使程序一目了然,既方便编程人员也方便学习的人员。
以下便是常用的延时模块:
1.不定短暂延时模块
void delay( unsigned int i )
{
while ( i -- );
}
应用:使用于不要求准确延时的场合,例如数码管动态扫描中,每个管点亮的时间间隔可用此模块,避免显示的重影。总之这种延时都可为了避免数据寄存器的存取延迟导致错误。
2.不精确短暂延时模块
void delay1ms( unsigned int i )
{
unsigned int j,k;
for ( j = 0;j < i;i ++ )
for ( k = 0;k <120;k ++ );
}
应用:此模块可延时 i *1ms,延时的长短决定于输入的实参。一般用于不需要太精确的系统但又希望知道延时的时间的场合。
3.不精确较长延时模块
void delay10ms(unsigned int count)
{
unsigned int i,j,k;
for(i = 0;i < count;i ++)
for(j = 0;j < 10;j ++)
for(k = 0;k < 120;k ++);
}
说明:该模块延时count * 10ms,需要时可输入实参。
PS:由于本人水平所限,总结的东西有所错漏在所难免,敬请指出其中不足,共同学习,共同进步,谢谢!