單片機原理和應用練習試題3答案_第1頁
單片機原理和應用練習試題3答案_第2頁
單片機原理和應用練習試題3答案_第3頁
單片機原理和應用練習試題3答案_第4頁
單片機原理和應用練習試題3答案_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

練習題3答案

i.簡述以下根本概念:指令,指令系統(tǒng),機器語言,匯編語言。

答:指令是單片機CPU執(zhí)行某種操作的命令。

指令系統(tǒng)是一臺計算機所能執(zhí)行的指令集合。

機器語言即二進制代碼語言,是計算機可以直接識別。

匯編語言是用助記符、字符串和數(shù)字等來表示指令的程序語。

2.簡述AT89s51單片機的指令格式

答:該單片機的指令由兩局部組成,即操作碼和操作數(shù)。操作碼用來規(guī)定指令進展什么操作,

而操作數(shù)那么是指令操作的對象,操作數(shù)可能是一個具體的數(shù)據(jù),也可能是指出到哪里取得

數(shù)據(jù)的地址或符號。指令格式一般為:

[標號:]操作碼[操作數(shù)口[,操作數(shù)2][,操作數(shù)3][;注釋]

3.簡述AT89s51的尋址方式和所能涉及的尋址空間

答:共有7種尋址方式,見表3?2。

分別是:(1)存放器尋址:尋址范圍為通用存放器組,共4組32個,但只能使用當前存放器

組,因此使用前需要通過對PSW種的RSI、RSO位的狀態(tài)進展設置;(2)直接尋址:尋址范

表3-2尋址方式及相應的尋址存儲器范圍

尋址方式尋址存儲器范圍

立即尋址程序存儲器ROM

直接尋址片內(nèi)RAM低128B,特殊功能存放器

存放器尋址工作存放器R0~R7,A,C,DPTR,AB

存放器間接尋址片內(nèi)RAM低128B,片外RAM

變址尋址程序存儲器ROM(@A+DPTR,@A+PC)

相對尋址程序存儲器ROM(相對尋址指令的下一指令PC值加一128?+127)

位尋址片內(nèi)RAM的2DH?2FH字節(jié)地址中所有的位,可位尋址的特殊功能存放器

圍為內(nèi)部RAM,包括低128位用戶RAM區(qū)和高128位專用存放器;(3)存放器間接尋址:

尋址范圍為內(nèi)部RAM低128位,外部RAM64KB(低256單元可以使用DPTR和RO、R1

作為間接尋址存放器,而其他單元只能用DPTR作為間接尋址存放器);(4)立即尋址:直接

給出立即數(shù),不涉及尋址空間;(5)變址尋址:只對程序存放器進展尋址;(6)相對尋址:以

PC的內(nèi)容為基值,加上指令機器代碼中'相對地址'形成新的PC值轉(zhuǎn)移;(7)位尋址:尋

址空間包括內(nèi)部RAM位尋址區(qū)(20?2FH)和專用存放器的可尋址位。

4.要訪問片外程序存儲器和片外數(shù)據(jù)存儲器,應采用哪些尋址方式

答:訪問片外程序存儲器采用變址尋址方式,片外數(shù)據(jù)存儲器采用存放器間接尋址方式,且

用DPTR可以訪問64KB,而用R0或者R1只可訪問低256字節(jié)。

5.在AT89s51片內(nèi)RAM中,(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90Ho請分析下

面各是什么指令,說明源操作數(shù)的尋址方式及按順序執(zhí)行每條指令后的結(jié)果。

答:

指令指令說明源操作數(shù)尋址方式結(jié)果

MOVA,40H將內(nèi)部RAM中40H內(nèi)容直接尋址(A)=48H

傳送到累加器A中

(A)—(40H)

MOVRO,A再將A中內(nèi)容傳送給R0存放器尋址(R0)=48H

(R0)—(A)

MOVPl,將立即數(shù)OFOH送到Pl立即數(shù)尋址(P1)=OFOH

#0F0H口,即Pl.4?Pl.7位1,其

余為0

(PI)-OFOH

MOV@R0,將30H中的內(nèi)容,傳放到直接尋址((R0))=(48H)=38H

30H以R0單元內(nèi)容為地址的

單元中

((R0))一(30H)

MOVDPTR,將立即數(shù)3848傳送給立即數(shù)尋址(DPTR)=3848H

#3848HDPTR數(shù)據(jù)指針

(dptr)-3848H

MOV40H,將內(nèi)部RAM中38H內(nèi)容直接尋址(40H)=40H

38H傳送到40H單元中

(40H)—(38H)

MOVRO,將30H中的內(nèi)容給R0存直接尋址(RO)=38H

30H放器

(RO)—(30H)

MOVPO,RO將R0的內(nèi)容傳送到P0存放器尋址(P0)=38H

(P0)一(R0)

MOVA,@R0將R0內(nèi)容為地址的該單存放器間接尋址(A)=40H

元內(nèi)容傳送給A

(A)一((R0))

MOVP2,PI將Pl的內(nèi)容傳送給P2直接尋址(P2)=0F0H

(P2)—(Pl)

6.指出以下指令的源栗作數(shù)的尋址方式

MOVA,65H直接尋址

MOVA,#65H立即數(shù)尋址

MOVA,@R0存放器間接尋址

MOVA,R2存放器尋址

MOVCA,@A+PC變址尋址

7.內(nèi)部RAM和特殊功能存放器各用什么尋址方式

答:內(nèi)部RAM有存放器尋址方式、直接尋址方式和間接尋址方式;

特殊功能存放器除A外只能進展直接尋址。

8.:(A)=5BH,(RI)=30H,(30H)=OCEH,(Pl)=71H,(PSW)=80H,(PC)=2000H,

(205CH)=46H,(SP)=30H,(B)=78H。分別求各條指令執(zhí)行后的結(jié)果(要求進展二進

制運算驗證)及標志位Cy、P的影響。

(1)MOVA,@R1(A)=0CEHP=1,C不變

(2)MOV40H,30H(40H)=0CEHP和C不變

⑶MOVPl,RI(Pl)=30HP和C不變

(4)MOVCA,@A+PC(A)=46HP=1,C不變

(5)PUSHB(31H)=78H,(SP)=31HP和C不變

(6)POPDPH(DPH)=0CEH,(SP)=29HP和C不變

(7)XCHDA,@R1(A)=05EH,(30H)=CBHP=1,C不變

(8)ADDA,30H(A)=29HP=1,C=1

(9),ADDCA,Pl(A)=CDHP=l,C=0

(10)SUBBA,Pl(A)=E9HP=1,C=1

(11)ANLP1,#OFH(Pl)=01HP和C不變

(12)CLRPSW.7C=0

(13)RLCA(A)=B7HP=0,c=o

(14)ORLC,90HC=1,P不變

9.對下面一段程序加上機器碼和注釋,并說明程序運行后存放器A、R0和內(nèi)部RAM50H、

51H、52H單元的內(nèi)容。

MOV50H,#50H755050;(50H)-50H

MOVA,50HE550;(A)-(50H)

MOVR0,AF8;(R0)-(A)

MOVA,#30H7430;(A)-30H

MOV@R0,AF6;((R0))-(A)

MOVA,#50H7450;(A)-50H

MOV51H,AF55I;(51H)-(A)

MOV52H,#00H755200;(52H)-00H

答:運行后存放器(A)二50H,(RO)二50H,(50H)二30H,⑸尸50H,(52H尸00H

10.區(qū)別以下各指令中20H的含義,在每條指令后加上注釋。

MOVA,#20H將20H立即數(shù)傳送給A

MOV45H,20H將內(nèi)部RAM中20H單元的內(nèi)容傳送到45H中

MOVC,20H.0將內(nèi)部RAM中20H單元內(nèi)容的第。位(最低位)傳送給C

MOVC,20H將內(nèi)部RAM中20H位地址內(nèi)容傳送給C

11.寫出完成以下功能的指令

(1)將立即數(shù)30H送到R1;

(2)將內(nèi)RAM30H中的數(shù)據(jù)送到內(nèi)RAM78H單元;

(3)將立即數(shù)30H送到以R0中內(nèi)容為地址的存儲器中;

(4)將R2中的內(nèi)容送到P1;

(5)將內(nèi)RAM60H單元的數(shù)據(jù)送到外RAM60H單元;

(6)將內(nèi)RAM60H單元的數(shù)據(jù)送到外RAM1060H單元;

(7)將ROMIOOOH單元的內(nèi)容送到內(nèi)RAM3OH單元;

(8)使ACC.7置位;

(9)使累加器的低4位清零;

(10)使P1.2與CY相與,結(jié)果送CY;

(II)立即數(shù)45H、93H進展邏輯與、或、異或操作;

(12)兩立即數(shù)求和:1C0H+45H,結(jié)果按上下8位存在30H、31H中。

答案:⑴MOVRI,#30H(2)MOV78H,30H

(3)M0V@R0,#3011(4)M0VPl,R2

(5)MOVA,60H;;

MOVP2,#0;

MOVR0,#60H;

MOVX@RO,A

(6)MOVA,60H;;

MOVDPTR,#1060;

MOVX@DPTR,A

(7)MOVA,#O()H

MOVDPTR,#1000H

MOVCA,@A+DPTR

MOV30H,A

(8)SETBACC.7

(9)ANLA,#0F()H

(10)ANLC,pl.2

(11)與:MOVA,#45H

ANLA,#59H

或:MOVA,#45H

ORLA,#59H

異或:PMOVA,#45H

XRI.A,#59H

(12)CLRC

MOVR2,#l

MOVA,#0C0H

ADDA,#45H

MOV31H,A

MOVA,R2

ADDCA,#0

MOV30H,A

12.寫出以下指令執(zhí)行過程中堆棧的變化

設堆棧初值為X:

MOVR6,#11H(SP)=x(堆棧不變)

MOVR7,#23H(SP)=x(堆棧不變)

ACALL200H(SP)=X+2

:(X+l)=第4條指令的首址PC低8位(X+2)=第4條指令的首址PC高8位

POP50H(SP)=X-1

POP51H(SP)=X-2

SJMP$

ORG200H

RET

答:執(zhí)行過程中,前面兩條為立即尋址指令,堆棧不變:執(zhí)行第三條ACALL指令時,首先

將程序存放器PC的當前值加2,接著先后將PC的低八位和高八位分別進棧,(SP)=(SP)+2;

然后再將PC內(nèi)容中的低11位用200H來替代,同時程序跳到第七條ORG200H中,接著

RET表示子程序返回,將原先壓入堆棧的PC值彈出,(SP)=(SP)-2;最后兩條POP指令執(zhí)

行后將SP所指地址中的內(nèi)容賦給50H,SP減1后再將SP所指地址中的內(nèi)容賦給51H,SP

內(nèi)容再減1給SP,最后程序完畢。

13.請寫出能實現(xiàn)以下功能的程序段:

(1)一個16位數(shù)據(jù),上下字節(jié)分別放在20H和21H中,試將該數(shù)乘以2

MOVA,21H

CLRC

RRCA

MOV21H,A

MOVA,20H

RRCA

MOV20H,A

(2)16位二進制數(shù)由高位到低位放在30H和31H單元,將其內(nèi)容加1;

MOVA,31H

ADDA,#01H

MOV31H,A

MOVA,30H

ADDCA,#00H

MOV30H,A

(3)將DPTR中的數(shù)據(jù)減5:

CLRC

MOVA,DPL

SUBBA,#O5H

MOVDPL,A

MOVA,DPH

SUBBA,#00H

MOVDPh,A

(4)有3個位變量X,Y,Z,請編寫程序?qū)崿F(xiàn)丫=X+YZ的邏輯關(guān)系式。

XBIT30H

YBIT31H

ZBIT32H

MOVC,Y

ANLC,Z

MOV20H,C

MOVC,X

ORLC,20H

MOVY,C

14.將一個按上下字節(jié)存放在21H、20H中的一個雙字節(jié)乘以2后,再按上下次序?qū)⒔Y(jié)果存

放到22H、21H、20H單元

ORGO

STAR:CLRC

MOV20H,#0E2H;設低字節(jié)的數(shù)據(jù)是E2H

MOV21H,#OF3H;設高字節(jié)的數(shù)據(jù)是F3H

MOVA,20H

MOVB,#2H

MULAB

MOV20H,A

MOV23H,B

MOVA,2IH

MOVB,#2H

MULAB

ADDCA,23H

MOV21H,A

MOV22H,B

SJMP$

END

15.試編程,將片外RAM1000H?1050H單元的內(nèi)容置為55H。

MOVP2,#10H

MOVRO,#00H

MOVA,#55H

MOVX@R0,A

MOVR0,#50H

LO:MOVX@R0,A

DJNZR0,L0

SJMP$

END

16.試編程統(tǒng)計數(shù)據(jù)區(qū)K度的程序,設數(shù)據(jù)區(qū)從片內(nèi)RAM30H單元開場,該數(shù)據(jù)區(qū)以0完

畢,統(tǒng)計結(jié)果放入2FH中。

MOVR0,#30H

LO:MOVA,@R0

JZLI

INCRI

INCRO

SJMPLO

LI:MOV2FH,R1

17.試編寫程序,將片外RAM20D0H?200FH數(shù)據(jù)區(qū)中的數(shù)據(jù)由大到小排列起來。

ORGO

LO:MOVP2,#20H

MOVR0,#00H

MOVR7,#0FH

CLRFO

LOOP:MOVXA,@RO

MOV31H,A

INCRO

MOVXA,@R0

CLRC

CJNEA,31H,L1

LI:JCL2

DECRO

MOVX@R0,A

MOVA,31H

INCRO

MOVX@RO,A

SETBFO

L2:DJNZR7,L00P

JBFO,LO

SJMP$

END

18.假設晶振頻率位6MHZ,試計算下面延時子程序的延時時間

DELAY:MOVR7,#0F6H;1個機器周期

LP:MOVR6,#0FAH;1個機器周期

DJNZR6,$;2個機器周期

DJNZR7,LP;2個機器周期

RET;2個機器周期

答:機器周期為2us,那么有:[1+(1+2X250+2)X246+21X2us=247482us

19.試分別編寫延時20ms和Is的程序

設晶振頻率為I2M

20ms:

ORGO

MOVR1,#102

LI;MOVRO,#48

L2:NOP

NOP

DJNZR0,L2

NOP

DJNZRI,LI

NOP

NOP

NOP

NOP

NOP

NOP

NOP

END

Is;------------------------------------------------

ORGO

MOVR2,#50

L0:MOVR1,#1(X)

LI:MOVRO,#49

L2:NOP

NOP

DJNZR0,L2

NOP

DJNZRI,LI

DJNZR2,L0

SJMP$

END

20.試編寫利用調(diào)用子程序的方法延時Imin的程序。

ORGOH

MOVR2,#60

AO:LCALLDLY

DJNZR2,A0

SJMP$

DLY:MOVR2,#50

LO:MOVRI,#100

LI:MOVRO,#49

L2:NOP

NOP

DJNZR0,L2

NOP

DJNZRI,LI

DJNZR2,L0

RET

END

21.用查表程序求0-6之間的整數(shù)的立方。整數(shù)存在A中,查表結(jié)果存入片內(nèi)RAM31H

中。

ORGO

MOVA,#DATA

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOV30H,A

SJMP$

TAB:DB0J,8,27,64,125,216

END

假設立方數(shù)超過一個字節(jié),在兩個字節(jié)以內(nèi),由以下程序?qū)崿F(xiàn)。

ORG0000H

MOVA,#5

RLA

MOVRO,A

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOV3IH.A;高位

MOVA,RO

INCA

MOVCA,@A+DPTR

MOV30H,A;低位

SJMP$

TAB:DW0,1,8,27,64,125,216

END

22.編寫程序,查找在內(nèi)部RAM的30H?50H單元中出現(xiàn)FFH的次數(shù),并將查找結(jié)果存入

51H單元。

MOVR1,#OOH

MOVR0,#30H

MOVR2,#2IH

LO:MOVA,@RO

CJNEA,#OFFH,L1

INCRI

LI:INCRO

DJNZR2,L0

MOV51H,R1

SJMP$

END

23.試用子程序求多項式:Y=(A+B)2+(B+C)2(要求:兩數(shù)之和不能超過16)

XEQU30H:X代表A

YEQU31H;Y代表B

ZEQU32H;Z代表C

FEQU33H:F中存放計算結(jié)果Y

MOVR1.X

MOVR2,丫

LCALLL0

MOVR3,A

MOVRI,Y

MOVR2,Z

LCALLLO

ADDA,R3

MOVF,A

Sjmp$

LO:MOVA,RI

ADDA,R2

MOVB,A

MULAB

RET

end

24.(60H)=33H,(61H)=43H,試寫出程序的功能和運行結(jié)果。

ORGOOOOh

SS:MOVR0,#61H

MOVR1,#70H

ACALLCRR

SWAPA

MOV@R1,A

DECRO

ACALLCRR

XCHDA,@R1

SJMP$

CRR:MOVA,@R0

CLRC

SUBBA,#30h

CJNEA,#OAH,NEQ

AJMPBIG

NEQ:JCCEN

BIG:SUBBA,#07H

CEN:RET

該程序的運行結(jié)果是:(60H)=33H,(61H)=43H,(70H)=C3H

25.內(nèi)部RAM的30H單元開場存放著一組無符號數(shù),其數(shù)目存放在21H單元中。試編寫程

序,求出這組無符號數(shù)中

溫馨提示

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

最新文檔

評論

0/150

提交評論