單片機原理及接口技術課后習題答案_第1頁
單片機原理及接口技術課后習題答案_第2頁
單片機原理及接口技術課后習題答案_第3頁
單片機原理及接口技術課后習題答案_第4頁
單片機原理及接口技術課后習題答案_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機原理及接口技術課后答案.(第三版)

第一章

1.單片機具有哪些特點

(1)片內存儲容量越來越大。

(2抗干擾性好,可靠性高。

(3)芯片引線齊全,容易擴展。

(4)運行速度高,控制功能強。

(5)單片機內部的數(shù)據(jù)信息保存時間很長,有的芯片可以達到100年以上。

2.89C51單片機內包含哪些主要邏輯功能部件?

答:80c51系列單片機在片內集成了以下主要邏輯功能部件:

(l)CPU(中央處理器):8位

(2)片內RAM:128B

(3)特殊功能寄存器:21個

(4)程序存儲器:4KB

(5)并行I/O口:8位,4個

(6)串行接口:全雙工,1個

(7)定時器/計數(shù)器:16位,2個

(8)片內時鐘電路:1個

3.什么是微處理器(CPU)、微機和單片機?

答:微處理器本身不是計算機,但它是小型計算機或微機的控制和處理部分。

微機則是具有完整運算及控制功能的計算機,除了微處理器外還包括存儲器、接

口適配器以及輸入輸出設備等。

單片機是將微處理器、一定容量的RAM、ROM以及I/O口、定時器等電路集成

在一塊芯片上,構成的單片微型計算機。

4.微型計算機怎樣執(zhí)行一個程序?

答:通過CPU指令,提到內存當中,再逐一執(zhí)行。

5.什么是嵌入式系統(tǒng)?他有哪些類型?為什么說單片機是典型的嵌入式系統(tǒng)?

答;嵌入式系統(tǒng)是將先進的計算機技術、半導體技術和電子技術和各個行業(yè)的具

體應用相結合后的產(chǎn)物,這一點就決定了它必然是一個技術密集、資金密集、高

度分散、不斷創(chuàng)新的知識集成系統(tǒng)。

它有嵌入式微處理器、嵌入式微控制器、嵌入式DSP處理器、嵌入式片上系

統(tǒng)等。

/入式系統(tǒng)的出現(xiàn)最初是基于單片機的。它從體系結構到指令系統(tǒng)都是按照

嵌入式應用特點專門設計的,能最好的滿足面對控制對象,應運系統(tǒng)的嵌入、現(xiàn)

場的可靠運行以及非凡的控制品質要求。因此,她是典型的嵌入式系統(tǒng)。

第二章

1.89C51單片機內包含哪些主要邏輯功能部件?

答:80c51系列單片機在片內集成了以下主要邏輯功能部件:

(l)CPU(中央處理器):8位

(2)片內RAM:128B

(3)特殊功能寄存器:21個

(4)程序存儲器:4KB

(5)并行I/O口:8位,4個

(6)串行接口:全雙工,1個

⑺定時器/計數(shù)器:16位,2個

(8)片內時鐘電路:1個

2.89C51的EA端有何用途?

答:/EA端接高電平時,CPU只訪問片內并執(zhí)行內部程序,存儲

器。/EA端接低電平時,CPU只訪問外部ROM,并執(zhí)行片外程序存儲器中的指

令。/EA端保持高電平時,CPU執(zhí)行內部存儲器中的指令。

3.89C51的存儲器分哪幾個空間?如何區(qū)別不同空間的尋址?

答:ROM(片內ROM和片外ROM統(tǒng)一編址)(使用MOVC)(數(shù)據(jù)傳送指

令)(16bits地址)(64KB)

片夕卜RAM(MOVX)(16bits地址)(64KB)

片內RAM(MOV)(8bits地址)(256B)

4.簡述89C51片內RAM的空間分配。

答:片內RAM有256B

低128B是真正的RAM區(qū)

高128B是SFR(特殊功能寄存器)區(qū)

5.簡述布爾處理存儲器的空間分配,片內RAM中包含哪些可位尋址單元。

答:片內RAM區(qū)從OOH~FFH(256B)

其中20H-2FH(字節(jié)地址)是位尋址區(qū)

對應的位地址是00H~7FH

6.如何簡捷地判斷89c51正在工作?

答:用示波器觀察8051的XTAL2端是否有脈沖信號輸出(判斷震蕩電路工作

是否正常?)

ALE(地址鎖存允許)(AddressLatchEnable)輸出是fosc的6分頻

用示波器觀察ALE是否有脈沖輸出(判斷8051芯片的好壞?)

觀察PSEN(判斷8051能夠到EPROM或ROM中讀取指令碼?)

因為/PSEN接外部EPROM(ROM)的/OE端子

OE=OutputEnable(輸出允許)

7.89c51如何確定和改變當前工作寄存器組?

答:PSW(程序狀態(tài)字)(ProgramStatusWord)中的RS1和RSO

可以給出4中組合

用來從4組工作寄存器組中進行選擇

PSW屬于SFR(SpecialFunctionRegister)(特殊功能寄蠲)

8.89C51P0口用作通用工/O口輸入時,若通過TTL"OC"門輸入數(shù)據(jù),應注

意什么?為什么?

答:

3讀端口鎖存器和"讀引腳"有何不同?各使用哪種指令?

答:讀鎖存器(ANLP0,A)就是相當于從存儲器中拿數(shù)據(jù),而讀引腳是從外部

拿數(shù)據(jù)(如MOVA,Pl這條指令就是讀引腳的,意思就是把端口pl輸入數(shù)據(jù)

送給A)

傳送類MOV,判位轉移JB、JNB、這些都屬于讀引腳,平時實驗時經(jīng)常

用這些指令于外部通信,判斷外部鍵盤等;字節(jié)交換XCH、XCHD算術及邏輯

運算ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制轉移

CINE、DJNZ都屬于讀鎖存器。

10.89C51P0-P3口結構有何不同?用作通用工/O口輸入數(shù)據(jù)時,應注意什

么?

答:P0口內部沒有上拉電阻,可以用做16位地址的低8位;

P3有第二功能;

P2口可以用做16位地址的高8位;

需要上拉電阻。OC門電路無法輸出高低電平,只有靠上拉電阻才能實現(xiàn)

11.89C51單片機的EA信號有何功能?在使用8031時,EA信號引腳應如何

處理?

答:(D80C51單片機的EA信號的功能

EA為片外程序存儲器訪問允許信號,低電平有效;在編程時,其上施加21V

的編程電壓

EA引腳接高電平時,程序從片內程序存儲器開始執(zhí)行,即訪問片內存儲

器;EA引腳接低電平時,迫使系統(tǒng)全部執(zhí)行片外程序存儲器程序。

(2)在使用80C31時,EA信號引腳的處理方法

因為80C31沒有片內的程序存儲器,所以在使用它時必定要有外部的程序

存儲器,EA信號引腳應接低電平。

12.89C51單片機有哪些信號需要芯片引腳以第2功能的方式提供?

答:第一功能第二功能

串行口:

P3.0RXD(串行輸入口)

P3.1TXD(串行輸出口)

中斷:

P3.2INTO外部中斷0

P3.3INT1外部中斷1

定時器/計數(shù)器(TO、T1):

P3.4TO(定時器/計數(shù)器0的外部輸

入)

P3.5T1(定時器/計數(shù)器1的外部輸

入)

數(shù)據(jù)存儲器選通:

P3.6WR(外部存儲器寫選通,低電平

有效,輸出)

P3.7RD(外部存儲器讀選通,低電平

有效,輸出)

定時器/計數(shù)器(T2):

P1.0T2(定時器T2的計數(shù)端)

P1.1T2EX(定時器T2的外部輸入端)

13.內部RAM低128字節(jié)單元劃分為哪3個主要部分?各部分主要功能是什么?

答:片內RAM低128單元的劃分及主要功能:

⑴工作寄存器組(OOH~IFH)

這是一個用寄存器直接尋址的區(qū)域,內部數(shù)據(jù)RAM區(qū)的O~31(OOH~IFH),

共32個單

藍。它是4個通用工作寄存器組,每個組包含8個8位寄存器,編號為R0~R7。

(2)位尋址區(qū)(2OH~2FH)

從內部數(shù)據(jù)RAM區(qū)的32?47(20H~2FH)的16個字節(jié)單元,共包含128

位,是可位尋

址的RAM區(qū)。這16個字節(jié)單元,既可進行字節(jié)尋址,又可實現(xiàn)位尋址。

⑶字節(jié)尋址區(qū)(30H~7FH)

從內部數(shù)據(jù)RAM區(qū)的48?127(30H~7FH),共80個字節(jié)單元,可以采用

間接字節(jié)尋址

的方法訪問。

14.使單片機復位有幾種方法?復位后機器的初始狀態(tài)如何?

答:(1)單片機復位方法

單片機復位方法有:上電自動復位、按鍵電平復位和外部脈沖三種方式,如

題圖2-1所示。

題圖2-1

(2)復位后的初始狀態(tài)

復位后機器的初始狀態(tài),即各寄存器的狀態(tài):PC之外,復位操作還對其他一些

特殊功能寄存器有影響,它們的復位狀態(tài)如題表2-1所例

15.開機復位后,CPU使用的是哪組工作寄存器沱們的地址是什么?CPU如何

確定和改變當前工作寄存器組?

答:一般開機復位后都是選擇第一組通用工作寄存器作為工作寄存器的,一共有

4組,分別為0.123連續(xù)位于00h到1FH地址,

然后在機器中有個程序狀態(tài)字PSW,它的第四和第三位RSI,RSO是用來選擇

工作寄存器組的,可能不同機器地址稍有不同。他們倆的值和寄存器組的關系:

RS1/RS00/00/11/01/1

使用的工作寄存器0123

地址00-0708-0F10-1718-1F

寫程序的時候就是通過定義程序狀態(tài)字來選擇使用不同的寄存器組。也可以直接

對RS1和RSO賦值。

(最后一問同題7)

16.程序狀態(tài)寄存器PSW的作用是什么?常用標志有哪些位?作用是什么?

答:PSW是一個SFR(特殊功能寄存器)

位于片內RAM的高128B

具體地址DOH(OOH~FFH)(片內RAM的編址)(8bits編址方法)

PSW=ProgramStatusWord(程序狀態(tài)字)

PSW的常用標志位有哪些?

CY=Carry(進位標志位)

AC=AuxiliaryCarry(輔助進位標志位)(半進位標志位)

F0用戶標志位

RSI,RSO,用來選擇當前工作寄存器組(R0?R7)(4選1)

OV=Overflow(溢出標志位)

P二Parity(奇偶校驗位)

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

什么位置?

答:用不同的尋址方式來加以區(qū)分,即訪問128個位地址用位尋址方式,訪問低

128字節(jié)單元用字節(jié)尋址和間接尋址。

具體地址為2F的第五位,即為7Ce

18.89C51單片機的時鐘周期與振蕩周期之間有什么關系?什么叫機器周期和指

令周期?

答:時鐘信號的周期稱為機器狀態(tài)周期,是振蕩周期的兩倍。一個機器周期是指

CPU訪問存儲器一次所需的時間。指令周期是執(zhí)行一條指令所需的時間。

19.一個機器周期的時序如何劃分?

答:一個機器周期=12個震蕩周期=6個時鐘周期(狀態(tài)周期)

S1P1,S1P2,S2P1,S2P2,S3P1,S3P2,S4P1,S4P2,S5P1,

S5P2,S6P1,S6P2其中s=state(狀態(tài)),p=phase(相位)

20.什么叫堆棧?堆棧指針SP的作用是什么?89c51單片機堆棧的容量不能超過

多少字節(jié)?

答:堆棧都是一種數(shù)據(jù)項按序排列的數(shù)據(jù)結構,只能在一端(稱為棧頂(top))對

數(shù)據(jù)項進行插入和刪除。要點:堆:順序隨意棧:后進先出

(Last-In/First-Out)

在調用子程序時需要保存調用函數(shù)的CPU寄存器PC指針,PC指針是被

CALL指令自動壓入SP所指向的片內存儲器,CPU寄存器要由用戶用PUSH指令

自行保存,因此SP的作用就是一個指針,當進行中斷調用,子函數(shù)調用時將現(xiàn)場數(shù)

據(jù)壓入SP所指向的存儲器,SP自動增加1或2,當中斷結束RETI,調用返回

RET,POP時將SP數(shù)據(jù)彈出,SP自動減1或,2

8051最大為128字節(jié)的片內存儲器,0X20以上理論都可以做堆棧用96字

節(jié),8052為256字節(jié)224字節(jié)可用,但這樣便沒有其它空間可用于甥居存儲現(xiàn)

在的單片機的程序一般都能用C51來,不用關心堆棧大小與SP寄存器

21.89C51有幾種低功耗方式?如何實現(xiàn)?

答:空閑方式和掉電方式

空閑方式和掉電方式是通過對SFR中的PCON(地址87H)相應位置1而

啟動的。

當CPU執(zhí)行完置IDL=l(PCON.l)的指令后,系統(tǒng)進入空閑工作方式。這時,

內部時鐘不向CPU提供,而只供給中斷、串行口、定時器部分。CPU的內部狀

態(tài)維持,即包括堆棧指針SP、程序計數(shù)器PC、程序狀態(tài)字PSW、累加器ACC

所有的內容保持不變,端口狀態(tài)也保持不變。ALE和PSEN保持邏輯高電平。

當CPU執(zhí)行一條置PC0N.1位(PD)為1的指令后,系統(tǒng)進入掉電工作方式。

在這種工作方式下,內部振蕩器停止工作。由于沒有振蕩時鐘,因此,所有的功

能部件都停止工作。但內部RAM區(qū)和特殊功能寄存器的內容被保留,而端口的

輸出狀態(tài)值都保存在對應的SFR中,ALE和PSEN都為低電平。

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

答:(1)程序計數(shù)器PC作為不可尋址寄存器的特點

程序計數(shù)器PC是中央控制器申最基本的寄存器,是一個獨立的計數(shù)器,存

放著下一條將程序存儲器中取出的指令的地址。

程序計數(shù)器PC變化的軌跡決定程序的流程。程序計數(shù)器的寬度決定了程序

存儲器可以

尋址的范圍。

程序計數(shù)器PC的基本工作方式有:

①程序計數(shù)器PC自動加1。這是最基本的工作方式,也是這個專用寄存器

被稱為計數(shù)

器的原因。

②執(zhí)行條件或無條件轉移指令時,程序計數(shù)器將被置入新的數(shù)值,程序的流

向發(fā)生變化。

變化的方式有下列幾種:帶符號的相對跳轉SJMP、短目陣專AJMP、長目聃LJMP

及JMP@A+DPTR等。

③田丸行調用指令或響應中斷時:

?PC的現(xiàn)行值,即下f將要執(zhí)行的指令的地址送入堆棧,加以保護;

?將子程序的入口地址或者中斷矢量地址送入PC,程序流向發(fā)生變化,執(zhí)行

子程序或中斷服務程序;

?子程序或中斷服務程序執(zhí)行完畢,遇到返回指令RET或RETI時,將棧頂

的內容送到PC寄存器中,程序流程又返回到原來的地方,繼續(xù)執(zhí)行。

(2)地姐旨針DPTR的特點

地幽旨針DPTR的特點是,它作為片外數(shù)據(jù)存儲器尋址用的地址寄存器(間

接尋址)。

⑶地明旨針DPTR與程序計數(shù)器PC的異同

①相同之處:

?兩者都是與地址有關的、16位的寄存器。其中,PC與程序存儲器的地址

有關,而

DPTR與數(shù)據(jù)存儲器的地址有關。

?作為地址寄存器使用時,PC與DPTR都是通過P0和P2口(作為16位地

址總線)輸

出的。但是,PC的輸出與ALE及PSEN有關;DPTR的輸出,則與ALE、

RD及WR相聯(lián)系。

②不同之處:

?PC只能作為16位寄存器對待,由于有自動加1的功能,故又稱為計數(shù)器;

DPTR可以作為16位寄存器對待,也可以作為兩個8位寄存器對待。

?PC是不可以訪問的,有自己獨特的變化方式,它的變化軌跡決定了程序執(zhí)

行的流程;

DPTR是可以訪問的,如MOVDPTR,#XXXXH,INCDPTPe

23.89C51端口鎖存器的"讀T修改一寫"操作與"讀引腳"操作有何區(qū)別?

答:指令系統(tǒng)中有些指令讀鎖存器的值,有些指令則讀引腳上的值。讀鎖存器指

令是從鎖存器中讀取一個值并進行處理,把處理后的值(原值或已修改后的值)重

新寫入鎖存器中。這類指令稱為讀-修改-寫指令。

對于讀-修改-寫指令。直接讀鎖存器而不是讀端口弓I腳,是因為從引腳上讀

出的數(shù)據(jù)不一定能真正反映鎖存器的狀態(tài)。

第三章

1、指令:CPU根據(jù)人的意圖來執(zhí)行某種操作的命令

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

機器語言:用二進制編碼表示,計算機能直接識別和執(zhí)行的語言

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

高級語言:獨立于機器的,在編程時不需要對機器結構及其指令系統(tǒng)有深入了解

的通用性語言

2、見第1題

3:簡述8951的匯編指令格式。答:操作碼[目的操作數(shù)][,涮暴作數(shù)]

4、簡述8951的尋址方式^所能涉及的尋址空間。

尋址方式尋址空間

立即數(shù)尋程序存儲器ROM

直接尋址片內RAM低128B、特殊功能寄存器

存器尋工作寄存器R0_R7、人、B、C、DPTR

寄存器間

片內RAM低128B、片外RAM

接尋址

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

相對尋址程序存儲器256B范圍(PC+偏移量)

位尋址片內RAM的20H-2FH字節(jié)地址、部分SFR

5、訪問特殊功能寄存器和外數(shù)據(jù)存儲器,應采用那些尋址方式?

答:SFR:直接尋址,位尋址,寄存器尋址;片外RAM:寄存器間接尋址

6、8951中已知(30H)=38H,請分析以下各是什么指令,說明源操作數(shù)的尋

址方式以及執(zhí)行結果。

MOVA,40H;直接尋址(40H)-A

MOVRO,A;寄存器尋址(A)-RO

MOVPl,#OFOH;立即數(shù)尋址OFO-P1

MOV@RO,3OH;直接尋址(30H)—(RO)

MOVDPTR,#3848H;立即數(shù)尋址3848H-DPTR

MOV40H,38H;直接尋址(38H)—40H

MOVRO,3OH;■妾尋址(30H)-RO

MOVPO,RO;寄存器尋址(RO)-PO

MOV18H,#30H;立即數(shù)尋址30H-18H

MOVA,@R0;寄存器間接尋址((RO))-A

MOVP2,Pl;直接尋址(Pl)-P2

最后結果:(RO)=38H,(A)=40H,(P0)=38H,(P1)=(P2)=OFOH,

(DPTR)=3848H,(18H)=30H,(30H)=38H,(38H)=40H,(40H)

=40H,(48H)=38H

注意:一左邊是內容,右邊是單元

7、8951片內高128字節(jié)的地址尋址要注意什么/?

答:用直接尋址,位尋址,寄存器尋址

8、指出些列指令的本質?

MOVA,DATA;直接尋址2字節(jié)1周期

MOVA,#DATA;立即數(shù)尋址2字節(jié)1周期

MOVDATA1,DATA2;直接尋址3字節(jié)2周期

MOV74H,#78H;立即數(shù)尋址3字節(jié)2周期

如果想查某一指令的機器碼,字節(jié)數(shù)或周期數(shù)可查閱書本后面的附錄A

9、設R0的內容分為32H,A的內容為48H,0000請指出在執(zhí)行下列程序段后

上述各單元內容的變化?

MOVA,@RO;((R0))=80H-A

MOV@R0,40H;(40H)=08H-(R0)

MOV40H,A;(A)=80-40H

MOVRO,#35H;35H-R0

最后結果:(RO)=35H(A)=80H,(32H)=08H,(40H)=80H

10、如何訪問SFR,可采用那些尋址方式?

答:用直接尋址,位尋址,寄存器尋址

11、如何訪問片外RAM,可使用那些尋址方式?

答:只能采用寄存器間接尋址(用MOVX指令)

12、如何訪問片內RAM,可使用那些尋址方式?

答:低128字節(jié):直接尋址,位尋址,寄存器間接尋址,寄存器尋址(R0~R7)

高128字節(jié):直接尋址,位尋址,寄存器尋址

13、如何訪問片內外程序存儲器,可使用那些尋址方式?

答:采用變址尋址(用MOVC指令)

14、說明十進制調整的原因和方法?

答:壓縮BCD碼在進行加法運算時應逢十進一,而計算機只將其當作十六進制數(shù)

處理,此時得到的結果不正確。用DAA指令調整(加06H,60H,66H)

15、說明8951布爾機處理機功能?

答:用來進行彳端作

16、ANLA,#17H;83HAi7H=03H-A

ORL17H,A;34Hv03H=37H^17H

XRLA,@R0;03H十37H=34H

CPLA;34H求反等于CBH

所以(A)=CBH

17s(1)SETBACC.0或SETBEOH;EOH是累力口器的地址

(2)CLRACC.7

CLRACC.6

CLRACC.5

CLRACC.4

(3)CLRACC.6

CLRACC.5

CLRACC.4

CLRACC.3

18、MOV27H,R7

MOV26H,R6

MOV25H,R5

MOV24H,R4

MOV23H,R3

MOV22H,R2

MOV21H,RI

MOV20H,RO

19、MOV2FH,20

MOV2EH,21

MOV2DH,22

20、編程,進行兩個16頻的減法:6F5DH-13B4H,結果存入內部RAM的

30和31H單元,30H存低八位。

CLRC

MOVA,#5DH;被減數(shù)的低8位一A

MOVR2,#B4H;減數(shù)低8位一R2

SUBBA,R2;被減數(shù)減去減數(shù),差一A

MOV30H,A;低8位結轉-30H

MOVA,#6FH;被減數(shù)的高8位-A

MOVR2,#13H;減數(shù)高8位一R2

SUBBA,R2;被減數(shù)減去減數(shù),差一A

MOV31H,A;高8位結果-30H

注意:如果在你的程序中用到了進位位,在程序開始的時候要記得清0進位位

21、編程,若累加器A滿足下列條件,則程序轉至LABEL存儲單元,設A中為

無符號數(shù)。

(1)A>10

CJNEA,#0AH,LI;(A)與10比較,不等轉LI

LJMPLABEL;相等轉LABEL

LI:JNCLABEL;(A)大于10,轉LABEL

或者:

CLRC

SUBBA,#0AH

JNCLABEL

(2)A>10

CJNEA,#0AH,LI;(A)與10匕俄,不等轉LI

RET;相等結束

L1:JNCLABEL;(A)大于10,轉LABEL

RET;(A)小于10,結束

或者:

CLRC

SUBBA,#0AH

JNCLI

RET

LI:JNZLABEL

RET

(3)A<10

CJNEA,#0AH,LI;(A)與10匕俄,不等轉L1

L2:LJMPLABEL;相等轉LABEL

LI:JCL2;(A)小于10,轉L2

RET

或者:

CLRC

SUBBA,#0AH

JCLABEL

JZLABEL

RET

22、(SP)=23H,(PC)=3412H

參看書上80頁

23、(SP)=27H,(26H)=48H,(27H)=23H,(PC)=3456H

參看書上79頁

24、不能。ACALL是短轉指令,可調用的地址范圍是2KB。

在看這個題的時候同時看一下AJMP指令。同時考慮調用指令ACALL和LCALL

指令和RET指令的關系。

25、編程,查找內部RAM中20H-50H單元中是否有0AAH這一數(shù)據(jù),若有

則將51h單元置為01H,如無,則將51H單元清零。

MOVR2,#31H;數(shù)據(jù)塊長度TR2

MOVRO,#20H;數(shù)據(jù)塊首地址-R0

LOOP:MOVA,@R0;待查找的數(shù)據(jù)一A

CLRC;清進位位

SUBBA,#0AAH;待查找的數(shù)據(jù)是0AAH嗎

JZLI;是,轉LI

INCRO;不是,地址增1,指向下一個待查數(shù)據(jù)

DJNZR2,LOOP;數(shù)據(jù)塊長度減1,不等于0,繼續(xù)查找

MOV51H,#00H;等于0,未找至IL00H-51H

RET

L1:MOV51H,#01H;找到,01H-51H

RET

26、編程查找內部RAM的20H-50H單元中出現(xiàn)00H的次數(shù)并將結果存入51H

中。

MOVR2,#31H;數(shù)據(jù)塊長度-R2

MOVRO,#20H;數(shù)據(jù)塊首地址-R0

LOOP:MOVA,@R0;待查找的數(shù)據(jù)一A

JNZLI;不為。,轉L1

INC51H;為0,00H個數(shù)增1

LI:INCRO;地址增1,指向下一個待查數(shù)據(jù)

DJNZR2,LOOP;數(shù)據(jù)塊長度減1,不等于0,繼續(xù)查找

RET

27、外部數(shù)據(jù)RAM中有一個數(shù)據(jù)塊,首地址為SOURCE,要求將該數(shù)據(jù)傳送到

內部RAM以DIST開頭的區(qū)域在,直到遇到數(shù)字字符¥時結束。

MOVDPTR,#SOURCE;源首地址一DPTR

MOVRO,#DIST;目的首地址iRO

LOOP:MOVXA,@DPTR;儂一個鈉

MOV@R0,A

INCDPTR;指向下一個那

INCRO

CJNEA,#24H,LOOP;傳送的是字符嗎?不是,傳送

下一個字符

RET

28、已知R3和R4中存有一個十六位的二進制數(shù),高位在3中,低位在4中,

編程求其補,并存回原處。

MOVA,R3;取該數(shù)高8位-A

ANLA,#80H;取出該數(shù)符號判斷

JZLI?星TF新蛀11

‘;是負數(shù)’,將該數(shù)低8位一A

MOVA,R4

CPLA;低8位取反

ADDA,#01H;加1

MOVR4,A;低8位取反加1后-R4

MOVA,R3;將該數(shù)高8位一A

CPLA;高8位則

ADDCA,#00H;加上低8位加1時可能產(chǎn)生的進位

MOVR3,A;高8位取反加1后-R3

LI:RET

29、已知30H和31H中存有一個十六位的二進制數(shù),高位在前,低位在后,

編程將它們乘2,并存回原處。

CLRC;清進位位C

MOVA,31H;取該數(shù)低8位一A

RLCA;帶進位位左移1位

MOV31H,A;結果存回31H

MOVA,30H;取該數(shù)高8位一A

RLCA;帶進位位左移1位

MOV30H,A;結果存回30H

30、內存中有兩個4字節(jié)以壓縮的BCD碼形式存放的十進制數(shù),一個放在

30H-33H的單元中,一個放在40H-43H的單元中,編程求他們的和,結果放

在30H-33H的單元中。

MOVR2,#04H;字節(jié)長度一R2

MOVRO,#30H;一個加數(shù)首地址一RO

MOVRI,#40H;另一個加數(shù)首地址一RI

CLRC;清進位位

LOOP:MOVA,@R0;取一個加數(shù)

ADDCA,@R1;兩個加數(shù)帶進位位相加

DAA;十進制調整

MOV@R0,A;存放結果

INCRO;指向下一個字節(jié)

INCRI

DJNZR2,LOOP;婁好居塊長度減1,不等于0,繼續(xù)查找

RET

31、編程,把片外RAM從2000H開始存放的8個數(shù)傳送到片內30H開始的

單元中。

MOVR2,#08H;數(shù)據(jù)塊長度-R2

MOVRO,#30H;數(shù)據(jù)塊目的地址-RO

MOVDPTR,#2000H;數(shù)據(jù)塊源地址一DPTR

LOOP:MOVXA,@DPTR"堡一個數(shù)據(jù)

MOV@R0,A

INCDPTR;指向下一個數(shù)據(jù)

INCRO;

DJNZR2,LOOP;婁好居塊長度減1,沒傳送完,繼續(xù)傳送

RET

35、解:(1000H)=53H(1001H)=54H(1002H)=41H

(1003H)=52H(1004H)=54H(1005H)=12H

(1006H)=34H(1007H)=30H(1008H)=00H

(1009H)=70H

36、閱讀下列程序說明其功能

MOVRO,#40H;40H-R0

MOVA,@R0;98H-A

INCRO;41H-R0

ADDA,@R0;98H+(41H)=47H-A

INCRO

MOV@R0,A;結果存入42H單兀

CLRA;清人

ADDCA,#0;進位位存入A

INCRO

MOV@R0,A;進位位存入43H

功能:將40H,41H單元中的內容相加結果放在42H單元,進位放在43H單

元(RO)=43H,(A)=1,(40H)=98H,(41H)=AFH,(42H)=47H,

(43H)=01H

37、同上題

MOVA,61H;F2H-A

MOVB,#02H;02H-B

MULAB;F2HxO2H=E4H—A

ADDA,62H;積的低8位加上CCH-A

MOV63H,A;結果送62H

CLRA;清A

ADDCA,B;積的高8位加進位位一A

MOV64H,A;結果送64H

功能:將61H單元的內容乘2,低8位再加上62H單元的內容放入63H,

果的高8位放在64H單元(A)=02H,(B)=01H,(61H)=F2H,(62H)

=CCH,(63H)=BOH,(64H)=02H

39、MOVA,XXH

ORLA,#80H

MOVXXH,A

40、(2)MOVA,XXH

MOVRO,A

XRLA,RO

第五章

1、什么是中斷和中斷系統(tǒng)?其主要功能是什么?

答:當CPU正在處理某件事情的時候,外部發(fā)生的某T牛事件請求CPU迅速去

處理,于是,CPU暫時中止當前的工作,轉去處理所發(fā)生的事件,中斷服務處理

完該事件以后,再回到原來被終止的地方,繼續(xù)原來的工作。這種過程稱為中斷,

實現(xiàn)這種功能的部件稱為中斷系統(tǒng)。功能:

(1)使計算機具有實時處理能力,能對外界異步發(fā)生的事件作出及時的處理

(2)完全消除了CPU在查詢方式中的等待現(xiàn)象,大大提高了CPU的工作效

(3)實現(xiàn)實時控制

2、試編寫一段對中斷系統(tǒng)初始化的程序,使之允許INTO,INTI,TO,串行口

中斷,且使T0中斷為高優(yōu)先級中斷。

解:MOVIE,#097H

MOVIP,#02H

3、在單片機中,中斷能實現(xiàn)哪些功能?

答:有三種功能:分時操作,實時處理,故障處理

4、89C51共有哪些中斷源?對其中端請求如何進行控制?

答(1)89C51有如下中斷源

①:外部中斷0請求,低電平有效

②:外部中斷1請求,低電平有效

③T0:定時器、計數(shù)器0溢出中斷請求

④T1:定時器、計數(shù)器1溢出中斷請求

⑤TX/RX:串行接口中斷請求

(2)通過對特殊功能寄存器TCON、SCON、正、IP的各位進行置位或復位等

操作,可實現(xiàn)各種中斷控制功能

5、什么是中斷優(yōu)先級?中斷優(yōu)先處理的原則是什么?

答:中斷優(yōu)先級是CPU相應中斷的先后順序。原則:

(1)先響應優(yōu)先級高的中斷請求,再響應優(yōu)先級低的

(2)如果一個中斷請求已經(jīng)被響應,同級的其它中斷請求將被禁止

(3)如果同級的多個請求同時出現(xiàn),則CPU通過內部硬件查詢電路,按查

詢順序確定應該響應哪個中斷請求

查詢順序:外部中斷0-定時器0中斷一外部中斷11定時器1中斷一串行接口

中斷

6、說明外部中斷請求的查詢和響應過程。

答:當CPU執(zhí)行主程序第K條指令,外設向CPU發(fā)出中斷請求,CPU接到中

斷請求信號并在本條指令執(zhí)行完后,中斷主程序的執(zhí)行并保存斷點地址,然后轉

去響應中斷。CPU在每個S5P2期間順序采樣每個中斷源,CPU在下一個機器

周期S6期間按優(yōu)先級111頁序查詢中斷標志,如果查詢到某個中斷標志為1,將在接

下來的機器周期S1期間按優(yōu)先級進行中斷處理,中斷系統(tǒng)通過硬件自動將相應

的中斷矢量地址裝入PC,以便進入相應的中斷服務程序。中斷服務完畢后,CPU

返回到主程序第K+1條指令繼續(xù)執(zhí)行。

7、89c51在什么條件下可響應中斷?

答:

71)有中斷源發(fā)出中斷請求

(2)中斷中允許位EA=1.即CPU開中斷

(3)申請中斷的中斷源的中斷允許位為1,即中斷沒有被屏蔽

(4)無同級或更高級中斷正在服務

(5)當前指令周期已經(jīng)結束

(6)若現(xiàn)行指令為RET;或訪問IE或IP指令時,該指令以及緊接著的另一

條指令已執(zhí)行完畢

8、簡述89c51單片機的中斷響應過程。

答:CPU在每個機器周期S5P2期間順序采樣每個中斷源,CPU在下一個機器

周期S6期間按優(yōu)先級順序查詢中斷標志,如查詢到某個中斷標志為1,將在接下

來的機器周期S1期間按優(yōu)先級進行中斷處理,中斷系統(tǒng)通過硬件自動將相應的

中斷矢量地址裝入PC,以便進入相應的中斷服務程序。一旦響應中斷,89C51

首先置位相應的中斷"優(yōu)先級生效"觸發(fā)器,然后由硬件執(zhí)行一條長調用指令,

把當前的PC值壓入堆棧,以保護斷點,再應的中斷服務的入口地址送入PC,

于是CPU接著從中斷服務程序的入口處開始執(zhí)行。對于有些中斷源,CPU在響

應中斷后會自動清除中斷標志。

9、在89C51內存中,應如何安排程序區(qū)?

答:主程序一般從0030H開始,主程序后T殳是子程序及中斷服務程序。在這

個大家還要清除各個中斷的中斷矢量地址。

10、試述中斷的作用及中斷的全過程。

答:作用:對外部異步發(fā)生的事件作出及時的處理

過程:中斷請求,中斷響應,中斷處理,中斷返回

11、當正在執(zhí)行某一個中斷源的中斷服務程序時,如果有新的中斷請求出現(xiàn),試

問在什么情況下可響應新的中斷請求?在什么情況下不能響應新的中斷請求?

答:(1)符合以下6個條件可響應新的中斷請求:

a)有中斷源發(fā)出中斷請求

