第4章80C51單片機匯編語言程序設(shè)計(新)_第1頁
第4章80C51單片機匯編語言程序設(shè)計(新)_第2頁
第4章80C51單片機匯編語言程序設(shè)計(新)_第3頁
第4章80C51單片機匯編語言程序設(shè)計(新)_第4頁
第4章80C51單片機匯編語言程序設(shè)計(新)_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 1ORG 1000HORG 1000HA1:DB 01001010B,23A1:DB 01001010B,23o o,23,78H,23,78H,A2:DB A2:DB 5 5, ,”12AB12AB”,12D,-2,12D,-2(1000H)=01001010B=4AH,(1000H)=01001010B=4AH,(1001H)=23(1001H)=23o o=13H=13H,(1002H)=23=17H, (1002H)=23=17H, (1003H)=78H,(1003H)=78H,(1004H)=35H(5(1004H)=35H(5的的ASCIIASCII碼碼),),(1005H)

2、=31H(1(1005H)=31H(1的的ASCIIASCII碼)碼), ,(1006H)=32H(2(1006H)=32H(2的的ASCIIASCII碼碼),),(1007H)=41H(A(1007H)=41H(A的的ASCIIASCII碼)碼), ,(1008H)=42H(B(1008H)=42H(B的的ASCIIASCII碼碼),),(1009H)=12D=0CH(1009H)=12D=0CH(100AH)=-2=0FEH(100AH)=-2=0FEH【例例】ADDRTAB:DS 20ADDRTAB:DS 20; ;從標(biāo)號從標(biāo)號ADDRTABADDRTAB代表的地址開始,預(yù)留代表的地址開

3、始,預(yù)留2020個個; ;連續(xù)的地址單元。連續(xù)的地址單元。DBDB、DWDW、DSDS只能對于程序存儲器使用只能對于程序存儲器使用【例例】CS EQU 0FFFFHCS EQU 0FFFFHA1 EQU R1A1 EQU R1A2 EQU 10H A2 EQU 10H DELAY EQU 0708HDELAY EQU 0708Hn表達式可以是一個數(shù)據(jù)或地址,也可以是一個表達式可以是一個數(shù)據(jù)或地址,也可以是一個包含所定義字符名在內(nèi)的表達式,但不能是一包含所定義字符名在內(nèi)的表達式,但不能是一個匯編符號(如個匯編符號(如R0R0R7R7)。)。n與與EQUEQU的區(qū)別的區(qū)別: :nEQUEQU必須先

4、定義后使用。必須先定義后使用。nDATADATA無此限制,所以無此限制,所以DATADATA偽指令可以放在源程序的偽指令可以放在源程序的開頭或末尾開頭或末尾MOV R0,ADDRESSMOV R0,ADDRESSMOV R1,#ADDRESSMOV R1,#ADDRESSADDRESS DATA 31HADDRESS DATA 31H將將31H31H單元內(nèi)容送單元內(nèi)容送R0,(R1)=31HR0,(R1)=31H。ORGORGSJMP $SJMP $ENDEND【例例】程序格式如下:程序格式如下:x-1(x5)0(5x 10)x+1(x10)Y=要根據(jù)要根據(jù)x的大小來決定的大小來決定y值,在判

5、斷值,在判斷x5和和y10時,采用時,采用CJNE和和JC以及以及CJNE和和JNC指令進行判斷。指令進行判斷。ORG 1000HMOV A,30H;取取xCJNE A,#5,NEXT1;與與5比較比較NEXT1:JC NEXT3;x5,則轉(zhuǎn),則轉(zhuǎn)NEXT3CJNE A,#10,NEXT2;與與10比較比較NEXT2:JNC NEXT4; x10,則轉(zhuǎn),則轉(zhuǎn)NEXT4MOV R0,#0;5x 10,y=0SJMP NEXT5NEXT3:MOV R0,ADEC R0;x5,y=x-1SJMP NEXT5NEXT4:MOV R0,AINC R0;x10,y=x+1NEXT5:MOV 31H,R0;

