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

正文內(nèi)容

【大學(xué)】單片機(jī)課件匯編語(yǔ)言程序設(shè)計(jì)ppt(編輯修改稿)

2024-08-28 16:18 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 編程: JMP128: MOV A, R3 CLR C RLC A ; A←(A) 2 MOV DPTR, JMPTAB JMP @A+DPTR JMPTAB: AJMP ROUT00 ; 128個(gè)子程序首址 ┆ ┆ ┆ ┆ AJMP ROUT7F 分支結(jié)構(gòu)程序 此程序要求 128個(gè)轉(zhuǎn)移目的地址(ROUT00~ ROUT7F)必須駐留在與絕對(duì)轉(zhuǎn)移指令 AJMP同一個(gè) 2KB存儲(chǔ)區(qū)內(nèi)。 RL指令對(duì)變址部分乘以 2,是由于每條 AJMP指令占用 2個(gè)字節(jié)。 分支結(jié)構(gòu)程序 采用地址偏移量表 上面介紹的散轉(zhuǎn)程序,首先必須建立轉(zhuǎn)移指令表,程序根據(jù)散轉(zhuǎn)點(diǎn)執(zhí)行 “ JMP @A+ DPTR”指令,進(jìn)入轉(zhuǎn)移表后,再由雙字節(jié) “ AJMP”指令轉(zhuǎn)入 2KB空間范圍內(nèi)的操作入口或由三字節(jié) “ LJMP” 指令轉(zhuǎn)入64KB空間范圍內(nèi)的操作入口。 如果散轉(zhuǎn)點(diǎn)較少,所有操作程序處在同一頁(yè) (256B)時(shí),可使用地址偏移量轉(zhuǎn)移表。 例 根據(jù) R7的內(nèi)容轉(zhuǎn)向 5個(gè)操作程序。 解: JUMP3: MOV A, R7 MOV DPTR, TAB3 MOVC A, @A+DPTR 分支結(jié)構(gòu)程序 JMP @A+DPTR TAB3: DB OPR0TAB3 DB OPR1TAB3 DB OPR2TAB3 DB OPR3TAB3 DB OPR4TAB3 OPR0: [操作程序 0] OPR1: [操作程序 1] OPR2: [操作程序 2] OPR3: [操作程序 3] OPR4: [操作程序 4] 分支結(jié)構(gòu)程序 從本例可以看出,地址偏移量表每項(xiàng)對(duì)應(yīng)一個(gè)操作程序的入口,占一個(gè)字節(jié),分別表示對(duì)應(yīng)入口地址與表首的偏移量。 使用這種方法,地址偏移量表的長(zhǎng)度加上各操作程序長(zhǎng)度必須在同一頁(yè)內(nèi)。當(dāng)然,最后一個(gè)操作程序的長(zhǎng)度不受限制,只要其程序入口與地址偏移量表首的偏移量在一個(gè)字節(jié)內(nèi) (小于 256)就可以。 分支結(jié)構(gòu)程序 采用轉(zhuǎn)向地址表 采用地址偏移量表的方法,其轉(zhuǎn)向范圍局限于一頁(yè),使用受限制。 若使用轉(zhuǎn)向較大的范圍,方法 : (1)建立一個(gè)轉(zhuǎn)向地址表,即將所要轉(zhuǎn)向的雙字節(jié)地址組成一個(gè)表; (2)在散轉(zhuǎn)時(shí),先用查表方法獲得表中的轉(zhuǎn)向地址; (3)將該地址裝入 DPTR中,再清 A; (4)執(zhí)行 “ JMP @A+ DPTR”指令,程序轉(zhuǎn)入所要到達(dá)的目的地址中去。 例 根據(jù) R7的內(nèi)容轉(zhuǎn)入各對(duì)應(yīng)的操作程序中去。 解 設(shè)轉(zhuǎn)移入口地址為 OPR0、 OPR … 、 OPRn ,散轉(zhuǎn)程序及轉(zhuǎn)移表如下: 分支結(jié)構(gòu)程序 JMUP4: MOV DPTR, TAB4 MOV A, R7 ADD A, R7 ; A←(R7) 2 JNC NADD INC DPH ; (R7) 2進(jìn)位加至 DPH NADD: MOV R3, A ;暫存 MOVC A, @A+ DPTR ;取地址高 8位 XCH A, R3 ;置轉(zhuǎn)移地址高 8位 INC A MOVC A, @A+ DPTR ;取地址低 8位 分支結(jié)構(gòu)程序 MOV DPL, A ;置轉(zhuǎn)移地址低 8位 MOV DPH, R3 CLR A JMP @A+ DPTR TAB4: DW OPR0 DW OPR1 ┆ DW OPRn 這種散轉(zhuǎn)方法可以達(dá)到 64KB地址范圍內(nèi)的轉(zhuǎn)移,但也可看出,散轉(zhuǎn)數(shù) n小于 256。若要使 n大于 255,可用雙字節(jié)加法運(yùn)算的方法修改 DPTR。 循環(huán)結(jié)構(gòu)程序 ? 循環(huán)結(jié)構(gòu)程序 循環(huán)程序設(shè)計(jì): 能連續(xù)多次重復(fù)執(zhí)行的某段程序。 目的: 縮短程序長(zhǎng)度,節(jié)省存儲(chǔ)單元,提高 所編寫(xiě) 程序 的 質(zhì)量。 一、循環(huán)結(jié)構(gòu)程序組成 (1)初始化部分 為循環(huán)程序作準(zhǔn)備。如設(shè)置循環(huán)次數(shù)計(jì)數(shù)器初值,地址指針置初值,為其他變量賦初值等。一個(gè)重要部分,不注意容易出錯(cuò)。 (2)處理部分 重復(fù)執(zhí)行的程序段,循環(huán)程序的實(shí)體。 循環(huán)結(jié)構(gòu)程序 (3)循環(huán)控制部分 每執(zhí)行一次循環(huán)體后,都要為下一次循環(huán)作必要的準(zhǔn)備。如修改計(jì)數(shù)器值;檢查循環(huán)條件是否符合,以決定繼續(xù)循環(huán)或退出循環(huán)。 (4)結(jié)束部分 分析或存放執(zhí)行結(jié)果。 二、循環(huán)結(jié)構(gòu)程序兩種基本結(jié)構(gòu) (1)計(jì)數(shù)循環(huán)結(jié)構(gòu) (先處理后控制 ): 先進(jìn)入處理部分再控制循環(huán)。此結(jié)構(gòu)至少執(zhí)行一次循環(huán)體; 循環(huán)結(jié)構(gòu)程序 (2)條件循環(huán)結(jié)構(gòu) (先控制后處理 ): 先控制循環(huán),后進(jìn)入處理部分。此結(jié)構(gòu)有時(shí)不進(jìn)入循環(huán)體就退出循環(huán),故稱(chēng)之 “ 允許 0次循環(huán)的循環(huán)程序 ” 。 注: 循環(huán)結(jié)構(gòu)的程序,其關(guān)鍵是控制循環(huán)次數(shù)。 對(duì) 循環(huán)次數(shù)的控制方法有: ⑴ 循環(huán)次數(shù)已知,用計(jì)數(shù)器控制循環(huán); ⑵ 次數(shù)未知,按條件控制循環(huán); ⑶ 按邏輯尺控制循環(huán)。 有些情況下,循環(huán)體中的處理部分為分支程序,這就構(gòu)成分支循環(huán)結(jié)構(gòu)。實(shí)際中常用邏輯尺來(lái)控制分支和循環(huán)。所謂邏輯尺就是一個(gè)存儲(chǔ)單元 (字節(jié)或字單元 ),在這存儲(chǔ)單元中的每一位便是一個(gè)標(biāo)志,它有兩個(gè)狀態(tài) 0或 1。根據(jù)標(biāo)志位為 0或?yàn)?1就可以實(shí)現(xiàn)兩路分支,多個(gè)標(biāo)志就可重復(fù)地實(shí)現(xiàn)分支??梢?jiàn),重復(fù)的次數(shù)就是邏輯尺中設(shè)定的位數(shù)。 循環(huán)結(jié)構(gòu)程序 循環(huán)結(jié)構(gòu)程序 三、循環(huán)程序分類(lèi) 單循環(huán)程序: 結(jié)構(gòu)特點(diǎn): 循環(huán)體為順序結(jié)構(gòu)或分支結(jié)構(gòu),每循環(huán)一次,執(zhí)行一次循環(huán)體程序。循環(huán)體中不包含循環(huán)程序。 51所用指令: DJNZ Rn, rel ;以 Rn作控制計(jì)數(shù)器 DJNZ direct, rel ;以 direct作控制計(jì)數(shù)器 多重循環(huán)程序 (循環(huán)嵌套 ) 結(jié)構(gòu)特點(diǎn): 在循環(huán)體中還包含有循環(huán)的程序。若把每重循環(huán)的內(nèi)部看作一個(gè)整體,則多重循環(huán)結(jié)構(gòu)與單循環(huán)結(jié)構(gòu)是一樣的。 循環(huán)結(jié)構(gòu)程序 四、使用多重循環(huán)程序必須注意的問(wèn)題 ⑴循環(huán)嵌套必須層次分明,不允許產(chǎn)生內(nèi)外層交叉; ⑵外循環(huán)可以一層層向內(nèi)循環(huán)進(jìn)入,結(jié)束時(shí)由里向外一層層退出; ⑶內(nèi)循環(huán)體可以直接轉(zhuǎn)入外循環(huán)體,實(shí)現(xiàn)一個(gè)循環(huán)由多個(gè)條件控制的循環(huán)結(jié)構(gòu)方式。 循環(huán)結(jié)構(gòu)程序 五、舉例 例 多個(gè)單字節(jié)數(shù)據(jù)求和。 解 設(shè) Xi為單字節(jié)數(shù) (i=1~ n),依次存放在內(nèi)部 RAM中50H單元開(kāi)始的連續(xù)單元中。 要求 n放入 R2中,把計(jì)算結(jié)果存入 R3R4中 (高位存入R3,低位存入 R4)。 循環(huán)結(jié)構(gòu)程序 圖 46 多個(gè)單字節(jié)數(shù)據(jù)求和程序框圖 循環(huán)結(jié)構(gòu)程序 參考程序 ADD1: MOV R3, 00H MOV R4, 00H MOV R2, n ; R2為循環(huán)次數(shù)計(jì)數(shù)器 MOV R0, 50H ; R0作間址寄存器用它來(lái)尋址 Xi LOOP: MOV A, R4 ;取部分和低位 ADD A, @R0 ;與 Xi相加 MOV R4, A INC R0 ;地址加 1 CLR A ADDC A, R3 ;低位字節(jié)向高位進(jìn)位 MOV R3, A DJNZ R2, LOOP ;未加完繼續(xù)重復(fù) 練習(xí)題 [例題 ] 已知片內(nèi) RAM 30H~3FH單元中存放了 16個(gè)二進(jìn)制無(wú)符號(hào)數(shù),編制程序求它們的累加和,并將其和數(shù)存放在 R4, R5中。 解: 每次求和的過(guò)程相同,可以用循環(huán)程序?qū)崿F(xiàn)。 16個(gè)二進(jìn)制無(wú)符號(hào)數(shù)求和,循環(huán)程序的循環(huán)次數(shù)應(yīng)為 16次 (存放在 R2中 ),它們的和放在 R4, R5中 (R4存高 8位, R5存低 8位 )。程序流程圖如右圖所示。 程序如下: ORG 1000H START: MOV R0, 30H MOV R2, 10H 。 設(shè)置循環(huán)次數(shù) ( 16) MOV R4, 00H 。 和高位單元 R4清 0 MOV R5, 00H 。 和低位單元 R5清 0 LOOP: MOV A, R5 。 和低 8位的內(nèi)容送 A ADD A, @R0。 將 @R0與 R5的內(nèi)容相加并產(chǎn)生進(jìn)位 Cy MOV R5, A 。 低 8位的結(jié)果送 R5 CLR A 。 A清 0 ADDC A, R4 。 將 R4的內(nèi)容和 Cy相加 MOV R4, A 。 高 8位的結(jié)果送 R4 INC R0 。 地址遞增 ( 加 1) DJNZ R2, LOOP 。若循環(huán)次數(shù)減 1不為 0, 則轉(zhuǎn)到 LOOP處循環(huán);否則 , 循環(huán)結(jié)束 SJMP $ END [例題 ] 編制程序?qū)⑵瑑?nèi) RAM的 30H~ 4FH單元中的內(nèi)容傳送至片外 RAM的 2022H開(kāi)始的單元中。 同書(shū)上 P48, P49 例 332,334 解: 每次傳送數(shù)據(jù)的的過(guò)程相同,可用循環(huán)程序?qū)崿F(xiàn)。 30H~ 4FH共 32個(gè)單元,循環(huán)次數(shù)應(yīng)為 32次 (保存在 R2中 ),為了方便每次傳送數(shù)據(jù)時(shí)地址的修改,送片內(nèi) RAM數(shù)據(jù)區(qū)首地址送 R0,片外 RAM數(shù)據(jù)區(qū)首地址送 DPTR。程序流程圖如右圖所示。 程序如下: ORG 1000H START: MOV R0, 30H MOV DPTR, 2022H MOV R2, 20H 。 設(shè)置循環(huán)次數(shù) LOOP: MOV A, @R0 。 將片內(nèi) RAM數(shù)據(jù)區(qū)內(nèi)容送 A MOVX @DPTR, A 。 將 A的內(nèi)容送片外 RAM數(shù)據(jù)區(qū) INC R0 。 源地址遞增 INC DPTR 。 目的地址遞增 DJNZ R2, LOOP 。 若 R2的不為 0, 則轉(zhuǎn)到 LOOP處 繼續(xù)循環(huán);否則循環(huán)結(jié)束 SJMP $ END 循環(huán)結(jié)構(gòu)程序 例 已知 80C51單片機(jī)作用的晶振為 6MHz,要設(shè)計(jì) 一個(gè)軟件延時(shí)程序,延時(shí)時(shí)間為 10ms。同書(shū) P63例 411 分析: 延時(shí)時(shí)間主要與兩個(gè)因素有關(guān): (1)所用晶振; (2)延時(shí)程序中的循環(huán)次數(shù)。 現(xiàn)已知晶振為 6MHz,則可知一個(gè)機(jī)器周期為 2μs, 那么 DJNZ指令為 2個(gè)機(jī)器周期,共 4μs ,采用單重循環(huán)要循環(huán) 250次,可實(shí)現(xiàn) 1ms的延時(shí), 1ms則再用一循環(huán),循環(huán) 10次,可得 10ms延時(shí)。 循環(huán)結(jié)構(gòu)程序 圖 47 延時(shí)程序框圖 循環(huán)結(jié)構(gòu)程序 解 本例采用循環(huán)體為兩 NOP指令,則 (1+1+2) 2μs MT=1ms, MT=125=7DH ORG 2022H MOV R0, 0AH ;毫
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1