void delayms(unsigned char x) //0.14mS延时程序
{
unsigned char i; //定义临时变量
while(x--) //延时时间循环
{
for (i = 0; i<13; i++) {} //14mS延时
}
}
void Delay1ms(unsigned int i)
{
unsigned char j,k;
do{
j = 10;
do{
k = 50;
do{
_nop_();
}while(--k);
}while(--j);
}while(--i);
}
void Delay() //定义延时子程序
{ uint DelayTime=30000; //定义延时时间变量
while(DelayTime--); //开始进行延时循环
return; //子程序返回
}
在提供的代码中,定义了三个延时函数:`delayms`、`Delay1ms` 和 `Delay`。这些函数用于在程序中实现时间延迟的功能。
1. `delayms(unsigned char x)` 是一个用于产生短暂延时的函数。它的参数 `x` 表示延时的时间,单位为毫秒。函数通过在循环中执行空操作来实现延时。具体地,循环体中的 `for` 循环执行13次,每次都没有实际操作,从而达到一定的延时。整个函数被循环执行 `x` 次,实现总体的延时效果。
2. `Delay1ms(unsigned int i)` 是一个用于产生较长延时的函数。它的参数 `i` 表示延时的时间,单位为毫秒。函数主要采用嵌套循环的方式来实现延时,通过嵌套的 `do-while` 循环,控制不同的计数器来实现精确的延时效果。
3. `Delay()` 是一个定义了固定延时时间的子程序。在函数内部定义了一个 `uint` 类型的变量 `DelayTime`,用于表示延时的时间。函数通过一个循环,不断减小 `DelayTime` 的值,从而达到一定的延时效果。
需要根据具体的应用场景和需求来选择合适的延时函数,并根据需要进行相应的调整和使用。