日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀] C語言最大的缺點就是實時性差,我在網(wǎng)上到看了一些關于延時的討論,其中有篇文章51單片機Keil C延時程序的簡單研究,作者:InfiniteSPACe Studio/isjfk寫得不錯,他是用while(--i);產生DJNZ來實現(xiàn)精確延時,

C語言最大的缺點就是實時性差,我在網(wǎng)上到看了一些關于延時的討論,其中有篇文章51單片機Keil C延時程序的簡單研究,作者:InfiniteSPACe Studio/isjfk

寫得不錯,他是用while(--i);產生DJNZ來實現(xiàn)精確延時,后來有人說如果while里面不能放其它語句,否則也不行,用do-while就可以,具體怎樣我沒有去試.所有這些都沒有給出具體的實例程序來.還看到一些延時的例子多多少少總有點延時差.為此我用for循環(huán)寫了幾個延時的子程序貼上來,希望能對初學者有所幫助.(晶振12MHz,一個機器周期1us.)

void Delay(uchar i)
{
while(--i);
}

21: void Delay(uchar i)
22: {
23: while(--i);
C:0x001F DFFE DJNZ R7,Delay(C:001F)
24: }

一. 500ms延時子程序

程序:

void delay500ms(void)

{

unsigned char i,j,k;

for(i=15;i>0;i--)

for(j=202;j>0;j--)

for(k=81;k>0;k--);

}

產生的匯編:

C:0x08007F0F MOVR7,#0x0F

C:0x08027ECA MOVR6,#0xCA

C:0x08047D51 MOVR5,#0x51

C:0x0806DDFE DJNZ R5,C:0806

C:0x0808DEFA DJNZ R6,C:0804

C:0x080ADFF6 DJNZ R7,C:0802

C:0x080C22 RET

計算分析:

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

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

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

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

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

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

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

二. 200ms延時子程序

程序:

void delay200ms(void)

{

unsigned char i,j,k;

for(i=5;i>0;i--)

for(j=132;j>0;j--)

for(k=150;k>0;k--);

}

產生的匯編

C:0x08007F05 MOVR7,#0x05

C:0x08027E84 MOVR6,#0x84

C:0x08047D96 MOVR5,#0x96

C:0x0806DDFE DJNZ R5,C:0806

C:0x0808DEFA DJNZ R6,C:0804

C:0x080ADFF6 DJNZ R7,C:0802

C:0x080C22 RET

三. 10ms延時子程序

程序:

void delay10ms(void)

{

unsigned char i,j,k;

for(i=5;i>0;i--)

for(j=4;j>0;j--)

for(k=248;k>0;k--);

}

產生的匯編

C:0x08007F05 MOVR7,#0x05

C:0x08027E04 MOVR6,#0x04

C:0x08047DF8 MOVR5,#0xF8

C:0x0806DDFE DJNZ R5,C:0806

C:0x0808DEFA DJNZ R6,C:0804

C:0x080ADFF6 DJNZ R7,C:0802

C:0x080C22 RET

四. 1s延時子程序

程序:

void delay1s(void)

{

unsigned char h,i,j,k;

for(h=5;h>0;h--)

for(i=4;i>0;i--)

for(j=116;j>0;j--)

for(k=214;k>0;k--);

}

產生的匯編

C:0x08007F05 MOVR7,#0x05

C:0x08027E04 MOVR6,#0x04

C:0x08047D74 MOVR5,#0x74

C:0x08067CD6 MOVR4,#0xD6

C:0x0808DCFE DJNZ R4,C:0808

C:0x080ADDFA DJNZ R5,C:0806

C:0x080CDEF6 DJNZ R6,C:0804

C:0x080EDFF2 DJNZ R7,C:0802

C:0x081022 RET

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


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

嵌入式系統(tǒng)是一種專用的計算機系統(tǒng),作為裝置或設備的一部分,通常嵌入式系統(tǒng)是一個控制程序存儲在ROM中的嵌入式處理器控制板,事實上所有帶有數(shù)字接口的設備,有些嵌入式系統(tǒng)還包含操作系統(tǒng),但大多數(shù)嵌入式系統(tǒng)都是由單個程序實現(xiàn)整...

關鍵字: 嵌入式 語言 技術

語音編碼器的主要功能就是把用戶語音的PCM(脈沖編碼調制)樣值編碼成少量的比特(幀)。這種方法使得語音在連路產生誤碼、網(wǎng)絡抖動和突發(fā)傳輸時具有健壯性(Robustness)。在接收端,語音幀先被誤碼為PCM語音樣值,然后...

關鍵字: 語音編碼器 PCM 語言

模糊控制算法(理論知識)

關鍵字: 模糊控制 語言

任何一種“語言”,都是各種“語言特性”的組合。

關鍵字: 程序 語言 嵌入式

由于新冠疫情,口罩已經成為了一種日常用品。而日本似乎十分熱衷于研究不同類型的口罩,例如為了應對夏季的“冰鎮(zhèn)口罩”和帶微型電扇的口罩,還有為了女性美觀研發(fā)的“小臉美口罩”。 8月4日,據(jù)媒體報道,日本一

關鍵字: 口罩 日本 智能 翻譯 語言

研究表明,人在老年時學習第二語言也可以改善認知功能。 雖然我們大多數(shù)人都容易學會技術,但學習語言從未如此簡單。

關鍵字: Android 語言 verbling

航科院民用無人機檢驗中心在湖北武漢對易瓦特科技股份公司的EWZ-S8八旋翼無人機進行了無人機系統(tǒng)安全能力二級圍欄檢驗。本次檢驗耗時3個多小時。檢驗中心檢驗員針對EWZ-S8八旋翼無人機進行了無人

關鍵字: 無人機 語言

什么是51單片機?它有什么注意事項?編程也好設計也罷,都要有遵循的規(guī)則??梢园l(fā)揮自己的創(chuàng)新但是要顧全大局,不能隨意的編程。下面分享關于51單片機編程的一些規(guī)則,希望能幫到大家,避免大家四處碰壁。

關鍵字: 51單片機 編程 語言

1月15日,打著中科院計算所出品、完全自主開發(fā)旗號的國產編程語言“木蘭”引發(fā)廣泛關注,但很快被發(fā)現(xiàn)是基于Python語言套殼、換皮而來的產物。 面對質疑,中科院計算所編譯實驗室員工、“木蘭”語言研發(fā)團

關鍵字: 中科院 國產 木蘭 編程 語言 劉雷 計算所 重罰

國產編程語言“木蘭”橫空出世,后續(xù)結果反轉令人不齒。 近日,一則關于國產編程語言“木蘭”出世的消息讓人眼前一亮。據(jù)悉,“木蘭”是面向智能物聯(lián)應用的編程語言,由我國科研人員自主設計、開發(fā)和實現(xiàn),與之配套

關鍵字: 中科院 木蘭 漢芯 編程 語言
關閉