單片機課后習題答案_第1頁
單片機課后習題答案_第2頁
單片機課后習題答案_第3頁
單片機課后習題答案_第4頁
單片機課后習題答案_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章答案

[解:MCS-51為主流產(chǎn)品。

MSP430的功能較強。是一種特低功耗的Flash微控制器。主要用于三表及超低功耗場合。

EM78系列單片機采用高速CMOS工藝制造,低功耗設計為低功耗產(chǎn)品,價格較低。具

有三個中斷源、R-OPTION功能、I/O喚醒功能、多功能I/O口等。具有優(yōu)越的數(shù)據(jù)處理性能,

采用RISC結(jié)構(gòu)設計。

PIC系列8位單片機是Microchip公司的產(chǎn)品。CPU采用RISC結(jié)構(gòu),運行速度快,價格

低適于用量大、檔次低、價格敏感的產(chǎn)品。

Motorola是世界上最大的單片機生產(chǎn)廠家之一,品種全、選擇余地大、新產(chǎn)品多。其特

點是噪聲低,抗干擾能力強,比較適合于工控領域及惡劣的環(huán)境。

AVR是增強RISC內(nèi)載Flash的單片機,單片機內(nèi)部32個寄存器全部與ALU直接連接,

突破瓶頸限制,每1MHz可實現(xiàn)1MIPS的處理能力,為高速、低功耗產(chǎn)品。端口有較強的負

載能力,可以直接驅(qū)動LED。支持ISP、IAP,I/O口驅(qū)動能力較強。

2.解:MCS-51單片機在片內(nèi)集成了中央處理器(CPU)、程序存儲器(ROM)、數(shù)據(jù)存儲器

(RAM)、定時器/計數(shù)器、并行I/O接口、串行I/O接口和中斷系統(tǒng)等幾大單元。

CPU是整個單片機的核心部件,由運算器和控制器組成。運算器可以完成算術運算和邏

輯運算,其操作順序在控制器控制下進行??刂破魇怯沙绦蛴嫈?shù)器PC(ProgramCounter)、

指令寄存器IR(InstructionRegister)>指令譯碼器ID(InstructionDecoder定時控制邏輯和

振蕩器OSC等電路組成。CPU根據(jù)PC中的地址將欲執(zhí)行指令的指令碼從存儲器中取出,存

放在IR中,1D對IR中的指令碼進行譯碼,定時控制邏輯在OSC配合下對1D譯碼后的信號

進行分時,以產(chǎn)生執(zhí)行本條指令所需的全部信號。

程序存儲器(ROM)用于存儲程序、常數(shù)、表格等。

數(shù)據(jù)存儲器(RAM)用于存儲數(shù)據(jù)。

8051內(nèi)部有兩個16位可編程序的定時器/計數(shù)器T0和T1,均為二進制加1計數(shù)器。可

用于定時和對外部輸入脈沖的計數(shù)。

8051的中斷系統(tǒng)主要由中斷允許控制器1E和中斷優(yōu)先級控制器IP等電路組成??蓪崿F(xiàn)

對5個中斷源的管理。8051的中斷系統(tǒng)主要由中斷允許控制器IE和中斷優(yōu)先級控制器IP等

電路組成。其中,IE用于控制5個中斷源中哪些中斷請求被允許向CPU提出,哪些中斷源

的中斷請求被禁止:IP用于控制5個中斷源的中斷請求的優(yōu)先權(quán)級別。

I/O接口是MCS-51單片機對外部實現(xiàn)控制和信息交換的必經(jīng)之路,用于信息傳送過程中的

速度匹配和增加它的負載能力。可分為串行和并行I/O接口。

3.解:80c51單片機有4個I/O端口,每個端口都是8位雙向口,共占32根引腳。每個端口

都包括一個鎖存器(即專用寄存器P0?P3)、-個輸入驅(qū)動器和輸入緩沖器。通常把4個端

口稱為P0?P3。在無片外擴展的存儲器的系統(tǒng)中,這4個端口的每-位都可以作為雙向通用

I/O端口使用。在具有片外擴展存儲器的系統(tǒng)中,P2口作為高8位地址線,P0口分時作為低

8位地址線和雙向數(shù)據(jù)總線。

4.解:控制線一共有6條:

(1)ALE/PROG:地址鎖存允許/編程線,配合P0口引腳的第二功能使用。在訪問片外存儲

器時,8051CPU在P0.7-P0.0引腳上輸出片外存儲器低8位地址的同時在ALE/PROG上輸

出一個高電位脈沖,用于把這個片外存儲器低8位地址鎖存到外部專用地址鎖存器,以便空

出P0.7?P0.0引腳線去傳送隨后而來的片外存儲器讀寫數(shù)據(jù)。在不訪問片外存儲器時,8051

自動在ALE/而麗上輸出頻率為fosc/6的脈沖序列。該脈沖序列可用作外部時鐘源或作為定

時脈沖源使用。

(2)EA/Vpp:允許訪問片外存儲器/編程電源線,可以控制8051使用片內(nèi)ROM還是使用

片外ROM。若諉=0,則允許使用片內(nèi)ROM;若IX=1則允許使用片外ROM。

(3)區(qū)的:片外ROM選通線,在執(zhí)行訪問片外ROM的指令MOVC時,8051自動在PSEN

上產(chǎn)生一個負脈沖,用于為片外ROM芯片的選通。其他情況下區(qū)函線均為高電平封鎖狀

態(tài)。

(4)RST/VPD:復位/備用電源線,可以使8051處于復位工作狀態(tài)。

5.解:指令:人為輸入計算機,由計算機識別并執(zhí)行一步步操作的命令的形式稱為指令。

程序:一系列指令的有序集合稱為程序。

程序在計算機中是按序執(zhí)行的,CPU通過程序計數(shù)器PC控制程序的執(zhí)行順序,一般情況下

程序是按序執(zhí)行的,當執(zhí)行轉(zhuǎn)移、調(diào)用、返回等指令時,程序轉(zhuǎn)移到相應的目的地址處執(zhí)行。

CPU根據(jù)程序計數(shù)器PC中的地址將欲執(zhí)行指令的指令碼從存儲器中取出,存放在1R中,ID

對IR中的指令碼進行譯碼,定時控制邏輯在OSC配合下對ID譯碼后的信號進行分時,產(chǎn)生

執(zhí)行本條指令所需的全部信號,完成本條指令的執(zhí)行。

6.解:(1)80C51在結(jié)構(gòu)上的特點

80C51采用將程序存儲器和數(shù)據(jù)存儲器截然分開,分別尋址的結(jié)構(gòu),稱為Harvard

結(jié)構(gòu)。

(2)在物理和邏輯上的地址空間

存儲器上設有4個存儲器空間:片內(nèi)程序存儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器、

片外數(shù)據(jù)存儲器。

在邏輯上有3個存儲器地址空間:片內(nèi)、片外統(tǒng)一的64KB程序存儲器地址空間,片

內(nèi)256B數(shù)據(jù)存儲器地址空間,片外64KB的數(shù)據(jù)存儲器地址空間。

(3)訪問格式

訪問片內(nèi)RAM采用MOV格式

訪問片外RAM采用MOVX格式

7.解:堆棧是一個特殊的存儲區(qū)。主要功能是暫時存放數(shù)據(jù)和地址,通常用來保護斷點和現(xiàn)

場。它的特點是按照''先進后出”的存取數(shù)據(jù)。堆棧指針SP是一個8位寄存器,是用于指

示堆棧的棧頂?shù)刂返募拇嫫鳎鼪Q定了堆棧在內(nèi)部RAM中的物理位置。

