單片機(jī)課后習(xí)題考試重點答案_第1頁
單片機(jī)課后習(xí)題考試重點答案_第2頁
單片機(jī)課后習(xí)題考試重點答案_第3頁
單片機(jī)課后習(xí)題考試重點答案_第4頁
單片機(jī)課后習(xí)題考試重點答案_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

…i、'廠-

一早

2.80C51單片機(jī)的存儲器的組織采用何種結(jié)構(gòu)?存儲器地址空間如何劃分?各地

址空間的地址范圍利容量如何?在使用上有何特點?

答:

采用哈佛結(jié)構(gòu),在物理上設(shè)計成程序存儲器和數(shù)據(jù)存儲器兩個獨立的空間;80C51

基本型單片機(jī)片內(nèi)程序存儲器為4KB,地址范圍是000011-OFFFH,用于存放程序或常數(shù);

片內(nèi)數(shù)據(jù)存儲器為128字節(jié)RAM,地址范圍是00H-7FH,用于存放運(yùn)算的中間結(jié)果、暫

存數(shù)據(jù)和數(shù)據(jù)緩沖;另外在80H-FFH還配有21個SFR?

4.如果80c51單片機(jī)晶振頻率分別為6MHz、11.0592MHz、12MHz時,機(jī)器周

期分別為多少?

答:

機(jī)器周期分別為2us,1.085us,1PS?

6.80c51單片機(jī)的片內(nèi)、片外存儲器如何選擇?

答:

80C51的女引腳為訪問片內(nèi)、片外程序存儲器的選擇端。訪問片內(nèi)、片外數(shù)據(jù)存

儲器需要采用不同的指令加以區(qū)分。

8.80C51單片機(jī)的當(dāng)前工作寄存器組如何選擇?

答:

當(dāng)前工作寄存器組的選擇由特殊功能寄存器中的程序狀態(tài)字寄存器PSW的RS1、

RS0來決定。

—-

二早

10.完成某種操作可以采用幾條指令構(gòu)成的指令序列實現(xiàn),試寫出完成以下每種操

作的指令序列。

(1)將R0的內(nèi)容傳送到R1;

(2)內(nèi)部RAM單元60H的內(nèi)容傳送到寄存器R2;

(3)外部RAM單元1000H的內(nèi)容傳送到內(nèi)部RAM單元60H;

(4)外部RAM單元1000H的內(nèi)容傳送到寄存器R2;

(5)外部RAM單元1000H的內(nèi)容傳送到外部RAM單元2000H。

答:

(1)MOVA,R0

MOVRI,A

(2)MOVR2,60H

(3)MOVDPTR,#1000H

MOVXA,@DPTR

MOV60H,A

(4)MOVDPTR,#1000H

MOVXA,@DPTR

MOVR2,A

(5)MOVDPTR,#1000H

MOVXA,@DPTR

MOVDPTR,#2000H

MOVX@DPTR,A

11.若(RI)=30H,(A)=40H,(30H)=60H,(40H)=08H。試分析執(zhí)行下列

程序段后上述各單元內(nèi)容的變化。

MOVA,@R1

MOV@R1,40H

MOV40H,A

MOVRI,#7FH

答:

(RI)=7FH

(A)=60H

(30H)4)8H

(40H)=60H

12.若(A)=E8H,(RO)=40H,(RI)=20H,(R4)=3AH,(40H)=2CH,

⑵H)=0FH,試寫出下列各指令獨立執(zhí)行后有關(guān)寄存器和存儲單元的內(nèi)容?若該指令

影響標(biāo)志位,試指出CY、AC>和OV的值。

(1)MOVA,@R0

(2)ANL40H,#0FH

(3)ADDA,R4

(4)SWAPA

(5)DEC@R1

(6)XCHDA,@R1

答:

(1)(A)=2CH

(2)(40H)=OCH

(3)(A)=22H,(CY)=1,(AC)=1,(OV)=0

(4)(A)=8EH

(5)(20H)=0EH,P=1

(6)(A)=EFH,(20)=08H

13.若(50H)=40H,試寫出執(zhí)行以下程序段后累加器A、寄存器R0及內(nèi)部RAM

的40H、41H、42H單元中的內(nèi)容各為多少?

MOVA,50H

MOVRO,A

MOVA,#00H

MOV@R0,A

MOVA,#3BH

MOV41H,A

MOV42H,41H

答:

(A)=3BH,(RO)=40H,(40H)=00H,(41H)=3BH,(42H)=3BH。

