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循環語句。
值得注意的是記得最後的;一定得記得寫。