8.解:8051有21個特殊功能寄存器(PC除外),它們被離散地分布在內(nèi)部RAM的80H-

FFH地址單元中,共占據(jù)了128個存儲單元,其中有83位可以位尋址。特殊功能寄存器SFR

的分布和功能見教材Pi8表122。

9.解:8051單片機的4個I/0口在結(jié)構(gòu)上是基本相同的,但又各具特點。這四個端口

都是8位雙向口,每個端口都包括一個鎖存器、?個輸出驅(qū)動器和輸入緩沖器。在無片外擴

展存儲器的系統(tǒng)中,這四個端口的每一位都可以作為雙向通用I/0端口使用。在作為一般

的通用I/。輸入時,都必須先向鎖存器寫入“1”,使輸出驅(qū)動場效應管FET截止,以免

誤讀數(shù)據(jù)。各自特點如下:

(1)P0口為雙向8位三態(tài)I/O口,它既可作為通用I/O口,又可作為外部擴展時的數(shù)據(jù)

總線及低8位地址總線的分時復用口。作為通用I/O口時,輸出數(shù)據(jù)可以得到鎖存,不需外

接專用鎖存器;輸入數(shù)據(jù)可以得到緩沖,增加了數(shù)據(jù)輸入的可靠性。每個引腳可驅(qū)動8個TTL

負載。

(2)P1口為8位準雙向I/O口,內(nèi)部具有上拉電阻,一般作通用I/O口使用,它的每一

位都可以分別定義為輸入線或輸出線,作為輸入時,鎖存器必須置1。每個引腳可驅(qū)動4個

TTL負載。

(3)P2口為8位準雙向I/O口,內(nèi)部具有上拉電阻,可直接連接外部I/O設備。它與地

址總線高8位復用,可驅(qū)動4個TTL負載。?般作為外部擴展時的高8位地址總線使用。

(4)P3口為8位準雙向I/O口,內(nèi)部具有上拉電阻,它是雙功能復用口,每個引腳可驅(qū)動4

個TTL負載。作為通用I/O口時?,功能與P1口相同,常用第二功能。作為第二功能使用時?,

各位的作用見教材P23表1.2.5所示。

10.解:數(shù)據(jù)指針DPTR是16位的專用寄存器,它由兩個8位的寄存器DPH(高8位)和

DPL(低8位)組成。專門用來寄存片外RAM及擴展I/O口進行數(shù)據(jù)存取時的地址。編程時,