15.試編寫程序,將內(nèi)部RAM的20H、21H、22H三個連續(xù)單元的內(nèi)容依次存入

2FH、2EH和2DH單元。

答:

MOV2FH,20H

MOV2EH,21H

MOV2DH,22H

16.試編寫程序,完成兩個16位數(shù)的減法:7F4DH—2B4EH,結(jié)果存入內(nèi)部RAM

的30H和31H單元,30H單元存差的高8位,31H單元存差的低8位。

答,

CLRCY

MOV30H,#7FH

MOV31H,#4DH

MOVRO,#31H

MOVA,@R0

SUBBA,#4E

MOV@R0,A;保存低字節(jié)相減結(jié)果

DECRO

MOVA,@R0

SUBBA,#2BH

MOV@R0,A;保存高字節(jié)相減結(jié)果

17.試編寫程序,將R1中的低4位數(shù)與R2中的高4位數(shù)合并成一個8位數(shù),并將

其存放在R1中。

答:

MOVA,R1;

ANLA,#0FH;

MOVRI,A

MOVA,R2

ANLA,#0F0H

ORLA,RI

MOVRI,A

18.試編寫程序,將內(nèi)部RAM的20H、21H單元的兩個無符號數(shù)相乘,結(jié)果存放

在R2、R3中,R2中存放高8位,R3中存放低8位。

答:

MOVA,20H

MOVB,21H

MULAB

MOVR3,A

MOVR2,B

四章

7.編寫程序,把外部RAM中1000H?101FH的內(nèi)容傳送到內(nèi)部RAM的30H?4FH

中。

答:

ORG0000H

MOVDPTR,#1000H

MOVRO,#30H

MOVR7,#32

LOOP:MOVXA,@DPTR

MOV@R0,A

INCRO

INCDPTR

DJNZR7,LOOP

RET

8.編寫程序,實現(xiàn)雙字節(jié)無符號數(shù)加法運(yùn)算,要求(R0R1)+(R6R7)T(60H61H)。

答:

ORG0000H

MOVA,R1

ADDA,R7

MOV61H,A

MOVA,RO

ADDCA,R6

MOV60H,A

SJMP$

END

9.若80c51的晶振頻率為6MHz,試計算延時子程序的延時時間。

DELAY:M0VR7,#0F6H

LP:M0VR6,#OFAH

DJNZR6,$

DJNZR7,LP

RET

答:延時時間:2|is*{[l+((1+2*250+2)*246)+2]+2}=0.247486秒(含調(diào)用指令2

個機(jī)器周期)

10.在內(nèi)部RAM的30H~37H單元存有一組單字節(jié)無符號數(shù)。要求找出最大數(shù)存

入BIG單元。試編寫程序?qū)崿F(xiàn)。

答:

ORG0000H

BIGDATA2FH

ONEDATA2AH

TWODATA2BH

START:MOVR7,#7;比較次數(shù)

MOVRO,#30H

LOOP:MOVA,@R0

MOVONE,A

INCRO

MOVTWO,@R0

CLRC

SUBBA,0R0

JCNEXT;ONE小,TWO大繼續(xù)比下一對數(shù)

MOV@R0,ONE;ONE大放后面(交換)

DECRO

MOV@R0,TWO;TWO小放前面

INCRO*

NEXT:DJNZR7,LOOP

MOVBIG,37H

SJMP$

END

11.編寫程序,把累加器A中的二進(jìn)制數(shù)變換成3位BCD碼,并將百、十、個位

數(shù)分別存放在內(nèi)部RAM的50H、5IH、52H中。

答:單字節(jié)二進(jìn)制數(shù)轉(zhuǎn)換為壓縮的BCD碼僅需要2個字節(jié);在將壓縮的BCD碼拆

分存于3個單元。

org0

MOV52H,#0

MOV51H,#0

MOV50H,#0

MOVA,#OFDh

LCALLDCDTH

SJMP$

DCDTH:MOVR7,#8

MOVRO,A;暫存于RO

LOOP:CLRC

MOVA,RO

RLCA

MOVRO,A

MOV

MOVA,@R1

ADDCA,@R1;

DAA

MOV@R1,A

DECRI

MOVA,@R1

ADDCA,0R1

DAA

MOV@R1,A

DJNZR7,LOOP

INCRI;50H已是結(jié)果,RI指向51H,51H單元需拆分

MOVA,#00H

XCHDA,@R1

MOV52H,A

MOVA,@R1

SWAPA

MOV@R1,A

RET

END

12.編寫子程序,WRI中的2個十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼后存放在R3和R4中。

答:

ORG0

MOVR1,#5BH

