新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)匯編延時(shí)程序的理解

單片機(jī)匯編延時(shí)程序的理解

作者: 時(shí)間:2012-08-20 來源:網(wǎng)絡(luò) 收藏

這樣,我們就可以算算這個(gè)子累計(jì)進(jìn)行了多少個(gè)周期,然后乘以1微秒,就算出它占用的時(shí)間,也就是的時(shí)長了!

第一句:DELAY: MOV R7,#250 ;執(zhí)行了一次,沒有任何語句跳轉(zhuǎn)給它,單周期。1

第二句:D1: MOV R6,#250 ;執(zhí)行了250次,全部是第四句跳過來的,單周期。250

第三句:D2: DJNZ R6,D2 ;原地執(zhí)行了250次,從第二句順延(第二句執(zhí)行完,沒有其它跳轉(zhuǎn)的話肯定要執(zhí)行第三句)過來250次,也就是250*250=62500次,雙周期*2。125000

第四句:DJNZ R7,D1 ; 從第三句順延過來250次,雙周期*2。500

總計(jì):1+250+125000+500=1257501次,乘以1微秒,換算約為0.13秒。

我們可以通過調(diào)整R6、R7的數(shù)值來調(diào)整的長度。事實(shí)上,8位計(jì)算機(jī)中,R6之類的工作寄存器地址最大只能放下255的十進(jìn)制數(shù)值,因此要通過上述達(dá)到更長的是辦不到的。

那怎么辦呢?

我們可以再增加一個(gè)R4,讓上述的最多可以循環(huán)255遍,這樣,0.13秒的200多倍就是30秒上下了,不夠的話再增加循環(huán),又可以擴(kuò)大200多倍,當(dāng)然,工作寄存器的數(shù)量是有限的,因此這個(gè)延時(shí)程序也是有限的,如果還不夠用怎么辦呢,就目前我所學(xué)的知識(shí),只能在母程序里面設(shè)置循環(huán)了,也就是讓這個(gè)子程序在母程序里面繼續(xù)循環(huán)


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