既可以按16位寄存器來使用,也可以按兩個8位寄存器來使用(即高位字節(jié)寄存器DPH和

低位字節(jié)寄存器DPL)。

DPTR主要是用來保存16位地址,當對64KB外部數(shù)據(jù)存儲器尋址時,可作為間址寄存器使

用。

11.解:程序狀態(tài)字PSW是8位寄存器,用于存放程序運行的狀態(tài)信息,PSW中各位狀態(tài)通

常是在指令執(zhí)行的過程中自動形成的,但也可以由用戶根據(jù)需要采用傳送指令加以改變。各

個標志位的意義如下:

PSW.7(Cy):進位標志位。

PSW.6(AC):輔助進位標志位,又稱為半進位標志位。

PSW.5(F0):用戶標志位。

PSW.4,PSW.3(RS1和RS0):寄存器組選擇位。

PSW.2(OV):溢出標志位。

PSW.1(空缺位):此位未定義。

PSW.O(P):奇偶校驗位

12.解:開機復位后,CPU使用的是第0組工作寄存器。它們的地址是00H—07H。C

PU通過對程序狀態(tài)字PSW中RS1和RS0的設置來確定和改變當前工作寄存器組。

13.解:8051片內(nèi)數(shù)據(jù)存儲器有256B尋址空間。存儲器空間的地址范圍為:00H一—FF

H

在這個存儲器空間又可分為:

基本的數(shù)據(jù)存儲區(qū):00H——7FH,可劃分為工作寄存器、位尋址區(qū)、堆棧與數(shù)據(jù)緩沖

區(qū)。

14.解:片內(nèi)RAM低128單元劃分及主要功能如下:

(1)工作寄存器組(00H——1FH)

這是一個用寄存器直接尋址的區(qū)域,內(nèi)部數(shù)據(jù)RAM區(qū)的0—31,共32個單元。它

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

(2)位尋址區(qū)(20H——2FH)

16個字節(jié)單元,共包含128位,這16個字節(jié)單元既可以進行字節(jié)尋址,又可以實

現(xiàn)位尋址。主要用于位尋址。

(3)堆棧與數(shù)據(jù)緩沖區(qū)(30H——7FH)

用于設置堆棧、存儲數(shù)據(jù)。

15.解:程序存儲器通過詼/Vpp引腳選擇。若函=0,則允許使用片內(nèi)ROM;若瓦=

1則允許使用片外R0Mo

數(shù)據(jù)存儲器通過指令區(qū)分:訪問片內(nèi)RAM采用MOV指令,訪問片外RAM采用MO

VX指令。

16.解:時鐘周期又稱為振蕩周期,由單片機內(nèi)部振蕩電路OSC產(chǎn)生,定義為OSC時鐘頻率

的倒數(shù)。時鐘周期又稱為節(jié)拍(用P表示)。時鐘周期是時序中的最小單位。一個狀態(tài)有兩

個節(jié)拍,

機器周期定義為實現(xiàn)特定功能所需的時間。MCS-51的機器周期由12個時鐘周期構(gòu)成。

執(zhí)行一條指令所需要的時間稱為指令周期,指令周期是時序中的最大單位。由于機器執(zhí)

行不同指令所需的時間不同,因此不同指令所包含的機器周期數(shù)也不盡相同。MCS-51的指

令可能包括1?4個不等的機器周期。

當MCS-51的主頻為12MHz時,一個機器周期為lMSo執(zhí)行一條指令需要的最長時間為

4林s。

17.解:8051單片機復位后機器的初始狀態(tài),即各寄存器的狀態(tài):PC之外,復位操作還對

其它一些特殊功能寄存器有影響,它們的復位狀態(tài)如下:

寄存器復位時內(nèi)容寄存器復位時內(nèi)容

PC0000HTCON0X000000B

ACCOOHTLOOOH

BOOHTHOOOH

PSWOOHTH1OOH

SP07HTH1OOH

DPTR0000HSCONOOH

P0—P3FFHSBUF不確定

TMODXX000000BPCONOXXX0000B

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

第2章答案

1.解:8051的指令系統(tǒng)由111條指令組成。如果按字節(jié)數(shù)分類,有49條單字節(jié)指令46條雙

字節(jié)指令和16條三字節(jié)指令,以單字節(jié)指令為主;如果按照指令執(zhí)行時間分類,有64條單

周期指令、45條雙周期指令和2條四周期指令,以單周期指令為主.

8051的指令系統(tǒng)具有以下特點:

(1)存儲效率高、執(zhí)行速度快,可以進行直接地址到直接地址的數(shù)據(jù)傳送,能把一個并行

I/O口中的內(nèi)容傳送到內(nèi)部RAM單元中而不必經(jīng)過累加器A或工作寄存器Rn。這樣可以大

大提高傳送速度和緩解累加器A的瓶頸效應。

(2)用變址尋址方式訪問程序存儲器中的表格,將程序存儲器單元中的固定常數(shù)或表格字

節(jié)內(nèi)容傳送到累加器A中。這為編成翻譯算法提供了方便。

(3)在算術運算指令中設有乘法和除法指令