MOVA,RI

ANLA,#OFOH

SWAPA

ACALLASCII

MOVR3,A

MOVA,RI

ANLA,#OFH

ACALLASCII

MOVR4,A

SJMP$

ASCII:PUSHACC

CLRC

SUBBA,#OAH

POPACC

JC1LOOP

ADDA,#0711

LOOP:ADDA,#30H

RET

END

13.編寫程序,求內(nèi)部RAM中50H?59H十個單元內(nèi)容的平均值,并存放在5AH

單元。

答:

ORG0000H

MOVR7,#10

MOVRO,#50H

MOVB,#10

CLRC

CLRA

LOOP:ADDCA,@RO

INCRO

DJNZR7,LOOP

DIVAB

MOV5AH,A

SJMP$

END

14.如圖4.10所示,編制程序?qū)崿F(xiàn):上電后顯示“P”,有鍵按下時顯示相應(yīng)的鍵

號“0”?“7”。

答:

實現(xiàn)程序如下:

TEMPEQU3011

ORG0000H

JMPSTART

ORG0100H

START:MOVSP,#5FH

MOVPO,#8CH;正序顯示"P"

MOVP3,#OFFH;輸入方式

CLRCY

NOKEY:MOVA,P3

CPLA

JZNOKEY;無鍵按下

MOVTEMP,P3;有鍵按下

CALLDlOms

MOVA,P3

CJNEA,TEMP,NOKEY;去抖動

MOVR2,#0;鍵號計數(shù)器復(fù)位

MOVA,TEMP

LP:RRCA

JNCDONE

INCR2

SJMPLP

DONE:MOVA,R2

MOVDPTR,#CODE_PO

MOVCA,?A+DPTR

MOVPO,A

JMPNOKEY

D10ms:M0VR5,#10;10MS

Dlms:M0VR4,#249

DL:NOP

NOP

DJNZR4,DL

DJNZR5,Dims

RET

CODEPO:

DBOCOH,0F9H,0A4H,OBOH,99H,92H,82H,0F8H

DB80H,90H,88H,83H,0C6H,OA1H,86H,8EH

END

五章

1.80C51有兒個中斷源?各中斷標(biāo)志是如何產(chǎn)生的?又是如何復(fù)位的?CPU響應(yīng)

各中斷時,其中斷入口地址是多少?

答:5個中斷源,分別為外中斷而5和而1、TO和T1溢出中斷、串口中斷。

電平方式觸發(fā)的外中斷標(biāo)志與引腳信號一致;邊沿方式觸發(fā)的外中斷響應(yīng)中斷后

由硬件自動復(fù)位。

TO和Tl,CPU響應(yīng)中斷時,由硬件自動復(fù)位。

RI和TL由硬件置位。必須由軟件復(fù)位。

另外,所有能產(chǎn)生中斷的標(biāo)志位均可由軟件置位或復(fù)位。

各中斷入口地址:INT0-0003H,TO—000BH,INTI—0013H,Tl—001BH,RI

和TI—0023H,

3.外部中斷源有電平觸發(fā)和邊沿觸發(fā)兩種觸發(fā)方式,這兩種觸發(fā)方式所產(chǎn)生的中

斷過程有何不同?怎樣設(shè)定?

答:

當(dāng)IT0=0時,而為電平觸發(fā)方式。電平觸發(fā)方式時,CPU在每個機(jī)器周期的S5P2

采樣而所引腳電平,當(dāng)采樣到低電平時,置正0=1向CPU請求中斷;采樣到高電平

時,將IE0清0。在電平觸發(fā)方式下,CPU響應(yīng)中斷時,不能自動清除IE0標(biāo)志。

電平觸發(fā)方式時,外部中斷源的有效低電平必須保持到請求獲得響應(yīng)時為止,不然

就會漏掉;在中斷服務(wù)結(jié)束之前,中斷源的有效的低電平必須撤除,否則中斷返回之后

將再次產(chǎn)生中斷。該方式適合于外部中斷輸入為低電平,且在中斷服務(wù)程序中能清除外

部中斷請求源的情況。

當(dāng)rro=i時,而5為邊沿觸發(fā)方式。邊沿觸發(fā)方式時,CPU在每個機(jī)器周期的s5P2

采樣而5引腳電平,如果在連續(xù)的兩個機(jī)器周期檢測到而引腳由高電平變?yōu)榈碗娖?

即第一個周期采樣到而^=1,第二個周期采樣到布而=0,則置正0=1,產(chǎn)生中斷請求。

