《單片機原理與應用項目式教程》自測題答案_第1頁
《單片機原理與應用項目式教程》自測題答案_第2頁
《單片機原理與應用項目式教程》自測題答案_第3頁
《單片機原理與應用項目式教程》自測題答案_第4頁
《單片機原理與應用項目式教程》自測題答案_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機原理與應用工程式教程自測題答案

鄒顯圣主編

目錄

緒論.............................................................................2

工程一...........................................................................4

工程二...........................................................................7

工程三...........................................................................9

工程四..........................................................................14

工程五..........................................................................17

工程六.........................................................................21

工程七.........................................................................24

工程八.........................................................................27

工程九..........................................................................30

緒論

1.單片機開展分為哪幾個階段?各階段的特點是什么?

答:

共分為四個階段,分別如下:

1)第一代單片機(1975?1976年)。這個時期生產的單片機其特點是制造

工藝落后,集成度低,而且采用雙片形式。

2)第二代單片機(1976?1978年)。其性能低、品種少、尋址范圍有限、

應用范圍也不廣。

3)第三代單片機(1979?1982年)。存儲容量大、尋址范圍廣,而且中斷

源、并行I/O口、定時器/計數器的個數都有了不同程度的增加,同時它還新集

成了全雙工的串行通信接口電路;在指令系統(tǒng)方面普遍增設了乘除法和比擬指令。

4)第四代單片機(1983年以后)。出現了工藝先進、集成度高、內部功能

更強和運算速度更快的16位單片一機,它允許用戶采用面向工業(yè)控制的專用語言,

如C語言等°

2m9系列單片機分為幾類?各類的主要技術特點是什么?都有哪些型

號?

答:

型號AT89C51AT89c52AT89C1051AT89C2051AT89S8252

檔次標準型低檔型高檔型

Flash/KB48128

片內RAM/KB12825664128256

I/O1條)3232151532

定時器/個23123

中斷源/個68369

串行口/個11111

M加密/級33223

片內振蕩器有有有有有

E2PR0M/KB無無無無2

3.微型計算機中常用的數制有幾種卜?計算機內音R采用哪種數制?

答:二進制、八進制、十進制和十六進制。內部采用二進制

4.十六進制數能被計算機直接執(zhí)行嗎?為什么要用十六進制數?

答:不能。引入十六進制數是為了表示或者書寫上的方便,因為一位十六進

制數可以代表四位二進制數。

5.單片機的應用領域主要有哪些?

答:智能化產品、智能化接口、智能化測控系統(tǒng)、智能化儀表

6.將以下十進制數轉換為二進制數和十六進制數。

(1)125D(2)0.525D(3)121.678D(4)47.945D

答:

(1)111U01B.7DH

(2)0.1000011B.0.86H

(3)1111001.101011B>79.ACH

(4)101111.2F.FOH

7.將以下二進制數轉換為十進制數和十六進制數。

