單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)_一天天學(xué)習(xí)

上傳人:dfg****19 文檔編號(hào):248167856 上傳時(shí)間:2024-10-22 格式:PPT 頁(yè)數(shù):42 大?。?03.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)_一天天學(xué)習(xí)_第1頁(yè)
第1頁(yè) / 共42頁(yè)
單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)_一天天學(xué)習(xí)_第2頁(yè)
第2頁(yè) / 共42頁(yè)
單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)_一天天學(xué)習(xí)_第3頁(yè)
第3頁(yè) / 共42頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)_一天天學(xué)習(xí)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)_一天天學(xué)習(xí)(42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,1,第四章,匯編語(yǔ)言程序設(shè)計(jì),通過(guò)前面的學(xué)習(xí),我們已經(jīng)了解了單片機(jī)內(nèi)部的結(jié)構(gòu),,MCS-51,指令系統(tǒng)的尋址方式、各類(lèi)指令的格式及功能。,下面我們就是要如何利用,MCS-51,的指令系統(tǒng),來(lái)編寫(xiě)高效、充分利用其特點(diǎn)的程序。,2,4.1,概述,4.1.1,程序設(shè)計(jì)語(yǔ)言,1.機(jī)器語(yǔ)言,在單片機(jī)中,用二進(jìn)制代碼 表示的指令、數(shù)字和符號(hào)簡(jiǎn)稱(chēng)為機(jī)器語(yǔ)言。直接用機(jī)器語(yǔ)言編寫(xiě)的程序稱(chēng)為機(jī)器語(yǔ)言程序。,缺點(diǎn):程序不易看懂,不便于記憶,容易出錯(cuò)。,目前,用于程序設(shè)計(jì)的語(yǔ)言基本上分為三種:,3,2.匯編語(yǔ)言,用助記符表示的

2、指令稱(chēng)為符號(hào)語(yǔ)言或匯編語(yǔ)言。,匯編語(yǔ)言程序,(,源程序,),需要,“,匯編,”,(,由專(zhuān)門(mén)的匯編程序完成,),才能轉(zhuǎn)換成機(jī)器語(yǔ)言。得到的機(jī)器語(yǔ)言程序稱(chēng)為目標(biāo)程序。,特點(diǎn):,是面向機(jī)器的語(yǔ)言,必須對(duì)硬件有一定的了解。,助記符指令和機(jī)器指令一一對(duì)應(yīng)。,能直接管理和控制硬件設(shè)備(功能部件)。,程序設(shè)計(jì)語(yǔ)言,4,3.,高級(jí)語(yǔ)言,高級(jí)語(yǔ)言不受具體機(jī)器的限制,都是參照一些數(shù)學(xué)語(yǔ)言而設(shè)計(jì)的,使用了許多數(shù)學(xué)公式和數(shù)學(xué)計(jì)算上的習(xí)慣用語(yǔ),非常擅長(zhǎng)于科學(xué)計(jì)算。,常用的高級(jí)語(yǔ)言,如,BASIC,、,FORTRAN,、,C,語(yǔ)言等。,特點(diǎn):,通用性強(qiáng),直觀、易懂、易學(xué)、可讀性好。,計(jì)算機(jī)不能直接識(shí)別和執(zhí)行。(需要進(jìn)行編

3、譯),發(fā)展很快。,5,4.1.2,編制程序的步驟,1.,任務(wù)分析(硬件、軟件系統(tǒng)分析),2.,確定算法和工作步驟;,3.程序總體設(shè)計(jì)和流程圖繪制,關(guān)于流程圖符號(hào):,開(kāi)始、結(jié)束,-,圓角矩形,工作任務(wù),-,矩形,判斷分支,-,菱形,程序流向,-,程序連接,-,開(kāi)始,結(jié)束,6,4.分配內(nèi)存,確定程序與數(shù)據(jù)區(qū)存放地址;,5.編寫(xiě)源程序;,6.調(diào)試、修改,最終確定程序。,4.1.2,編制程序的步驟,7,4.1.3,方法技巧,模塊化設(shè)計(jì)(按功能分:顯示、打印、輸,入、發(fā)送等),2.盡量采用循環(huán)及子程序結(jié)構(gòu)(節(jié)省內(nèi)存),8,4.1.4,匯編語(yǔ)言的規(guī)范,匯編語(yǔ)言源程序由以下兩種指令構(gòu)成:,匯編語(yǔ)句(指令語(yǔ)句

4、),偽指令(指示性語(yǔ)句),匯編語(yǔ)句的格式:,標(biāo)號(hào):操作碼操作數(shù);注釋,數(shù)據(jù)表示形式:,二進(jìn)制(,B,)、十六進(jìn)制,(H),、十進(jìn)制,(D,或省略,),、,ASCII,碼(以單引號(hào)標(biāo)識(shí)),9,控制匯編用的特殊指令,這些指令不屬于指令系統(tǒng),不產(chǎn)生機(jī)器代碼。,通過(guò)使用偽指令向匯編程序發(fā)出指示信息,告訴它如何完成匯編工作。,偽指令具有控制匯編程序的輸入輸出、定義數(shù)據(jù)和符號(hào)、條件匯編、分配存儲(chǔ)空間等功能。,偽指令,10,常用的偽指令,ORG,(Origin),定位目的程序的起始地址。,格式:,ORG,表達(dá)式,如:,ORG 0000H,注:表達(dá)式必須為,16,位地址值。,END,匯編語(yǔ)言程序結(jié)束偽指令。,

5、注:一定放在程序末尾!,11,EQU,(,EQU,ate,),賦值偽指令。,格式:,字符名稱(chēng),EQU,數(shù)值或匯編符號(hào),例:,AAEQU30H,K1EQU40H,MOV A,AA;(,30H,),A,MOV A,K1;,(,40H,),A,常用的偽指令,12,DB,(,D,efine,B,yte,),從指定單元開(kāi)始定義(存儲(chǔ))若干個(gè)字節(jié)的數(shù)據(jù)或,ASCII,碼字符,常用于定義數(shù)據(jù)常數(shù)表。,格式:,DB,字節(jié)常數(shù)或,ASCII,字符,例:,ORG 1000H,DB34H,0DEH,,“,A,”,,,“,B,”,DB0AH,0BH,20,常用的偽指令,13,常用的偽指令,DW,(,D,efine,W

6、,ord,),從指定單元開(kāi)始定義(存儲(chǔ))若干個(gè)字的數(shù)據(jù),或,ASCII,碼字符。,格式:,DW,字常數(shù),或,ASCII,字符,例:,ORG 2000H,DW1234H,,“,B,”,DW0AH,20,思考,:,(2000H),及其以后的地址單元中的內(nèi)容是多少?,14,常用的偽指令,BIT,位地址符號(hào)指令。,把位地址賦于規(guī)定的字符名稱(chēng)。,格式,:,字符名稱(chēng),BIT,位地址,例:,ABCBITP1.1,QQBITP3.2,15,4.2,匯編語(yǔ)言程序編輯和匯編,1.編輯(源程序,以,.ASM,擴(kuò)展名存盤(pán));,2.匯編(手工或機(jī)器匯編);,如:,MOV A,#88H;,機(jī)器碼,74 88,又如:,地址

7、 目標(biāo)碼 源程序,ORG 1000H,1000H 74 7F MOV A,#7FH,1002H 79 44 MOV R1,#44H,END,16,4.3,程序設(shè)計(jì)基礎(chǔ)與舉例,4.3.1,順序結(jié)構(gòu)程序,org 1000h,start:mov,dptr,#2000h,mov,a,20h,movc,a,a+dptr,mov,21h,a,sjmp,$,org 2000h,table:db,0,1,4,9,16,25,end,例,1,:,變量存在內(nèi)部,RAM,的,20H,單元中,其取值范圍:,0,5,,編成,查表法求其平方值,17,開(kāi)始,表格首地址送,DPTR,變量送,A,(,20H,),A,查平方表,

8、(A+DPTR)A,結(jié)束,結(jié)果送,21H,單元,:A 21H,18,例,2,:將20,H,單元的壓縮(,Packed,),BCD,碼拆成兩個(gè),ACSII,碼存入21,H、22H,單元。,內(nèi)部,RAM,22H,21H,20H,6 9,3 6,3 9,BCD,0,1,2,.,9,ASCII,30H,31H,32H,.,39H,19,方法,1,(20,H),A,10,H,B,A/B,A,中為高4位,BCD,碼,,B,中為低4位,BCD,碼,B+30H,B,B,(21H),A+30H,A,A,(22H),開(kāi)始,結(jié)束,20,周期數(shù) 源程序,ORG 2000H,MOV A,20H,MOV B,#10H,D

9、IV AB,ORL B,#30H,MOV 21H,B,ORL A,#30H,MOV 22H,A,END,1,2,4,2,2,1,1,13,;除以10,H,;,高4位,BCD,碼轉(zhuǎn)換位,ASCII,碼,;,低4位,BCD,碼轉(zhuǎn)換位,ASCII,碼,21,0,(2,1H),(20,H),A,A,與,(21H),的低4位交換,(21H)+30H,(21H),A,的高低半字節(jié)交換,A+30H,A,A,(22H),開(kāi)始,結(jié)束,方法2:,22,ORG 2000H,MOV R0,#21H,MOV R0,#0,MOV A,20H,XCHD A,R0,ORL 21H,#30H,SWAP A,ORL A,#30H

10、,MOV 22H,A,END,;,清2,1H,單元,;,低4位,BCD,碼送,21H,單元,,;,低4位,BCD,碼轉(zhuǎn)換位,ASCII,碼,;高4位,BCD,碼轉(zhuǎn)換位,ASCII,碼,1,1,1,1,2,1,1,1,9,周期數(shù),源程序,23,4.3.2,分支程序,分支程序可根據(jù)要求,無(wú)條件,或,條件地,改變程序執(zhí)行流向。編寫(xiě)分支程序主要在于正確使用,轉(zhuǎn)移指令,。分支程序有:?jiǎn)畏种ЫY(jié)構(gòu)、雙分支結(jié)構(gòu)、多分支結(jié)構(gòu)(散轉(zhuǎn)),條件成立?,下條指令,程序段,A,單分支結(jié)構(gòu),Y,N,條件成立?,程序段,A,Y,N,程序段,A,雙分支結(jié)構(gòu),24,4.3.2,分支程序,分支程序可根據(jù)要求無(wú)條件或條件地改變程序執(zhí)

