比較兩個(gè)數(shù)是否相等并顯示.ppt_第1頁
比較兩個(gè)數(shù)是否相等并顯示.ppt_第2頁
比較兩個(gè)數(shù)是否相等并顯示.ppt_第3頁
比較兩個(gè)數(shù)是否相等并顯示.ppt_第4頁
比較兩個(gè)數(shù)是否相等并顯示.ppt_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第6章運(yùn)用控制轉(zhuǎn)移類指令,本章內(nèi)容,項(xiàng)目引導(dǎo) 比較兩個(gè)數(shù)是否相等并顯示,項(xiàng)目實(shí)施,相關(guān)知識,項(xiàng)目分析,要求:設(shè)內(nèi)部RAM的30H單元和31H單元各自存放著一個(gè)無符號數(shù),比較它們是否相等,如果相等,則P1.0連接的燈點(diǎn)亮,否則P1.1連接的燈點(diǎn)亮。 分析:核心是比較兩個(gè)數(shù)是否相等,進(jìn)而執(zhí)行不同的功能 結(jié)論:前面的程序是逐條順序執(zhí)行的,但在實(shí)際使用中,很多程序需要判斷分支,即強(qiáng)行改變PC的內(nèi)容,使程序轉(zhuǎn)移到指定的入口地址處繼續(xù)執(zhí)行,這些分支都是靠各種控制轉(zhuǎn)移指令來實(shí)現(xiàn)的。,無條件轉(zhuǎn)移指令(3條),1) 長轉(zhuǎn)移指令:LJMP AAAAH ; AAAAHPC,PC=0000H,PC=AAAAH,假設(shè)執(zhí)

2、行該指令前,PC的值為0000H。,注意:該指令可以轉(zhuǎn)移到64 KB程序存儲器中的任意位置。,知識1:無條件轉(zhuǎn)移和有條件轉(zhuǎn)移指令,PC高5位 (保持不變),PC低11位,操作碼(第一字節(jié)),操作數(shù)(第二字節(jié)),11位轉(zhuǎn)移地址的形成示意圖,程序計(jì)數(shù)器PC,2)絕對轉(zhuǎn)移指令,AJMP addr11 ; PC+2PC, addr11 PC.10PC.0,PC,2002H,2003H,0000H,0001H,2004H,2005H,2006H,PC,PC,PC,2006H,2003H,PC,0002H,PC,3)相對轉(zhuǎn)移指令,例: SJMP 03H,03H就是當(dāng)前PC值 與目的PC值相對差,PC,條件

3、轉(zhuǎn)移指令1)累加器A判0指令(2條),2) 判cy標(biāo)志指令(2條),3) 判位轉(zhuǎn)移指令(3條),4)條件轉(zhuǎn)移指令的跳轉(zhuǎn)范圍,條件轉(zhuǎn)移指令的轉(zhuǎn)移范圍限制在256字節(jié)以內(nèi),并且以轉(zhuǎn)移指令的下一條指令為中心,向前可到PC+127,向后可到PC-128,條件轉(zhuǎn)移指令應(yīng)用,例:判斷A中的數(shù)據(jù),若A0,則CY=0,否則CY=1。,ORG0000H JZL1 SETBCY SJMPL2 L1:CLRCY L2:END,思考:怎樣改成使用JNZ指令?,小練習(xí)1,例:判斷A中的數(shù)據(jù),若A0,則P1口連接的8個(gè)二極管全部點(diǎn)亮,否則全滅。(以實(shí)訓(xùn)電路為例),ORG0000H JZL1 MOVP1,#0FFH SJM

4、PL2 L1:MOVP1,#00H L2:SJMP$ END,小練習(xí)2,例:判斷A中的數(shù)據(jù),若A100,則P1口連接的8個(gè)二極管全部點(diǎn)亮,否則全滅。(以實(shí)訓(xùn)電路為例),ORG0000H CLRCY SUBBA,#100 JCL1 MOVP1,#00H SJMPL2 L1:MOVP1,#0FFH L2:SJMP$ END,提示:可以先做減法,然后使用JC指令判斷是否有借位CY并實(shí)現(xiàn)跳轉(zhuǎn)!,項(xiàng)目實(shí)施,要求:若30H單元和31H單元中的數(shù)相等,則P1.0連接的燈點(diǎn)亮,否則P1.1連接的燈點(diǎn)亮。 電路:與第3章的項(xiàng)目相同,P1口通過發(fā)相器連接8個(gè)發(fā)光二極管,參見圖3.10 程序思路:如果兩個(gè)數(shù)相等,那

5、么相減之后差必為0,否則差不為0,因此采用累加器是否為0的條件來判斷,程序: ORG 0000H START: MOV A,30H CLR C SUBBA,31H JZ NEXTMOVP1,#0FDH SJMP EXIT NEXT:MOVP1,#0FEH EXIT: SJMP$END,知識2:比較轉(zhuǎn)移指令和循環(huán)轉(zhuǎn)移指令,1)比較轉(zhuǎn)移指令(4條),2)循環(huán)轉(zhuǎn)移(減1非零轉(zhuǎn)移)指令(2條),循環(huán)轉(zhuǎn)移DJNZ指令范例1,DELAY: MOV R3,#0FFH ;外循環(huán)的循環(huán)次數(shù) DEL2: MOV R4,#0FFH;內(nèi)循環(huán)的循環(huán)次數(shù) DEL1: NOP DJNZ R4,DEL1 DJNZ R3,DEL2 RET,看看大家熟悉的延時(shí)子程序!,循環(huán)轉(zhuǎn)移DJNZ指令范例2,還有什么方法實(shí)現(xiàn)循環(huán)的終止?,MOV R0,#20H MOV R7,#0FH CLR A LOOP:MOV R0,A INC A INC R0 DJNZ R7,LOOP SJMP $,想一想: 使用MOV R0,A有什么優(yōu)點(diǎn)?,典型例題:將00H0FH這16個(gè)數(shù)順序置入片內(nèi)RAM20H2FH單元中。,比較轉(zhuǎn)移指令CJNE的應(yīng)用,MOV R0,#20H CLR A LOOP:MOV R0,A INC A INC R0 CJNE

溫馨提示

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

最新文檔

評論

0/150

提交評論