第4章 mcs-51單片機(jī)匯編語言程序設(shè)計(jì)課件

第4章 mcs-51單片機(jī)匯編語言程序設(shè)計(jì)課件

ID:5873332

大?。?.44 MB

頁數(shù):48頁

時(shí)間:2017-12-14

第4章  mcs-51單片機(jī)匯編語言程序設(shè)計(jì)課件_第1頁
第4章  mcs-51單片機(jī)匯編語言程序設(shè)計(jì)課件_第2頁
第4章  mcs-51單片機(jī)匯編語言程序設(shè)計(jì)課件_第3頁
第4章  mcs-51單片機(jī)匯編語言程序設(shè)計(jì)課件_第4頁
第4章  mcs-51單片機(jī)匯編語言程序設(shè)計(jì)課件_第5頁
資源描述:

《第4章 mcs-51單片機(jī)匯編語言程序設(shè)計(jì)課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、第4章MCS-51單片機(jī)匯編語言程序設(shè)計(jì)本章定位匯總提高4.1匯編語言程序的基本結(jié)構(gòu)形式4.2順序結(jié)構(gòu)程序設(shè)計(jì)4.3分支結(jié)構(gòu)程序設(shè)計(jì)4.3.1單分支程序設(shè)計(jì)4.3.2多分支程序設(shè)計(jì)4.3.3分支結(jié)構(gòu)程序設(shè)計(jì)實(shí)例4.4循環(huán)結(jié)構(gòu)程序設(shè)計(jì)4.4.1單循環(huán)4.4.2多重循環(huán)4.5子程序的設(shè)計(jì)4.5.1子程序結(jié)構(gòu)4.5.2子程序調(diào)用4.6程序設(shè)計(jì)應(yīng)用實(shí)例第4章MCS-51匯編語言程序設(shè)計(jì)3語言機(jī)器語言、匯編語言和高級語言3原則盡可能節(jié)省數(shù)據(jù)存放單元、縮短程序長度、加快運(yùn)算時(shí)間匯編語言是面向機(jī)器硬件的語言,要求程序設(shè)計(jì)者對MCS-51單片機(jī)具有很好的“軟、

2、硬結(jié)合”的功底。介紹程序設(shè)計(jì)的基本知識及如何使用匯編語言來進(jìn)行基本的程序設(shè)計(jì)。4.1匯編語言程序的基本結(jié)構(gòu)形式順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),再加上廣泛使用的子程序和中斷服務(wù)子程序。1.順序結(jié)構(gòu)2.分支結(jié)構(gòu)程序中含有轉(zhuǎn)移指令,無條件分支,有條件分支。有條件分支又分為:單分支結(jié)構(gòu)和多分支結(jié)構(gòu)。3.循環(huán)結(jié)構(gòu)4.子程序5.中斷服務(wù)子程序4.2順序結(jié)構(gòu)程序設(shè)計(jì)4.2.1一般的順序結(jié)構(gòu)一、子程序設(shè)計(jì)原則和應(yīng)注意的問題順序結(jié)構(gòu)是最簡單最常用的程序結(jié)構(gòu),在順序結(jié)構(gòu)的程序中既無分支,也無循環(huán),也不調(diào)用子程序。程序執(zhí)行時(shí),程序流向不變,按順序一條一條地執(zhí)行指令,如

3、圖4-1所示。也稱為簡單程序或直線程序。順序程序結(jié)構(gòu)雖然比較簡單,但也能完成一定的功能任務(wù),是構(gòu)成復(fù)雜程序的基礎(chǔ)。例4-1已知16位二進(jìn)制負(fù)數(shù)存放在R1、RO中,試求其補(bǔ)碼,并將結(jié)果存在R3、R2中。分析:二進(jìn)制負(fù)數(shù)的求補(bǔ)方法可歸結(jié)為“求反加1”,符號位不變。利用CPL指令實(shí)現(xiàn)求反:加1時(shí),應(yīng)低8位先加1,高8位再加上低位的進(jìn)位。注意這里不能用INC指令,因?yàn)镮NC指令不影響標(biāo)志位。CONT∶MOVA,R0;讀低8位CPLA;取反ADDA,#1;加1MOVR2,A;存低8位MOVA,R1;讀高8位CPLA;取反ADDCA,#80H;加進(jìn)位及符號

