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

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

關(guān)于c語(yǔ)言延時(shí)函數(shù)同時(shí)發(fā)送的信息

c語(yǔ)言 延時(shí)函數(shù)

你是用pc還是用單片機(jī)???

主要從事網(wǎng)頁(yè)設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、成都響應(yīng)式網(wǎng)站建設(shè)公司、程序開(kāi)發(fā)、微網(wǎng)站、重慶小程序開(kāi)發(fā)等,憑借多年來(lái)在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷經(jīng)驗(yàn),集策劃、開(kāi)發(fā)、設(shè)計(jì)、營(yíng)銷、管理等多方位專業(yè)化運(yùn)作于一體,具備承接不同規(guī)模與類型的建設(shè)項(xiàng)目的能力。

pc的當(dāng)然速度快了。

那要看pc的時(shí)鐘才能做1ms的延時(shí):

void delay(unsinged long n){....}

中間要加空語(yǔ)句的,但是pc實(shí)際上沒(méi)喲這么用的。

要是單片機(jī)。

12M的晶振就是(非1T的)

void delay(unsinged int)

{

inti,j;

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

for{i=0;i125;i++}{;}

}

C語(yǔ)言延時(shí)函數(shù)

學(xué)過(guò)匯編你就會(huì)知道,每條指令都占一定的時(shí)間(或者機(jī)器周期)的,如果你讓機(jī)器什么都不做,即空指令的話,機(jī)器就會(huì)延時(shí),然后你在計(jì)算好每次延時(shí)到底有多長(zhǎng),外面套一個(gè)循環(huán)(或者多重循環(huán)),根據(jù)你想要的延時(shí)時(shí)間即可計(jì)算出來(lái)循環(huán)的次數(shù) ,延時(shí)函數(shù)基本上都是這種原理,它的參數(shù)就是用來(lái)控制循環(huán)次數(shù)的。

51單片機(jī)用c語(yǔ)言怎么寫延時(shí)函數(shù)?

延時(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

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

for循環(huán)實(shí)現(xiàn)C語(yǔ)言精確延時(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ì)造成影響.

如何用c語(yǔ)言控制臺(tái)程序進(jìn)行延時(shí)等待,同時(shí)還可以執(zhí)行其他函數(shù)?

所謂的延時(shí)程序,就是讓程序進(jìn)入一段無(wú)效循環(huán),達(dá)到延時(shí)目的

有一個(gè)延時(shí)參數(shù)表的。

下面是一個(gè)10ms延時(shí)子程序(12MHZ)

void delay10ms(void)

{

unsigned char i,j,k;

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

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

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

}

單片機(jī)C語(yǔ)言中多個(gè)延時(shí)程序同時(shí)使用怎樣編寫?

int

x;

bit

led1,led2;

void

intter_0()

intterupt

{

led1

=

1;

}

void

timer0()

intterupt

1

{++x}

void

intter_2()

intterupt

2

{

led2

=

1;

}

void

main()

{

x

=

0;

TH0

=

xxxx;

TL0

=

xxxx;

TR0

=

1;

while(1)

{

if(led1

==

1)

{

if(x%十秒

==0)

{

p10

=

1;

led1

=

0;

}

}

if(led2

==

1)

{

if(x%十秒

==0)

{

p11

=

1;

led2

=0;

}

}

}

}

類似這樣

主要用定時(shí)器取時(shí)間

用兩個(gè)位來(lái)判斷是否按下

單片中斷什么的沒(méi)初始化

自己設(shè)置


網(wǎng)站標(biāo)題:關(guān)于c語(yǔ)言延時(shí)函數(shù)同時(shí)發(fā)送的信息
URL網(wǎng)址:http://weahome.cn/article/dodcois.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部