11、行流向。編寫(xiě)分支程序主要在于正確使用轉(zhuǎn)移指令。分支程序有:?jiǎn)畏种ЫY(jié)構(gòu)、雙分支結(jié)構(gòu)、多分支結(jié)構(gòu)(散轉(zhuǎn)),K=,?,程序段,n,n,0,程序段,1,多分支結(jié)構(gòu),程序段,0,1,25,例,1,:設(shè)變量,x,以補(bǔ)碼形式存放在片內(nèi),RAM 30H,單元中,變量,y,與,x,的關(guān)系是:,編程根據(jù),x,的值求,y,值并放回原單元。,26,A=,?,y=x+5,0,y=20H,y=x,0,取,x,即(,30h,),A,開(kāi)始,存,y,即,y 20h,結(jié)束,27,ORG 1000H,START:MOV A,30H,JZ NEXT ;x=0,轉(zhuǎn)移,ANL A,#80H ;,保留符號(hào)位,JZ ED ;x0,轉(zhuǎn)移,MO

12、V A,#05H ;x0,不轉(zhuǎn)移,ADD A,30H,MOV 30H,A,SJMP ED,NEXT:MOV 30H,#20H,ED:SJMP$,28,START:MOV DPTR,#TAB,MOV A,R7,ADD A,R7 ;R7,2,A,MOV R3,A ;,暫存,R3,MOVC A,A+DPTR ;,取高位地址,XCH,A,R3,INC A,MOVC A,A+DPTR ;,取低位地址,MOV DPL,A,MOV DPH,R3 ;,轉(zhuǎn)移地址送入,DPTR,CLR A,JMP A+DPTR,TAB:DW P0,DW P1,DW PN,例,2,:,根據(jù),R7,的內(nèi)容,轉(zhuǎn)至對(duì)應(yīng)的分支程序。設(shè),R