6、存結(jié)果存結(jié)果SJMP $ENDMOV A,#kRL AADD A,R3MOV DPTR,#BRTABJMP A+DPTRBRTAB:LJMP BR0;BRTABLJMP BR1;BRTA+3 LJMP BRn;BRTAB+3nn注意:如果數(shù)據(jù)表存放在外部注意:如果數(shù)據(jù)表存放在外部ROMROM中,執(zhí)行查表指令時,會在控中,執(zhí)行查表指令時,會在控制引腳制引腳PSENPSEN上產(chǎn)生一個程序存儲器讀信號。上產(chǎn)生一個程序存儲器讀信號?!纠糠謩e用兩條查表指令編寫一段子程序,功能為:根分別用兩條查表指令編寫一段子程序,功能為:根據(jù)累加器據(jù)累加器A A中的數(shù)(中的數(shù)(0 09 9之間)查找平方表,求出相應(yīng)

7、的之間)查找平方表,求出相應(yīng)的平方數(shù),放在平方數(shù),放在A A中。中。n程序中:程序中:n n值存放在值存放在A A中,中,Y Y值存入值存入R2R1R0R2R1R0中。中。ORG 2000HORG 2000HTEM EQU 30HTEM EQU 30HFACTORIAL:FACTORIAL:MOV B,#3MOV B,#3MUL ABMUL AB;n;n在在A A中,中,n n3 3MOV B,AMOV B,A; ;暫存暫存B B中中MOV DPTR,#TABMOV DPTR,#TAB; ;指向表首址指向表首址TABLTABLMOV A,A+DPTRMOV A,A+DPTR; ;查表取低字節(jié)查

8、表取低字節(jié)MOV R0,AMOV R0,A; ;存入存入R0R0INC DPTRINC DPTR; ;修正地址指針修正地址指針MOV A,BMOV A,B; ;恢復(fù)恢復(fù)n n3 3MOV A,A+DPTRMOV A,A+DPTR; ;查表取中間字節(jié)查表取中間字節(jié)MOV R1,AMOV R1,A; ;存入存入R1R1INC DPTRINC DPTR; ;修正地址指針修正地址指針MOV A,BMOV A,B; ;恢復(fù)恢復(fù)n n3 3MOVC A,A+DPTRMOVC A,A+DPTR; ;查表取高字節(jié)查表取高字節(jié)MOV R2,AMOV R2,A; ;存入存入R2R2RETRETTAB:TAB:DB

9、 0,0,0, 0,0,1,0,0,2, 0,0,6DB 0,0,0, 0,0,1,0,0,2, 0,0,6 ;0,1,2,3;0,1,2,3的階乘的階乘DB 0,0,18H,0,0,78H,0,2,D0HDB 0,0,18H,0,0,78H,0,2,D0H;4,5,6;4,5,6的階乘的階乘DB 0,13H,0B0H,0,9DH,80HDB 0,13H,0B0H,0,9DH,80H;7,8;7,8的階乘的階乘DB 5,89H,80HDB 5,89H,80H;9;9的階乘的階乘在某單片機系統(tǒng)中,按下一按鍵,鍵在某單片機系統(tǒng)中,按下一按鍵,鍵值(代表哪個鍵被按下)存放在內(nèi)部值(代表哪個鍵被按下)

10、存放在內(nèi)部RAMRAM的的40H40H單元內(nèi)。設(shè)計一段程序?qū)崿F(xiàn)功單元內(nèi)。設(shè)計一段程序?qū)崿F(xiàn)功能:如果能:如果(40H)=00H(40H)=00H,調(diào)用子程序,調(diào)用子程序SUB1SUB1;如果;如果(40H)=01H(40H)=01H,調(diào)用子程序,調(diào)用子程序SUB2SUB2;如果如果(40H)=02H(40H)=02H,調(diào)用子程序,調(diào)用子程序SUB3SUB3;如果;如果(40H)=03H(40H)=03H,調(diào)用子程序,調(diào)用子程序SUB4SUB4;如果;如果(40H)=04H(40H)=04H,調(diào)用子程序,調(diào)用子程序SUB5SUB5。MOV A,40HMOV DPTR,#TABRL AADD A,40HJMP

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論