4、位MOVR3,A;存高8位RET例4-2編寫邏輯運(yùn)算程序,功能為:F=X(Y+Z)其中,F、X、Y、Z均為位變量,依次存在以30H為首址的位尋址區(qū)。FBIT30HXBIT31HYBIT32HZBIT33HLOG1:MOVC,Y;Y--->CORLC,Z;(Y+Z)-->CANLC,X;X(Y+Z)-->CMOVF,C;X(Y+Z)-->FRET例4-1補(bǔ)程序初始化。初始化就是為變量、寄存器、存儲單元賦一初值,是最簡單、最常用的操作。如將R0-R3,P1,30H,40H單元初始化為00H,把R4,R5初始化為0FFH。ORG0000H;PC起始地

5、址LJMPSTART;轉(zhuǎn)主程序ORG0100H;主程序起始地址START:MOVR0,#00H;初始化MOVR1,#00HMOVR2,#00HMOVR3,#00HMOVP1,#00HMOVR4,#0FFHMOVR5,#0FFHMOV30H,#00HMOV40H,#00HHERE:SJMPHERE;反復(fù)執(zhí)行該指令,相當(dāng)于等待END4.2.2查表程序設(shè)計(jì)數(shù)據(jù)計(jì)算、轉(zhuǎn)換等各種功能,具有程序簡單、執(zhí)行速度快等優(yōu)點(diǎn)。查表就是根據(jù)自變量x,在表格中尋找y,使y=f(x)。執(zhí)行查表指令時(shí),發(fā)出讀程序存儲器選通脈沖/PSEN。指令系統(tǒng),給用戶提供了兩條極為有用

6、的查表指令:⑴MOVCA,@A+DPTR⑵MOVCA,@A+PC指令“MOVCA,@A+DPTR”完成把A中的內(nèi)容作為一個(gè)無符號數(shù)與DPTR中的內(nèi)容相加,所得結(jié)果為某一程序存儲單元的地址,然后把該地址單元中的內(nèi)容送到累加器A中。》》指令“MOVCA,@A+PC”以PC作為基址寄存器,PC的內(nèi)容和A的內(nèi)容作為無符號數(shù),相加后所得的數(shù)作為某一程序存儲器單元的地址,根據(jù)地址取出程序存儲器相應(yīng)單元中的內(nèi)容送到累加器A中。執(zhí)行該指令語句時(shí),PC的內(nèi)容指向查表指令的下一條指令。指令執(zhí)行完,PC的內(nèi)容不發(fā)生變化,仍指向查表指令的下一條指令。優(yōu)點(diǎn):預(yù)處理較少且

7、不影響其它特殊功能寄存器的值,所以不必保護(hù)其它特殊功能寄存器的原先值缺點(diǎn):在于該表格只能存放在這條指令的地址(例如1000H)以下的00~FFH之中。表格所在的程序空間受到了限制。例4-2補(bǔ)子程序的功能為:根據(jù)累加器A中的數(shù)x(0~9之間)查x的平方表y,根據(jù)x的值查出相應(yīng)的平方y(tǒng)。x和y均為單字節(jié)數(shù)。地址子程序1000HADDA,#01H1002HMOVCA,@A+PC1003HRET1004HDB00H,01H,04H,09H,10HDB19H,24H,31H,40H,51H第1條指令A(yù)DDA,#01H的作用是加上偏移量,可以根據(jù)A的內(nèi)容查

8、出X對應(yīng)的平方。MOVCA,@A+DPTR這條指令的應(yīng)用范圍較為廣泛,一般情況下,大多使用該指令,使用該指令時(shí)不必計(jì)算偏移量。使用該指令的優(yōu)點(diǎn)是表格可

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。