(1)10U0101B(2J0.101100100B

(3)0.1010B(4)U01.0101B

答:

(1)18ID、B5H

(2)0.695D、0.B2H

(3)0.625D、0.AH

(4)13.3125D、D.5H

8.將以下十六進制數轉換為二進制數和十進制數。

(1)ABH(2)28.07H(3)ABC.DH(4)0.35FH

10101011B、171D

(2)1O1OOO.00000111B^40.027D

(4)0.001101011111B.0.875D

9.在8位二進制計算機中,正、負數如何表示?

答:8位二進制的正數其最高位為“0〃;負數最高位為“1〃

10.寫出以下各十進制數的原碼、反碼和補碼。

(1)+28D(2)+69D(3)-125D(4)-54D

答:

(1)原碼:00011100B;反碼:00011100B;補碼:0001U00B

(2)原碼:01000101B;反碼:01000101B;補碼:01000101B

⑶原碼:11111101B;反碼:10000010B;補碼:10000011B

(4)原碼:10110110B;反碼:11001001B;補碼:11001010B

11.寫出以下各十進制數的BCD碼。

(1)34D(2)59D(3)1983D(4)270D

答:

(1)110100B

(2)010101001B

(4)100110000B

工程

1.AT89c51單片機的EA信號有何功能?

答:礪引腳用于決定CPU從哪個ROM中讀取程序,當正二0時,CPU只從

外部ROM中讀取程序;當a=1時,CPU先從內ROM中讀取程序,當地址超過OFFFH

時,繼續(xù)從外部ROM中讀取程序。

2.AT89c51單片機只用內部flash存儲器時,礪引腳應該如何處理?

答:詼應接在電源端上,即保持詼引腳為高電平。

3.AT89C51單片機的P3?P0口各有什么功能?

答:P3?P0均為8位并行I/O口,當進行外部擴展時,P3口兼作控制總線,

提供系統(tǒng)的各種控制信號;P2口用于提供最多高8位地址總線;P1口為純粹的

數據口;P0口分時復用,兼作低8位地址總線和數據復用端口。

4.簡述AT89C51單片機的存儲器組織結構和內部RAM的地址空間分配。

答:AT89c51單片機的存儲器組織結構采用哈弗結構;內部RAM地址空間分

配如下:00H?1FH為存放器區(qū);20H?2FH為位尋址區(qū);30H?7FH為用戶RAM區(qū),

即堆棧區(qū);80H?FFH為特殊功能存放器區(qū)。

5.內部RAM的低128單元劃分為哪三個主要局部?各局部的主要功能是什

么?

答:存放器區(qū)、位尋址區(qū)、用戶RAM區(qū);

各局部功能為:

存放器區(qū):用于存儲程序執(zhí)行過程中的存放器中的數據;

位尋址區(qū):即可以字節(jié)尋址,又可以位尋址,主要用于位尋址;

用戶RAM區(qū):用于存儲堆棧過程中的各項數據。

6.位地址7CH與字節(jié)地址7CH如何區(qū)別?位地址7CH具體在內部RAM中的

什么位置?

答:存儲容易不一樣,位地址只能存儲一位二進制數據,而字節(jié)地址可以存

儲八位二進制數據;位地址7CH位于字節(jié)地址2FH.4。

7.AT89C51單片機有哪些特殊功能存放器?這些特殊功能存放器分別在單

片機中哪些功能部件中?

答:見表2-3,主要包括ACC、B、PSW、P0等;見表2-3,分別位于累加器、

B存放器、中央處理器、0號并行I/O口等。

8.特殊功能存放器中哪些存放器可以位尋址?它們的字節(jié)地址是什么?

答:

存放器符號地址

*ACCEOH

*BFOH

*PSWDOH

JEA8H

」PB8H

*P080H

*P190H

*2AOH

“P3BOH

SCON98H

JCON88H

9.程序計數器PC的功能和特點是什么?

答:PC的功能是ROM中的程序指針,用于表示ROM中程序的存放位置;其

特點是:PC為十六位二進制,但其本身無地址,不能對其賦值,也不能讀取PC

值。

10.PC與DPTR各有哪些特點?有何異同?

答:PC為程序指針,DPTR為數據指針;相同為:均為十六位二進制,不同

點是PC不能賦值,而DPTR可以賦值。

11.AT89C51單片機是如何確定和改變當前工作存放器區(qū)的?

答:改變當前工作存放器區(qū)主要由PSW中的RS1和RSO決定,具體如下:

RSIRSO存放器組R0?R7地址

00組000H-07H

01組108H-0FH

10組210H?17H

11組318H?1FH

12.AT89C51單片機復位后,CPU使用了哪一區(qū)工作存放器?工作存放器R0?

R7對應的單元地址是什么?

答:AT89C51單片機復位后,CPU使用了0號區(qū)工作存放器,R0?R7為00H?

07Ho

13.程序狀態(tài)字存放器PSW的作用是什么?簡述各位的作用是什么?

答:程序狀態(tài)字PSN是一個8位存放器,用于存放程序運行的狀態(tài)信息;各

位的作用如下:

位序PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0

位標志CYACFoRSIRSOov/P

①CY:進位標志位。

②AC:輔助進位標志位。

③F0:用戶標志位。

④RS1和RSO:存放器組選擇位。用于設定通用存放器的組號。

⑤0V:溢出標志位。

⑥P:奇偶標志位。

14.在AT89c51單片機ROM空間中,0003H、000BH、0013H.001BH、0023H

有什么特殊用途?

答:分別為外部中斷0、定時中斷0、外部中斷1,定時中斷1和串行中斷

的入口地址。

15.AT89C51單片機中XTAL1和XTAL2的功能是什么?采用外部時鐘源的情

況下,如何處理這兩個引腳?

答:AT89C51單片機中XTAL1和XTAL2的功能是單片機的時鐘輸入和輸出引

腳;當采用外部時鐘時,XTAL1引腳接地,XTAL2接外部時鐘源。

16.什么是時鐘周期、機器周期和指令周期?

答:時鐘周期即石英晶體振蕩周期,等于l/foSe>機器周期為時鐘周期的12

倍,即1機器周期=12時鐘周期;指令周期為執(zhí)行一條單片機指令所需要的時間,

根據指令類型的不同,一指令周期可以等于1或2或4機器周期。

17.AT89C51單片機所使用的晶振頻率為6MHz,時鐘周期,機器周期為多

少?

答:時鐘周期為1微秒;機器周期為2微秒。

6

18.AT89c51單片機運行出錯或出現死循環(huán),如何擺脫困境?

答:對單片機應用系統(tǒng)進行復位操作。

19.AT89C51單片機復位后,PC、A、PSW、SP、P3?PO的狀態(tài)各是什么?

復位后內部RAM中的數據有何影響?

答:

(PC)=0000H

(A)=0011

(PSW)=00H

(SP)=07H

(PO)?(P3)=FFH

復位后內部RAM中的數據依然被保存,但某些特殊功能存放器中的數據可能

有所改變。

工程二

1.什么是計算機的指令和指令系統(tǒng)?

答:指令是用于指導計算機工作的命令;所有的計算機所能夠執(zhí)行指令的集

合稱為指令系統(tǒng)。

2.簡述AT89c51匯編指令格式。

答:[標號:]操作碼[操作數注釋]。

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

答:共有七種尋址方式,分別為:存放器尋址、立即尋?址、存放器間接尋址、

直接尋址、相對尋址、變址尋址和位尋址。分別對應的空間是:內部RAM、ROM、

內部RAM和外部RAM;內部RAM、ROM、ROM和內部RAM的位地址空間。

4.要訪問特殊功能存放器和片外數據存儲器,應采用哪些尋址方式?

答:對于特殊功能存放器的訪問只能采用直接尋址方式,對于片外數據存儲

器的訪問要采用存放器間接尋址方式。

5.編寫程序,把片外RAM從2000H開始存放的8個數傳送到片內30H開始

的單元中。

答:

MOVDPTR,#200011

MOVR0,#30H

MOVR2,#08H

LOOP:MOVXA,@DPTR

MOV@R0,A

INCDPTR

INCR0

DJNZR2,LOOP

SJMP$

6.以下程序段經匯編后,從1000H開始的各有關存儲單元的內容是什么?

ORG1000H

TABIEQU1234H

TAB2EQU3000H

DB“START"

DWTABI,TAB2,70H

答:如下表所示。

地址數據

1000H53H

1001H54H

1002H41H

1003H52H

1004H54H

1005H12H

1006H34H

1007H30H

1008H00H

1009H00H

1OOAH70H

7.查表指令是在什么空間上的尋址操作?

答:查表指令是在ROM空間上進行的尋址操作

工程三

1.指出以下程序每一條指令的執(zhí)行結果。

MOVA,#OFOH;答:(A)=FOH

CPLA;答:(A)=OFH

ANL30H,#00H;答:(30H)=00H

ORL30H,#BDH;答:(30H)=BDH

XRLA,#44H;答:(A)=4BH

2.指出以下程序每一條指令的執(zhí)行結果(假設CY=1)。

MOVA,#OAAH答:(A)=AAH

CPLA答:(A)=5511

RLCA答:(A)=ABH,C=0

RLA答:(A)=57H

CPLA答:(A)二A8H

RRCA答:(A)=54H,C=0

RRA答:(A)=2AH

3.假設(A)=7AH,分別執(zhí)行以下指令后,(A)的值是多少?

(1)ANLA,#OFFH;答:(A)=7AH

(2)ORLA,#OFFH;答:(A)=FFH

⑶ANLA,#0011;答:(A)=00H

(4)ORLA,#00H;答:(A)=7AH

(5)XRLA,#OFFH;答:(A)=85H

(6)XRLA,#00H;答:(A)=7AH

4.設(A)=83H,(RO)=17H,(17H)=34H,分析當執(zhí)行完下面指令段后累

加器A、(RO)、(17H)的值各是多少?

ANLA,#17H

ORL17H,A

XRLA,?RO

CPLA

答:(A)=CBH、(RO)=17H、(17H)=37H

5.寫出完成以下要求的指令。

(1)累加器A的低2位清0,其余位不變。

答:ANLA,#FCH

(2)累加器A的高2位置1,其余位不變。

答:ORLA,#COH

(3)累加器A的高4位到反,其余位不變。

答:XRLA,#FOH

(4)累加器A的第0位、2位、4位、6位取反,其余位不變。

答:XRLA,#55H

6.試分析以下程序段,當程序執(zhí)行完畢后,位地址OOH、01H中的內容將

為何值?P1口的8條I/O線為何狀態(tài)?

CLRC

MOVA,#6611

JCLOOP1

CPLC

SETBO1H

LOOP1:ORLC,ACC.0

JBACC.2,LOOP2

CLROOH

L00P2:MOVPl,A

答:(Pl)=66H,位地址OOH保持原值,位地址O1H的內容為“1〃。

7.閱讀下面程序,分析執(zhí)行結果。

MOVA,#67H;答:(A)=67H=0U0,0111B

SETBACC.7;答:ACC.7=1,(A)=1110,0111B

MOVC,ACC.2;答:C=1

CPLA;答:(A)=18H=0001,1000B

MOVACC.6,C;答:ACC.6=1,(A)=0101,1000B=58H

CLRC;答:c=o

SETBACC.0;答:ACC.0=1,(A)=0101,1001D=59II

MOVACC.4,C;答:ACC.4=0,(A)=0100,1001B=49H

8.編程實現把外部RAM中8000H開始的連續(xù)30個字節(jié)的數據傳送到外部

RAM中8100H開始的連續(xù)單元中。

答:

MOVR4,#14H

MOVDPTR,#8000H

PUSHDPH

PUSHDPL

MOVDPTR,#8100H

MOVR2,DPH

MOVR3,DPL

LOOP:POPDPL

POPDPH

MOVXA,@DPTR

INCDPTR

PUSHDPH

PUSHDPL

MOVDPL,R3

MOVDPH,R2

MOVX@DPTR,A

INCDPTR

MOVR2,DPH

MOVR3,DPL

DJNZR4,LOOP

SJMP$

9.編程統(tǒng)計從外部RAM的2000H開始的連續(xù)100個單元中“0”的個數,

并將結果存放于R2中。

答:

MOVR2,#64H

MOVR3,#00H

MOVDPTR,#2000H

L00P1:MOVXA,@DPTR

CJNEA,#0011,LOOP

INCR3

LOOP:INCDPTR

DJNZR2,L00P1

SJMP$

10.將內部RAM的30H單元中的中間4位、31H的低2位、32H的高2位按

順序排成一個新的字節(jié),存入33H單元中。

答:

MOVA,30H

ANLA,#3CH

MOVB,A

MOVA,3111

ANLA,#03H

ORLA,B

MOVB,A

MOVA,32H

ANLA,#COH

ORLA,B

MOV33H,A

11.將DPTR中間8位取反,其余位不變。

答:

MOVA,DPL

XRLA,#FOH

MOVDPL,A

MOVA,DPH

XRLA,#OFH

MOVDPH,A

12.試編寫程序完成以內部RAM的30H為首地址的20個數據傳送,目的地

址為外部RAM以3000H為首地址的區(qū)域。

答:

MOVR0,#30H

MOVDPTR,#3000H

MOVR2,#14H

LOOP:MOVA,@R0

MOVX?DPTR,A

INCR0

INCDPTR

DJNZR2,LOOP

SJMP$

13.試編寫條件轉移程序,當存放器R3的內容分別滿足以下條件時能轉移

到LOOP處執(zhí)行程序,條件不滿足時停機。

(1)(R3)>15(2)(R3)<15(3)(R3)W15(4)(R3)>15

答:

CJNER3,#0FH,LOOP1

SJMPLOOP

LOOP1:JCLOOP

SJMP$

LOOP:……

(2)

CJNER3,#0FH,LOOP1

SJMP$

LOOP1:JNCLOOP

SJMP$

LOOP:....

(3)

CJNER3,#OFH,LOOP1

SJMPLOOP

LOOP1:JNCLOOP

SJMP$

LOOP:....

(4)

CJNER3,#OFH,LOOP1

SJMP$

LOOP1:JCLOOP

SJMP$

LOOP:……

14.試編寫程序將內部RAM以40H為首地址的數據塊傳送到以BUF為起始

地址的內部RAM區(qū)域,直到遇到所傳送的數據不為0時停止。

答:

MOVRO,#40H

MOVRI,#BUF

LOOP:MOVA,@R0

JNZL00P1

INCRO

INCRI

SJMPLOOP

LOOP1:SJMP$

15.編寫一程序將數00H存入內部RAM的20H單元,存入后,通過讀操作

來檢查是否確實存入?然后再將數FFH存入內部RAM的21H單元,檢查是否確

實存入。如果兩次檢查結果都正確,將內部RAM的60H單元置00H,否那么置

llHo

答:

MOV20H,#0011

MOVA,20H

CJNEA,#00H,LOOP

MOV21H,#FFH

MOVA,21H

CJNEA,#FFH,LOOP

MOV60H,#00H

LOOP:MOV60H,#11H

SJMP$

16.設內部RAM的60H單元有一個8位二進制數,該數8位中的某位券fl”,

編寫程序檢查“1”在哪一位。如果'T在第0位,那么在內部RAM的30H單

元寫入數“00H〃,如果“1〃在第1位,那么在內部RAM的31H單元寫入數

“01H〃,……,以此類推。

答:

MOVA,60H

LOOP:JBACC.0,L0

JBACC.1,L1

JBACC.2,L2

JBACC.3,L3

JBACC.4,L4

JBACC.5,L5

JBACC.6,L6

JBACC.7,L7

SJMPLOOP

L0:MOV30H,#00H

SJMP$

LI:MOV31H,#0111

SJMP$

L2:MOV32H,#0211

SJMP$

L3;MOV33H,#03H

SJMP$

L4:MOV34H,#04H

SJMP$

L5:MOV35H,#05H

SJMP$

L6:MOV36H,#06H

SJMP$

L7:MOV37H,#07H

SJMP$

工程四

1.算術運算指令包括如下指令:

答:

(1)不帶進位的加法指令ADD;(2)帶進位加法指令ADDC;1:3功口1指令INC;

(4)十進制調整指令DAA;(5)帶進位減法指令SUBB;(6)減1指

令DEC;(7)乘法指令MULAB;(8)除法指令DIVAB。

2.BCD碼進行加法運算后,為什么要進行十進制調整?

答:

因為BCD碼是用4位二進制數表示一位十進制數,當兩個BCD碼相加時,

對應位相加超過十時,就應該有進位了,可用來表示它的數碼是十六進制的,也

就是說只有超過十六才能進位,這樣就造成所對結果不是對應的BCD碼了。為

了得到正確的BCD碼結果,所以要對加法運算的結果進行調整,且這條指令必

須緊跟ADD或ADDC指令使用,它不能用于十進制數減法的調整。

3.編程求外部RAM3000H、3001H單元數據的平均值,并傳送給外部RAM的3002H

單元。

答:

MOVDPTR,#3000H

MOVXA,@DPTR

MOVRO,A

INCDPTR

MOVXA,@DPTR

ADDA,RO

MOVB,#02

DIVAB

INCDPTR

MOVX?DPTR,A

4.寫出下面這段程序的運行結果。

MOVA,#79H

MOV20H,#18H

ADDA,20H

DAA

SWAPA

答:

運行結果為:A=79Ho

5.根據以下要求寫出指令序列。

(1)求25X4的乘積,結果存入數據指針DPTR之中。

(2)設計計算255+12的程序,將商和余數分別保存在50H和51H。

(3)判斷內部RAM20H單元的內容,假設為正數程序轉向2100H;假設為負數程

序轉向2200H;假設為0程序轉向2300H。

(4)(A)=192,編程求A與立即數88的和,將結果存入31H(高位)和30H(低

位)單元。

答:

(1)MOVA,#25

MOVB,44

ML-LAB

MOVDPH,B

MOVDPL,A

(2)MOVA,#255

MOVB,#12

DIVAB

MOV50H,A

MOV51H,B

(3)ORG01OOH

MOVA,20H

JZL3

JDACC.7,L2

LJMPLI

ORG21OOH

LI:……

ORG2200H

L2:....

ORG2300H

L3:....

END

(4)MOVA,#192

ADDA,#88

JCLI

MOV30H,A

MOV31H,#00

SJMP$

LI:MOV30H,A

MOV31H,#01

END

6.編寫程序段,實現兩個8位無符號數的乘法程序,積存放在R2、R3中(R2

存放高位)。

答:

MOVA,#78

MOVB,#56

MULAB

MOVR2,B

MOVR3,A

END

7.(30H)=17H,(31H)=38H,分析下面這段程序的運行過程,在每條語句右邊

的空格中寫出在執(zhí)行完該語句后相應單元的結果。

MOVA,30H(A)

ADDA,31H(A)

DAA(A)

答:

(1)(A)=17H

(2)(A)二4FH

(3)(A)=55H

8.兩個16位無符號數分別存放在內部RAM40H、41H和50H、51H中(低位在低

字節(jié)單元),編寫程序段,實現兩個16位數的減法程序,差存放在R6、R7中(R6

存放高位)。

答:

MOVA,40H

SUBBA,50H

MOVR7,A

MOVA,4III

SUBBA,51H

MOVR6,A

END

工程五

1.什么是中斷,采用中斷方式有哪些優(yōu)點?

答:

中斷是計算機的CPU暫停正在運行的程序,轉而執(zhí)行提出中斷的那個外部設備或

事件的效勞程序(即中斷效勞程序),當效勞程序處理完畢后,CPU再回到原來

的“斷點〃繼續(xù)原來的程序。

優(yōu)點:引入中斷技術,解決了CPU與外設的速度匹配問題,提高CPU的運行效率,

計算機具有中斷功能后,還有如下優(yōu)點:

(1)分時處理功能

(2)實時處理功能

(3)故隙處理功能

2.在AT89c51單片機系統(tǒng)中,有哪些中斷源?響應這些中斷的效勞程序入口地

址分別是多少?怎樣合理安排中斷效勞程序?

答:

(1)有5個中斷源,分別為:外部中斷0、定時器T0、外部中斷1、定時器T1、

串行口中斷。

(2)中斷源中斷效勞程序入口地址

外部中斷0:0003H

定時器T0:OOOBH

外部中斷1:0013H

定時器T1:001BH

串行口中斷:0023H

由于各中斷效勞程序的入口地址相隔僅8個單元,如果整個中斷效勞程序的

長度少于或等于8個字節(jié),那么可以將這個中斷效勞程序存放在從入口地址開始

的8個單元中,但如果中斷效勞程序的長度大于8個字節(jié),那么通常在入口地址

處安排一條轉移指令,而轉移指令要跳轉的地址才開始真正存放中斷效勞程序。

3.在單片機復位后,IP和IE為何值?如果當前單片機系統(tǒng)中只允許開放INTO和

T1中斷源,且要求而和T1為高級中斷源,其余為低級中斷源,怎樣設置IP

和IE的值?

答:

(1)單片機復位后,IP為XXOOOOOOB;IE為OXOOOOOOB

(2)IP為:XXXO1OO1B;IE為:1XXO1OO1B

4.定時器。和定時器1各有幾種工作方式?簡述之。

答:

定時器0有4種工作方式:方式0、方式1、方式2、方式3

定時器1有3種工作方式:方式0、方式1、方式2

5.單片機系統(tǒng)時鐘頻率為12MHz,假設要求定時時間分別為0.5ms、1ms、10ms,

定時器0工作在方式0、方式1、方式2的情況下,定時初值THO、TLO分別是

多少?

答:

(1)方式0:

定時0.5ms時:

7=2"-陪=8192-500=7692=1E0C77

THO=1EH;TL0=0CH;

定時1ms時:

7=2*一臀=8192—1000=7192=1。8H

THO=1CH;TL0=18H;

定時10ms時:

采用定時1ms時的初值,循環(huán)10次。

(2)方式1:

定時0.5ms時:

7=216一蟹=65536-500=65036=FE0CH

TH0=0FEH;TL0RCH;

定時1ms時:

T=2脩一譬=65536-1000=64536=FC18H

TH0-0FCH;TL0-18H;

定時10ms時:

r=2l6--^=65536-10000=55536=DA\CH

TH0二ODAH;TLO=1CH;

(2)方式2:

定時0.1ms時:

7=28-^-=256-100=156=9C/7

THO9CH;TL0=9CH;

定時0.5ms時:(采用0.1ms的初值,循環(huán)5次)

定時1ms時:(采用0.1ms的初值,循環(huán)10次)

定時10ms時:(采用0.1ms的初值,循環(huán)100次)

6.要求將定時器T0和T1的外部信號輸入斷作為新增的二個外部中斷請求信號,

如何設置計數初值?

答:

THO和TFO的初值均設置為FFH

7.要求在PL5腳輸出周期為15ms的方波,設單片機系統(tǒng)時鐘頻率為6MHz。

試編寫定時器初始化程序和中斷效勞程序。

答:

定時器初始化程序:

MOVTMOD,#01H

MOVTHO,#OF1H

MOVTLO,#5AH

中斷效勞程序:

ORG0000H

LJMPSTART

ORGOOOBH

LJMPTOINT

ORG1000H

START:MOVTMOD,#01H

SETBTRO

MOVTHO,ttOFlH

MOVTLO,#5AH

SJMP$

ORG2000H

TOINT:CPLPl.5

MOVTHO,ttOFlH

MOVTLO,#5AH

RET1

END

8.請編寫程序:在T1每計滿100個外部輸入脈沖后,使P0口輸出OFOH的數

據。

答:

ORG0000H

LJMPSTART

ORGOOOB1I

LJMPLOOP

ORG1OOOH

START:MOVTMOD,#O1H

SETBTRI

MOVTHO,#OF1H

MOVTLO,#5AH

SJMP$

ORG2000H

LOOP:MOVPO,#OFOH

工程六

1.與8255比擬,8155接口芯片有何特點?

答:

8155是一種通用的多功能可編程RAM/IO擴展器,片內除有三個可編程并行I/O

端口(兩個8位的端口A和B及一個6位是我端口C)外,還帶有256B放入靜

態(tài)RAM及一個可編程的14位定時器、計數器。

2.為什么說P0口是真正的雙向I/O口,而P1?P3口是準雙向口?

答:

P0口是三態(tài)雙向口,每位能驅動8個LSTTL電路;Pl、P2、P3口是準雙向口,

每個引腳可驅動4個LSTTL輸入。

3.擴展存儲器時常用哪些片選方法?

答:

線選法和譯碼法

4.什么是地址空間重疊現象?

答:

存儲器中多個單元地址空間重疊在一起卻僅表示一個單元,這種現象稱為地址空

間重疊現象。

5.擴展存儲器時,低8位地址為什么要鎖存,而高8位地址不需要鎖存?

答:

P0口作為低8位地址線、數據線,分時提供低8位地址信號和數據信號,在擴

展系統(tǒng)中,要將P0口傳送的信號進行別離,以便構成16位地址信號,因此需要

增加一個8位鎖存器,先由鎖存器將地址總線中的低8位地址信號所存,鎖存器

的輸出作為地址線A7-A0,其后P0口作為數據線使用;P2口在整個機器周期內

提供的都是高8位地址信號,因此不用鎖存。

6.設某打印接口電路中有兩個端口:一個是數據端口,其地址為1FFFH;一個

是狀態(tài)端口,其地址為1FFEH,狀態(tài)端口的最高位D7表示打印機當前狀態(tài),即

D7=0表示打印機“空閑〃、D7=l表示打印機“忙〃,試將片內RAM40H?4FH中

的內容由打印機打印輸出。

答:

MOVDPTR,#1FFEH

LP1:MOVXA,@DPTR

JBACC.7,LP1

MOVRO,#4011

MOVR2,#10H

LP2:MOVA,@R0

INCDPTR

MOVX@DPTR,A

LP3:MOVDPTR,#1FFEH

MOVXA,@DPTR

JBACC.7,LP3

INCRO

DJNZR2,LP2

END

7.試用兩片2764擴展16KB程序存儲器,根據以下要求,畫出電路圖,并確定

各自的地址范圍。

答:

(1)用P2.7和P2.6片選。

P2.7業(yè)

P2.6CECE

P2.0~2.4A8-A12A8-A12

ALE1

8GA0-A7

P0.0-P0.7D0~D7Q0~Q7A0-A7

27641#27642#

AT89C5174LS373

00-0700-07

PSEN0EOE

EA

I

地址范圍:1#為:8000H~9FFFH或AOOOH~BFFFH

2#為:4000H~5FFFH或6000H“7FFFH

(2)用74LS138譯碼后片選。

74LS138

P2.7

P2.6

P2.5CECE

P2.0~2.4A8-A12A8-A12

ALE

A0-A7

P0.0-P0.7A0-A7

27641#27642#

AT89C51

00-0700-07

PSENOEOE

EA

地址范圍:1#為:OOOOHlFFFH

2#為:2000H~3FFFH

8.有一個單片機應用系統(tǒng),需要8K字節(jié)的程序存儲器、兩個8位輸入口、兩

個8位輸出口、四個外部中斷源,試設計電路圖。

答:

I

工程七

1.在一個AT89C51系統(tǒng)中擴展一片8155,8155外接2位LED顯示器和2位BCD

撥盤,試畫出該局部的接口電路,并編寫相應的顯示子程序和讀撥盤的子程序。

答:

AT89C51

顯示子程序:

START:MOVA,#03H

MOVDPTR,#7F00H

MOVX@DPTR,A

LOOP1:MOVRO,#38H

MOVR3,#7FH

MOVA,R3

L00P2:MOVDPTR,#7F01H

MOVX@DPTR,A

INCDPTR

MOVA,@R0

ADDA,#ODH

MOVCA,@A+PC

MOVX@DPTR,A

ACALLDELAY1ms

MOVA,R3

JNBACC.0,L00P1

RRA

MOVR3,A

INCRO

AJMPL00P2

DATA:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H

RET

讀撥盤子程序:

MOVRO,#30H

MOVPl,#ODFH

MOVA,Pl

SWAPA

XCHA,@R0

MOVPl,#OEFH

MOVA,Pl

XCHDA,?RO

RET

2.在一個AT89c51系統(tǒng)中,試畫出6X6鍵盤接口電路,并編制一個子程序,

用查詢的方法將鍵盤上鍵入的鍵號送內RAM區(qū)。

答:

程序:

SCAN:LCALLKEYDOWN

JNZKEY1

RET

KEY1:LCALLSWLAYlOms

LCALLKEYDOWN

JNZKEY3

KEY2:MOVA,#FFH

RET

KEY3:MOVA,#3FH

MOVP2,A

MOVA,P2

ANLA,#3FH

MOVR2,#0011

MOVR3,#06H

KEY4:RRCA

JNCKEY5

INCR2

INCR2

INCR2

INCR2

INCR2

INCR2

DJNZR3,KEY4

LJMPKEY2

KEY5:MOVA,#3H

MOVPl,A

MOVA,Pl

ANLA,#3FH

MOVRi,#0011

MOVR3,#06H

KEY6:RRCA

JNCKEY7

INCRI

DJNZR3,KEY6

LJMPKEY2

KEY7:MOVA,RI

ADDA,R2

PUSHA

LCALLKEYDOWN

KEY8:JNZKEY8

POPA

RET

KEYDOWN:MO

溫馨提示

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

評論

0/150

提交評論