b)中斷允許位EA=1,即CPU開中斷

c)申請中斷的中斷源的中斷允許位為1,即中斷沒有被屏蔽d)無同級或更高級

中斷正在被服務

①當前的指令周期已結束

f)若現(xiàn)行指令為RETI%訪問IE或IP指令時,該指令以及緊接著的另一條指令已

被執(zhí)行完

12、89C51單片機外部中斷源有幾種觸發(fā)中斷請求的方法?如何實現(xiàn)中斷請求?

答:有兩種方式:電平觸發(fā)和邊沿觸發(fā)

電平觸發(fā)方式:CPU在每個機器周期的S5P2期間采樣外部中斷引腳的輸入電平。

若為低電平,使IE1QE0)置"1",申請中斷;若為高電平,則lEl(IEO)清零。

邊沿觸發(fā)方式:CPU在每個機器周期S5P2期間采樣外部中斷請求引腳的輸入電

平。如果在相繼的兩個機器周期采樣過程中,一個機器周期采樣到外部中斷請求

為高電平,接著下一個機器周期采樣到外部中斷請求為低電平,則使IE1QEO)置

"1"申請中斷;否則,IE1(IEO)置0。

13、89C51單片機有五個中斷源,但只能設置兩個中斷優(yōu)先級,因此,在中斷優(yōu)

