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

下載本文檔

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

文檔簡(jiǎn)介

練習(xí)題3答案

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

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

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

機(jī)器語(yǔ)言即二進(jìn)制代碼語(yǔ)言,是計(jì)算機(jī)可以直接識(shí)別。

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

2.簡(jiǎn)述AT89s51單片機(jī)的指令格式

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

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

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

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

3.簡(jiǎn)述AT89s51的尋址方式和所能涉及的尋址空間

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

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

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

表3-2尋址方式及相應(yīng)的尋址存儲(chǔ)器范圍

尋址方式尋址存儲(chǔ)器范圍

立即尋址程序存儲(chǔ)器ROM

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

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

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

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

相對(duì)尋址程序存儲(chǔ)器ROM(相對(duì)尋址指令的下一指令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)變址尋址:只對(duì)程序存放器進(jìn)展尋址;(6)相對(duì)尋址:以

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

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

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

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

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

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

面各是什么指令,說明源操作數(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外只能進(jìn)展直接尋址。

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

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

制運(yùn)算驗(yàn)證)及標(biāo)志位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.對(duì)下面一段程序加上機(jī)器碼和注釋,并說明程序運(yùn)行后存放器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

答:運(yùn)行后存放器(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)容為地址的存儲(chǔ)器中;

(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進(jìn)展邏輯與、或、異或操作;

(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í)行過程中堆棧的變化

設(shè)堆棧初值為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指令時(shí),首先

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

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

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

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

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

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

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

MOVA,21H

CLRC

RRCA

MOV21H,A

MOVA,20H

RRCA

MOV20H,A

(2)16位二進(jìn)制數(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個(gè)位變量X,Y,Z,請(qǐng)編寫程序?qū)崿F(xiàn)丫=X+YZ的邏輯關(guān)系式。

XBIT30H

YBIT31H

ZBIT32H

MOVC,Y

ANLC,Z

MOV20H,C

MOVC,X

ORLC,20H

MOVY,C

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

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

ORGO

STAR:CLRC

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

MOV21H,#OF3H;設(shè)高字節(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)計(jì)數(shù)據(jù)區(qū)K度的程序,設(shè)數(shù)據(jù)區(qū)從片內(nèi)RAM30H單元開場(chǎng),該數(shù)據(jù)區(qū)以0完

畢,統(tǒng)計(jì)結(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.假設(shè)晶振頻率位6MHZ,試計(jì)算下面延時(shí)子程序的延時(shí)時(shí)間

DELAY:MOVR7,#0F6H;1個(gè)機(jī)器周期

LP:MOVR6,#0FAH;1個(gè)機(jī)器周期

DJNZR6,$;2個(gè)機(jī)器周期

DJNZR7,LP;2個(gè)機(jī)器周期

RET;2個(gè)機(jī)器周期

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

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

設(shè)晶振頻率為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)用子程序的方法延時(shí)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è)立方數(shù)超過一個(gè)字節(jié),在兩個(gè)字節(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.試用子程序求多項(xiàng)式:Y=(A+B)2+(B+C)2(要求:兩數(shù)之和不能超過16)

XEQU30H:X代表A

YEQU31H;Y代表B

ZEQU32H;Z代表C

FEQU33H:F中存放計(jì)算結(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,試寫出程序的功能和運(yùn)行結(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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論