用C语言编写一段循环100次的延时程序。

用C语言编写一段循环100次的延时程序。,第1张

 #include <stdio.h>

int main()

{    

    int i

    for(i=0i<100i++)   羡慧 

    return 0

}

哈 你想多了把

额,你如果是说sleep那种形式的延时,可以在头上加#include <windows.h>

然后

#include <stdio.h>

#include <windows.h>

int main()

{    

    int i,a=(1000)

    for(i=0i<100i++)

    {

        sleep(a)

    }

    return 0

}

想看一下延时效果的话,可以这样:

#include <stdio.h>

#include <windows.h>

int main()

{    

    int i,a=(1000)

    for(i=0i<100i++)

    {

    清派绝  答姿  sleep(a)

        printf("%d\n",i)

    }

    return 0

}

延时方法很多,用定时/计数比较方便也比较精确。如果用软件延时,则可以用循环(多重、嵌套都行)。根据时间长短确定循环次数,力求精确。时间计算以机器的晶振频率为基准,算出各指令的运行时间(每条指令运行时间乘所循环的次数就是该指令的全部运行时间),所有指令运行时间的和就是延时的时间。

比如:设晶振频率为薯丛12MHz 则每机器周期为1us

513us延时程序为

DL513: MOV R7,#0FFH ;1us

DJNZ R7,$;2us *255=510us

RET ;2us

延时时间为1+510+2=513us

延时时间较长则可以用多重循环(以四重枯或循环为例),如:

KKKK0:MOV R2,#XX ;1us

KKKK1:MOV R3,#LL ;1us*XX

KKKK2:MOV R4,#NN ;没手伍1us*XX*LL

KKKK3:MOV R5,#MM ;1us*XX*LL*NN

DJNZ R5,$ ;2us *XX*LL*NN*MM

DJNZ R4,KKKK3 ;2us *XX*LL*NN

DJNZ R3,KKKK2 ;2us *XX*LL

DJNZ R2,KKKK1 ;2us *XX

RET ;2us

延时时间为1us+1us*XX+1us*XX*LL+1us*XX*LL*NN+2us *XX*LL*NN*MM+2us *XX*LL*NN+2us *XX*LL+2us *XX+2us

适当确定四个循环次数XX、LL、NN、MM就能得到准确的延时时间。

一条条指令的时间数出来的,看循环一次的指令要多久,乘以循环次数,这种原地延时的程序,延时时间也都是慧搭个大概,循胡碧旦环执行中间,裤扰来中断的话,延时程序的时间就会加长,一般用在时间要求不用太准的地方。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12447318.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存