13、7,的內(nèi)容為,0,N,,對(duì)應(yīng)的處理程序地址分別為,P0,P7,P0,高位,P0,低位,TAB,P1,高位,P1,低位,TAB+2,29,4.3.3,循環(huán)程序,循環(huán)程序一般由:,初始化部分,循環(huán)體部分,-,處理部分、修改部分、控制部分,結(jié)束部分,其結(jié)構(gòu)一般有兩種:,先進(jìn)入處理部分,再控制循環(huán),至少執(zhí)行一次循環(huán)體,先控制循環(huán),再進(jìn)入處理部分,循環(huán)體是否執(zhí)行,取決于判斷結(jié)果。,30,開(kāi)始,設(shè)置循環(huán)初值,循環(huán)處理,循環(huán)修改,結(jié)束處理,結(jié)束,循環(huán)結(jié)束?,開(kāi)始,設(shè)置循環(huán)初值,循環(huán)處理,循環(huán)修改,結(jié)束處理,結(jié)束,循環(huán)結(jié)束?,N,Y,Y,N,31,循環(huán)控制的一般方法:,循環(huán)次數(shù)已知,利用循環(huán)次數(shù)控制,循環(huán)次數(shù)

14、未知,利用關(guān)鍵字控制,利用“邏輯尺”,根據(jù)“邏輯尺”的內(nèi)容,進(jìn)行控制。,32,例,4-3-6,:,50ms,延時(shí)子程序。設(shè)晶振頻率為,12MHz,,則機(jī)器周期為,1us,。,DEL:MOV R7,#200 ;1MC,DEL1:MOV R6,#123 ;1MC,NOP ;1MC,DJNZ R6,$;2MC,DJNZ R7,DEL1 ;2MC,RET ;2MC,延時(shí)時(shí)間:,t=1+200(1+1+2*123)+2+2,50000us=50ms,33,例,4-3-8,:將內(nèi)部,RAM,中起始地址為,data,的數(shù)據(jù)串串送到外部,RAM,中起始地址為,buffer,的存儲(chǔ)區(qū)域中,直到發(fā)現(xiàn),$,字符,傳