先級安排上受到一定的限制。試問以下幾種中斷優(yōu)先W頁序的安排(級別由高到低)

是否可能:若可能,則應如何設置中斷源的中斷級別:否則,請簡述不可能的理

由。

(1)定時器0,定時器I,外中斷0,外中斷I,串行口中斷。

可以,MOVIP,#0AH

⑵串行口中斷,外中斷0,定時器0,外中斷1,定時器L可以,MOV

IB#10H

(3)外中斷0,定時器1,外中斷1,定時器0,串行口中斷。

不可以,只能設置一級高級優(yōu)先級,如果將INT0J1設置為高級,而T0級

別高于INT1.

(4)外中斷0,外柵1,串行口中斷,定時器0,定時器1??梢?,MOV

IP#15H

⑸串行口中斷,定時器0,外中斷0,外中斷1,定時器1。不可以

(6)外中斷0,外中斷1,定時器0,串行口中斷,定時器1。不可以

⑺外中斷0,定時器1,定時器0,外中斷1,串行口中斷。可以,MOV

IP,#09H

14、89C51各中斷源的中斷標志是如何產(chǎn)生的?又是如何清0的?CPU響應中

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

答:各中斷標志的產(chǎn)生和清"0"如下:

(1)外部中斷類

外部中斷是由外部原因引起的,可以通過兩個固定引腳,即外部中斷。和外部中