(4)指令系統(tǒng)中一些對I/O口進行操作的指令具有“讀——修改——寫”的功能。這一功

能指:在執(zhí)行讀鎖存器的指令時,CPU首先完成將鎖存器的值通過緩沖器BUF2度入內(nèi)部,進

行修改、改變,然后重新寫到鎖存器中去。這種類型指令包含所有的邏輯操作和位操作指令。

(5)8051單片機內(nèi)部有一個布爾處理器,對為地址空間具有豐富的位操作指令。布爾操

作類指令有17條,包括布爾傳送指令、布爾狀態(tài)控制指令、布爾邏輯操作指令、布爾條件轉(zhuǎn)

移指令。

2.解:MCS-51單片機指令系統(tǒng)按功能可分為5類:

(1)數(shù)據(jù)傳送指令

(2)算術運算指令

(3)邏輯運算和移位指令

(4)控制轉(zhuǎn)移指令

(5)位操作指令

MCS-51單片機的指令系統(tǒng)提供了七種尋址方式,其對應的尋址范圍如下表:

尋址方式使用的變量尋址范圍

立即尋址程序存儲器

內(nèi)部RAM—128個字節(jié);

直接尋址特殊功能寄存器SFR

寄存器尋址R0?R7;A、B、DPTR、C

@R0、@R1、SP內(nèi)部RAM、堆棧指針SP

寄存器間接尋址

@R0、@R1、@DPTR外部RAM

變址尋址@A+PC、@A+DPTR程序存儲器

相對尋址PC+偏移量程序存儲器

內(nèi)部RAM低128B位尋址區(qū)

位尋址可位尋址的特殊功能寄存器位

3.解:訪問特殊功能寄存器,應采用直接尋址、位尋址方式。

訪問外部數(shù)據(jù)存儲器,應采用寄存器間接尋址方式。

在0?255B范圍內(nèi),可用寄存器RO、R1間接尋址:

MOVXA,@R0或MOVXA,@R1

MOVX@R0,A或MOVX@R1,A

在。?64KB范圍內(nèi),可用16位寄存器DPTR間接尋址:

MOVXA,@DPTR

MOVX@DPTR,A

4.解:這條指令是在進行BCD碼加法運算時,跟在“ADD”和“ADDC”指令之后,用來

對BCD碼的加法運算結(jié)果自動進行修正的,使其仍為BCD碼表達形式。

在計算機中,遇到十進制調(diào)整指令時,中間結(jié)果的修正是由ALU硬件中的十進制修正電路自

動進行的。用戶不必考慮何時該加“6”,使用時只需在上述加法指令后面緊跟一條“DAA”

指令即可。

5.解:雖然內(nèi)部RAM位尋址區(qū)的位地址范圍00H-7FH與低128個單元的單元地址范圍

00H?7FH形式完全相同,但是在應用中可以通過指令的類型區(qū)分單元地址和位地址。

位尋址的操作只適用于下列位指令,而直接尋址操作對這些指令是無效的。

MOVC,bit

MOVbit,C

CLRbit

SETBbit

CPLbit

ANLC,bit

ANLC,/bit

JBbit,rel

JNBbit,rel

6.解:在實際應用中,可從尋址范圍和指令長度兩個方面來選擇長跳轉(zhuǎn)指令LJMP和短跳轉(zhuǎn)

指令AJMP、長調(diào)用指令LCALL和短調(diào)用指令ACALL?

思考題與習題部分參考答案

長跳轉(zhuǎn)LJMP在64KB范圍內(nèi)轉(zhuǎn)移,而短跳轉(zhuǎn)AJMP只能在2KB空間轉(zhuǎn)移。長調(diào)用LCALL

調(diào)用位于64KB程序空間的子程序,而短調(diào)用ACALL調(diào)用位于2KB程序空間范圍的子程序。

AJMP、ACALL指令代碼長度為2個字節(jié);LJMP、LCALL指令代碼長度為3個字節(jié)。

7.解:指令的轉(zhuǎn)移范圍不同。

SJMP是256B范圍內(nèi)的相對轉(zhuǎn)移指令,AJMP是2KB范圍內(nèi)的無條件短跳轉(zhuǎn)指令,LJMP

是64KB范圍內(nèi)的無條件長跳轉(zhuǎn)指令。

8.解:指令的轉(zhuǎn)移范圍不同.

SJMP是256B范圍內(nèi)的相對轉(zhuǎn)移指令,AJMP是2KB范圍內(nèi)的無條件短跳轉(zhuǎn)指令,LJMP

是64KB范圍內(nèi)的無條件長跳轉(zhuǎn)指令。

9.解:使用@A+DPTR基址變址尋址時,DPTR為常數(shù)且是表格的首地址,A為從表格首址到

被訪問字節(jié)地址的偏移量。

使用@A+PC基址變址尋址時,PC仍是下條指令首地址,而A則是從下條指令首地址到

常數(shù)表格中的被訪問字節(jié)的偏移量。

10.解:結(jié)果為:(A)=30H(RO)=50H(50H)=00H(51H)=30H