15、送停止,-,循環(huán)次數(shù)事先不知道先判斷,后執(zhí)行。,MOV R0,#data,MOV,DPTR,#buffer,LOOP1:MOV A,R0,CJNE A,#24H,LOOP2 ;,判斷是否為字符,SJMP LOOP3 ;,是,轉(zhuǎn)結(jié)束,LOOP2:MOVX DPTR,A ;,不是,傳送數(shù)據(jù),INC R0,INC DPTR,SJMP LOOP1,;傳送下一數(shù)據(jù),LOOP3:END,34,4.3.4,子程序問(wèn)題,子程序設(shè)計(jì)時(shí)注意事項(xiàng):,1.給子程序賦一個(gè)名字。實(shí)際為入口地址代號(hào)。,2.要能正確傳遞參數(shù):,入口條件:子程序中要處理的數(shù)據(jù)如何給予。,出口條件:子程序處理結(jié)果如何存放。,(寄存器、存儲(chǔ)器、堆

16、棧方式),3.保護(hù)與恢復(fù)現(xiàn)場(chǎng):,保護(hù)現(xiàn)場(chǎng):壓棧指令,PUSH,恢復(fù)現(xiàn)場(chǎng):彈出指令,POP,4.,子程序可以嵌套,35,例,4-3-9,:利用查表法求平方和 ,設(shè),a,、,b,、,c,分別存于內(nèi)部,RAM,的,DA,、,DB,、,DC,三個(gè)單元中。,MOV A,DA ;,取,a,ACALL SQR ;,調(diào)用查表子程序,MOV R1,A ;a,的平方暫存,R1,中,MOV A,DB,;,取,b,ACALL SQR ;,調(diào)用查表子程序,ADD A,R1 ;,求出平方和暫存阿,A,中,MOV DC,A ;,結(jié)果存于,DC,中,SJMP$,SQR:MOV DPTR,#TAB ;,子程序,MOVC A,A+DPTR,RET,TAB:DB 0,1,4,9,16,25,36,49,64,81,END,利用累加器或寄存器傳遞參數(shù),36,4.3.5,碼型轉(zhuǎn)換程序的設(shè)計(jì),一、十六進(jìn)制數(shù)與,ASCCII,碼之間的轉(zhuǎn)換,(,對(duì)比,BCD,與,ASCCI,之間的轉(zhuǎn)換,4.3.1,中例,2,),表,4-1,十六進(jìn)制數(shù)與,ASCII,碼之間的關(guān)系,十 六,進(jìn)制數(shù),十 六,進(jìn)制數(shù),十 六,進(jìn)制數(shù),十 六,進(jìn)制數(shù),0,3

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!