如果是單片機上,是有可能的

我們一直強調成都做網站、網站建設對于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對待,選擇一個安全靠譜的網站建設公司,企業(yè)網站我們建議是要么不做,要么就做好,讓網站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)網站制作公司不一定是大公司,成都創(chuàng)新互聯作為專業(yè)的網絡公司選擇我們就是放心。
單片機12m晶振執(zhí)行一條指令1us,所以c語言1us延時程序
用12m晶振延時1us,用—_nop_();
#include
//頭文件
_nop_();
//這一個語句表示1us延時
延時時間的計算與單片機的晶振頻率有關。若晶振頻率為12Mhz,那么單片機每震動一次所需要的時間是1/12M s。那么再來看看單片機執(zhí)行一次自減所需要的振動次數是96次,假如我們對時間要求不是特別精確的話,可以約等于100來計算。現在通過上面兩個數據可以得出:單片機每執(zhí)行一次自減所需要的時間是1/12M *100(s),即1/120000 s,逆向計算一下,每1ms需要自減多少次?120次對吧。所以一個簡單的延時功能就誕生了,我們只需要自減120次,就可以延時1ms,如果我們要延時50ms呢,那就自減50*120=6000次。那么在程序上如何表達呢?我們可以用兩套for循環(huán)
void delay(int i){
int x,y;
for(x=i;x0;x--){
for(y=120;y0;y--)
}
}
參數 i 代表該函數延時多少ms
C語言delay函數延時計算源代碼如下:
#include "stdlib.h"
void delay()
{
time_t start,end;
start=time(null);
unchar i;
while(z--)
{
for(i=0;ilt;121;i++);
}
end=time(null);
printf("%f",difftime(end,start));
}
擴展資料
1、對于要求精確延時時間更長,這時就要采用循環(huán)嵌套的方法來實現,因此,循環(huán)嵌套的方法常用于達到ms級的延時。
對于循環(huán)語句同樣可以采用for,do…while,while結構來完成,每個循環(huán)體內的變量仍然采用無符號字符變量。
1、delay函數是一般自己定義的一個延時函數。
2、C語言定義延時函數主要通過無意義指令的執(zhí)行來達到延時的目的。下面給出一個經典的延時函數。
//?定義一個延時xms毫秒的延時函數
void?delay(unsigned?int?xms)??//?xms代表需要延時的毫秒數
{
unsigned?int?x,y;
for(x=xms;x0;x--)
for(y=110;y0;y--);
}
標題名稱:用c語言寫一個延時函數 c語言實現延時功能
網站地址:http://www.yijiale78.com/article24/ddoccje.html
成都網站建設公司_創(chuàng)新互聯,為您提供微信公眾號、標簽優(yōu)化、品牌網站建設、網站導航、網站設計公司、品牌網站制作
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