




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——單片機(jī)課件例題:已知ROM中0302H單元有一個數(shù)x,現(xiàn)要把它送到累加器A中,試編程。MOVDPTR,#0300H;馬上數(shù)送DPTRMOVA,#02H;馬上數(shù)送累加器A
MOVCA,@A+DPTR;從ROM的0302單元取數(shù)送A試編出把30h和40h單元內(nèi)容進(jìn)行交換。MOVA,30H;(30h)→AMOV30H,40H;(40h)→30hMOV40H,A;A→40h將20H開始的32個單元全部清0。MOVA,#00H;A00H
MOVR0,#20H;R020H,以R0作地址指針MOVR7,#20H;R7計數(shù),R732LP1:MOV@R0,A;將指示的單元清0INCR0
DJNZR7,LP1;R7R7-1,若R7不為0則轉(zhuǎn)LP1重復(fù)將外部RAM的8000H單元的內(nèi)容傳送至A中。MOVDPTR,#8000HMOA,@DPTR
有一輸入設(shè)備,其端口地址為2040H,該端口數(shù)據(jù)為41H,將此值存入片內(nèi)RAM的20H單元中。
MOVDPTR,#2040H
MOA,@DPTRMOV20H,A
執(zhí)行結(jié)果為:片內(nèi)20H單元的內(nèi)容為41H。
已知外部RAM的88H單元有一個數(shù)x,試編程將x送外部RAM的1818H單元。
:外部RAM中的數(shù)據(jù)是不能直接傳送的,因此必需使用兩次MO指令完成此操作。ORG2000HMOVR0,#88H;為8位指針賦值MOVDPTR,#1818H;為16位指針賦值MOA,@R0;取x到累加器AMO@DPTR,A;x送RAM的1818h單元
例7:執(zhí)行以下程序后,A中的內(nèi)容為多少?該程序是一個查表程序。ORG2100H;各指令的地址為MOVA,#09H;2100HMOVCA,@A+PC;2102HRET;2103HORG210AH
TAB:DB0C0H;210AH
DB0F9H;210BHDB0A4H;210CHDB0B0H;210DH運行結(jié)果:A=0A4H
例8:已知,片外RAM20h單元、內(nèi)部RAM20h單元分別有數(shù)x和y,試編程互將兩數(shù)相交
換。movR1,#20h;指針賦初值moa,@R1;x→axcha,@R1;交換a?(20h),y→amo@R1,a;y→(20h)片外RAM
例9將A中存放的2位BCD碼轉(zhuǎn)換為ASCⅡ碼,并送到50H(高位BCD),51H(低位BCD)
單元中。解:MOVB,AANLA,#0FHADDA,#30HMOV51H,AMOVA,BSWAPA
ANLA,#OFHADDA,#30HMOV50H,ARET
例10設(shè)累加器A中為16進(jìn)制表示(00H~09H)的BCD碼。試編程將其轉(zhuǎn)換為ASC碼,
并將其送到50H地址單元中。這是一個數(shù)值轉(zhuǎn)換程序。解:首先建立ASC碼表:
ORG2100H
TABASC:DB30H,31H,32H,33H,34H,35H,36H,37H,DB38H,39HORG210FHMOVR0,A
MOVDPTR,#TABASCMOVCA,@A+DPTRMOV50h,ARET
例11兩個無符號16位數(shù)分別存于30H和32H開始的單元中。設(shè)(30H)=AFH,(31H)=0AH,
(32H)=90H,(33H)=2FH,高字節(jié)在高地址單元中,低字節(jié)在低地址單元中。試計算兩數(shù)之和并存入32H開始的單元中。并說明PSW中相關(guān)位的內(nèi)容。MOVR0,#32H;R0指向32HMOVA,30H
ADDA,@R0;計算低字節(jié)之和
MOV@R0,A;低字節(jié)和存入32H單元MOVA,3lH
INCR0;R0指向33H
ADDCA,@R0;計算高字節(jié)之和
MOV@R0,A;高字節(jié)和存入33H單元RET為先計算低字節(jié)和:
結(jié)果:Cy為l,A中內(nèi)容為3FH,OV為1,Ac為0再計算高字節(jié)和
結(jié)果:Cy為0,A中內(nèi)容為3AH,OV為0,Ac為1
最終結(jié)果:(32H)=3FH,(33H)=3AH,OV為0,Cy為0,Ac為1。
例12已知M1、M2單元中存有兩個16位無符號數(shù)x1、x2(低位在前)。試寫出x1+x2,并
將結(jié)果放入M1、M1+1單元(低8位在M1單元)。設(shè)兩數(shù)之和不會超過16位(65535)。:
MOVR0,#M1;x1指針賦初值MOVR1,#M2;x2指針賦初值MOVA,@R0;取x1低8位送AADDA,@R1;x1與x2低8位相加MOV@R0,a;低8位和送m1單元INCR0INCR1;修改指針
MOVA,@R0;取x1的高8位送A
ADDCA,@R1;x1與x2的高8位和Cy相加MOV@R0,A;結(jié)果送M1+1單元
例13.已知:在M1、M2中分別存有被減數(shù)91H和減數(shù)36H(BCD碼)。試編程求91H-36H并將結(jié)果存入M3單元。:
1)算法:91-36=91+(100-36)=91+(9A-36)2)編程:CLRC;清除CyMOVA,#9AH;BCD碼的模100送ASUBBA,M2;計算減數(shù)的補(bǔ)碼(結(jié)果在A中)ADDA,M1;被減數(shù)+減數(shù)的補(bǔ)碼(結(jié)果在A中)DAA;十進(jìn)制調(diào)整MOVM3,A;結(jié)果送M3單元CLRC;清除進(jìn)位位(不要Cy)
已知:兩個8位無符號乘數(shù)分別放在30H和31H單元中,試編程令它們相乘,并
把積的低8位放入32H單元和積的高8位放入33H單元的程序。
ORG0100H
MOVR0,#30H;第一個乘數(shù)地址放入R0MOVA,@R0;第一個乘數(shù)放入AINCR0;修改乘數(shù)地址MOVB,@R0;其次個乘數(shù)放入B
MULAB;A乘以B,放入(BA)中INCR0;修改目標(biāo)單元地址MOV@R0,A;積的低8位送32H單元INCR0;修改目標(biāo)單元地址MOV@R0,B;積的低8位送33H單元
SJMP$;停機(jī)END
例15已知:M1單元有一個9的ASCII碼39H,試編程將其變?yōu)锽CD碼。解:1、使用ANLdirect,#data的指令:ANLM1,#0FH解:2、使用ANLA,#data指令。MOVA,M1ANLA,#0FHMOVM1,A
例16設(shè)累加器(A)=0AAH,(P1)=0FFH。試編程將累加器A中的低四位送P1口的低四位,而
P1口的高四位不變。解:MOVR0,A;累加器A中的數(shù)據(jù)暫存ANLA,#0FH;屏蔽A的高4位ANLP1,#0F0H;屏蔽P1口的低4位ORLP1,A;在P1口組裝MOVA,R0;恢復(fù)累加器A的數(shù)據(jù)
例17已知:外部RAM的30H單元中有一個數(shù)AAH,現(xiàn)要將其高4位不變,低4位取反,
試編程。
解1,利用MOA,@Ri指令:MOVR0,#30H10101010
MOA,@R0⊕00001111
XRLA,#0FH10100101MO@R0,A
解2,利用MOA,@DPTRMOVDPTR,#0030HMOA,@DPTRXRLA,#0FHMO@DPTR,A
例18已知30H單元中有一個數(shù)x,寫出對它求補(bǔ)的程序。MOVA,30HCPLAINCAMOV30H,A
例19:試將00H位和7FH位中的內(nèi)容互換。:兩個位互換必需找一個位作為緩沖位。MOVC,00HMOV01H,CMOVC,7FHMOV00H,CMOVC,01HMOV7FH,C
比較內(nèi)部RAM中30H和40H中的兩個無符號數(shù)的大小。并將大數(shù)存入50H,小數(shù)存入51H單元中。若兩數(shù)相等則將片內(nèi)RAM的127位置“l(fā)〞。
MOVA,30H
CJNEA,40H,Q1;不相等轉(zhuǎn)
SETB127;兩數(shù)相等時位127置1RET
Q1:JCQ2;(Cy)=l,(30H)<(40H)轉(zhuǎn)MOV50H,A;(30H)>(40H)MOV51H,40HRET
Q2:MOV50H,40HMOV51H,ARET
例21已知:在20H單元中有一個數(shù)X,若X50H則轉(zhuǎn)向LOOP3,試編程。:MOVA,20H;X→ACJNEA,#50H,COMP;(A)≠50H時轉(zhuǎn)COMPSJMPLOOP2;(A)=50H時轉(zhuǎn)LOOP2COMP:JNCLOOP3;(A)>50H時轉(zhuǎn)LOOP3LOOP1:
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 叉車臺班合同范本
- 音樂課程合同范本
- 清運泥土合同范本
- 口腔護(hù)士合同范本簡易
- 醫(yī)院工傷協(xié)作合同范本
- 臺球俱樂部合同范本
- 兄弟合作合同范本
- 合同9人合作合同范本
- 買本田新車合同范本
- 產(chǎn)地供應(yīng)合同范本
- 《東北財經(jīng)大學(xué)審計》課件
- 牧童謠課件教學(xué)
- 大學(xué)物理實驗(緒論)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 圖書出版項目合作協(xié)議
- 《現(xiàn)代家政導(dǎo)論》電子教案 2.2模塊二項目二家庭制度認(rèn)知
- 商務(wù)禮儀課件教學(xué)課件
- 部編版七年級歷史下冊全冊導(dǎo)學(xué)案
- 酒店住宿投標(biāo)方案(技術(shù)標(biāo))
- 2024風(fēng)力發(fā)電葉片維保作業(yè)技術(shù)規(guī)范
- 中建分供方資源管理辦法
- (人教PEP2024版)英語一年級上冊Unit 3 教學(xué)課件(新教材)
評論
0/150
提交評論