斷1輸入信號。

外部中斷0請求信號,由P3.2腳輸入。通過IT0來決定中斷請求信號是低電平

有效還是下跳變有效。一旦輸入信號葭,則向CPU申請中斷,并且使IE0=l。

硬件復位。

外部中斷1請求信號,功能與用法類似外部中斷0

(2)定時中斷類

定時中斷是為滿足定時或計數(shù)溢出處理需要而設置的。當定時器/計數(shù)器中的計數(shù)

結構發(fā)生計數(shù)溢出的,即表明定時時間到或計數(shù)值已滿,這時就以計數(shù)溢出信號

作為中斷請求,去置位一個溢出標志位。這種中斷請求是在單片機芯片內部發(fā)生

的,無需在芯片上設置引入端,但在計數(shù)方式時,中斷源可以由外部引入。

TF0:定時器T0溢出中斷請求。當定時器T0產(chǎn)生溢出時,定時器T0請求標志

TFO=1,請求中斷處理。使用中斷時由硬件復位,在查詢方式下可由軟件復位。

TF1:定時器T1溢出中斷請求。功能與用法類似定時器T0

(3)串行口中斷類

串行口中斷是為串行數(shù)據(jù)的傳送需要而設置的。串行中斷請求也是在單片機芯片

內部發(fā)生的,但當串行口作為接收端時,必須有一完整的串行幀數(shù)據(jù)從RI端引入

