若想写出自己可以定义时长的延时函数,需要重新生成一个1ms的延时函数并稍加修改。
STC-ISP生成的1ms的延时函数代码如下:
void Delay1ms(void) //@12.000MHz
{
unsigned char data i, j;
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
将上述代码改为可自定义的延时函数。
void Delay(unsigned int xms) //更改函数名,并定义一个入口参数xms
{
unsigned char data i, j;
while(xms--) //可以循环xms次
{
i = 2; //这部分代码的作用是延时1ms,写一个while循环让其重复执行即可实现延时
j = 239;
do
{
while (--j);
} while (--i);
}
}
这样修改之后,在调用上述延时函数时,即可达到自定义的目的。
Delay(100);//延时100ms
Delay(5000);//延时5000ms
[注意]有时候生成的延时函数中有 _nop_(); 这行代码,如果报错的话删掉即可。