请用c语言编写一个延时函数,并说明该函数在程序中是如何实现延时的?

作者&投稿:叶习 (若有异议请与网页底部的电邮联系)
~

在C语言中,可以使用delay函数来实现程序的延时功能。

delay函数可以使程序暂停执行一段时间,定义一个delay函数,函数的参数为延时的时间,单位为毫秒。函数的实现如e=clock();//获取当前时间es);//当当前时间减去开始时间小于延时时间时,程序处于等待状态,在程序中调用delay函数,并传入需要延时的时间,例如tain()tf");delay(3000);//延时3秒tf");0。

上述程序会在控制台输出“开始延时...”,然后等待3秒后输出“延时结束!”。在程序执行delay函数时,程序会暂停执行,直到延时时间结束后才会继续执行下一条语句。s参数转换成时钟数。

实现延时函数考虑的因素:

1、硬件平台:不同的硬件平台对延时函数的实现有不同的要求。例如,在嵌入式系统中,延时函数的实现可能需要考虑到硬件的时钟频率和中断控制器的特性

2、程序的运行环境:延时函数的实现也会受到程序的运行环境的影响。例如,在实时操作系统中,延时函数的实现可能需要考虑到任务调度和中断处理的机制。

3、精度要求:不同的应用场景对延时函数的精度要求也不同。有些应用可能只需要毫秒级的延时,而有些应用可能需要微秒级的延时。




C语言delay函数延时计算
C语言delay函数延时计算源代码如下:include "stdlib.h"void delay(){ time_t start,end;start=time(null);unchar i;while(z--){ for(i=0;i<121;i++);} end=time(null);printf("%f",difftime(end,start));}