11.M:

結(jié)果為:(61H)=24H(62H)=10H(30H)=00H

(31H)=0FFHDPTR=2410HSP=60H

12.解:指令源操作數(shù)的尋址方式執(zhí)行指令后的結(jié)

MOVA,40H直接尋址(A)=50H

MOVRO,A寄存器尋址(R0)=50H

MOVPI,#80H立即尋址(Pl)=80H

MOV@R0,20H寄存器間接尋址(50H)=30H

MOVDPTR,#2000H立即尋址(DPTR)=2000H

MOV40H,30H直接尋址(40H)=40H

MOVR0,30H直接尋址(R0)=40H

MOVDOH,RO直接尋址(D0H)=40H

MOVIOH,#1OH立即尋址(10H)=10H

MOVA,@R0寄存器間接尋址(A)=50H

MOVP2,P1寄存器尋址(P2)=80H

13.解:(1)RI的內(nèi)容傳送到RO;

MOVA,RI

MOVRO,A

7

思考題與習題部分參考答案

(2)片外RAM20H單元內(nèi)容送RO;

MOVDPTR,#0020H

MOVXA,@DPTR

MOVRO,A

(3)片外RAM20H單元的內(nèi)容送片內(nèi)RAM20H單元;

MOVDPTR,#0020H

MOVXA,@DPTR

MOV20H,A

(4)片外RAM1000H單元的內(nèi)容送片內(nèi)RAM20H單元;

MOVDPTR,#1000H

MOVXA,@DPTR

MOV20H,A

(5)ROM2000H單元的內(nèi)容送RO單元;

MOVA,#00H

MOVDPTR,#2000H

MOVCA,@A+DPTR

MOVROH,A

(6)ROM2000H單元的內(nèi)容送片內(nèi)RAM20H單元;

MOVA,#00H

MOVDPTR,#2000H

MOVCA,@A+DPTR

MOV20H,A

(7)ROM2000H單元的內(nèi)容送片外RAM20H單元。

MOVA,#00H

MOVDPTR,#2000H

MOVCA,@A+DPTR

MOVDPTR,#0020H

MOVX@DPTR,A

14.解:

ORG0000H

UMPSTART

ORG0030H

START:MOVA,22H

ADDA,32H

DAA

MOV42H,A

MOVA,23H

ADDCA,33H

DAA

MOV43H,A

SJMP$

8

思考題與習題部分參考答案

END

15.解:

ORG0000H

UMPMAIN

ORG0030H

MAIN:MOVR7,#20H

MOVRI,#40H

MOVDPTR,#300()H

LOOP:MOVA,@R1

MOVX@DPTR,A

INCRI

INCDPTR

DJNZR7,LOOP

SJMP$

END

16.解:

ORG0000H

UMPMAIN

ORG0030H

MAIN:MOVRO,#30H

MOVRI,#00H

MOVR2,#00H

MOVR3,#07H

LP2:MOVA,@R0

ADDA,R2

MOVR2,A

JNCLP1

INCRI

LP1:INCRO

DJNZR3,LP2

MOVR3,#03H

LP3:CLRC

MOVA,RI

RRCA

MOVR1,A

MOVA,R2

RRCA

MOVR2,A

DJNZR3,LP3

MOV3AH,R2

SJMP$

END

17,解:

ORG0000H

LJMPSTART

ORG0030H

9

思考題與習題部分參考答案

START:MOVDPTR,#2001H

MOVXA,@DPTR

MOV30H,A

MOVDPTR,#2002H

MOVXA,@DPTR

ADDA,30H

MOVB,A

MULAB

MOVRI,A

CJNEA,#10,NET1

MOVDPTR,#2000H

MOVX@DPTR,A

SJMPNET3

NET1:JNCNET2

CLRC

MOVA,RI

SUBBA,#10

MOVDPTR,#2000H

MOVX@DPTR,A

SJMPNET3

NET2:MOVA,RI

ADDA,#10

MOVDPTR,#2000H

MOVX@DPTR,A

NET3:SJMP$

END

19.解:

ORG0000H

LJMPMAIN

ORG0030H

MAIN:MOVR2,#100

MOVR3,#00H

MOVR4,#00H

MOVR5,#00H

MOVDPTR,#2000H

LOOP:MOVXA,@DPTR

CJNEA,#00H,NET1

INCR3

INCDPTR

DJNZR2,LOOP

SJMPNET3

NET1:JCNET2

INCR4

INCDPTR

DJNZR2,LOOP

SJMPNET3

NET2:INCR5

INCDPTR

DJNZR2,LOOP

10

思考題與習題部分參考答案

NET3:SJMP$

END

22.解:ORG0000H

LJMPMAIN

ORG0030H

MAIN:

LCALLSUBONE

AJMP$

;SUBONEusedptr,a,3Oh,31h

SUBONE:

MOVDPTR,#2000H

LOOP:

MOVXA,@DPTR

XRLA,#41H

JNZTT

MOVA,30H

MOVDPTR,#20A0H

MOVX@DPTR,A

MOVDPTR,#2OA1H

