單片機(jī)學(xué)習(xí)第四章課件_第1頁(yè)
單片機(jī)學(xué)習(xí)第四章課件_第2頁(yè)
單片機(jī)學(xué)習(xí)第四章課件_第3頁(yè)
單片機(jī)學(xué)習(xí)第四章課件_第4頁(yè)
單片機(jī)學(xué)習(xí)第四章課件_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第四章匯編語(yǔ)言與簡(jiǎn)單程序設(shè)計(jì)1匯編語(yǔ)言程序設(shè)計(jì)中的數(shù)計(jì)算機(jī)只能識(shí)別二進(jìn)制數(shù)——機(jī)器指令,它原本是不認(rèn)識(shí)常用的十六進(jìn)制數(shù)和十進(jìn)制數(shù)的。機(jī)器指令/目標(biāo)代碼:由0/1代碼組成的操作碼與操作數(shù)。十六進(jìn)制數(shù):便于讀寫記憶的二進(jìn)制數(shù)的簡(jiǎn)寫形式。(0~9,A~F后綴:H/h)BCD碼:用二進(jìn)制數(shù)表達(dá)的十進(jìn)制數(shù)。(0~9表示為:0000~1001B后綴:B/b,H/h)二進(jìn)制數(shù):由0/1組成、“逢2進(jìn)1”的數(shù)制。如:01011110B(0~1后綴:B/b)2匯編語(yǔ)言編程基本規(guī)則匯編語(yǔ)言:用助記符描述的指令的集合。√指令中以A—F開頭的十六進(jìn)制數(shù)前必須添一個(gè)“0”?!潭M(jìn)制數(shù)必須帶后綴“B”或“b”;十六進(jìn)制數(shù)必須帶后綴“H”或“h”;十進(jìn)制數(shù)的后綴是“D”或“d”或無(wú).[標(biāo)號(hào):]操作碼[目的操作數(shù)][,源操作數(shù)][;注釋]匯編程序:匯編語(yǔ)言編寫的程序借助編譯工具編譯成為目標(biāo)代碼,計(jì)算機(jī)才能識(shí)別。這個(gè)編譯工具稱為匯編程序。3匯編程序的常用偽指令ORGaddr16——ASM51程序中一定要寫!規(guī)定編譯后的機(jī)器代碼存放的起始位置。END——ASM51程序中一定要寫!表示翻譯到此結(jié)束,其后的任何內(nèi)容不予理睬。符號(hào)名稱EQU表達(dá)式將表達(dá)式的值賦予符號(hào)名稱。程序中凡出現(xiàn)該符號(hào)名稱就等同于該表達(dá)式。$——“當(dāng)前PC值”也叫位置計(jì)數(shù)器代表正在執(zhí)行的指令所在位置。5符號(hào)名稱BIT位地址將位地址的值賦予符號(hào)名稱。程序中凡出現(xiàn)該符號(hào)名稱就代表該位地址。DW雙字節(jié)數(shù)據(jù)[或雙字節(jié)數(shù)據(jù)組]將雙字節(jié)數(shù)據(jù)[或雙字節(jié)數(shù)據(jù)組]順序存放在此后的存儲(chǔ)單元中。占據(jù)相應(yīng)存儲(chǔ)空間。DB8位數(shù)據(jù)[或8位數(shù)據(jù)組]將8位數(shù)據(jù)[或8位數(shù)據(jù)組]順序存放在此后的存儲(chǔ)單元中。占相應(yīng)數(shù)量的存儲(chǔ)空間。6程序的順序/分支/循環(huán)三種基本結(jié)構(gòu)ORG2000HBCD2B:MOVA,R2;取入口數(shù)據(jù)ANLA,#0F0H;取出十位SWAPA;高4位低4位MOVB,#0AHMULAB;十位乘10MOVR3,A;積暫存進(jìn)R3MOVA,R2;再取入口數(shù)據(jù)ANLA,#0FH;取出個(gè)位ADDA,R3MOVR2,A;結(jié)果R2RET;若不是子程序可用END

例:將R2中BCD碼數(shù)轉(zhuǎn)為二進(jìn)制數(shù)存進(jìn)R2(此子程序在下一例中還要用到)7例:將R5R4中的兩字節(jié)BCD碼數(shù)轉(zhuǎn)為二進(jìn)制數(shù)存于R5R4中X100千百十個(gè)二進(jìn)制+Cy+(R5)(R4)(R5)(R4)(R6)(A)(R5)(A)二進(jìn)制二進(jìn)制二進(jìn)制二進(jìn)制二進(jìn)制調(diào)BCD2B調(diào)BCD2B9ORG2000HVAREQU30H;定義緩存單元FUNCEQU31HBR1:MOVA,VAR;取出變量“X”JZCOMP;若=0,就賦0

JNBACC.7,POS1;判斷=正?MOVA,#0FFH;(-1=+1取反加1)SJMPCOMP;輸出-1POS1:MOVA,#01H;輸出+1COMP:MOVFUNC,A;賦給函數(shù)“Y”HERE:AJMPHEREEND例3:1(X>0)0(X=0)–1(X<0)Y=10任務(wù)一:控制一盞燈點(diǎn)亮任務(wù)二:紅燈周期性亮/滅任務(wù)三:紅外防盜報(bào)警0RG0000HAJMPMAINORG0003HRLAACALLDELAYRETIMAIN:MOVA,#80HSETBEX0SETBEAWAIT:JBACC.0,JOB1JBACC.1,JOB2JBACC.2,JOB3AJMPWAITJOB1: CLRP1.0;亮紅燈HERE:AJMPHEREJOB2:CPLP1.0;亮/滅ACALLDELAY;延時(shí)1秒AJMPJOB2;重復(fù)JOB3:CLRP1.1;亮綠燈REDO:SETBP1.3CHECK:JNBP1.3,CHECKLOOP:…………;報(bào)警! AJMPREDO;再檢測(cè)11ORG1000HDL1S:MOVR7,#10DL1:MOVR6,#200DL2:MOVR5,#250DL3:DJNZR5,DL3DJNZR6,DL2DJNZR7,DL1RET例:軟件循環(huán)延時(shí)1S(晶振12MHz)☆1Tm=1uS1S=1000000uS☆MOVRn#data是單機(jī)器周期指令☆DJNZRn,rel是雙機(jī)器周期指令1+250x21+[(1+250x2)+2)]x2001+[(1+250x2+2)x200+2]x1013ORG2000HH2ASC:MOVA,R2;取待轉(zhuǎn)換的數(shù)據(jù)(入口)ADDA,#0F6H;判此數(shù)是否≥10?

若≥10,則C=1;<10,則C=0MOVA,R2;重取待轉(zhuǎn)換的數(shù)據(jù)JNCAD30H;小于10就跳去加30HADDA,#07H;≥10就先加7再去加30H

AD30H:ADDA,#30HMOVR2,A;存結(jié)果(出口)RET例:16進(jìn)制數(shù)(00H—0FH)轉(zhuǎn)ASCII碼子程序算法:凡≥10的十六進(jìn)制數(shù)加37H;凡<10的十六進(jìn)制數(shù)加30H。(ASCII碼表0~9→30H~39H,A~F→41H~46H

14TABL:DW050FH,0E89H,0A695H,1EAAH,0D9BH,7F93HDW0373H,26D7H,2710H,9E3FH,1A66H,22E3HDW1174H,16EFH,33E4H,6CA0H例:根據(jù)16個(gè)雙字節(jié)數(shù)的序號(hào)查表找出對(duì)應(yīng)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論