當前位置:首頁 » 編程語言 » c語言的延時函數

c語言的延時函數

發布時間: 2023-02-12 18:54:16

① 單片機C語言編程關於延時函數

單片機的C語言關於延時函數主要有兩種
一種是用for循環,通過單片機執行空指令達到延時的目的
如:
for(i=0;i<100;i++)
{
;
}
這個簡單的語句會執行100次空指令
每一次指令的時間可以大概確定
因此這個是最簡單的延時函數
第二種是通過定時器的方式來實現
定時器是通過對單片機的晶振進行計數
然後在定時器中斷服務函數裡面實現定時時間的計算及設置
51單片機的定時器0中斷服務函數為
void
time0()
interrupt
1
{
...
}

② 如何計算C語言中的延時函數


的程序有問題額。
void
daly()
{unsigned
char
j;
for(j=60;j〈=0;j--)
}
你可去看看單片機的時鍾信號產生電路中的有關
節拍:指振盪脈沖周期
狀態:振盪脈沖盡過2分頻後,就是單片機時鍾信號的周期,定義為狀態,一個狀態等於兩個節拍
機器周期:單片機採用定時控制方式,有固定的機器周期,一個機器周期等於6個狀態,
機器周期=6個狀態=12個節拍
當振盪脈沖頻率為12mhz時,一個機器周期為1微秒,振盪脈沖頻率為6mhz,一個機器周期為2微秒
數據類型中unsigned
char為無符號字元型值域是在0~~~255范圍里
在上面我設的是60次的循環,且晶振是約在12mhz,那麼可以看出我們的算值是用60x1微秒,即可得到我們所要的延時值啊

③ C語言中 delay 函數如何運用

1、delay函數是一般自己定義的一個延時函數。
2、C語言定義延時函數主要通過無意義指令的執行來達到延時的目的。下面給出一個經典的延時函數。

//定義一個延時xms毫秒的延時函數
voiddelay(unsignedintxms)//xms代表需要延時的毫秒數
{
unsignedintx,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}

④ C語言編程中的延時

如果你指的是嵌入式方面的,這樣的延遲是有作用的,也是一種非精確計時器的一個實現方法。

我以12M的晶振為例,給你講一下:
12M的晶振的機器周期是1/12M*12,就是1us

不同的單片機執行語句的機器周期也不一定一樣(比如:Atmel 51系列及大多數51的一個機器周期是12個時鍾周期,華邦的只需要4個時鍾周期)。不過大體來說,一條for循環大概8個機器周期,在12M晶振下,通常用以下代碼實現1ms的延時:
void delayms(unsigned int ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
大概算一下,120*8*1us=1ms,如果需要精確的定時,還是得用基於Tick定時器。

如果是
void delay(int d)
{
for(; d; --d);
}
d=1000的話,
那麼
大概算一下,1000*8*1us=8ms
所以,這可以實現一個大體8ms的延遲

⑤ 在C語言程序中,延時函數的時間是怎麼算的

這個是和你機器的運算速度有關的
你要計算出這個函數用了多少時間就要用時間函數,我很久沒用了。

#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));
}

//time_t是在頭文件中定義的,可能是個結構體類型裡面的成員定義了一些時間的單位,如年、月、日。在這里調用這個結構體定義2個變數;
//start=time(null);
將其中一個變數賦值。它的值等於當前的系統時間
//end=time(null);
在程序結束的時候再給另一個變數賦值,值等於當前的系統時間。
//difftime(end,start)
函數difftime();是double類型,用來計算運行的時間,用第一個參數的時間減去第二個參數的時間,得到的值就是運行用了多少時間。單位為秒

⑥ C語言中用什麼函數來延時 謝謝

頭文件里加上#include <windows.h> 函數是 ::Sleep(),注意前面有倆冒號,s大寫,括弧里填數字,表示毫秒

熱點內容
c語言完美數 發布:2024-11-08 22:27:43 瀏覽:104
遠程桌面伺服器搭建h5網頁嗎 發布:2024-11-08 22:27:37 瀏覽:958
簡單點編程 發布:2024-11-08 22:21:50 瀏覽:811
mysql存儲過程教程 發布:2024-11-08 22:20:56 瀏覽:200
shell腳本sort 發布:2024-11-08 22:20:55 瀏覽:181
linux怎麼登錄 發布:2024-11-08 22:19:07 瀏覽:409
段頁式存儲管理中 發布:2024-11-08 22:03:22 瀏覽:733
易語言注冊碼源碼 發布:2024-11-08 22:03:22 瀏覽:237
手游源碼交易 發布:2024-11-08 21:58:03 瀏覽:150
快手極速版用戶名和密碼是多少 發布:2024-11-08 21:55:36 瀏覽:866