MOVA,31H

MOVX@DPTR,A

RET

TT:

INCDPTR

MOV30H,DPH

MOV31H,DPL

MOVA,3IH

CJNEA,@OOH,LOOP

RET

END

第3章答案

L解:

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

中止當前的工作,轉(zhuǎn)去處理所發(fā)生的事件,處理完該事件以后,再回到原來被中止的地方,

繼續(xù)原來的工作。這種過程為中斷,實現(xiàn)這種服務的部件稱為中斷系統(tǒng)。

II

思考題與習題部分參考答案

功能:①實時處理,能對外界異步發(fā)生的事件作出及時的處理。②完全消除了CPU在查詢

方式中的等待現(xiàn)象,大大提高了CPU的工作效率。③實現(xiàn)實時控制。

2.解:

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

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

(2)如果一個中斷請求己被響應,同級的其他中斷請求將被禁止。

(3)如果同級的多個中斷請求同時出現(xiàn),CPU則按單片機內(nèi)部的臼然優(yōu)先級順序響應各中

斷請求。

單片機內(nèi)部自然優(yōu)先級順序(由高到低)為:

外部中斷0-定時器0中斷一外部中斷1一定時器1中斷f串行接口中斷。

3.解:

(1)80C51有以下中斷源:

a

外部中斷0(而6)請求,低電平有效。

③外部中斷1(INT1)請求,低電平有效。

④T0:定時器/計數(shù)器0溢出中斷請求。

⑤T1:定時器/計數(shù)器1溢出中斷請求。

TI/RI:串行接口中斷請求。

(2)通過對特殊功能寄存器TCON、SCON、IE、IP的各位進行置位或復位等操作,可實現(xiàn)對

各種中斷的控制功能。

5.解:

單片機一旦響應中斷請求,就由硬件完成以下功能:

(1)根據(jù)響應的中斷源的中斷優(yōu)先級,使相應的優(yōu)先級狀態(tài)觸發(fā)器置1;

(2)執(zhí)行硬件中斷服務子程序調(diào)用,并把當前程序計數(shù)器PC的內(nèi)容壓入堆棧,保護斷

點,尋找中斷源;

(3)清除相應的中斷請求標志位(串行口中斷請求標志RI和TI除卜);

(4)把被響應的中斷源所對應的中斷服務程序的入口地址(中斷矢量)送入PC,從而

轉(zhuǎn)入相應的中斷服務程序。

(5)中斷返回,程序返回斷點處繼續(xù)執(zhí)行。

6.解:

(1)由中斷源提出中斷請求,由中斷控制允許控制決定是否響應中斷,如果允許響應中

斷,則CPU按設定好的優(yōu)先級的順序響應中斷。如果是同一優(yōu)先級的中斷,則按單片機內(nèi)部

的自然優(yōu)先級順序(外部中斷0—定時器0中斷一外部中斷1-定時器1中斷f串行接口中斷)

響應中斷。

12

思考題與習題部分參考答案

CPU響應中斷請求后,就立即轉(zhuǎn)入執(zhí)行中斷服務程序。保護斷點、尋找中斷源、中斷處

理、中斷返回,程序返回斷點處繼續(xù)執(zhí)行。

(2)由中斷允許寄存器IE控制開放和禁止中斷。欲開放某一中斷,則應先開放總中斷允

許(EA置1),然后開放相應中斷的中斷允許(相應位置1);若要要禁止中斷,則EA置。即

可。

(3)由中斷優(yōu)先級控制寄存器IP控制中斷優(yōu)先級,相應位置1,則設為高級中斷,置0

則為低級。其中:PS為串行中斷優(yōu)先級,PT1(O)為定時中斷1(0)優(yōu)先級,PX1(O)外部中斷

1(0)優(yōu)先級。

7.解:

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

(2)中斷總允許控制位EA=1,CPU開放總中斷。

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

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

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

(6)若現(xiàn)行指令為RETI或訪問IE或IP指令時,讀指令以及緊接著的另一條指令已執(zhí)行

完畢。

滿足以上條件,則CPU響應響應中斷元的中斷請求。

8.解:ORG0000H

LJMPMAIN

ORG0013H

UMPINTI

ORG0030H

MIAN:SETBEA

SETBEXI

SETBPX1

CLRIT1

END

9.解:

中斷服務程序的入口地址如下表:

中斷源中斷矢量

外部中斷0(INTO)0003H

定時器T0中斷OOOBH

外部中斷1(而i)0013H

定時器T1中斷001BH

串行口中斷0023H

13

思考題與習題部分參考答案

11.解:

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

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

為低電平,便置lEl(IEO)為“1”,申請中斷;若外部中斷引腳為高電平,則IEMIEO)清零。

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

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

下一個機器周期采樣到外部中斷請求為低電平,則使lEl(IEO)置1,申請中斷;否則,IEK1E0)

置0。

12.解:

可以。在相應的中斷源的中斷程序入口地址處,用一條長跳轉(zhuǎn)指令(LJMPAddl6),轉(zhuǎn)

