delay函數(shù)是一般自己定義的一個(gè)延時(shí)函數(shù)。
創(chuàng)新互聯(lián)專注于中大型企業(yè)的做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)和網(wǎng)站改版、網(wǎng)站營(yíng)銷服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開發(fā)的融合,累計(jì)客戶上1000家,服務(wù)滿意度達(dá)97%。幫助廣大客戶順利對(duì)接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專注成都品牌網(wǎng)站建設(shè)和互聯(lián)網(wǎng)程序開發(fā),在前進(jìn)的路上,與客戶一起成長(zhǎng)!
c語(yǔ)言定義延時(shí)函數(shù)主要通過(guò)無(wú)意義指令的執(zhí)行來(lái)達(dá)到延時(shí)的目的。下面給出一個(gè)經(jīng)典的延時(shí)函數(shù)。
// 定義一個(gè)延時(shí)xms毫秒的延時(shí)函數(shù)
void delay(unsigned int xms) // xms代表需要延時(shí)的毫秒數(shù)
{
unsigned int x,y;
for(x=xms;x0;x--)
for(y=110;y0;y--);
}
延時(shí)時(shí)間的計(jì)算與單片機(jī)的晶振頻率有關(guān)。若晶振頻率為12Mhz,那么單片機(jī)每震動(dòng)一次所需要的時(shí)間是1/12M s。那么再來(lái)看看單片機(jī)執(zhí)行一次自減所需要的振動(dòng)次數(shù)是96次,假如我們對(duì)時(shí)間要求不是特別精確的話,可以約等于100來(lái)計(jì)算?,F(xiàn)在通過(guò)上面兩個(gè)數(shù)據(jù)可以得出:?jiǎn)纹瑱C(jī)每執(zhí)行一次自減所需要的時(shí)間是1/12M *100(s),即1/120000 s,逆向計(jì)算一下,每1ms需要自減多少次?120次對(duì)吧。所以一個(gè)簡(jiǎn)單的延時(shí)功能就誕生了,我們只需要自減120次,就可以延時(shí)1ms,如果我們要延時(shí)50ms呢,那就自減50*120=6000次。那么在程序上如何表達(dá)呢?我們可以用兩套for循環(huán)
void delay(int i){
int x,y;
for(x=i;x0;x--){
for(y=120;y0;y--)
}
}
參數(shù) i 代表該函數(shù)延時(shí)多少ms
原理:只是執(zhí)行一些所謂的“無(wú)實(shí)際意義的指令”,如縮放或執(zhí)行一個(gè)int自加,簡(jiǎn)單地說(shuō),就像高中數(shù)學(xué)中的“乘法原理”一樣,很容易迅速增加上面提到的“無(wú)意義指令”的數(shù)量
關(guān)于大小的值:如果是在C語(yǔ)言中,該值不僅與水晶振動(dòng)、單片機(jī)本身的速度,但也與C的編譯器,所以,雖然這個(gè)值可以精確計(jì)算,但大多數(shù)情況下,程序員是經(jīng)驗(yàn)值。
當(dāng)然,如果你在匯編中編程,情況就不同了,因?yàn)槊織l指令使用一定數(shù)量的機(jī)器周期,你當(dāng)然可以根據(jù)所有指令使用的總時(shí)間來(lái)計(jì)算特定延遲的總時(shí)間。
擴(kuò)展資料:
定義延遲XMS毫秒的延遲函數(shù)
Voiddelay(unsignedintXMS)//XMS表示需要延遲的毫秒數(shù)
{
無(wú)符號(hào)intx,y;
For(x=XMS;X0;X-)
For(y=110;Y”0;Y-);
}
使用:
VoidDelay10us(ucharMs)
{
Uchar數(shù)據(jù)我;
(;女士“0;------Ms)
對(duì)于(I = 26)我 0;我-);
}
I=[(延遲值-1.75)*12/ms-15]/4
單片機(jī)的C語(yǔ)言關(guān)于延時(shí)函數(shù)主要有兩種
一種是用for循環(huán),通過(guò)單片機(jī)執(zhí)行空指令達(dá)到延時(shí)的目的
如:
for(i=0;i100;i++)
{
;
}
這個(gè)簡(jiǎn)單的語(yǔ)句會(huì)執(zhí)行100次空指令
每一次指令的時(shí)間可以大概確定
因此這個(gè)是最簡(jiǎn)單的延時(shí)函數(shù)
第二種是通過(guò)定時(shí)器的方式來(lái)實(shí)現(xiàn)
定時(shí)器是通過(guò)對(duì)單片機(jī)的晶振進(jìn)行計(jì)數(shù)
然后在定時(shí)器中斷服務(wù)函數(shù)里面實(shí)現(xiàn)定時(shí)時(shí)間的計(jì)算及設(shè)置
51單片機(jī)的定時(shí)器0中斷服務(wù)函數(shù)為
void
time0()
interrupt
1
{
...
}
網(wǎng)站題目:單片機(jī)延時(shí)函數(shù)c語(yǔ)言 單片機(jī)延時(shí)函數(shù)c語(yǔ)言怎么設(shè)置
新聞來(lái)源:http://chinadenli.net/article34/dodesse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站改版、域名注冊(cè)、、面包屑導(dǎo)航、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)