freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機程序設(shè)計方法(編輯修改稿)

2025-06-12 18:07 本頁面
 

【文章內(nèi)容簡介】 別指令并執(zhí)行下面舉幾個例子來分別解釋一下希望大家能以此類推 60程序一用計數(shù)器控制的單重循環(huán)程序源程序如下 CLR AMOV R2 20H MOV R1 22H LOOP ADD A@R1 INC R1 DJNZ R2 LOOP MOV 21H A 這段程序的作用是從 22H 單元開始存放一個數(shù)據(jù)塊其長度存放在 20H 單元中將數(shù)據(jù)塊求和要求將和存放入 21H 單元中和不超過 255 下面再 舉一個條件控制的循環(huán)程序程序二用條件控制的單重循環(huán)程序設(shè)字符串存放在內(nèi)部 RAM 的 21H 開始的單元中以結(jié)束作標志要求計算出該字符串的長度并將其存放在 20H 單元中源程序如下 CLR AMOV R021H 將地址指針指向 21H 單元LOOP CJNZ@R024H NEXT 與比較 SJMP COMP 找到結(jié)束 NEXT INC A 不為 0 計數(shù)器加 1 INC R0 修改地址指針 SJMP LOOP COMP MOV 20H A 存放結(jié)果試試看自己把上面兩段程序的流程圖畫出來下面再看一個例子 DELAY MOV R7250 D1 MOV R6250 D2 DJNZ R6 D2 DJNZ R7 D1 RET END 61這是一段約 125mS 的延時程序現(xiàn)在我們來把它改成下面表格中的程序右邊的程序 DELAY MOV R7250 DELAY MOV R7250 D1 MOV R6250 D1 MOV R6250 D2 DJNZ R6 D2 D2 MOV R5250 DJNZ R7 D1 D3 DJNZ R5 D3 RET DJNZ R6 D2 END DJNZ R7 D1 RET END 從這里可以引出一個概念程序的嵌套什么是嵌套 比如早上我騎自行車從家里到單位去上班當走到半路上時太太叫我去孩子學(xué)校拿點東西到了學(xué)校老師又叫我把學(xué)校的一臺電腦修一下修好電腦一個朋友又打電話叫我去他那里拿了一本單片機與嵌入式系統(tǒng)雜志完了之后再去上班這就是生活中的嵌套在單片機的程序設(shè)計中也有類似的現(xiàn)象有時為了達到某個目的往往要在一段循環(huán)程序中再加入另一段循環(huán)程序這就是單片機的程序嵌套通常我們把一個循環(huán)體中不再包含循環(huán)的叫做單重嵌套如果一個循環(huán)體中還包括有循環(huán)則叫做多重嵌套上面的表格中左邊的程序就是單重嵌套而右邊的程序則是多重嵌套另外須注意在多重嵌套中不允許各 個循環(huán)體互相交叉也不允許從外循環(huán)跳入內(nèi)循環(huán)否則編譯時會出錯了解了結(jié)構(gòu)化程序的設(shè)計下面再來看子程序的設(shè)計方法 2子程序的設(shè)計方法什么是子程序如何設(shè)計子程序要解釋這個問題讓我們先同樣從生活中的一個例子說起請看下面的數(shù)學(xué)題目 28*33+65+47*33+65+875*33+65 在這道題中我們一般是怎么算的也許大家都知道一般總是先把 33+65=98 代出來然后再用 28+47+875*98 來計算最后的結(jié)果為什么會這樣這是因為在這道題中我們多次用到了 33+65 這個中間結(jié)果在單片機的程序設(shè)計中有時也有這樣的情況比如下面的程序 主程序LOOP: SETB LCALL DELAY CLR LCALL DELAY LJMP LOOP 子程序DELAY: MOV R7,250 D1: MOV R6,250 D2: DJNZ R6,D2 DJNZ R7,D1 RET END這是大家非常熟悉的 LED 燈延時程序在這段程序中兩次調(diào)用到了 DELAY 這段程序為了簡化程序的設(shè)計我們就把 DELAY 這段程序單獨地列了出來這段列出的程序我們就叫它子程序而調(diào)用子程序的程序我們則叫它主程序 LOOP 的程序段在主程序執(zhí)行時每當要用到子程序時我們就用 LCALL 指令來調(diào)用子程序子程序執(zhí)行完之后必須返回主程序返回就用 RET 指令這我們以前都講過了這里不再重復(fù)另外如果子程序執(zhí)行的過程中還要再次調(diào)用其他的子程序這種現(xiàn)象我們就稱它為子程序的嵌套看上面右邊的圖就是一個兩層子程序的嵌套結(jié)構(gòu)圖這里有個問題在子程序的執(zhí)行過程中有時可能要使用到累加器和某些工作寄存器而在調(diào)用子程序前這些寄存器中可能已經(jīng)存放有主程序的中間結(jié)果它們在子程序返回后仍要使用這樣就需 62要在進入子程序之前將要使用的累加器和寄存器中的內(nèi)容預(yù)先轉(zhuǎn)移到安全的地方保存起來這叫現(xiàn)場保護當子程序執(zhí)行完即將返回主 程序之前還要將這些內(nèi)容先取出來送回到累加器和原來的工作寄存器中這個過程叫恢復(fù)現(xiàn)場保護現(xiàn)場和恢復(fù)現(xiàn)場通常使用堆棧即在進入子程序之前將需要保護的數(shù)據(jù)壓入堆棧在返回之前再將壓入的數(shù)據(jù)彈出到原來的工作單元中恢復(fù)原來的狀態(tài)看下面的例子 LOOP PUSH 03H 將 03H 單元中的值壓入堆棧保護 PUSH ACC 將累加器中的值壓入堆棧保護由于堆棧的操作是后進先出先進后出所以編寫指令時必須把后壓入堆棧的數(shù)據(jù)先彈出來才能保證恢復(fù)到原來的狀態(tài)在實際的程序設(shè)計中由于每個應(yīng)用程序的不同還必須根據(jù)具體的情況來考慮是否需要保護哪些數(shù)據(jù)需要 保護等等這就是單片機的堆棧為什么能夠變化的原因關(guān)于堆棧的操作先講這些后面的實驗中我們還將結(jié)合具體的實驗來分析接下來再看另一種程序 綜合程序的設(shè)計方法 3綜合程序的設(shè)計方法綜合程序有查表程序散轉(zhuǎn)程序數(shù)據(jù)排序程序代碼轉(zhuǎn)換程序等等作為初學(xué)者要想全面的掌握也確實有一定的難度所以只給大家簡單地提一下詳細的內(nèi)容就留到下則的課程中再來解釋四本課總結(jié)程序設(shè)計是單片機開發(fā)最重要的工作掌握程序設(shè)計的基本步驟和方法對于單片機的軟件編寫是至關(guān)重要的這一課的內(nèi)容較多對于一時無法搞清的部分大家可以結(jié)合以后的實際應(yīng)用慢慢去理解不要急于求 成千萬記住一點學(xué)習使用單片機絕不是一朝一夕的事如果你不是天才想速成單片機我還是勸你趕緊改行五第 16 課習題 1 什么是單片機的程序設(shè)計語言 2單片機的程序設(shè)計包括哪幾個步驟 3 畫出單片機的流程圖符號并簡述它的作用 4 單片機的分支結(jié)構(gòu)程序指令有哪幾條 5什么是單片機的程序嵌套想想生活中還有哪些現(xiàn)象與單片機的嵌套類似 63第十七課單片機的定時 /計數(shù)器通過前面十幾節(jié)課的學(xué)習我們已經(jīng)掌握了很多的單片機知識也許您已經(jīng)可以用它來開發(fā)具體的產(chǎn)品了不過在有些工業(yè)及民用控制中我們往往需要定時檢測某個
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1