在邊沿觸發(fā)方式下,CPU響應(yīng)中斷時,能由硬件自動清除IE0標(biāo)志。

邊沿觸發(fā)方式時,在相繼兩次采樣中,先采樣到外部中斷輸入為高電平,下一個

周期采樣到為低電平,則在IE0或IEI中將鎖存一個邏輯1。若CPU暫時不能響應(yīng),中

斷申請標(biāo)志也不會丟失,直到CPU響應(yīng)此中斷時才清0。另外,為了保證下降沿能夠被

可靠地采樣到,而和茴引腳上的負(fù)脈沖寬度至少要保持一個機(jī)器周期(若晶振頻

率為12MHz,為1微秒)。邊沿觸發(fā)方式適合于以負(fù)脈沖形式輸入的外部中斷請求。

8.利用定時/計數(shù)器T0從P1.0輸出周期為1s,脈寬為20ms的正脈沖信號,晶振

頻率為12MHzo試設(shè)計程序。

答:

采用定時20ms,然后再計數(shù)1、49次的方法實現(xiàn)。

a、TO工作在定時方式1時,控制字TMOD配置:

M1MO=O1,GATE=O,C/f=O,可取方式控制字為01H;

b、計算計數(shù)初值X:

晶振為12MHz,所以機(jī)器周期Tcy為1睽。

N=t/Tcy=20x10-3/1x10-6=20000

X=2I6-N=65536-200()0=45536=4E20H

即應(yīng)將4EH送入TH1中,20H送入TL1中。

c、實現(xiàn)程序如下:

ORG0000H

AJMPMAIN;跳轉(zhuǎn)到主程序

ORG0030H

MAIN:MOVTMOD,#01H;設(shè)口工作于方式2

MOVTHO,#4EH;裝入循環(huán)計數(shù)初值

MOVTLO,#2011;首次計數(shù)值

LPO:SETBP1.0

ACALLNTO

CLRP1.0

MOVR7,#49;計數(shù)49次

LP1:ACALLNTO

DJNZR7,LP1

AJMPLPO

NTO:MOVTHO,#4EH

MOVTLO,#20H

SETBTRO

JNBTFO,$

CLRTRO

CLRTFO

RET

END

9.要求從P1.1引腳輸出1000Hz方波,晶振頻率為12MHz。試設(shè)計程序。

答:采用T0實現(xiàn)

a、TO工作在定時方式1時,控制字TMOD配置:

M1MO=O1,GATE=O,C/f=O,可取方式控制字為01H;

b、計算計數(shù)初值X:

晶振為12MHz,所以機(jī)器周期Tcy為1即。1/1000=1x10^

N=t/Tcy=0.5X107/1X10~6=500

X=216-N=65536-500=65036=FE0CH

即應(yīng)將FEH送入THO中,OCH送入TLO中。

c、實現(xiàn)程序如下:

ORG0000H

AJMPMAIN;跳轉(zhuǎn)到主程序

ORGOOOBH;TO的中斷入口地址

LJMPDVTO

ORG0030H

MAIN:MOVTMOD,#01H;設(shè)丁0工作于方式2

MOVTHO,#OFEH;裝入循環(huán)計數(shù)初值

MOVTLO,#OCH;首次計數(shù)值

SETBETO;TO開中斷

SETBEA;CPU開中斷

SETBTRO;啟動TO

SJMP$;等待中斷

DVTO:CPLPl.1

MOVT1I0,ttOFEll

MOVTLO,#OCH

SETBTRO

RETI

END

10.試用定時/計數(shù)器T1對外部事件計數(shù)。要求每計數(shù)100,就將T1改成定時方

式,控制P1.7輸出一個脈寬為10ms的正脈沖,然后又轉(zhuǎn)為計數(shù)方式,如此反復(fù)循環(huán)。

設(shè)晶振頻率為12MHz。

答:

a、T1工作在計數(shù)方式2時,控制字TMOD配置:

M1MO=1O,GATE=O,C/T=1.可取方式控制字為60H;

T1工作在定時方式1時,控制字TMOD配置:

M1MO=O1,GATE=O,C/〒=0,可取方式控制字為10H;

b、計算初值X:

定時10ms時:

晶振為12MHz,所以機(jī)器周期Tcy為1即。

N=t/Tcy=10xl0-71xl0-6=10000

X=2I6-N=65536-10000=55536=D8F0H

即應(yīng)將D81I送入TH1中,F0I1送入TL1中。

計數(shù)100時:

N=100

X=28-N=256-100=156=9CH

C、實現(xiàn)程序如下:

ORG0000H

