高二物理競賽課件電路轉移指令_第1頁
高二物理競賽課件電路轉移指令_第2頁
高二物理競賽課件電路轉移指令_第3頁
高二物理競賽課件電路轉移指令_第4頁
高二物理競賽課件電路轉移指令_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

電路轉移指令

電路轉移指令循環(huán)程序:一些有規(guī)可循而又反復處理的問題利用比較轉移指令CJNE、減1不為“0”轉移指令DJNZ等實現(xiàn)例4-13:在內(nèi)部RAM30H~4FH

連續(xù)32個單元中存放了單字節(jié)無符號數(shù),求32個無符號數(shù)之和,并存入內(nèi)部RAM51H,50H中。編程思路:這是重復相加問題,要設置一些工作單元設:R0做加數(shù)地址指針,R7做循環(huán)次數(shù)計數(shù)器,R3做和數(shù)的高字節(jié)寄存器。A做和數(shù)的低字節(jié)寄存器程序的流程圖如下:上頁下頁回目錄地址指針循環(huán)次數(shù)計數(shù)器多重分支程序舉例例4-7:設片內(nèi)30H單元存放的是一元二次方程ax2+bx+c=0根的判別式△=b2–4ac的值。試根據(jù)30H單元的值,編寫程序,判斷方程根的三種情況,存入片內(nèi)31H內(nèi)。在31H中存放“0”代表無實根,存放“1”代表有相同的實根,存放“2”代表兩個不同的實根。編程思路△為有符號數(shù),有三種情況,即小于零,等于零、大于零??梢杂脙蓚€條件轉移指令來判斷,首先判斷符號位,用指令JNBACC.7,rel判斷,若ACC.7=1,則一定為負數(shù);此時

0

若ACC.7=0,則△≥0。此時再用指令JNZrel判斷若△≠0,則△>0,否則△=0上頁下頁回目錄0△=0△>0上頁下頁回目錄流程圖:A←△ACC.7=0?ENDSTARTNY(A)=0?31H←031H←2YN31H←1△0△=0△0程序:

ORG0000HSTART:MOVA,30HJNBACC.7,YESMOV31H,#0SJMPFINISHYES:JNZTOWMOV31H,#1SJMPFINISHTOW:MOV31H,#2FINISH:SJMP$END;△值送A;△≥0轉YES;△<0無實根;△=0有相同實根;△>0轉TOW;有兩個不同實根上頁下頁回目錄4.3.3N路分支程序根據(jù)前面程序運行結果,可以有N種選擇,并轉向其中任一處程序。例4-10128路分支程序:根據(jù)R3值轉向128個目的地址。編程方法:順序程序

MOVA,R3CJNEA,#00H,FZ1AJMPFZ00FZ1:CJNEA,#01H,FZ2AJMPFZ01FZ2:CJNEA,#02H,FZ3AJMPFZ02FZ3:….. 煩瑣,程序太長。如作10000個分支程序…….使用JMP@A+DPTR指令實現(xiàn):JMP128: MOVA,R3 CLRC SUBBA,#128 JNC ERROR MOV A,R3 MOVB,#3 MUL AB MOVDPTR,#PRGTAL

ADD A,DPL MOV DPL,A MOV A,DPH ADDCA,B MOV DPH,A CLR A JMP @A+DPTRPRGTAL: LJMP ROUT00 LJMP ROUT01 ……. LJMP ROUT127 ;入口條件檢查;分支跳轉;LJMP指令占3字節(jié)例4-10:128分支程序JMP256:MOVA,R3;取N值MOVDPTR,#PRGTBL;DPTR指向分支地址表首址CLRC;RLCA;(A)×2JNCLOW128;是前128個分支程序,則轉移INCDPH;否基址加256LOW128:MOVTEMP,A;暫存AINCA;指向地址低8位MOVCA,@A+DPTR;查表,讀分支地址低8位PUSHACC;地址低8位入棧MOVA,TEMP;恢復A,指向地址高8位MOVCA,@A+DPTR;查表,讀分支地址高8位PUSHACC;地址高8位入棧RET;分支地址彈入PC實現(xiàn)轉移PRGTBL:DWROUT00;256個分支程序首地址DWROUT01

…;占用512個單元DWROUTFF;例4-11:256分支程序分支程序應用場所:1、鍵盤按鍵處理程序根據(jù)所按功能鍵轉到相應的功能子程序2、通信協(xié)議處理程序例:某鍵盤如下:通信編號設置采樣時間設置+-確認MOV A,BCLR CSUBB A,#3JC FOUNRETFOUN:MOVA,BRL AADD A,B MOV DPTR,#KEYF JMP @A+DPTRKEYF:LJMPTONGXIN LJMPBIANHAOLJMPCAIYANG ;鍵編號流程圖:31→R7#0→R3(30H)→A#31H→R0CY=0?ENDSTART

(R7)-1=0?51H←(R3)50H←(A)YN(A)+((R0))→A(R0+1)→R0(R3)+1→R3上頁下頁回目錄NY

程序:;R7作循環(huán)次數(shù)計數(shù)器;R3作和數(shù)高字節(jié)寄存器;取被加數(shù);R0作加數(shù)地址指針;CY=0,和<256,則轉;作加法;CY=1,加到高字節(jié);修改R0指針;未完,重復加;存和數(shù)初始化部分循環(huán)體部分結束部分

ORG0000HSTART:MOVR7,#31MOVR3,#0MOVA,30HMOVR0,#31HLOOP:ADDA,@R0JNCNEXTINCR3NEXT:INCR0DJNZR7,LOOPMOV51H,R3MOV50H,ASJMP$END上頁下頁回目錄循環(huán)執(zhí)行直到R7=0循環(huán)控制例4-14:從外部RAMBLOCK單元開始有一無符號數(shù)數(shù)據(jù)塊,數(shù)據(jù)塊長度存入LEN單元,求出其中最大數(shù)存入MAX單元。為了方便進行比較

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論