專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)的匯編延時程序

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時間:2012年10月11日   【字體:
50ms延時;一般書上的程序

DEL: MOV R7,#200

LO:   MOV R6,#123

        NOP

L1:   DJNZ R6,L1

        DJNZ R7,L0

        RET

但是這個程序?qū)嶋H上延時50.001ms,多了一個機(jī)器周期,
其實(shí)這個問題是不可能由一個二重循環(huán)實(shí)現(xiàn)精確延時的,必須采用三重循環(huán)

我的程序;

DEL: MOV R5,#29

L0:    MOV R7,#22

L1:    MOV R6,#6

L2:    DJNZ R6,L2

         DJNZ R7,L1

         DJNZ R5,L0

         RET

此時精確延時50ms,并且三個寄存器里的數(shù)值是可以變化的,這里要討論的是,為什么不能,或說不容易用一個二重循環(huán)去實(shí)現(xiàn)一些精確的延時程序,而三重循環(huán)確一般是可以的,在數(shù)學(xué)上,是一些函數(shù)數(shù)值的遍歷性,他與連續(xù)函數(shù)的因連續(xù)而具有的介值性有所不同,是不是也存在一些值,用三重循環(huán)也不能實(shí)現(xiàn)呢?于是我們開始使用四重?充要條件是什么呢?
關(guān)閉窗口

相關(guān)文章