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