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

正文內(nèi)容

單片機(jī)原理與應(yīng)用-4匯編語(yǔ)言程序設(shè)計(jì)-資料下載頁(yè)

2025-01-20 02:57本頁(yè)面
  

【正文】 段碼不是有序碼,其碼值很難通過(guò)計(jì)算來(lái)完成,所以這種問(wèn)題一般都是通過(guò)查表程序來(lái)解決。七段碼與硬件結(jié)構(gòu)有關(guān),參見(jiàn)第十章相關(guān)部分。假設(shè)數(shù)碼管是共陽(yáng)極同相驅(qū)動(dòng)的,程序?yàn)椋? ORG 0A00H MOV DPTR, DTAB MOVC A, @A+DPTR MOV B, A SJMP $ DTAB: DB 40H, 79H, 24H, 30H, 19H DB 12H, 02H, 78H, 00H, 10H 返回 例 418源程序清單 (1) 設(shè)合法的命令字符為‘ A’、‘ D’、‘ E’、‘ L’、‘ M’、‘ X’、‘ Z’7種,對(duì)應(yīng)的處理程序入口地址標(biāo)號(hào)分別為 XA、 XD、 XE、 XL、 XM、 XX、XZ。假設(shè)輸入的 命令字符 在 A中,采用以 0作為結(jié)束標(biāo)志的表格結(jié)構(gòu)。 解: ORG 4000H START: MOV DPTR, PTAB ;表首地址送 DPTR MOV B, A ; A中命令字符暫存 B LOOP: CLR A MOVC A, @A+DPTR ;查表 JZ ERR ;查到為 0,則轉(zhuǎn)入 ERR處理 INC DPTR ;否則,修改指針 CJNE A, B, NEXT ;判斷命令符,不符合則轉(zhuǎn) NEXT CLR A ;符合,繼續(xù)查表 MOVC A, @A+DPTR ;查處理程序入口地址高 8位 MOV B, A ;暫存 B INC DPTR CLR A MOVC A, @A+DPTR;查入口地址低 8位并存入 A MOV DPL, A ;處理程序入口地址賦給 DPTR MOV DPH, B CLR A JMP @A+DPTR ;按 DPTR轉(zhuǎn)入相應(yīng)處理程序 NEXT: INC DPTR ;準(zhǔn)備查下一項(xiàng) INC DPTR SJMP LOOP ERR: … ;查不到處理程序 PTAB: DB ‘A’ ; ASCII碼 A DW XA ;相應(yīng)處理程序入口標(biāo)號(hào) DB ‘D’ DW XD DB ‘E’ DW XE DB ‘L’ DW XL DB ‘M’ DW XM DB ‘X’ DW XX DB ‘Z’ DW XZ DB 0 ;表格結(jié)束 例 418源程序清單 (2) 返回 例 419源程序清單 ORG 0100H MOV MAX, 00H ; MAX單元清零 MOV R0, BLOCK ;數(shù)據(jù)塊始址送 R0 LOOP: MOV A, @R0 ;數(shù)據(jù)塊中數(shù)送 A CLR C ; Cy清零,準(zhǔn)備相減 SUBB A, MAX ; A和( MAX)相減作比較 JC NEXT ;若 A<( MAX),則轉(zhuǎn) NEXT MOV MAX, @R0 ; A>( MAX),則大數(shù)送 MAX NEXT: INC R0 ;修改數(shù)據(jù)塊指針 DJNZ LEN, LOOP ;若未完,則 LOOP SJMP $ 返回 例 420源程序清單( 1) 解:延時(shí)子程序與 MCS51指令執(zhí)行時(shí)間和晶振頻率有很大關(guān)系。當(dāng)晶振頻率為 12MHz時(shí),一個(gè)機(jī)器周期為 1μs,執(zhí)行一條 DJNZ指令需 2個(gè)機(jī)器周期,時(shí)間為 2μs。相應(yīng)延時(shí)程序如下: ORG 0300H DEL: MOV R7, 200 ; 1個(gè)機(jī)器周期 DEL1: MOV R6, 125 ; 1個(gè)機(jī)器周期 DEL2: DJNZ R6, DEL2 ; 2 125= 250μs DJNZ R7, DEL1 ; 250 200= 50ms RET ; 2個(gè)機(jī)器周期 以上延時(shí)程序是不精確的,它沒(méi)有考慮除 DJNZ R6, DEL2指令之外的其它指令的執(zhí)行時(shí)間,所以它的實(shí)際延遲時(shí)間為( 250+ 1+2) 200+ 1+ 2= 。 例 420源程序清單( 2) 要想得到較精確的延時(shí),程序可作如下修改: ORG 0300H DEL: MOV R7, 200 ; 1個(gè)機(jī)器周期 DEL1: MOV R6, 123 ; 1個(gè)機(jī)器周期 NOP ; 1個(gè)機(jī)器周期 DEL2: DJNZ R6, DEL2 ; 2 123= 246μs DJNZ R7, DEL1 ; 2個(gè)機(jī)器周期 RET ( 246+ 1+ 1+ 2) 200+ 1+ 2= 它的實(shí)際延遲時(shí)間是 。對(duì)于需延時(shí)更長(zhǎng)的時(shí)間,則可采用更多重的循環(huán)來(lái)實(shí)現(xiàn)。 返回 例 422源程序清單( 1) ? 用轉(zhuǎn)移指令表實(shí)現(xiàn)散轉(zhuǎn) ORG 0800H START: MOV DPTR, PTAB ;轉(zhuǎn)移指令表入口地址送 DPTR MOV A, R2 ADD A, R2 ; A←R2 2 JNC PAD ;表空間沒(méi)有出頁(yè),則轉(zhuǎn) PAD INC DPH ; R2 2> 256,表空間增加一頁(yè) (見(jiàn) P72) PAD: JMP @A+DPTR ;轉(zhuǎn)各個(gè)處理程序 PTAB: AJMP PRG0 ; AJMP構(gòu)成的散轉(zhuǎn)表 AJMP PRG1 … AJMP PRGn ? 應(yīng)用轉(zhuǎn)移地址表實(shí)現(xiàn)散轉(zhuǎn),則以上程序也可寫(xiě)成: ORG 0800H START: MOV DPTR, PTAB ;置轉(zhuǎn)移表入口地址 MOV A, R2 ; A←R2 2 ADD A, R2 JNC PAD ;表空間沒(méi)有出頁(yè),則轉(zhuǎn) PAD INC DPH ; R2 2> 256,表空間增加一頁(yè) PAD: MOV R3, A ; A中內(nèi)容暫存 R3 MOVC A, @A+DPTR ;轉(zhuǎn)移地址高 8位 XCH A, R3 ;送 R3 INC A MOVC A, @A+DPTR ;轉(zhuǎn)移地址低 8位 MOV DPL, A ;轉(zhuǎn)移地址送 DPTR MOV DPH, R3 CLR A JMP @A+DPTR ;轉(zhuǎn)各個(gè)處理程序 PTAB: DW PRG0 ;轉(zhuǎn)移地址表 DW PRG1 … DW PRGn 當(dāng)轉(zhuǎn)向范圍比較大時(shí),可直接使用這種方法編制散轉(zhuǎn)程序,即把每個(gè)處理程序的入口地址直接置于 表內(nèi),這樣就可以實(shí)現(xiàn) 64K范圍內(nèi)的散轉(zhuǎn)。 返回 例 423源程序清單 子程序 SUB: NOP INC X DEC Y MOV A, Y JZ SUBRET LCALL SUB SUBRET: NOP RET END 解: 主程序 ORG 0000H X EQU 50H Y EQU 51H START: MOV SP, 60H MOV X, 10 MOV Y, 6 LCALL SUB AJMP $ 請(qǐng)寫(xiě)出堆棧變化情況 執(zhí)行結(jié)果 X中內(nèi)容為 16, Y中為 0。在程序運(yùn)行的過(guò)程中, SUB不斷調(diào)用自身,每調(diào)用一次便使 X加 1和 Y減 1,同時(shí)讓相關(guān)地址入棧,直到 Y中為 0為止,此時(shí) SP指向 6CH。然后程序便根據(jù)堆棧中的地址開(kāi)始不斷返回,運(yùn)行完畢后,堆?;謴?fù)原狀。 在編制子程序特別是嵌套或遞歸子程序時(shí),堆棧的使用是十分頻繁的,所以應(yīng)該注意堆棧溢出的問(wèn)題。 堆棧溢出有兩種可能發(fā)生的情況:如堆棧已滿,但還想再存入信息,這種情況稱(chēng)為 堆棧上溢 ;如果堆棧已空,但還想再取出信息,這種情況稱(chēng)為 堆棧下溢 。 不論上溢或是下溢都是不允許的,因此在編制程序時(shí),如果可能發(fā)生堆棧溢出則應(yīng)在程序中采取保護(hù)措施。例如可以給 SP規(guī)定上、下限,在進(jìn)?;虺鰲2僮髑跋茸?SP和邊界值的比較,如溢出則作溢出處理,以避免發(fā)生破壞其它存儲(chǔ)區(qū)或使程序出錯(cuò)的情況。 返回 END 圖 4–2 單分支結(jié)構(gòu)示意圖 圖 4–3 多分支結(jié)構(gòu)示意圖 圖 4–4 計(jì)數(shù)循環(huán)結(jié)構(gòu)示意圖 圖 4–5 條件循環(huán)結(jié)構(gòu)示意圖 圖 4–6 子程序調(diào)用與返回過(guò)程示意圖
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1