1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 单片机c语言延时方法总结(让你的程序更加精准高效) – 网络

单片机c语言延时方法总结(让你的程序更加精准高效) – 网络

时间:2019-11-30 05:58:34

相关推荐

单片机c语言延时方法总结(让你的程序更加精准高效) – 网络

1. 软件延时

软件延时是一种常见的延时方式,它的原理是通过循环等待来实现延时。以下代码可以实现1秒钟的延时

signedttt为延时时间

{signedt i;t–)

{

i = 12000;

while(i–);

}

在这个函数中,大家使用了两个嵌套的while循环,内层循环的次数可以根据实际情况进行调整。这种延时方式虽然简单,但是效率比较低,因为循环等待期间CPU资源被浪费了。

2. 硬件延时

硬件延时是指利用单片机内部的定时器来实现延时。这种方式的好处是可以避免CPU资源的浪费,提高程序的效率。以下代码可以实现1秒钟的延时

signedttt为延时时间

TMOD = 0x01; // 设置定时器0为模式1

TH0 = (65535 – 12000) / 256; // 设置定时器0的计数初值

TL0 = (65535 – 12000) % 256;

TR0 = 1; // 启动定时器0t–)

{

while(!TF0); // 等待定时器0溢出

TF0 = 0; // 清除定时器0溢出标志

TH0 = (65535 – 12000) / 256; // 重新设置定时器0的计数初值

TL0 = (65535 – 12000) % 256;

}

TR0 = 0; // 停止定时器0

在这个函数中,大家使用了定时器0来实现延时,定时器0的时钟源为晶振频率,通过设置TH0和TL0寄存器来设置定时器0的计数初值。当定时器0溢出时,会产生中断,大家可以利用这个中断来实现延时。

3. 晶振延时

晶振延时是一种简单而又高效的延时方式,它的原理是利用晶振的振荡周期来实现延时。以下代码可以实现1秒钟的延时

signedttt为延时时间

{signedt i;t–)

{

for(i = 0; i< 12000; i++) // 延时1秒钟

{op_();

}

}

op_()函数来消耗CPU时间,从而实现延时。

综上所述,单片机c语言延时技巧有很多种,大家可以根据实际需求来选择合适的延时方式。但是需要注意的是,延时过长会影响程序的响应速度,延时过短会导致程序出错,因此需要根据实际情况进行调整。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。