void delay(unsigned int time) // time代表需要延时的毫秒数
{
unsigned int j=0;
for(;time>0;time--)
for(j=0;j<125;j++);
}
解析:
假设单片机的工作频率为125kHz,那么每个循环的时间为1/125000秒,即0.000008秒。因此,为了实现1ms的延时效果,需要执行125次循环,即125 * 0.000008秒。将0.001秒转换为毫秒,得到1ms,因此125 * 0.000008秒=0.001秒,即每个循环需要执行0.000008秒,需要执行125次循环才能实现1ms的延时效果。
下面讲解如何使用isp自动生成延时程序
软件 STC 官网 >> 点击跳转
打开后选择菜单上面的软件延时计算器
可以生成C语言的,还可以生成汇编的
可以优化成延时函数的:
#include <intrins.h>
void Delayms(unsigned int ms) //@11.0592MHz
{
unsigned char i, j;
while (ms--)
{
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
这样可以调用了文章来源:https://www.toymoban.com/news/detail-735742.html
挺方便的文章来源地址https://www.toymoban.com/news/detail-735742.html
到了这里,关于单片机c51延时函数解析(isp自动生成)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!