到相應64K程序存儲器的任意地址(Addl6)處,執(zhí)行相應的中斷程序。

14.解:

80c51單片機片內(nèi)設有2個定時器/計數(shù)器:定時器/計數(shù)器TO和定時器/計數(shù)器T1,

T0由THO、TL0組成,T1由TH1、TL1組成。TO、T1由特殊功能寄存器TMOD、TCON控

制。

6解:作定時器時,計數(shù)脈沖來自單片機內(nèi)部,是由單片機晶振經(jīng)過12分頻后獲得的脈沖。

作為計數(shù)器時,計數(shù)脈沖來自單片機的外部,即TO與T1兩個引用的輸入脈沖。

17.解:

(1)工作方式0:13位定時器/計數(shù)器工作方式。

工作方式0由TH0的全部8位和TL0的低5位構(gòu)成13位加1計數(shù)器,此時TL0的高3位未用。

在計數(shù)過程中,當TL0的低5位溢出時,都會向TH0進位,而全部13位計數(shù)器溢出時,則計數(shù)

器溢出標志位TF0置位。

(2)工作方式1:16位的定時器/計數(shù)器方式。

工作方式1由TH0作為高8位,TL0為低8位,在計數(shù)過程中,當全部16位計數(shù)器溢

出時,則計數(shù)器溢出標志位TFO置位。

(3)工作方式2:自動重新裝入計數(shù)初值的8位定時器/計數(shù)器工作方式。

工作方式2的16位定時器/計數(shù)器被拆成兩個8位寄存器TH0和TLO,CPU在對它們初始化

時必須裝入相同的定時器/計數(shù)器初值。定時器/計數(shù)器啟動后,TL0按8位加1計數(shù)器計數(shù),當

TL0計數(shù)溢出時,置位TF0的同時又從預置寄存器TH0中重新獲得計數(shù)初值并啟動計數(shù)。如此

反復。適合于需要重復計數(shù)的應用場合,也可以當做串行數(shù)據(jù)通信的波特率發(fā)生器使用。

(4)工作方式3:兩個8位定時器/計數(shù)器(僅適用于T0)。

14

思考題與習題部分參考答案

在工作方式3時,定時器/計數(shù)器0被拆成兩個獨立的8位計數(shù)器TL0和TH0。其中,

TL0既可以作計數(shù)器使用,也可以作為定時器使用,定時器/計數(shù)器0的各控制位和引腳信號

全歸它使用.其功能和操作與方式0或方式1完全相同。TH0只能作為簡單的定時器使用,

只能借用定時器/計數(shù)器1的控制位TR1和TF1,也就是以計數(shù)溢出去置位TF1,TR1則負責

控制TH0定時的啟動和停止。

?般情況下,只有在T1以工作方式2運行(當波特率發(fā)生器用)時,才允許T0工作于

方式3。

TMOD用于控制定時器/計數(shù)器T0和T1的工作方式,M1M0為工作方式選擇位。

M1MO=OO方式0,13位定時器/計數(shù)器;

MIMOOl方式1,16位定時器/計數(shù)器;

M1MO=1O方式2,自動重新裝入計數(shù)初值的8位定時器/計數(shù)器;

M1MO=11方式3,兩個8位定時器/計數(shù)器(僅適用于TO)。

C廳為定時方式/計數(shù)方式選擇位。若設定C廳=0,則選擇定時器工作方式;若設定

C/T=l,則選擇計數(shù)器工作方式。一個定時器/計數(shù)器同一時刻或者作定時用,或者作計數(shù)用,

不能同時既作定時又作計數(shù)用。

GATE:門控位。它的狀態(tài)決定了定時器/計數(shù)器啟/??刂迫Q于TR0還是取決于TR0

和而5引腳兩個條件的組合。若GATE=0,貝IJ只由TCON中的啟/??刂莆籘R0控制定時器/

計數(shù)器的啟/停。此時,只要TR0=l,則接通模擬開關,使計數(shù)器進行加法計數(shù),定時器/計數(shù)

器啟動工作。而如果TR0=0,則斷開模擬開關,定時器/計數(shù)器停止工作。若GATE=1,由外

部中斷請求信號而5和TCON中的啟/停控制位TR0組合狀態(tài)控制定時器/計數(shù)器的啟/停。

只有TR0=l,且而5弓I腳也是高電平,才能啟動定時器/計數(shù)器工作,否則,定時器/計數(shù)器

停止工作。

定時器/計數(shù)器的定時器/計數(shù)器范圍為:

工作方式0:13位定時器/計數(shù)器方式,因此,最多可以計到2%也就是8192次。

工作方式1:16位定時器/計數(shù)器方式,因此,最多可以計到2叱也就是65536次。

工作方式2和工作方式3:都是8位的定時器/計數(shù)器方式,因此,最多可以計到2\也

說是256次。

18.解:

設定好定時器的定時時間,采用中斷方式用軟件設置計數(shù)次數(shù),進行溢出次數(shù)累計,從

而得到較長的時間。

20.解:

ORG0000H

LJMPSTART

ORG01OOH

START:MOVSP,#60H

15