AJMPMAIN;跳轉(zhuǎn)到主程序

ORG001BH;T1的中斷入口地址

LJMPDVT1

ORG0030H

MAIN:MOVTMOD,#6011;T1工作于計數(shù)方式2

MOVTH1,#9CH;裝入計數(shù)初值

MOVTL1,#9CH?

CLRPl.7

SETBET1;T1開中斷

SETBEA;CPU開中斷

SETBTRI;啟動T1

SJMP$;等待中斷

DVT1:SETBPl.7

CLRET1

CLRTRI

MOVTMOD,#10H;T1工作于定時方式1

MOVTH1,#OD8H;裝初值

MOVTL1,#OFOH

SETBTRI

JNBTF1,$;查詢等待10ms

CLRTF1

CLRTRI

CLRPl.7

MOVTMOD,#60H;T1工作于計數(shù)方式2

MOVTH1,#9CH;裝初值

MOVTL1,#9CH

SETBET1;T1開中斷

SETBTRI;啟動T1

RETI

END

11.利用定時/計數(shù)器TO產(chǎn)生定時時鐘,由P1口控制8個指示燈。編一個程序,使8

個指示燈依次閃動,閃動頻率為1次/秒(即,亮1秒后熄滅并點亮下一個,-一)。

答:采用定時20ms,計數(shù)50次實現(xiàn)1秒定時。編制I秒延時子程序,由主程序

調(diào)用。

a、TO工作在定時方式1時,控制字TMOD配置:

M1MO=O1,GATE=O,C/〒=0,可取方式控制字為01H;

b、計算計數(shù)初值X:

晶振為12MHz,所以機(jī)器周期Tcy為1即。

N=t/Tcy=20X10-3/1X10-6=20000

X=2'6-N=65536-20000=45536=4E20H

即應(yīng)將4EH送入TH1中,20H送入TL1中。

c、實現(xiàn)程序如下:

ORG000011

AJMPMAIN;跳轉(zhuǎn)到主程序

ORG0030H

MAIN:CLRCY

MOVA,#01H

LPO:MOVPl,A

CALLDISEC

RLA

AJMPLPO

DISEC:MOVR7,#50;計數(shù)50次

MOVTMOD,#0111

DL:MOVTHO,#4EH

MOVTLO,#20H

SETBTRO

JNBTFO,$

CLRTRO

CLRTFO

DJNZR7,DL

RET

END

八早

5.利用單片機(jī)串行口擴(kuò)展并行輸入接口電路如圖所示。試編寫程序完成將

SW1-SW8的狀態(tài)反應(yīng)在P0口所接的LED上(如SW1閉合時L7應(yīng)點亮)。

答:電路圖如下:

+5V9

10Kx8

PO.

PO.

PO.

PO.

PO.

HPO,

G9PO,

F9PO.

ESI

DWL71Kx8

CZ

B

ARXD

TXD

I5

L89S51

12345678

2()

SW1-SW8

ORG0000H

MOVSCON,#1OH

LOOP:CLRPl.7

NOP

NOP

NOP

SETBPl.7

CLRRI

JNBRI,$

MOVA,SUBF

SJMPLOOP

END

6.利用單片機(jī)串行口擴(kuò)展并行輸出接口電路如圖所示。試編寫程序完成將

SW1~SW8的狀態(tài)反應(yīng)在移位寄存器74LS164所接的LED上(如SW1閉合時L0應(yīng)點

亮。

答:電路圖如下:

+5V

0

pl1

pl2

pl

pl3

pl4

pl5

pl6

pl7

QA

QB

QC

-QD

RXD9

IQE

TXDSQF

1G(

W6KI—=i-

QH+0~~(=^—

89S51——W——(=J-------

20

SWI~SW8

ORGOOOOH

MOVSCON,#OOH

MOVPl,#OFFH

LOOP:MOVA,Pl

MOVSUBF,A

JNBTI,$

CLRTI

SJMPLOOP

END

七章

1.以80c31為主機(jī),用2片27c256擴(kuò)展64KEPROM,試畫出接口電路。

答:

P2.7------------

P2.0-P2.6

G

ALEOE

pQ7

D7:g:

P0

:3:

80C31M

DOQOA0-A7A8-A14A0-A7A8-AI4

EAD<>-D7QECED0-D7QECE

PSEN

27C25627c256

2.以80c31為主機(jī),用1片27c512擴(kuò)展64KEPROM,試畫出接口電路。

答:

P2.0-P2.7A8-A15

G

ALE

溫馨提示

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

評論

0/150

提交評論