当前位置:首页 » 编程语言 » c语言中的延时程序
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中的延时程序

发布时间: 2023-04-12 08:18:26

1. c语言 延时程序

这是一个延时程序,c是延时的相对长短
有两层for循环执行空语句达到延时目的。
c只是延时的相对大小,c大了,外层循环就多,
时间就长一些。反之亦然。

2. 求指教单片机c语言延时程序

单片机里没有万用的延时函数吧,最简单的
for(i=0;i<100;i++);这就是一个能延时的for循环(注意最后的分号),
要明白延时的原理,就让单片机一直做一件事,如上边的就是一直执行这个语句直到i=99,

只要明白这个,其他的延时就不难啦,可以使用循环嵌套实现更长的延时,不仅仅可以使用for语句,while语句也同样可以

3. 单片机C语言延迟程序

下面的延时的基本程序(中断加计数器)
********
void
T0_int(void)
interrupt
1
{

TH0
=
0x4C;
//重新装载,50MS定时器初值

TL0
=
0x00;

T0_count++;

if(T0_count==20)
//1S到

{

T0_count
=
0;

//在这写程序

}
}
main()
{

TMOD
=
0x01;//定时器0,工作方式1,16位计数

TH0
=
0x4C;
//50MS定时器初值

TL0
=
0x00;

IE
=
0x82;
//开总中断,开T0中断

EA
=
1;

ET0
=
1;

TR0
=
1;

T0_count
=
0;

i
=
0;
loop:

goto
loop;
}
还有:
for(us=0;us<60;us++);
/*延时500us*/
for(us=0;us<1;us++);
/*
延时15微秒*/
for(us=0;us<5;us++);
/*
延时51微秒*/

4. C语言编程中的延时

您好 这个延时函数很不稳定的,没有固定的时间

如果您使用tc 您可以用sleep(微秒)来延时

使用vc的话有5种常用方式:
方式一:VC中的WM_TIMER消息映射能进行简单的时间控制。首先调用函数SetTimer()设置定时间隔,如SetTimer(0,200,NULL)即为设置200ms的时间间隔。然后在应用程序中增加定时响应函数 OnTimer(),并在该函数中添加响应的处理语句,用来完成到达定时时间的操作。这种定时方法非常简单,可以实现一定的定时功能,但其定时功能如同Sleep()函数的延时功能一样,精度非常低,最小计时精度仅为30ms,CPU占用低,且定时器消息在多任务操作系统中的优先级很低,不能得到及时响应,往往不能满足实时控制环境下的应用。只可以用来实现诸如位图的动态显示等对定时精度要求不高的情况。如示例工程中的Timer1。

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

方式二:VC中使用sleep()函数实现延时,它的单位是ms,如延时2秒,用sleep(2000)。精度非常低,最小计时精度仅为30ms,用sleep函数的不利处在于延时期间不能处理其他的消息,如果时间太长,就好象死机一样,CPU占用率非常高,只能用于要求不高的延时程序中。如示例工程中的Timer2。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

方式三:利用COleDateTime类和COleDateTimeSpan类结合WINDOWS的消息处理过程来实现秒级延时。如示例工程中的Timer3和Timer3_1。以下是实现2秒的延时代码:

COleDateTime start_time = COleDateTime::GetCurrentTime();
COleDateTimeSpan end_time= COleDateTime::GetCurrentTime()-start_time;
while(end_time.GetTotalSeconds()< end_time =" COleDateTime::GetCurrentTime()-start_time;">

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

方式四:在精度要求较高的情况下,VC中可以利用GetTickCount()函数,该函数的返回值是 DWORD型,表示以ms为单位的计算机启动后经历的时间间隔。精度比WM_TIMER消息映射高,在较短的定时中其计时误差为15ms,在较长的定时中其计时误差较低,如果定时时间太长,就好象死机一样,CPU占用率非常高,只能用于要求不高的延时程序中。如示例工程中的Timer4和Timer4_1。下列代码可以实现50ms的精确定时:

DWORD dwStart = GetTickCount();
DWORD dwEnd = dwStart;
do
{
dwEnd = GetTickCount()-dwStart;
}while(dwEnd <50);

为使GetTickCount()函数在延时或定时期间能处理其他的消息,可以把代码改为:
DWORD dwStart = GetTickCount();
DWORD dwEnd = dwStart;
do
{
MSG msg;
GetMessage(&msg,NULL,0,0);
TranslateMessage(&msg);
DispatchMessage(&msg);
dwEnd = GetTickCount()-dwStart;
}while(dwEnd <50);

虽然这样可以降低CPU的占有率,并在延时或定时期间也能处理其他的消息,但降低了延时或定时精度。

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

方式五:与 GetTickCount()函数类似的多媒体定时器函数DWORD timeGetTime(void),该函数定时精度为ms级,返回从Windows启动开始经过的毫秒数。微软公司在其多媒体Windows中提供了精确定时器的底层API持,利用多媒体定时器可以很精确地读出系统的当前时间,并且能在非常精确的时间间隔内完成一个事件、函数或过程的调用。不同之处在于调用DWORD timeGetTime(void) 函数之前必须将 Winmm.lib 和 Mmsystem.h 添加到工程中,否则在编译时提示DWORD timeGetTime(void)函数未定义。由于使用该函数是通过查询的方式进行定时控制的,所以,应该建立定时循环来进行定时事件的控制。如示例工程中的Timer5和Timer5_1。

5. c语言延时1ms程序

这个程序应该是板子上延时的程序。
a就是需要延迟的毫秒数(也可能是其他单位)。
就是说,执行 for(i=0;i<600;i++);的时间应该是一个单位长度(可能为1ms);
这样,你在调用的时候,赋值给a多少值,实际就是延时多少毫秒。
例如,延时10ms,就用
delay(10);
延时1ms,就用
delay(1);

6. c语言有个可以使程序延时的语句是什么

Sleep函数:功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 注意: 在VC中使用带上头文件#include <windows.h>在VC中,Sleep中的第一个英文字符为大写的"S" ,在标准C中是sleep, 不要大写,简单的说VC用Sleep, 别的一律使用sleep 在VC中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000); 在Linux下,sleep()里面的单位是秒,而不是毫秒。 示例: #include <windows.h> int main() { int a; a=1000; Sleep(a); return 0; } usleep函数:功能:usleep功能把进程挂起一段时间, 单位是微秒us(百万分之一秒)。 delay函数:功 能: 将程序的执行暂停一段时间,单位是毫秒ms(千分之一秒) 用 法: void delay(unsigned milliseconds); 示例: #include<dos.h> int main(void) { sound(440); delay(500); nosound(); return 0; }delay()是循环等待,该进程还在运行,占用处理器。sleep()不同,它会被挂起,把处理器让给其他的进程。

7. c语言延时程序

这个延时程序是用在单片机上吗? 如果是用在单片机上的,
算应该是算不准的,而且不同的晶振延时也不一样,
可以通过开发软件的调试功能来查看延时程序的精确延时。

8. C语言延时函数

C语言的延迟函数一般是利用无意义程序运行来控制时间从而达到延时的目的
举个例子:
for(i=0;i<x;i++)

for(j=0;j<120;j++);

这是延时x毫秒的for循环语句。
值得注意的是记得最后的;一定得记得写。