真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言FOR延時(shí)函數(shù) C語言延時(shí)語句

單片機(jī)C語言編程關(guān)于延時(shí)函數(shù)

單片機(jī)的C語言關(guān)于延時(shí)函數(shù)主要有兩種

十載的華亭網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整華亭建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“華亭網(wǎng)站設(shè)計(jì)”,“華亭網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

一種是用for循環(huán),通過單片機(jī)執(zhí)行空指令達(dá)到延時(shí)的目的

如:

for(i=0;i100;i++)

{

;

}

這個(gè)簡(jiǎn)單的語句會(huì)執(zhí)行100次空指令

每一次指令的時(shí)間可以大概確定

因此這個(gè)是最簡(jiǎn)單的延時(shí)函數(shù)

第二種是通過定時(shí)器的方式來實(shí)現(xiàn)

定時(shí)器是通過對(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

{

...

}

c語言延時(shí)函數(shù)原理解釋

c語言延遲函數(shù)原理:

延遲函數(shù)里執(zhí)行的都是空語句,也就是說通過循環(huán)執(zhí)行空語句來達(dá)到延遲的目的.每執(zhí)行一條語句,即使是空語句都要耗費(fèi)電腦一些處理時(shí)間的,就是因?yàn)檫@個(gè),在延遲函數(shù)里寫一些無關(guān)緊要的東西,用來浪費(fèi)電腦處理時(shí)間,從而達(dá)到延遲目的。

函數(shù)名:

delay

能:

將程序的執(zhí)行暫停一段時(shí)間(毫秒)

(該函數(shù)是TC下特有的函數(shù),VC下應(yīng)使用Sleep()函數(shù))

法:

void

delay(unsigned

milliseconds);

程序例:

/*

Emits

a

440-Hz

tone

for

500

milliseconds

*/

#include

int

main(void)

{

sound(440);

delay(500);

nosound();

return

0;

}

c語言的延遲函數(shù)?編寫

C語言的延遲函數(shù)一般是利用無意義程序運(yùn)行來控制時(shí)間從而達(dá)到延時(shí)的目的

舉個(gè)例子:

for(i=0;ix;i++)

for(j=0;j120;j++);

這是延時(shí)x毫秒的for循環(huán)語句。

值得注意的是記得最后的;一定得記得寫。

關(guān)于C語言for循環(huán)延時(shí)函數(shù)

for循環(huán)實(shí)現(xiàn)C語言精確延時(shí)

(晶振12MHz,一個(gè)機(jī)器周期1us.)

一. 500ms延時(shí)子程序

程序:

void delay500ms(void){

unsigned char i,j,k;

for(i=15;i0;i--)

for(j=202;j0;j--)

for(k=81;k0;k--);

}

產(chǎn)生的匯編:

C:0x0800 7F0F MOV R7,#0x0F

C:0x0802 7ECA MOV R6,#0xCA

C:0x0804 7D51 MOV R5,#0x51

C:0x0806 DDFE DJNZ R5,C:0806

C:0x0808 DEFA DJNZ R6,C:0804

C:0x080A DFF6 DJNZ R7,C:0802

C:0x080C 22 RET

計(jì)算分析:

程序共有三層循環(huán)

一層循環(huán)n:R5*2 = 81*2 = 162us DJNZ 2us

二層循環(huán)m:R6*(n+3) = 202*165 = 33330us DJNZ 2us + R5賦值 1us = 3us

三層循環(huán): R7*(m+3) = 15*33333 = 499995us DJNZ 2us + R6賦值 1us = 3us

循環(huán)外: 5us 子程序調(diào)用 2us + 子程序返回 2us + R7賦值 1us = 5us

延時(shí)總時(shí)間 = 三層循環(huán) + 循環(huán)外 = 499995+5 = 500000us =500ms

計(jì)算公式:延時(shí)時(shí)間=[(2*R5+3)*R6+3]*R7+5

二. 200ms延時(shí)子程序

程序:

void delay200ms(void){

unsigned char i,j,k;

for(i=5;i0;i--)

for(j=132;j0;j--)

for(k=150;k0;k--);

}

產(chǎn)生的匯編

C:0x0800 7F05 MOV R7,#0x05

C:0x0802 7E84 MOV R6,#0x84

C:0x0804 7D96 MOV R5,#0x96

C:0x0806 DDFE DJNZ R5,C:0806

C:0x0808 DEFA DJNZ R6,C:0804

C:0x080A DFF6 DJNZ R7,C:0802

C:0x080C 22 RET

三. 10ms延時(shí)子程序

程序:

void delay10ms(void){

unsigned char i,j,k;

for(i=5;i0;i--)

for(j=4;j0;j--)

for(k=248;k0;k--);

}

產(chǎn)生的匯編

C:0x0800 7F05 MOV R7,#0x05

C:0x0802 7E04 MOV R6,#0x04

C:0x0804 7DF8 MOV R5,#0xF8

C:0x0806 DDFE DJNZ R5,C:0806

C:0x0808 DEFA DJNZ R6,C:0804

C:0x080A DFF6 DJNZ R7,C:0802

C:0x080C 22 RET

四. 1s延時(shí)子程序

程序:

void delay1s(void){

unsigned char h,i,j,k;

for(h=5;h0;h--)

for(i=4;i0;i--)

for(j=116;j0;j--)

for(k=214;k0;k--);

}

產(chǎn)生的匯編

C:0x0800 7F05 MOV R7,#0x05

C:0x0802 7E04 MOV R6,#0x04

C:0x0804 7D74 MOV R5,#0x74

C:0x0806 7CD6 MOV R4,#0xD6

C:0x0808 DCFE DJNZ R4,C:0808

C:0x080A DDFA DJNZ R5,C:0806

C:0x080C DEF6 DJNZ R6,C:0804

C:0x080E DFF2 DJNZ R7,C:0802

C:0x0810 22 RET

在精確延時(shí)的計(jì)算當(dāng)中,最容易讓人忽略的是計(jì)算循環(huán)外的那部分延時(shí),在對(duì)時(shí)間要求不高的場(chǎng)合,這部分對(duì)程序不會(huì)造成影響.

請(qǐng)問下面的C語言延時(shí)函數(shù)是如何計(jì)算延時(shí)時(shí)間的?for循環(huán)中的四個(gè)nop是否可以省略?

一個(gè)nop為1個(gè)指令周期,通過nop指令可以產(chǎn)生一定的延遲,但是對(duì)于快速的CPU來說效果不明顯,因此可以多寫幾個(gè),便可以多延遲幾個(gè)時(shí)鐘(具體應(yīng)該說是一個(gè)指令占用了3個(gè)時(shí)鐘脈沖);所以,一個(gè)for循環(huán)會(huì)執(zhí)行4*250個(gè)指令周期,那么總共延時(shí)4*250*ms個(gè)指令周期~~


網(wǎng)頁標(biāo)題:c語言FOR延時(shí)函數(shù) C語言延時(shí)語句
文章鏈接:http://weahome.cn/article/hgoods.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部