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

正文內(nèi)容

[信息與通信]第03章mcs-51單片機匯編語言程序設(shè)計(編輯修改稿)

2024-11-12 17:33 本頁面
 

【文章內(nèi)容簡介】 MOV RESULT, A LJMP END1 MEMSP1: MOV A, R0 ;相減分支 CLR C SUBB A, R1 MOV RESULT, A LJMP END1 MEMSP2: MOV A, R0 ;乘法分支 MOV B, R1 CLR C MUL AB MOV RESULT, A MOV RESULT+1, B LJMP END1 MEMSP3: MOV A, R0 ;除法分支 MOV B, R1 CLR C DIV AB MOV RESULT, A MOV RESULT+1, B LJMP END1 MEMSP4: MOV A, R0 ;邏輯與分支 ANL A, R1 MOV RESULT, A LJMP END1 MEMSP5: MOV A, R0 ;邏輯或分支 ORL A, R1 MOV RESULT, A LJMP END1 END ? 【 例 】 兩個無符號數(shù)比較大小。設(shè)外部RAM單元 ST1和 ST2中存放兩個無符號二進制數(shù),要找出其中的大數(shù)存入 ST3單元中。程序流程框圖如圖 36所示。 圖 36 求大數(shù)程序流程 參考程序如下: ORG 0000H LJMP START ORG 0100H START: MOV A, addr1 ;將 addr1中內(nèi)容送 A CJNE A, addr2, LOOP1 ;兩數(shù)比較,不相等則 轉(zhuǎn) LOOP1 LOOP3: AJMP $ ;結(jié)束 LOOP1: JC LOOP2 ;當(dāng) CY= 1,轉(zhuǎn) LOOP2 MOV addr3, A ; CY= 0, (A)> (addr2) SJMP LOOP3 ;轉(zhuǎn)結(jié)束 LOOP2: MOV addr3, addr2 ; CY= 1, (addr2)> (A) SJMP LOOP3 END 循環(huán)程序設(shè)計 在實際應(yīng)用中經(jīng)常會遇到功能相同,需要多次重復(fù)執(zhí)行某段 程序的情況,這時可把這段程序設(shè)計成循環(huán)結(jié)構(gòu),這有助于 節(jié)省程序的存儲空間,提高程序的質(zhì)量。循環(huán)程序一般由 4部 分組成。 1. 初始化。即設(shè)置循環(huán)過程中有關(guān)工作單元的初始值,如置循環(huán)次數(shù)、地址指針及工作單元清零等。 2. 循環(huán)體。即循環(huán)處理部分,完成主要的計算或操作任務(wù),是重復(fù)執(zhí)行的程序段。 3. 循環(huán)控制。每循環(huán)一次,就要修改循環(huán)次數(shù)、數(shù)據(jù)及地址指針等循環(huán)變量。并根據(jù)循環(huán)結(jié)束條件,判斷是否結(jié)束循環(huán)。 4. 循環(huán)結(jié)束處理。對結(jié)果進行分析、處理、保存。 循環(huán)程序結(jié)構(gòu)有兩種,如圖 37所示 。 圖 37 循環(huán)程序結(jié)構(gòu) ? 圖 (a)是“先執(zhí)行后判斷”結(jié)構(gòu),適用于循環(huán)次數(shù)已知的情況。其特點是進入循環(huán)后,先執(zhí)行循環(huán)處理部分,然后根據(jù)循環(huán)次數(shù)判斷是否結(jié)束循環(huán)。 ? 圖 (b)是“先判斷后執(zhí)行”結(jié)構(gòu),適用于循環(huán)次數(shù)未知的情況。其特點是將循環(huán)控制部分放在循環(huán)的入口處,先根據(jù)循環(huán)控制條件判斷是否結(jié)束循環(huán),若不結(jié)束,則執(zhí)行循環(huán)操作;若結(jié)束,則退出循環(huán)。 【 例 】 50 ms軟件延時程序。軟件延時程序一般都是由 DJNZ Rn, rel指令構(gòu)成。執(zhí)行一條 DJNZ指令需要兩個機器周期。軟件延時程序的延時時間主要與機器周期和延時程序中的循環(huán)次數(shù)有關(guān),在使用 12 MHz晶振時,一個機器周期為1μs,執(zhí)行一條 DJNZ指令需要兩個機器周期,即 2μs。適當(dāng)設(shè)置循環(huán)次數(shù),即可實現(xiàn)延時功能。 參考程序如下: ORG 0000H LJMP MEMS ORG 0100H MEMS: DEL: MOV R7, 125 ;外循環(huán)次數(shù),該指令為一個機器周期 DEL1: MOV R6, 200 ;內(nèi)循環(huán)次數(shù) DEL2: DJNZ R6, DEL2 ; 200 2= 400μs (內(nèi)循環(huán)時間 ) DJNZ R7, DEL1 ; ms 125= 50 ms(外循環(huán)時間 ) SJMP $ END 【 例 】 排序程序。設(shè)在內(nèi)部 RAM中存一無符號數(shù)的數(shù)組,其長度為 n,起始地址是 30H,要求將它們按從大到小排序,排序后仍存放在原區(qū)域中。 按“冒泡法”對 n個數(shù)排序時,可能用不到 n1次循環(huán),排序就結(jié)束了。為了提高排序速度,程序中可設(shè)一交換標(biāo)志位,如 10H位,每次循環(huán)中,若有交換則執(zhí)行 SETB 10H,表明排序未完成;若無交換,則執(zhí)行 CLR 10H,表明排序已經(jīng)完成。每次循環(huán)結(jié)束時,測 10H位,判斷排序是否結(jié)束。 參考程序如下: ORG 0000H LJMP BUBBLE ORG 0100H BUBBLE: MOV R0, 30H MOV B, 64H CLR 10H DEC B ;長度計數(shù) LOOP: MOV A, @R0 ;內(nèi)循環(huán)的入口 MOV 20H, A ;暫存,為交換作準(zhǔn)備 INC R0 MOV 21H, @R0 CJNE A, 21H, BUEU ;若 (20H)≠(21H)轉(zhuǎn)移 BUEU: JNC BUNEXT ; (20H)≥(21H)轉(zhuǎn)移 M
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1