芯片,才可能引發(fā)中斷。

RI或TI:串行口中斷請求。當接收或發(fā)送一串幀數(shù)據(jù)時,使內部串行口中斷請求

標志RI或TI=1,并請求中斷。響應后必須軟件復位。

CPU響應中斷時,中斷入口地址如下:

中斷源入口地址

外部中斷00003H

定時器T0中斷OOOBH

外部中斷10013H

定時器T1中斷001BH

串行口中斷0023H

15、中斷響應時間是否為確定不變的?為什么?

答:中斷響應時間不是確定不變的。由于CPU不是在任何情況下對中斷請求都予

以響應的;止矽卜,不同的情況對中斷響應的時間也是不同的。下面以外部中斷為

例,說明中斷響應的時間。

在每個機器周期的S5P2期間,端的電平被所存到TCON的IE0位,CPU在下

一個機器周期才會查詢這些值。這時滿足中斷響應條件,下一條要執(zhí)行的指令將

是一條硬件長調用指令"LCALL",使程序轉入中斷矢量入口。調用本身要用2

個機器周期,這樣,從外部中斷請求有效到開始執(zhí)行中斷服務程序的第一條指令,

至少需要3個機器周期,這是最短的響應時間。

如果遇到中斷受阻的情況,這中斷響應時間會更長一些。例如,當一個同級或更

