下面这个延迟时间怎么算的:
void delay()
{
unsigned int i,j;
for(i=100;i>0;i--)
for(j=500;j>0;j--);
}
告诉你三个方法来计算此延时周期:
1、根据单片机的机器周期来计算,首先要知道单片机执行一条指令用时多少?然后确定这个双循环函数用了多少个机器周期,空等待用了多少个周期,这个不同的单片机是不一样的,如何测算机器周期呢:在开发环境里面,编译代码,会出现对应这些C语言的汇编语言,汇编语言执行每个命令有多少周期都是能查到的,你根据汇编语言就能算出要多少个机器周期了,这样就能知道延时函数的时间了!这个方法比较麻烦,也比较准确!
2、采用软件仿真的方法来计算:在开发环境下,加载这个延时代码,在语句前后插入断点,然后就能看到不同的运行时间,两者的差值就是延时时间了,这个方法简单易用,有误差!
3、这个要借助示波器来实现了:在代码中,实现一个端口电平的翻转,然后加入这个代码的延时时间,用示波器测量高低电平的宽度,就是延时时间,这个精确度也很好,有示波器才能用!