




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2024/1/24MCS-51單片機原理與應用1
MCS-51匯編語言程序設計是單片機應用系統(tǒng)設計的重要環(huán)節(jié)。 將按照結構化程序的三種基本結構,即順序結構、分支結構和循環(huán)結構來講述,掌握了這三種基本結構可以組成所有的各種復雜程序,包括各種實用子程序。第5章匯編語言程序設計2024/1/24MCS-51單片機原理與應用2
機器語言就是由機器指令組成的能被計算機所識別和執(zhí)行的語言,它是面向MCU的。用機器語言編寫的程序稱為機器語言程序。
匯編語言是將機器語言用便于記憶與理解的助記符和符號地址來表達的語言,是機器語言的符號化表示。5.1匯編語言程序設計概述
5.1.1機器語言、匯編語言與C程序
2024/1/24MCS-51單片機原理與應用3
匯編語言程序結構簡煉,編譯后占用存儲空間小,執(zhí)行速度快,是單片機應用系統(tǒng)開發(fā)中最常用的程序設計語言。匯編語言也是面向機器的,在不同的MCU之間是互不兼容的。 匯編語言程序中要指定程序或數(shù)據(jù)塊的存放地址,而單片機的C語言程序,地址分配將由軟件完成,C程序生成的機器代碼效率和匯編語言的相當,但可讀性和可移植性卻超過匯編語言2024/1/24MCS-51單片機原理與應用4如單燈閃爍C程序如下:#include<AT89X51.h> //預處理命令voidmain(void) //主函數(shù)名{unsignedinta; //定義變量a為int類型do{ //dowhile組成循環(huán)for(a=0;a<50000;a++); //空循環(huán)延時P1_0=0; //設P1.0口為低電平,點亮LEDfor(a=0;a<50000;a++); //空循環(huán)延時P1_0=1; //設P1.0口為高電平,熄滅LED}while(1);}2024/1/24MCS-51單片機原理與應用5 匯編:把匯編源程序翻譯成機器指令代碼的過程。 編譯:把源程序翻譯成機器指令代碼的過程。匯編語言程序和C語言程序稱為源程序,而機器語言程序稱為目的程序。 人工匯編:將匯編指令通過查閱指令表來得到對應的機器指令。5.1.2匯編語言語句格式2024/1/24MCS-51單片機原理與應用6
匯編源程序,是一系列語句有序集合。語句是由標號、操作碼、操作數(shù)和注釋組成,格式如下:[標號:]操作碼[操作數(shù)],[源操作數(shù)];注釋START:MOV
A, #30H;A←30H(1)標號部分 標號是由字母數(shù)字串組成的標識符,windows下的編譯軟件對標號長度已無DOS下的8字符限制,但首字符必須是字母,不能是數(shù)字,標號最后要跟冒號,不能與系統(tǒng)專用的關鍵字同名。2024/1/24MCS-51單片機原理與應用7合法的標號:START、D1,非法標號:1D、R0、MOV。 標號是指令的符號地址,是一個可選項,根據(jù)需要而定。 標號在轉移、調用和分支指令中,作為目的地址的標識用,如表4.1匯編程序中標號START是作為跳轉指令LJMP的目的地址,使程序跳轉到START處重新執(zhí)行。2024/1/24MCS-51單片機原理與應用8(2)操作碼部分操作碼是指令中不可缺少必選項,告訴CPU要干什么。(3)操作數(shù)部分操作數(shù)是可選項,按操作碼的要求,操作數(shù)可以:①空白,無操作數(shù),或操作數(shù)隱含在操作碼中,如RET②只有1個操作數(shù),如CLR
P1.0,SETB
P1.0。③有2個操作數(shù),如MOV
A,#30H。源操作數(shù)(源)存放參加操作的原始數(shù)據(jù)或地址,目的操作數(shù)(目)存放參加操作的另一個原始數(shù)據(jù)或地址,操作結果將2024/1/24MCS-51單片機原理與應用9操作結果將存放于目中。(4)注釋部分
注釋是對指令的解釋和說明,是寫給人看的,可以提高程序的可讀性。注釋在匯編時并不生成目的代碼,對MCU執(zhí)行指令并無影響。 注釋前必須加分號,如果一行寫不完,換行時也必須用分號開頭。2024/1/24MCS-51單片機原理與應用10(1)任務分析 分析控制要求,明確設計任務、功能指標。(2)確定算法
算法是解決一個問題的具體方法和步驟,是程序的靈魂。將一個具體的任務抽象成數(shù)學模型,把一個實際問題轉化成可由計算機進行處理的問題。(3)繪制流程圖 用流程圖畫出程序的粗框,將算法形象化的表達出來。確定地址分配、數(shù)據(jù)結構、通信協(xié)議、子程序出入口條件等。5.1.3匯編語言程序設計一般步驟2024/1/24MCS-51單片機原理與應用11(4)編寫源程序 用匯編語言把流程圖所描述的步驟一框框地實現(xiàn),從而編寫出指令的有序集合,即匯編語言源程序。(5)調試仿真程序 用Keil
μVision將匯編語言源程序匯編成目的程序,進行仿真調試,排除程序中的錯誤。反復進行,直至得出正確的結果。2024/1/24MCS-51單片機原理與應用12
用A51匯編程序(Assembler)匯編用戶源程序時,需要用偽指令來提供相關的匯編信息。 偽指令是指示與控制匯編過程的一些命令。它是針對Assembler的,不是針對CPU的,不產(chǎn)生目的指令,所以稱其為“偽”指令。下面介紹常用的偽指令。
(1)ORG(Origin)匯編起始偽指令格式:標號: ORG nn ;(nn是16位的地址) 功能:指示其后的目的程序或數(shù)據(jù)塊存放在以nn為起址的程序存儲器中。5.2偽指令
2024/1/24MCS-51單片機原理與應用13 如:ORG0300H表示其后的目的程序或數(shù)據(jù)塊存放在以0300H為起址的程序存儲器中。 (2)END匯編結束偽指令格式:END [nn];(nn是16位的地址值或標號)
END必須放在源程序的末尾,功能:表示源程序的結束。END后面若帶可選項nn,則nn指出其目的程序的起始地址,對于主程序就是第1條指令的符號地址,對于子程序,則END后無地址或標號。 例如:END
START ;表示源程序到此結束,目的程序從START單元開始執(zhí)行。2024/1/24MCS-51單片機原理與應用14 (3)EQU(Equate)賦值偽指令格式:標號EQU表達式 賦值指令也稱等值指令,
功能:把操作數(shù)字段中的地址或數(shù)據(jù)賦給一個標號,標號不能重定義。表達式可以是8位或16位二進制數(shù)值,賦值后的標號可以是地址、或立即數(shù)。例如:VALEQU45+3 ;把表達式的值48賦給VALSTARTEQUVAL;已定義的VAL值轉輾賦給STARTREG1 EQU R1 ;寄存器符號的重新定義2024/1/24MCS-51單片機原理與應用15 (4)DATA地址賦值偽指令格式:標號DATA
nn功能:把地址nn賦值給標號,標號不能重定義。如:PORT1DATA90H;把P1口地址90H賦給PORT1SRBUFDATASBUF;把SBUF地址99H賦給SRBUF 注意,對于上述兩條指令,標號與EQU或DATA之間不加冒號,而用空格分隔,否則將會出現(xiàn)語法錯誤;并且對同一標號,賦值一次有效,否則將會出現(xiàn)重定義錯誤。2024/1/24MCS-51單片機原理與應用16 (5)DB(Definebyte)定義字節(jié)偽指令格式:[標號:]DB字節(jié)數(shù)據(jù)項或項表 功能:把“項或項表”中字節(jié)數(shù)據(jù)依次存放到以標號為起始地址的當前存儲單元中,字節(jié)數(shù)據(jù)可以是字節(jié)常數(shù)、字符或字符串。例如:SQTB:DB00H,01H,04H,09H,10H;從SQTB起建立0~4的平方表MSG:DB
‘PressAKeyToContinue’,
0;從地址MSG;起,依次把字符串中的字符按ASCII碼連續(xù)存放,最后存放0。2024/1/24MCS-51單片機原理與應用17 (6)DW(Defineword)定義字偽指令格式:[標號:]DW字數(shù)據(jù)項或項表功能:把“項或項表”中字數(shù)據(jù)依次存放到以標號為起始地址的當前存儲單元中,字數(shù)據(jù)可以是字常數(shù)、字符或字符串,每個字需二個字節(jié)單元存放。例如: TAB:
DW
1234H,56H,"AB";從地址TAB起,依次把項表中12H、34H、00H、56H及ASCII碼’A’和‘B’連續(xù)存放。可以用ORG指令把DB或DW所定義的數(shù)據(jù)區(qū)放置在2024/1/24MCS-51單片機原理與應用18代碼或堆棧無沖突的存儲區(qū)域中。 (7)DS(Definestorage)定義存儲區(qū)偽指令格式:[標號:]DS表達式功能:從指定地址開始,保留指定數(shù)目的字節(jié)單元作為存儲區(qū),供程序運行使用。匯編時,對這些單元不進行賦值。“表達式”常為一個數(shù)值,代表預留內(nèi)存單元數(shù)量。 TIME:
DS
8;從TIME地址開始,保留8個連續(xù)單元。2024/1/24MCS-51單片機原理與應用19 (8)BIT定義位偽指令格式:字符名稱BIT位地址 功能:把BIT右邊的位地址賦給左邊的字符名稱,賦值后的字符名稱是個符號位地址,可用此字符名稱代替BIT后的位地址。例如:P1_0 BIT90H.0 ;定義P1_0為SFR中的P1.0P1_1 BITP1_0+1 ;定義P1_1為SFR中的P1.1b00H BIT
00H ;定義b00H為位地址00H2024/1/24MCS-51單片機原理與應用20例5.1閱讀下面?zhèn)沃噶?,試回答:?)指出下面?zhèn)沃噶钪付ǖ拇鎯Ψ峙?在μVision3上運行驗證。(2)指出各個標號的值。
ORG 0100HSTR: DB -1,-2,3STR1:DB "ABC"STR2:DW "AB","CD"BITS: DS 2
解:從0100H單元開始,先依次存放FF、FE和03,其中開始兩個負數(shù)是以補碼存放的; 接著,從0103H單元開始,先依次存放各個字符的ASCII碼;最后從010AH單元開始保留了兩個字節(jié)單元。2024/1/24MCS-51單片機原理與應用21(2)各個標號的值如表5.1所示。5.3結構化程序設計基礎
匯編語言程序也分為三種基本結構:
順序結構、分支結構和循環(huán)結構。這三種基本結構可以組成所有的各種復雜程序。2024/1/24MCS-51單片機原理與應用22
結構化程序的共同特點:只有一個入口和一個出口;結構內(nèi)的每一部分都有機會被執(zhí)行到而不存在“死循環(huán)”。 順序結構程序也稱為簡單程序,特點是按程序編寫的順序依次執(zhí)行,程序流向不變。5.3.1順序結構程序設計 例5.2編程實現(xiàn)16位數(shù)左移1位,其中高8位在31H,低8位在30H。2024/1/24MCS-51單片機原理與應用23
解:由31H和30H組成16位數(shù)左移算法:先對CY清零,接著以CY為“紐帶”,依次對30H和31H使用循環(huán)左移指令,即可實現(xiàn)對此16位數(shù)左移1位。2024/1/24MCS-51單片機原理與應用24按圖得到的匯編源程序如下: ORG0030HSTART:CLRC MOVA,30H RLCA MOV30H,A MOVA,31H RLCA
MOV31H,A END
2024/1/24MCS-51單片機原理與應用25例5.3試用邏輯指令編程,重做例4.8。按圖5.3所示的N-S圖得到的匯編源程序如下:
ORG 0030HSTART:MOV30H,#56H MOVA,30H SWAPA ANL A,#0FH ORL A,#30H MOV31H,A MOVA,30H ANL A,#0FH ORL A,#30H MOV30H,A ENDSTART2024/1/24MCS-51單片機原理與應用26分支結構程序設計
分支結構程序:判斷指令給定的條件,來決定流向,或順序執(zhí)行,或轉移到其他指令處執(zhí)行。 編寫分支結構程序,根據(jù)已執(zhí)行程序對標志位、累加器或內(nèi)部RAM某位的影響結果,決定程序的走向,形成各種分支。 例
試編程求符號函數(shù)y的值,x在30H單元中,y值送31H單元。
y=10-1x>0x=0x<02024/1/24MCS-51單片機原理與應用27
解:本題的算法流程如圖,首先用累加器A判零轉移指令,判斷x是否為0;若非0,接著用位狀態(tài)轉移指令,判斷x是正還是負。經(jīng)兩次判斷,形成三條分支。y=10-1x>0x=0x<0
ORG 0030H X EQU 30H Y EQU 31HSTART:MOV A,X
JZ DONE
JNB
ACC.7,PLUS MOV A,#0FFH SJMP DONE PLUS: MOV A,#01HDONE:MOV Y,A END
START2024/1/24MCS-51單片機原理與應用28;待判斷數(shù)送A,A←X;A為0轉DONE;A為正數(shù),轉PLUS;A為負數(shù),則A←-1;A為正數(shù),則A←1;結果送31H單元,Y←A例5.5重做例4.15(P78) 解:從圖可見,每一鍵值處理程序的入口地址占兩個字節(jié)單元,如高8位地址C0H存放在TAB單元,低8位地址C0L存放在TAB+1單元。 用查表法實現(xiàn)多分支轉移。只是要分兩次使用查表指令,取得轉移地址的高、低8位,并分別送到DPTH和DPTL; 最后使用JMP@A+DPTR指令,按跳轉表散轉。按此算法得到的匯編源程序如下:
2024/1/24MCS-51單片機原理與應用29 ORG 0030HSTART:CLRC RLC A MOVR2,A MOVDPTR,#TAB MOVCA,@A+DPTR
XCH A,R2
INC A MOVCA,@A+DPTRMOV DPL, A MOV DPH, R2 CLR A ;CY=0JMP @A+DPTR 2024/1/24MCS-51單片機原理與應用30TAB:DW
C0;C0~C2是各命令鍵操作程序入口地址DW
C1DW
C2C0
DATA
0100HC1
DATA
0130HC1
DATA
0160HEND
START
在KeilμVision3上調試運行時,分別設置A中鍵值為0、1、2三種情況,程序將分別散轉到0100H、0130H、0160H。
2024/1/24MCS-51單片機原理與應用31
需要多次重復執(zhí)行某段程序,可采用循環(huán)結構程序。典型的循環(huán)結構包括如下3部分:
(1)循環(huán)初始化 循環(huán)前的準備,設置循環(huán)初始值。初始化指令必須放在循環(huán)體的外面,只能執(zhí)行一次。
(2)循環(huán)體 循環(huán)體是循環(huán)重復執(zhí)行部分,包括循環(huán)變量的修改,每循環(huán)一次,充當循環(huán)變量的計數(shù)器或指針減1。2024/1/24MCS-51單片機原理與應用325.3.3循環(huán)結構程序設計
(3)循環(huán)控制 控制循環(huán)的執(zhí)行或結束,判斷循環(huán)變量是否滿足終值條件,若不滿足則繼續(xù)循環(huán),否則終止循環(huán)。 按循環(huán)的執(zhí)行方式來看,分為當型循環(huán)和直到型循環(huán)。
例5.6分析例4.16循環(huán)程序。 解:直到型循環(huán),
其特點是“先執(zhí)行,后判斷”,先執(zhí)行循環(huán)體,即執(zhí)行加法運算和循環(huán)變量R0減1,后判斷循環(huán)條件R0是否為0,從而確定下一次循環(huán)該不該執(zhí)行。2024/1/24MCS-51單片機原理與應用33 當型循環(huán)特點是“先判斷,后執(zhí)行”,先判斷循環(huán)條件R0是否不等于0,來確定本次循環(huán)該不該執(zhí)行,只有循環(huán)條件滿足其后才會執(zhí)行循環(huán)體。2024/1/24MCS-51單片機原理與應用34匯編源程序如下: ORG 0030HSTART:CLR A MOVR0,#0AH SJMPLOOP1 LOOP: ADDA,R0 DEC R0 LOOP1:CJNER0,#00H,LOOP
MOV30H,A
END
START2024/1/24MCS-51單片機原理與應用35
按循環(huán)終止條件來看,分為計數(shù)循環(huán)和條件循環(huán)。計數(shù)循環(huán)的循環(huán)次數(shù)是事先確定的. 上例中的循環(huán)就是已知循環(huán)次數(shù)的計數(shù)循環(huán),充當循環(huán)變量R0的初值為10,終值為0,步長為1,這樣就可以算出總共要執(zhí)行10次循環(huán)。
未知循環(huán)次數(shù),但已知循環(huán)終止的條件,稱為條件循環(huán)。2024/1/24MCS-51單片機原理與應用36 例5.7在內(nèi)部RAM單元31H起存放了一個長度小于256的字符串,該字符串以0DH(CR)為終止標志,試編程統(tǒng)計其長度,并存入30H單元中。 解:本例的算法流程如圖。這是一個條件循環(huán),循環(huán)條件是當A=0DH時,終止循環(huán)。2024/1/24MCS-51單片機原理與應用37匯編源程序如下:
ORG 0030HSTART:MOVR0,#30H ;R0←30H MOVR1,#FFH ;R1←FFHLOOP:INC R0 ;R0←R0+1 INC R1 ;R1←R1+1 MOVA,@R0 ;A←(R0)
CJNEA,#0DH,LOOP ;R0≠0DH繼續(xù)循環(huán) MOV30H,R1 ;存長度,30H←(R1)
END
START
若循環(huán)體內(nèi)不含另外的循環(huán)程序稱為單重循環(huán);若又包含另外完整的循環(huán)程序稱為循環(huán)的嵌套,循環(huán)的嵌套可以是多重的。2024/1/24MCS-51單片機原理與應用38
多重循環(huán)中許多規(guī)則同高級語言一樣,如只許嵌套,不許交叉;循環(huán)執(zhí)行是由內(nèi)向外等。例5.8計算單燈閃爍程序中延時子程序延時時間。
解:單燈閃爍程序延時子程序是一個雙重循環(huán),R0外循環(huán)體中包含了一個R1完整的內(nèi)循環(huán)。對應的匯編子程序以及每條指令的執(zhí)行機器周期數(shù)如b。2024/1/24MCS-51單片機原理與應用39 軟件延時是利用MCU執(zhí)行指令都有固定的時序,是需要時間的。在使用12MHz晶振時,一個機器周期正好為為1μs,所以只要計算出延時程序執(zhí)行時總的機器周期數(shù),就是總的延時時間。由5.8(b)可以得到:延時時間
=1+(1+2*195+2)*255+2=100218μs=0.1s 注意,用軟件實現(xiàn)延時時,不允許有中斷,否則將嚴重地影響定時的準確性。若需要延時更長的時間,可采用更多重的循環(huán)。2024/1/24MCS-51單片機原理與應用40
需要多次重復使用的基本操作編寫成相對獨立的程序段,這種相對獨立的能被調用的程序段被稱為子程序。 調用子程序的程序叫主程序或調用程序。子程序也是由三種基本結構組成,即順序結構、分支結構和循環(huán)結構,但是也有其獨特的結構特點:2024/1/24MCS-51單片機原理與應用415.4子程序設計
5.4.1子程序的結構與參數(shù)傳遞
(1)入口有標號 子程序的第一條指令前必須有標號,也就是該子程序的入口地址。如用ACALLDELAY就能調用0.1秒延時子程序DELAY。
(2)尾綴RET 子程序的末尾應有RET指令,以便正確返回主程序或調用程序的斷點處,繼續(xù)執(zhí)行。2024/1/24MCS-51單片機原理與應用42 (3)現(xiàn)場保護與恢復除了在主程序中完成外,也常常在執(zhí)行子程序的最前面完成保護現(xiàn)場,在返回之前完成恢復現(xiàn)場。例如:SUB1:PUSHACC PUSHDPH PUSHDPL …… ;POPDPL POPDPH POPACC RET
對于PC值的斷點保護和恢復是自動完成的,即由執(zhí)行LCALL、ACALL指令時將斷點壓入堆棧保護,由執(zhí)行RET指令時將斷點彈出堆?;謴?。2024/1/24MCS-51單片機原理與應用43 (4)子程序的參數(shù)傳遞形式 在調用子程序時,有時需要傳送一些參數(shù)給子程序中相應的變量,這些數(shù)據(jù)稱入口參數(shù)。 子程序執(zhí)行完后有時也要返回一些結果給調用程序,這些結果數(shù)據(jù)稱出口參數(shù)。 這種調用程序和子程序之間的信息傳送稱為參數(shù)傳遞。 子程序的資源要為所有調用程序共享,其處理的數(shù)據(jù)多以變量的形式出現(xiàn),參數(shù)傳送方式有:2024/1/24MCS-51單片機原理與應用44 ①寄存器傳送:傳送數(shù)據(jù)保存在累加器或工作寄存器中被共享,
一般無需現(xiàn)場保護,傳送速度快,參數(shù)少時用合適。
②數(shù)據(jù)指針傳送:傳送的是數(shù)據(jù)指針Ri或者DPTR,使這些指針指向要傳送數(shù)據(jù)的RAM區(qū)數(shù)據(jù)表,在參數(shù)多的時候比較適合。
③堆棧傳送:以堆棧為中介,共享數(shù)據(jù)。注意:不要與現(xiàn)場保護內(nèi)容發(fā)生沖突,子程序嵌套時常用。2024/1/24MCS-51單片機原理與應用45 在主程序中,正對入口條件和出口條件要安排相應指令,提供相應的入口數(shù)據(jù)和處理子程序提供的出口數(shù)據(jù); 在需要保護現(xiàn)場的程序中,要正確地設置堆棧指針
為保證子程序的通用性,不宜采用立即數(shù),盡量采用符號地址或寄存器;盡量采用相對轉移指令,使指令執(zhí)行不受地址影響。調用子程序節(jié)省了存儲單元,但增加了運行時間。2024/1/24MCS-51單片機原理與應用46例5.9試用子程序方法重做例5.3。解:算法同前,BCD碼→ASCII碼編成一子程序BTOA,供調用。 操作功能:將A中低4位BCD碼轉換成ASCII,結果仍在A中。 入口條件:要轉換的BCD碼在A低4位。 出口條件:轉換后的ASCII在A中。匯編源程序如下:2024/1/24MCS-51單片機原理與應用475.4.2子程序設計舉例
ORG 0030HSTART:MOV30H,#56H;(30H)=56H,在30H存放兩位BCD碼 MOVA,30H
; SWAPA ;
ACALLBTOA;調用BTOA子程序 MOV31H,A;高4位ASCII存入31H XCH A,30H;
ACALLBTOA;調用BTOA子程序 MOV30H,A;低4位ASCII存入30H SJMP$BTOA:ANLA,#0FH;屏蔽A中高4位,A=05H ORL A,#30H;A中高4位加30H,A=35H RET END2024/1/24MCS-51單片機原理與應用48 例5.10試用子程序方法編程:求片內(nèi)RAM單元30H~3FH中存放的8位無符數(shù)之和,并按“高對低,低對高”方式存人40H和41H單元中,不考慮高8位進位。 解:把求多字節(jié)8位無符數(shù)之和編寫為名為NBAD子程序,對NBAD子程序說明如下:
操作功能:求片內(nèi)RAM區(qū)中存放的N個8位無符數(shù)之和入口條件:長度N在R2中,參與運算單元的首址在R0中出口條件:運算結果單元的首址在R1中。2024/1/24MCS-51單片機原理與應用49 主程序只對出、入口條件進行處理,完整的匯編源程序如下:
ORG0030HSTART:MOVR0,#30H ;R0指向30H,源首址
MOVR1,#40H ;R1指向40H,目首址,存放和高8位
MOVR2,#10H ;長度,R2←10H
ACALLNBAD ;調用多字節(jié)加法子程序NBAD SJMP$ NBAD:MOV@R1,#00H ;和高8位單元清零
INC R1 ;指向和低8位單元
MOV@R1,#00H ;和低8位單元清零LOOP: MOVA,@R0 ;取數(shù)
ADD A,@R1 ;求和
MOV@R1,A ;存和低8位2024/1/24MCS-51單片機原理與應用50 DECR1
CLR A
ADDC A,@R1;求和高8位 INCR1
INCR0
DJNZR2,LOOP
RET END2024/1/24MCS-51單片機原理與應用51試編程,將多位十六進制數(shù)轉換成ASCII碼。解:算法:查表法。采用循環(huán)程序來處理多字節(jié)代碼轉換。操作功能:將R0指向的片內(nèi)RAM多個字節(jié)單元中的十六進制數(shù)轉換成ASCII碼,結果依次存放在R1指向的片內(nèi)RAM單元中。入口條件:R0指向要轉換單元首址,要轉換的字節(jié)數(shù)在R2中出口條件:轉換后的ASCII依次存放在R1指向的片內(nèi)RAM單元2024/1/24MCS-51單片機原理與應用52常用子程序應用舉例
代碼轉換與查表程序
HTOAS:MOVA,@R0 ANLA,#0FH
ADDA,#0FH
MOVCA,@A+PC
MOV @R1,A
INC R1
MOV A,@R0
SWAP A2024/1/24MCS-51單片機原理與應用53ANL A,#0FH
ADD A,#06H;偏移量:查表指令距ASCTB表首址為6個字節(jié)MOVCA,@A+PC;查表,將高4位數(shù)轉換成相應的ASCII碼MOV @R1,AINC R0 INC R1 DJNZ R2,HTASC
RET ASCTB:DB30H,31H,32H,33H,34H,35H DB36H,37H,38H,39H,41H,42H DB43H,44H,45H,46H2024/1/24MCS-51單片機原理與應用54
例5.13試編程,將(R2R3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年游泳救生員資格發(fā)展的試題及答案
- 種子繁育員需掌握的實操技能試題及答案
- 2024屆河北省唐山市高三上學期摸底演練語文試題及答案
- 完整記錄2024年農(nóng)業(yè)植保員資格考試試題與答案
- 農(nóng)作物栽培技術攻略試題及答案
- 2024游泳救生員考試面試環(huán)節(jié)的試題及答案
- 2024游泳救生員考試的創(chuàng)新試題及答案
- 模具設計師資格考試新規(guī)解讀試題及答案
- 模具設計中的決策過程與優(yōu)化策略試題及答案
- 2025年中國加筋巖棉夾芯彩鋼板市場調查研究報告
- 市政排水移交協(xié)議書
- 廣西壯族自治區(qū)馬山縣實驗高中-雙休背后:從“要我學”到“我要學”的轉變-高三家長會【課件】
- GB/Z 27021.13-2025合格評定管理體系審核認證機構要求第13部分:合規(guī)管理體系審核與認證能力要求
- 湖南省長沙市四大名校2024-2025學年高三2月月考語文試題(原卷版+解析版)
- 中職世界歷史試題及答案
- 《政府采購管理研究的國內(nèi)外文獻綜述》5500字
- 糖尿病護理查房提出問題
- T-ZMDS 10019-2024 經(jīng)顱電刺激儀基本技術規(guī)范
- 微專題2 質量守恒定律的應用(解析版)
- 人教版六年級下冊科學全冊教案
- 2024福建中閩能源股份有限公司招聘12人筆試參考題庫附帶答案詳解
評論
0/150
提交評論