高級的中斷服務程序正在進行,則附加的等待時間取決于正在進行的中斷服務程

序:如果正在執(zhí)行的一條指令還沒有進行到最后一個機器周期,附加的等待時間

為1~3個機器周期;如果正在執(zhí)行的是RETI指令或者訪問IE或IP的指令,則

附加的等待時間在5個機器周期內。

若系統(tǒng)中只有一個中斷源,則響應時間為3~8個機器周期。

16、中斷響應過程中,為什么通常要保護現(xiàn)場?如何保護?

答:因為一般主程序和中斷服務程序都可能會用到累加器,PSW寄存器及其他一

些寄存器。CPU在進入中斷服務程序后,用到上述寄存器時,就會破壞它原來存

在寄存器中的內容;一旦中斷返回,將會造成主程序的混亂。因而在進入中斷服

務程序后,一般要先保護現(xiàn)場,然后再執(zhí)行中斷處理程序,在返回主程序以前再

恢復現(xiàn)場。

保護方法」般是把累加器、PSW寄存器及其他一些與主程序有關的寄存器壓入堆

棧。在保護現(xiàn)場和恢復現(xiàn)場時,為了不使現(xiàn)場受到破壞或者造成混亂,一般規(guī)定

此時CPU不響應新的中斷請求。這就要求在編寫中斷服務程序時,注意在保護現(xiàn)

