51單片機(jī)匯編延時程序算法詳解將以12MHZ晶振為例,詳細(xì)講解MCS-51單片機(jī)中匯編程序延時的精確算法。指令周期、機(jī)器周期與時鐘周期指令周期:CPU執(zhí)行一條指令所需要的時間稱為指令周期,它是以機(jī)器周期為單位的,指令
計(jì)算機(jī)反復(fù)執(zhí)行一段程序以達(dá)到延時的目的稱為軟件延時,單片機(jī)應(yīng)用程序中經(jīng)常需要短時間延時,有時要求很高的精度,網(wǎng)上或書中雖然有現(xiàn)成的公式可以套用,但在部分算法講解中發(fā)現(xiàn)有錯誤之處,而且延時的具體算法講得
在學(xué)單片機(jī)時我們第一個例子就是燈的閃爍,那是用延時程序做的,現(xiàn)在回想起來,這樣做不很恰當(dāng),為什么呢?我們的主程序做了燈的閃爍,就不能再干其它的事了,難道單片機(jī)只能這樣工作嗎?當(dāng)然不是,我們可以用定時器來
用過前面的學(xué)習(xí),我們已經(jīng)知道,程序中的符號R7、R6是代表了一個個的RAM單元,是用來放一些數(shù)據(jù)的,下面我們再來看一下其它符號的含義。DELAY: MOV R7,#250 ??;(6)D1: MOV R6,#250 ;(7)D2:
單片機(jī)匯編實(shí)現(xiàn)延遲的程序代碼:DELAY: MOV R7,#250 ;D1: MOV R6,#250 ;D2: DJNZ R6,D2 ;DJNZ R7,D1 ;RET如果用高級語言編程,只需要簡單地調(diào)用延時函數(shù)就可以實(shí)現(xiàn),但是計(jì)算機(jī)具體是怎么實(shí)現(xiàn)的呢?要想知
上一次課中,我們已經(jīng)知道,程序中的符號R7、R6是代表了一個個的RAM單元,是用來放一些數(shù)據(jù)的,下面我們再來看一下其它符號的含義?!磫纹瑱C(jī)延時程序〉MOV:這是一條指令,意思是傳遞數(shù)據(jù)。說到傳遞,我們都很清楚,
我們已經(jīng)知道,程序中的符號R7、R6是代表了一個個的RAM單元,是用來放一些數(shù)據(jù)的,下面我們再來看一下其它符號的含義。 DELAY: MOV R7,#250 ?。唬ǎ叮? D1: MOV
我們已經(jīng)知道,程序中的符號R7、R6是代表了一個個的RAM單元,是用來放一些數(shù)據(jù)的,下面我們再來看一下其它符號的含義。DELAY: MOV R7,#250 ?。唬ǎ叮〥1: MOV R6,#250 ??;(7) D2: DJNZ R6,D2 ?。?/p>
筆者提出了適合于不同延時級別需要的軟件或硬件精確延時方法,并已實(shí)際應(yīng)用,效果良好,大大縮短了開發(fā)周期。