在单片机(如51系列)中,没有提供直接的延时函数。但我们可以通过循环来实现延时。下面是一个简单的实现延时100毫秒的示例代码:

void Delay_100ms()  // 延时100毫秒
{
    unsigned char i, j;

    for (i = 0; i < 20; i++)  // 外循环延时约1毫秒
    {
        for (j = 0; j < 115; j++)  // 内循环延时约5微秒
        {
            // 空操作
        }
    }
}

int main()
{
    // 程序的其他部分

    while (1)
    {
        // 循环执行的代码

        Delay_100ms();  // 延时100毫秒
    }

    return 0;
}

上述代码中,Delay_100ms() 函数通过嵌套的循环来实现延时。外层循环执行20次,每次循环大约延时1毫秒;内层循环执行115次,每次循环大约延时5微秒。这样,20次外层循环的总延时约为100毫秒。在 main() 函数中,我们可以通过调用 Delay_100ms() 函数来实现需要的延时。

需要注意的是,延时函数的延时时间是近似的,因为实际的延时时间会受到单片机的主频和其他因素的影响。如果需要更精确的延时,可以使用定时器来实现。

单片机C语言延时100毫秒实现方法 - 51系列示例代码

原文地址: https://www.cveoy.top/t/topic/pgTE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录