思考題與習題部分參考答案

MOVTMOD,#0211

MOVTIIO,#0E7H

MOVTLO,#0E7H

CLRPl.2

SETBTRO

HIGHO:SETBPL2

HIGH1:JBCTFO,LOWO

AJMPHIGI11

LOWO:MOVR7,#7

CLRPl.2

L0W1:JBCTFO,L0W2

AJMPL0W1

L0W2:DJNZR7,L0W1

AJMPHIGIIO

END

21.解:選擇定時器TO,工作方式1,定時500us,則機器周期T=lus.則(2-x)=500,

x=65036D=0FEOCH.

程序:

ORGOOOOH

MOVTMOD,#O1H

MOVTHO,#0FEH

MOVTLO,#OCH

SETBTRO

DEL:MOVR7,#4

D500:JBCTFO,D2

AJMPD500

D2:CPLP1.0

MOVTHO,#0FEH

MOVTLO,#OCH

DJNZR7,D500

CPLP1.1

AJMPDEL

SJMP$

END

16

思考題與習題部分參考答案

22.解:

ORG0000H

UMPSTART

ORG0030H

START:MOVTMOD,#09H;TO方式1,GATE=1

MOVTHO,#00H

MOVTLO,#OOH

MOVRO,#4EH

WAIT1:JBP3.2,WAIT1;等待INTO變低

SETBTRO;啟動TO計數(shù)

WAIT2:JNBP3.2,WAIT2;等待INTO變高

WAIT3:JBP3.2,WAIT3;等待而1變低

CLRTRO

MOV@R0,TLO

INCRO

MOV@R0,THO

MOVRI,#50H

MOVR5,#3H

CLRA

LOOP1:MOV@R1,A

INCRI

DJNZR5,LOOP1

MOVR7,#10H

L00P2:MOVRO,#4EH

MOVR6,#2H

CLRC

L00P3:MOVA,@R0

CLRA

MOV@R0,A

INCRO

DJNZR6,LOOP3

MOVR5,#3

MOVRI,#50H

LOOP4:MOVA,@R1

ADDCA,@R1

DAA

17

思考題與習題部分參考答案

MOV@R1,A

INCRI

DJNZR5,L00P4

DJNZR7,L00P2

SJMPS

END

23.解::

為了衡量串行通信的速度,應該有一個測量單位,在數(shù)據(jù)通信中,描述數(shù)據(jù)傳送速度的

方式有3種:波特率定義為每秒傳送信號的數(shù)量,單位為波特(Baud)。比特率定義為每秒

傳送二進制數(shù)的信號數(shù)(或每秒傳送二進制碼元的個數(shù)),單位是bps(bitpersecond)或?qū)?/p>

成b/s(位/秒。數(shù)據(jù)傳送速率(或字符傳送速率)定義為每秒傳送多少個字符(或單位時間內(nèi)

平均數(shù)據(jù)傳移速率,單位是字符/秒。

在串行通信中,傳送的信號可能是二進制、八進制或十進制等。只有在傳送的信號是二

進制信號時,波特率才與比特率數(shù)值上相等。而在采用調(diào)制技術進行串行通信時,波特率是

描述載波信號每秒鐘變化為信號的數(shù)量(又稱為調(diào)制速率)。在這種情況下,波特率與比特率

在數(shù)值上可能不相等。

24.解:

異步通信中,接收器和發(fā)送器有各自的時鐘,數(shù)據(jù)常以字符為單位組成字符幀傳送,用

一幀來表示一個字符,其字符幀的數(shù)據(jù)格式為:在一幀格式中,先是一個起始位“0”(低&

平),然后是5?8個數(shù)據(jù)位,規(guī)定低位在前,高位在后,接下來是1位奇偶校驗位(可以省

略),最后是1?2位的停止位“1”(高電平)。

異步通信的優(yōu)點是不需要傳送同步脈沖,可靠性高,所需設備簡單;缺點是字符幀中因包含

有起始位和停止位而降低了有效數(shù)據(jù)的傳輸速率。

27.解:

串行接口的接收和發(fā)送是對同一地址(99H)兩個物理空間的特殊功能寄存器SBUF進行讀

或?qū)懙?。當向SBUF發(fā)“寫“命令時(執(zhí)行"MOVSBUF,A”指令),即向發(fā)送緩沖器SBUF裝載并開始

由TXD引腳向外發(fā)送幀數(shù)據(jù),發(fā)送完使發(fā)送中斷標志位TI=1。在滿足串行接口接收中斷標志

位RMSC0N.0)=0的條件下,置允許接收位REN(SCON.4)=1,就會接收一幀數(shù)據(jù)進入移位寄存器,

并裝載到接收SBUF中,同時使Rl=l。當發(fā)讀SBUF命令時?(執(zhí)行”MOVA,SBUF”指令),便從接收

緩沖器SBUF讀取信息通過80c51內(nèi)部總線送CPU。

32.解:

18

思考題與習題部分參考答案

主程序框圖如下:

程序如下:

ORG0040H

MOVSCON

溫馨提示

  • 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

提交評論