單片機原理及應用武漢鐵路35課件_第1頁
單片機原理及應用武漢鐵路35課件_第2頁
單片機原理及應用武漢鐵路35課件_第3頁
單片機原理及應用武漢鐵路35課件_第4頁
單片機原理及應用武漢鐵路35課件_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

單片機原理及應用武漢鐵路職業(yè)技術學院循環(huán)程序設計一、引例二、循環(huán)程序設計結構三、舉例一、引例在程序設計中,常常要求某一段程序重復執(zhí)行多次,這時可以采用循環(huán)結構程序。循環(huán)結構程序可以大大簡化程序,但程序的運行時間不會縮短。例1

如果采用簡單程序的設計思想,程序如下:MOV DPTR,#1000HCLR AMOVX @DPTR,A ;第一個單元清零INC DPTRMOVX @DPTR,A ;第二個單元清零INC DPTRSJMP $;第十個單元清零將片外RAM從1000H開始的10個單元清零。一、引例按照上述程序的設計思想,若對100個或1000個單元清零,就要重復寫100次或1000次傳送指令,這種方法是不可取的。但若用下面的循環(huán)結構程序,它能完成同樣的功能,卻大大簡化了程序。

MOV DPTR,#1000H ;

設置地址指針CLR A MOV R7,#10 ;

設置循環(huán)計數(shù)LOOP:MOVX@DPTR,A ;

循環(huán)體

INC DPTR

;

修改指針

DJNZ R7,LOOP

;

循環(huán)判終SJMP $二、循環(huán)程序設計結構1.循環(huán)初始化:2.循環(huán)體:即設置循環(huán)開始的狀態(tài),如地址指針、循環(huán)次數(shù)、寄存器初始值等。要求重復執(zhí)行的程序段部分。3.循環(huán)控制:控制循環(huán)的執(zhí)行部分,如修改地址指針、修改循環(huán)變量、循環(huán)判終等。循環(huán)程序一般包括如下3個部分。二、循環(huán)程序設計結構循環(huán)程序的結構如圖所示。圖中(a)循環(huán)結構中是否結束循環(huán)體執(zhí)行判斷部分在循環(huán)體之后,則循環(huán)體至少執(zhí)行一次;圖中(b)循環(huán)結構中是否結束循環(huán)體執(zhí)行判斷部分在循環(huán)體之前,則循環(huán)體有可能一次都不執(zhí)行。設置循環(huán)初值循環(huán)體修改指針循環(huán)結束?YN設置循環(huán)初值循環(huán)結束?N循環(huán)體修改指針Y(a)(b)循環(huán)程序一般包括如下3個部分。三、舉例設有20個單字節(jié)數(shù),存放在片內(nèi)RAM從30H開始的單元,求累加和(雙字節(jié)),結果存放在61H(結果的高位)、60H(結果的低位)單元。程序流程圖如圖所示,程序清單如下:數(shù)據(jù)塊求和開始初始化:地址指針R0←#30H

計數(shù)器R7←#20H;累加和單元(60H)←#0,(60H)←#060H←(60H)+@R0Cy=1?(61H)←(61H)+1R0←(R0)+1R7-1=0?結束YNNYORG 2000HSTART:MOV R0,#30H ;設置地址指針初值 MOV R7,#20 ;設置循環(huán)次數(shù) MOV 60H,#00H ;結果單元清零 MOV 61H,#00H ;結果單元清零LOOP:MOV A,@R0 ADD A,60H ;累加

×

ADD 60H,A MOV 60H,A JNC NEXT ;無進位,轉NEXT INC 61H ;有進位,高位加1NEXT:INC R0 ;指向下一個字節(jié) DJNZR7,LOOP ;20個數(shù)沒有累加

;完,繼續(xù)循環(huán) SJMP $ END

這是一個循環(huán)次數(shù)已知一種循環(huán)控制程序設計,在循環(huán)程序設計中,當有多個數(shù)據(jù)在存儲單元中連續(xù)存放時,通常采用寄存器間接尋址的方式來存、取數(shù)據(jù)。三、舉例例2

ORG 1000HSTART:MOV DPTR,#3000H ;設置地址指針 MOV MAX,#00H;結果單元送最小值LOOP:MOVX A,@DPTR;從片外RAM取數(shù) JZ QUIT ;若為結束字節(jié),轉程序結尾 CJNE A,MAX,NEXT ;數(shù)據(jù)塊的每個字節(jié)與MAX單元比較大小NEXT:JC DONE MOV MAX,A ;取每次比較的最大值送MAX單元DONE:INC DPTR ;修改地址指針 SJMP LOOP ;繼續(xù)循環(huán)QUIT:SJMP QUIT END三、舉例設有一個無符號的數(shù)據(jù)塊,起始地址為片外RAM3000H,數(shù)據(jù)塊以00H結束,查找這個數(shù)據(jù)塊中的最大值,并將結果存入片內(nèi)RAM的MAX單元。開始初始化:(MAX)←#0地址指針DPTR←#3000H取數(shù):A←DPTRA=0?(MAX)←ADPTR←DPTR+1結束(MAX)<A?NYNY圖(c)例2程序流程圖這是一個循環(huán)次數(shù)未知的循環(huán)程序。是通過設定條件來控制循環(huán)程序是否繼續(xù)循環(huán)。三、舉例Vcc40VccC116pFR2510ΩLEDP0.0IC1895519RSTXTAL2XTAL1GND2031VccR110kΩSA01819C2C330pF30pF12MHzEA+閃光燈電路原理圖例4ORG0000HL1: CPLP0.0 ;P0.0輸出取反

MOVR6,#00H ;延時L2:MOVR7,#00HL3:NOP DJNZR7,L3DJNZR6,L2SJMPL1END三、舉例如圖所示是一個單片機最小系統(tǒng),設計一個使發(fā)光二極管閃爍的程序。例5ORG0000H MOVA,#0FEHL1: MOVP2,A RLA ;P0.0輸出取反

MOVR6,#00H ;延時L2: MOVR7,#00HL3: NOP DJNZR7,L3 DJNZR6,L2 SJMPL1 END

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論