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

正文內(nèi)容

單片機(jī)技術(shù)及應(yīng)用_第四章_mcs-51程序設(shè)計(jì)-資料下載頁

2025-10-10 12:55本頁面
  

【正文】 L2: DJNZ R6,DEL2 ? DJNZ R7,DEL1 ? RET ? END 單片機(jī)技術(shù)及應(yīng)用 2. 用 MOVC A, @A+DPTR查表指令編程 【 例 417】 用查表方法編寫彩燈控制程序,編程使彩燈先順次點(diǎn)亮,再逆次點(diǎn)亮,然后連閃 3下,反復(fù)循環(huán)。 ? 解:程序如下: ? START: MOV DPTR,TABLE ? LOOP: CLR A ? MOVC A,@A+DPTR ? CJNE A,03H,LOOP1 ? JMP START ? LOOP1: MOV P1,A ? ACALL DEL ? INC DPTR ? JMP LOOP ? 單片機(jī)技術(shù)及應(yīng)用 ? TAB: DB 01H,02H,04H,08H,10H,20H,40H,80H ? DB 80H,40H,20H,10H,08H,04H,02H,01H ? DB 00H,0FFH,00H,0FFH,00H,0FFH,03H ? DEL: MOV R7,0FFH ? DEL1: MOV R6,0FFH ? DEL2: DJNZR6,DEL2 ? DJNZR7,DEL1 ? RET ? END 單片機(jī)技術(shù)及應(yīng)用 散轉(zhuǎn)程序設(shè)計(jì) ? 散轉(zhuǎn)程序是分支程序的一種,它由輸入條件或運(yùn)算結(jié)果來確定轉(zhuǎn)入各自的處理程序。有多種方法能實(shí)現(xiàn)散轉(zhuǎn)程序,但通常用逐次比較法,即把所有各種情況逐一進(jìn)行比較,若有符合條件的便轉(zhuǎn)向?qū)?yīng)的處理程序。由于每一種情況都有判斷和轉(zhuǎn)移,如對(duì) n種情況,需要 n個(gè)判斷和轉(zhuǎn)移,因此它的缺點(diǎn)是程序比較長(zhǎng)。 MCS51指令系統(tǒng)中有一條跳轉(zhuǎn)指令 JMP @A+DPTR,用它可很容易地實(shí)現(xiàn)散轉(zhuǎn)功能。該指令是把累加器 A的 8位無符號(hào)數(shù) (作地址的低 8位 )與 16位數(shù)據(jù)指針的內(nèi)容相加,其和送入程序計(jì)數(shù)器,作為轉(zhuǎn)移指令的地址。執(zhí)行 JMP @A+DPTR指令后,累加器和 16位數(shù)據(jù)指針的內(nèi)容均不受影響。 單片機(jī)技術(shù)及應(yīng)用 用轉(zhuǎn)移指令表實(shí)現(xiàn)散轉(zhuǎn) ? 在許多場(chǎng)合中,要根據(jù)某一單元的值 0, 1, 2, …, n分別轉(zhuǎn)向處理程序 0,處理程序 1, … ,處理程序 n。這時(shí)可以用轉(zhuǎn)移指令 AJMP(或 LJMP)組成一個(gè)轉(zhuǎn)移表。 ? 【 例 418】 根據(jù) R6的內(nèi)容,轉(zhuǎn)向各個(gè)處理程序。 ? R6=0,轉(zhuǎn) LOP0 ? R6=1,轉(zhuǎn) LOP1 ? R6=2,轉(zhuǎn) LOP2 ? 把轉(zhuǎn)移標(biāo)志送累加器 A,轉(zhuǎn)移表首地址送 DPTR,利用 JMP @A+DPTR實(shí)現(xiàn)轉(zhuǎn)移。 ? 標(biāo)號(hào)為 LOP0的程序?yàn)橛?P1口控制的彩燈兩端向中間點(diǎn)亮,標(biāo)號(hào)為L(zhǎng)OP1的程序?yàn)橛?P1口控制的彩燈左移順次點(diǎn)亮,標(biāo)號(hào)為 LOP2的程序?yàn)橛?P1口控制的彩燈右移順次點(diǎn)亮。 單片機(jī)技術(shù)及應(yīng)用 ? 解:分析題意可編寫出以下程序: ? START: MOV DPTR,TAB1 ? MOV A,R6 ? ADD A,R6 ? JNC PAD ? INC DPH ? PAD: JMP @A+DPTR ? TAB1: AJMP LOP0 ? AJMP LOP1 ? AJMP LOP2 ? LOP1: MOV A,0FEH ? LP1: MOV P1,A ? ACALL DEL ? RL A ? AJMP LP1 ? RET 單片機(jī)技術(shù)及應(yīng)用 ? LOP2: MOV A,7FH ? LP2: MOV P1,A ? ACALL DEL ? RR A ? AJMP LP2 ? RET ? LOP0: MOV R0,00H ? LOOP: CLR A ? MOV A,R0 ? ADD A,0CH ? MOVC A,@A+PC ? CJNE A,03H,LOOP1 ? JMP START 單片機(jī)技術(shù)及應(yīng)用 ? LOOP1: MOV P1,A ? ACALL DEL ? INC R0 ? JMP LOOP ? TAB: DB 81H,42H,24H,18H,03H ? DEL: MOV R4,0FFH ? DEL1: MOV R3,0FFH ? DEL2: DJNZ R3,DEL2 ? DJNZ R4,DEL1 ? RET ? END 單片機(jī)技術(shù)及應(yīng)用 用轉(zhuǎn)移地址表實(shí)現(xiàn)散轉(zhuǎn) ? 當(dāng)轉(zhuǎn)向范圍比較大時(shí),可直接使用轉(zhuǎn)向地址表方法,即把每個(gè)處理程序的入口地址直接置于地址表內(nèi)。用查表指令,找到對(duì)應(yīng)的轉(zhuǎn)向地址,把它裝入 DPTR中。將累加器清零后用 JMP @A+DPTR直接轉(zhuǎn)向各個(gè)處理程序的入口。 單片機(jī)技術(shù)及應(yīng)用 【 例 419】 根據(jù) R3的內(nèi)容轉(zhuǎn)向?qū)?yīng)處理程序。處理程序的入口分別是 LOP0~ LOP2。 ? 解:參考程序如下: ? ORG 0000H ? PJ3: MOV DPTR,TAB3 ? MOV A,R3 ? ADD A,R3 。R3*2 ? JNC CAD ? INC DPH 。有進(jìn)位 DPTR高位加 1 ? CAD: MOV R2,A 。暫存 R2 ? 單片機(jī)技術(shù)及應(yīng)用 ? MOVC A,@A+DPTR ? XCH A,R2 。處理程序入口地址高 8位暫存 R2 ? INC A ? MOVC A,@A+DPTR ? MOV DPL,A 。處理程序入口地址低 8位暫存 DPL ? MOV DPH,R2 ? CLR A ? JMP @A+DPTR ? TAB3: DW LOP0 ? DW LOP1 ? DW LOP2 ? END
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1