場之前要關中斷,在恢復現(xiàn)場之后開中斷。如果在中斷處理時允許有更高級的中

斷打斷它,則在保護現(xiàn)場之后再開中斷,恢復現(xiàn)場之前關中斷。

17、;言又述中斷響應的CPU操作過程,為什么說中斷操作是一個CPU的微查詢

過程?

答:在中斷響應中,CPU要完成以下自主操作過程:

a)置位相應的優(yōu)先級狀態(tài)觸發(fā)器,以標明所響應中斷的優(yōu)先級別b)中斷源標

志清零(TLRI除外)

c)中斷斷點地址裝入堆棧保護(不保護PSW)

d)中斷入口地址裝入PC,以便使程序轉到中斷入口地址處

在計算機內部,中斷表現(xiàn)為CPU的微查詢操作。89C51單片機中,CPU在每個

機器周期的S6狀態(tài),查詢中斷源,并按優(yōu)先級管理規(guī)則處理同時請求的中斷源,

且在下一個機器周期的S1狀態(tài)中,響應最高級中斷請求。

但是以下情況除外:

a)CPU正在處理相同或更高優(yōu)先級中斷

b)多機器周期指令中,還未執(zhí)行到最后一個機器周期

c)正在執(zhí)行中斷系統(tǒng)的SFR操作,如RETI指令及訪問IE、IP等操作時,要延