c语言延时函数delay,怎么算延时??
下面是delay 函延迟函数里执行的都是空语句,也就是说通过循环执行空语句来达到延迟的目的.每执行一条语句,即使是空语句都要耗费电脑一些处理时间的,就是因为这个,在延迟函数里写一些无关紧要的东西,用来浪费电脑处理时间,从而达到延迟目的。数原型:原型:void Delay(unsigned int nDelay){ unsigned int...

求用C语言编写的 2小时的延时程序。谢谢!
你用c语言来编制有精度要求的延时子程序,这太不现实了。不过可以用定时器来做。void delay1s(){ int i;tmod=0x01;th0=(65536-50000)\/256;tl0=(65536-50000)*256;tr0=1;for(i=0;i<20;i++){ th0=(65536-50000)\/256;tl0=(65536-50000)*256;while(tf0==0);tf0=0;} } ...

怎么用C语言写可以调节的延时程序,请大侠帮忙
HERE:JBC TF0,NEXT1 SJMP HERE NEXT1:MOV TL0,#0B0H MOV TH0,#3CH DJNZ R7,HERE CLR TR0 ;定时器要软件清零 SETB EX0 RET C语言延时程序:10ms延时子程序(12MHZ)void delay10ms(void){ unsigned char i,j,k;for(i=5;i>0;i--)for(j=4;j>0;j--)f...

怎么用c语言定义一个1ms的延时程序;只用while、 for 等,不用定时器和...
你好!如果你要求是比较准确的延时程序,是一定要用定时器中断的,如果是大约的时间,是要知道你的晶振大小,然后用 while(a){ a--;} 就可以了 如果对你有帮助,望采纳。

C语言延时 不用Sleep函数 延时5秒 应该怎么做?
include <stdio.h> include <stdlib.h> include void sleep( long wait );void main( void ){ int flag=1;char time[128];_strtime(time);printf( "OS time:%s\\n",time);printf( "Delay for three seconds\\n" );do { sleep( 3 * 1000 );printf( "Hello!\\n" );}while(flag...

请帮忙在51系列单片机系统中,编写一个延时1ms的子程序。谢谢。。_百...
1、首先,在电脑中打开keil软件,创建好工程,然后添加c文件,如下图所示。2、然后添加c文件,接下来输入代码,先输入一个头文件命令。3、然后,进行宏定义,代码如图所示。4、然后声明P1口,如下图所示。5、最后,将延时语句全部添加进去,代码按照图中所示的直接敲入即可。6、最后,点击编译,生成HEX...

单片机C语言编程中,编一个延时约1s的语句
每一遍,如果是1us,才能是延时约1s。但是,晶振是12MHz,一条汇编的指令就至少是1us,C语言的语句,就要更多。在编写延时函数之前,首先确认一下系统对晶振的分频系数,从而确定每个单周期指令执行所需的时间,一般的单片机都将指令执行周期设置为1us,这样就可以写一个比较接近1秒的延时函数了。

求一个1ms的单片机C语言延时程序
void delay(char x){ unsigned char a,b,c;for(c=x;c>0;c--)for(b=38;b>0;b--)for(a=130;a>0;a--);} 学过标准C就知道了,char 和 int 是可以相互转换的,char的取值范围是-128~+127 unsigned char 的是0~255 可以用unsigned int啊,我一般都是用char的,用unsigned int的话...

怎么用C语言做单片机的精确延时
1 C语言程序延时 Keil C51的编程语言常用的有2种: 一种是汇编语言;另一种是C 语言。用汇编语言写单片机程序时,精确时间延时是相对容易解决的。比如,用的是晶振频率为12 MHz的AT89C51,打算延时20 μs,51单片机的指令周期是晶振频率的1\/12,即一个机器周期为1 μs;“MOV R0,#X”需要2个...

永仁县13012466784: c语言的延迟函数 编写 -
郅嘉晶安: 延迟函数里执行的都是空语句,也就是说循环执行空语句来达到延迟的目的. 每执行一条语句,即使是空语句都要耗费电脑一些处理时间的,就是因为这个,在延迟函数里写一些无关紧要的东西,用来浪费电脑处理时间,从而延迟.

永仁县13012466784: C语言中用什么函数来延时 谢谢 -
郅嘉晶安: 头文件里加上#include 函数是 ::Sleep(),注意前面有俩冒号,s大写,括号里填数字,表示毫秒

永仁县13012466784: delay() c语言延迟函数 -
郅嘉晶安: 1、delay函数是一般自己定义的一个延时函数. 2、C语言定义延时函数主要通过无意义指令的执行来达到延时的目的.下面给出一个经典的延时函数. // 定义一个延时xms毫秒的延时函数 void delay(unsigned int xms) // xms代表需要延时的毫秒数 {unsigned int x,y;for(x=xms;x>0;x--)for(y=110;y>0;y--); }

永仁县13012466784: 单片机中用c语言写一个延时函数:延时若干机器周期 - nop - () -
郅嘉晶安: void Delay() {_nop_();_nop_();_nop_();...._nop_(); } 这能这么写,需要延时多少机器周期就写多少个_nop_();函数

永仁县13012466784: C语言中有没有延时选择的那种函数啊? -
郅嘉晶安: /*----------------------------------------------- 调用方式:void yanshi(int x) 函数说明:延时x毫秒(晶振为6.0000M) -----------------------------------------------*/ void yanshi(int x) { int a,b; for(a=0;a<x;a++) { for(b=0;b<124;b++); } }

永仁县13012466784: c语言中,求延时函数的用法.比如我要计算x+y的值,先打印出x,y的值,延时3秒再打印出x+y的值 -
郅嘉晶安: 这样: #include <stdio.h> #include <windows.h>int main() {int x=1, y=2;printf("x=%d, y=%d\n", x, y);Sleep(3000);printf("%d+%d=%d\n", x, y, x+y);return 0; }

永仁县13012466784: @问问请教大家: C语言延时代码或者函数怎么写? -
郅嘉晶安: 大概是这样吧. 比如一段延时程序,如果你每用到一次都要重新写出来一次,最后的代码肯定是超长的. 如果做成一个延时函数模块,要用时就调用一下,这样代码量就会小很多了.

永仁县13012466784: C语言延时函数 -
郅嘉晶安: 学过汇编你就会知道,每条指令都占一定的时间(或者机器周期)的,如果你让机器什么都不做,即空指令的话,机器就会延时,然后你在计算好每次延时到底有多长,外面套一个循环(或者多重循环),根据你想要的延时时间即可计算出来循环的次数 ,延时函数基本上都是这种原理,它的参数就是用来控制循环次数的.

永仁县13012466784: c语言延时语句
郅嘉晶安: #include<windows.h> 里面有一个Sleep()函数(注意首字母大写). 还有别的方法,个人觉得这个最简单了,下面是我从MSDN给你找的关于这个函数的详细资料 函数原形: VOID Sleep( DWORD dwMilliseconds // sleep time); Parameters

永仁县13012466784: 求用C编写一个51单片机的延时函数,用T0定时器. -
郅嘉晶安: #include <reg51.h>#define uchar unsigned char sbit LED=P1^0; uchar time; void InitTimer0(void) { TMOD = 0x01; //定时器0,工作方式1 TH0 = 0x3c; TL0 = 0xb0; //50ms中断一次 EA = 1; ET0 = 1; TR0 = 1; } void main(void) { InitTimer0(); while(1);...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网