后一條指令

18、在中斷請求有效并開中斷狀況下,能否保證立即響應中斷?有什么條件?

答:在中斷請求有效并開中斷狀況下,并不能保證立即響應中斷。這是因為,在

計算機內部,中斷表現(xiàn)為CPU的微查詢操作。89C51單片機中,CPU在每個機

器周期的S6狀態(tài)下,查詢中斷源,并按優(yōu)先級管理規(guī)則處理同時請求的中斷源,

且在下一個機器周期的S1狀態(tài)中,響應最高級中斷請求。

在以下情況下,還需要有另外的等待:

a)CPU正在處理相同或更高優(yōu)先級中斷

b)多機器周期指令中,還未執(zhí)行到最后一個機器周期

c)正在執(zhí)行中斷系統(tǒng)的SFR操作,如RETI指令及訪問IE、IP等操作時,要延后

一條指令

第6章習題答案

1、定時器模式2有什么特點?適用于什么場合?

答:(1)模式2把TLO(或TL1)配置成一個可以自動重裝載的8位定時器/計數(shù)

器。TLO計數(shù)溢出時不僅使溢出中斷標志位TFO置1,而且還自動把THO中的

內容重新裝載到TLO中。TLO用作8位計數(shù)器,THO用以保存初值。

(2)用于定時工作方式時間(TFO溢出周期)為,用于計數(shù)工作方式時,最大

計數(shù)長度(THO初值=0)為28=256個夕卜部脈沖。

這種工作方式可省去用戶軟件重裝初值的語句,并可產(chǎn)生相當精確定時時間,特

別適于作串行波特率發(fā)生器。

2、單片機內部定時方式產(chǎn)生頻率為100KHZ等寬矩形波,假定單片機的晶振頻

率為12MHZ,請編程實現(xiàn)。

答:

TO低5位:1BH

TO高8位:FFH

MOVTMOD,#OOH;設置定時器TO工作于模式0

MOVTLO,#1BH;設置5ms定時初值

MOVTHO,#OFFH

SETBTRO;啟動TO

LOOPJBCTFO,LI;查詢到定時時間到?時間到轉L1

SJMPLOOP;時間未到轉LOOP,繼續(xù)查詢

L1:MOVTLO,#1BH;重新置入定時初值

MOVTHO,#OFFH

CPLP1.0;輸出取反,形成等寬矩形波

SJMPLOOP;重復循環(huán)

3、89C51定時器有哪幾種工作模式?有何區(qū)別?

答:有四種工作模式:模式0,模式1,模式2,模式3

(1)模式0:選擇定時器的高8位和低5位組成一個13位定時器/計數(shù)器。

TL低5位溢出時向TH進位,TH溢出時向中斷標志位TF進位,并申請中斷。

定時時間t=(213-初值)x振蕩周期xl2;計數(shù)長度位213=8192個外部脈沖

(2)模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操作。

定時時間t=(216-初值)x振蕩周期xl2;計數(shù)長度位216=65536個外部脈沖

(3)模式2:把TLO和TL1配置成一個自動重裝載的8位定時器/計數(shù)器。

TL用作8位計數(shù)器,TH用以保存初值。TL計數(shù)溢出時不僅使TFO置1,而且

還自動將TH中的內容重新裝載到TL中。

定時時間t=(28-初值)x振蕩周期xl2;計數(shù)長度位28二256個外部脈沖

(4)模式3:對TO和T1不大相同

若設TO位模式3,TLO和THO被分為兩個相互獨立的8位計數(shù)器。TLO為8位

計數(shù)器,功能與模式0和模式1相同,可定時可計數(shù)。

THO僅用作簡單的內部定時功能,它占用了定時器T1的控制位TR1和中斷標志

位TF1,啟動和關閉僅受TR1控制。

定時器T1無工作模式3,但TO在工作模式3時T1仍可設置為0~2。

4、89C51內部設有幾個定時器/計數(shù)器?它們是由哪些特殊功能寄存器組成?

答:89C51單片機內有兩個16位定時器/計數(shù)器,即TO和T1。

TO由兩個8位特殊功能寄存器THO和TLO組成;T1由TH1和TL1組成。

5、定時器用作定時器時,其定時時間與哪些因素有關?作計數(shù)器時,對外界計數(shù)

頻率有何限制?

答:定時時間與定時器的工作模式,初值及振蕩周期有關。

作計數(shù)器時對外界計數(shù)頻率要求最高為機器振蕩頻率的1/24。

6、簡述定時器4種工作模式的特點,如何選擇設定?

答:

71)模式0:選擇定時器的高8位和低5位組成一個13位定時器/計數(shù)器。

TL低5位溢出時向TH進位,TH溢出時向中斷標志位TF進位,并申請中斷。

定時時間t=(213-初值)x振蕩周期xl2;計數(shù)長度位213=8192個外部脈沖

置TMOD中的M1M0為00

(2)模式1:與模式0的唯一差別是寄存器TH和TL以全部16位參與操作。

定時時間t=(216-初值)x振蕩周期xl2;計數(shù)長度位216=65536個外部脈沖

置TMOD中的M1M0為01

(3)模式2:把

溫馨提示

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

評論

0/150

提交評論