單片微型計(jì)算機(jī)原理與接口技術(shù)答案(第二版)_第1頁(yè)
單片微型計(jì)算機(jī)原理與接口技術(shù)答案(第二版)_第2頁(yè)
單片微型計(jì)算機(jī)原理與接口技術(shù)答案(第二版)_第3頁(yè)
單片微型計(jì)算機(jī)原理與接口技術(shù)答案(第二版)_第4頁(yè)
單片微型計(jì)算機(jī)原理與接口技術(shù)答案(第二版)_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

思考與練習(xí)題解析

第2章【單片機(jī)的基本結(jié)構(gòu)】

[2-1]8()051單片機(jī)在片內(nèi)集成了哪些主要邏輯功能部件?各個(gè)邏輯部件的最主要功能是什

么?

【答】80c51單片機(jī)在片內(nèi)主要包含中央處理器CPU(算術(shù)邏輯單元ALU及控制器等)、

只讀存儲(chǔ)器ROM、讀/寫(xiě)存儲(chǔ)器RAM、定時(shí)器/計(jì)數(shù)器、并行I/O口Po?P3、串行口、

中斷系統(tǒng)以及定時(shí)控制邏輯電路等,各部分通過(guò)內(nèi)部總線相連。

1.中央處理器(CPU)

單片機(jī)中的中央處理器和通用微處理器基本相同,是單片機(jī)的最核心部分,主要完成運(yùn)

算和控制功能,又增設(shè)了“面向控制”的處理功能,增強(qiáng)了實(shí)時(shí)性。80c51的CPU是一個(gè)字

長(zhǎng)為8位的中央處理單元。

2.內(nèi)部程序存儲(chǔ)器

根據(jù)內(nèi)部是否帶有程序存儲(chǔ)器而形成三種型號(hào):內(nèi)部沒(méi)有程序存儲(chǔ)器的稱為80c31;內(nèi)

部帶ROM的稱為80c51,80c51共有4KB掩膜ROM;內(nèi)部以EPROM代替RoM的稱為87c51。

程序存儲(chǔ)器用于存放程序和表格、原始數(shù)據(jù)等。

3.內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)

在單片機(jī)中,用讀/寫(xiě)存儲(chǔ)器(RAM)來(lái)存儲(chǔ)程序在運(yùn)行期間的工作變量和數(shù)據(jù)。80c51中

共有256個(gè)RAM單元。

4.I/0□

單片機(jī)提供了功能強(qiáng)、使用靈活的引腳,用于檢測(cè)與控制。有些I/O引腳還具有

多種功能,比如可以作為數(shù)據(jù)總線的數(shù)據(jù)線、地址總線的地址線或控制總線的控制線等。

有的單片機(jī)1/0引腳的驅(qū)動(dòng)能力增大。

5.串行I/O□

目前高檔8位單片機(jī)均設(shè)置了全雙工串行1/0口,用以實(shí)現(xiàn)與某些終端設(shè)備進(jìn)行串行

通信,或與一些特殊功能的器件相連的能力,甚至用多個(gè)單片機(jī)相連構(gòu)成多機(jī)系統(tǒng)。有些型

號(hào)的單片機(jī)內(nèi)部還包含兩個(gè)串行I/O口。

6?定時(shí)器/計(jì)數(shù)器

80C51單片機(jī)內(nèi)部共有兩個(gè)16位定時(shí)器/計(jì)數(shù)器,80C52則有3個(gè)16位定時(shí)器/

計(jì)數(shù)器。

定時(shí)器/計(jì)數(shù)器可以編程實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能。

7.中斷系統(tǒng)

80c51單片機(jī)的中斷功能較強(qiáng),具有內(nèi)、外共5個(gè)中斷源,具有兩個(gè)中斷優(yōu)先級(jí)。

8.定時(shí)電路及元件

單片機(jī)內(nèi)部設(shè)有定時(shí)電路,只需外接振蕩元件。近年來(lái)有些單片機(jī)將振蕩元件也集

成到

芯片內(nèi)部。單片機(jī)整個(gè)工作是在時(shí)鐘信號(hào)的驅(qū)動(dòng)下,按照嚴(yán)格的時(shí)序有規(guī)律地一個(gè)節(jié)拍

一個(gè)

節(jié)拍地執(zhí)行各種操作。

[2-2]80c51單片機(jī)引腳有哪些第二功能?

【答】80C51單片機(jī)的P0、P2和P3引腳都具有第二功能。

第一功能第二變異功能

P0.0-P0.7地址總線Ao~A7/數(shù)據(jù)總線D0~D7

P2.0-P2.7地址總線A8-A15

P3.0RXD(串行輸入口)

P3.1TXD(串行輸出口)

P3.2INTO外部中斷0)

P3.3IINT1(外部中斷1)

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

P3.5T1(定時(shí)器/計(jì)數(shù)器0的外部輸出)

P3.6WR(外部數(shù)據(jù)存儲(chǔ)器或1/0的寫(xiě)選通)

P3.7RD外部數(shù)據(jù)存儲(chǔ)器或1/0的讀選通)

[2-3]程序計(jì)數(shù)器PC和數(shù)據(jù)指針DPTR有哪些異同?

【答】程序計(jì)數(shù)器PC中存放的是下一條將要從程序存儲(chǔ)器中取出的指令的地址。DPTR是數(shù)

據(jù)指針,在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或I/O時(shí),作為地址使用;在訪問(wèn)程序存儲(chǔ)器時(shí),作為基

址寄存器。

①PC和DPTR都是與地址有關(guān)的16位寄存器。其中PC與程序存儲(chǔ)器的地址有關(guān),而DPTR

與數(shù)據(jù)存儲(chǔ)器或I/。的端口地址有關(guān)。作為地址寄存器使用時(shí),PC與DPTR都是通過(guò)P0和

P2口輸出的。PC的輸出與ALE及PSEN信號(hào)有關(guān),DPTR的輸出則與ALE、WR和RD信號(hào)有

關(guān)。

②PC只能作為16位寄存器。PC是不可訪問(wèn)的,它不屬于特殊功能寄存器,有自己獨(dú)特的

變化方式。DPTR可以作為16位寄存器,也可以作為兩個(gè)8位寄存器DPL和DPH。DPTR是

可以訪問(wèn)的,DPL和DPH都位于特殊功能寄存器區(qū)中。

[2-4]80C51單片機(jī)的存儲(chǔ)器在結(jié)構(gòu)上有何特點(diǎn)?在物理上和邏輯上各有哪兒種地址空

間?訪問(wèn)片內(nèi)RAM和片外RAM的指令格式有何區(qū)別?

【答】80c51單片機(jī)采用哈佛(Har—yard)結(jié)構(gòu),即將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開(kāi),分

別進(jìn)行尋址。不僅在片內(nèi)駐留一定容量的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器及眾多的特殊功能寄存

器,而且還具有較強(qiáng)的外部存儲(chǔ)器擴(kuò)展能力,擴(kuò)展的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器尋址范圍都可

達(dá)64KB?

1.在物理上設(shè)有4個(gè)存儲(chǔ)器空間

?片內(nèi)程序存儲(chǔ)器:

?片外程序存儲(chǔ)器;

?片內(nèi)數(shù)據(jù)存儲(chǔ)器:

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

2.在邏輯上設(shè)有3個(gè)存儲(chǔ)器地址空間

?片內(nèi)、片外統(tǒng)一的64KB程序存儲(chǔ)器地址空間。

?片內(nèi)256字節(jié)(80C52為384字節(jié))數(shù)據(jù)存儲(chǔ)器地址空間。

片內(nèi)數(shù)據(jù)存儲(chǔ)器空間在物理上又包含兩部分:

?對(duì)于80c51型單片機(jī),0?127字節(jié)為片內(nèi)數(shù)據(jù)存儲(chǔ)器空間;128?255字節(jié)為特殊

功能寄存器(SFR)空間(實(shí)際僅占用了20多個(gè)字節(jié))。

?對(duì)于80c52型單片機(jī),。?127字節(jié)為片內(nèi)數(shù)據(jù)存儲(chǔ)器空間:128?255字節(jié)共128

個(gè)字節(jié)是數(shù)據(jù)存儲(chǔ)器和特殊功能寄存器地址重疊空間。

片外64KB的數(shù)據(jù)存儲(chǔ)器地址空間。

在訪問(wèn)3個(gè)不同的邏輯空間時(shí),應(yīng)采用不同形式的指令,以產(chǎn)生不同存儲(chǔ)空間的選

通信號(hào)。訪問(wèn)片內(nèi)RAM采用MOV指令,訪問(wèn)片外RAM則一定要采用MOVX指令,因?yàn)?/p>

MOVX指令會(huì)產(chǎn)生控制信號(hào)RD或WR,用來(lái)訪問(wèn)片外RAM。訪問(wèn)程序存儲(chǔ)器地址空間,則

應(yīng)采用MOVC指令。

[2—5]80C51單片機(jī)的EA信號(hào)有什么功能?在使用80C51時(shí),EA信號(hào)引腳應(yīng)如何處理?在

使用80c31時(shí),EA信號(hào)引腳應(yīng)如何處理?

【答】80C51單片機(jī)的EA信號(hào)被稱為“片外程序存儲(chǔ)器訪問(wèn)允許信號(hào)”。CPU訪問(wèn)片內(nèi)還是

片外程序存儲(chǔ)器,可由EA引腳所接的電平來(lái)確定:

?EA引腳接高電平時(shí),程序從片內(nèi)程序存儲(chǔ)器地址為0000H開(kāi)始執(zhí)行,即訪問(wèn)片內(nèi)

存儲(chǔ)器;當(dāng)PC值超出片內(nèi)ROM容量時(shí),程序會(huì)自動(dòng)轉(zhuǎn)向片外程序存儲(chǔ)器空間執(zhí)

行。片內(nèi)和片外的程序存儲(chǔ)器地址空間是連續(xù)的。

?EA引腳接低電平時(shí),迫使系統(tǒng)全部執(zhí)行片外程序存儲(chǔ)器0000H開(kāi)始存放的程序。

對(duì)于有片內(nèi)ROM的80C51/87C51單片機(jī),應(yīng)將EA引腳接高電平。在使用80C31

單片機(jī)時(shí),EA信號(hào)引腳應(yīng)接低電平,即此時(shí)程序存儲(chǔ)器全部為外部擴(kuò)展。

[2-6]80C51單片機(jī)片內(nèi)RAM低128個(gè)存儲(chǔ)單元?jiǎng)澐譃槟?個(gè)主要部分?各部分主要功

能是什么?

【答】80c51片內(nèi)RAM的低128個(gè)存儲(chǔ)單元?jiǎng)澐譃?個(gè)主要部分:

?寄存器區(qū)。共4組寄存器,每組8個(gè)存儲(chǔ)單元,各組以R0?R7作為單元編號(hào)。常用

于保存操作數(shù)及中間結(jié)果等。:R0?R7也稱為“通用工作寄存器”,占用00H?:LFH共32個(gè)

單元地址。

?位尋址區(qū)。單元地址為20H~2FH,既可作為一般RAM單元使用,按字節(jié)進(jìn)行操作,

也可對(duì)單元中的每一位進(jìn)行位操作。因此,稱為“位尋址區(qū)”。尋址區(qū)共有16個(gè)RAM單元,

共計(jì)128位,位地址為OOH?7FH。

?用戶RAM區(qū)。在內(nèi)部RAM低128單元中,除去前面兩個(gè)區(qū),剩下80個(gè)單元,單元

地址為30H?7FH。在用戶RAM區(qū)內(nèi)可以設(shè)置堆棧區(qū)。

[2-7]程序存儲(chǔ)器的哪些單元被保留用于特定場(chǎng)合?

【答】80c51單片機(jī)復(fù)位后,程序計(jì)數(shù)器PC的地址為0000H,所以系統(tǒng)從0000H單元開(kāi)

始取指,并執(zhí)行程序。0000H是系統(tǒng)的啟動(dòng)地址,一般在該單元設(shè)置一條絕對(duì)轉(zhuǎn)移指令,使

之轉(zhuǎn)向用戶主程序處執(zhí)行。

0003H?002DH單元被保留用于6個(gè)中斷源的中斷服務(wù)程序的入口地址,故有以下7個(gè)

特定地址被保留:

復(fù)位0000H

外部中斷00003H

計(jì)時(shí)器TO溢出OOOBH

外部中斷10013H

計(jì)時(shí)器T1溢出001BH

串行口中斷0023H

計(jì)時(shí)器T2/T2EX002BH(僅對(duì)80C52單片機(jī))

由于每個(gè)中斷入口之間的間隔僅為8個(gè)地址單元,所以在程序設(shè)計(jì)時(shí),通常在這些中斷

入口處設(shè)置一條無(wú)條件轉(zhuǎn)移指令,使之轉(zhuǎn)向?qū)?yīng)的中斷服務(wù)子程序處執(zhí)行。

【2一8】80C51單片機(jī)設(shè)有4個(gè)通用工作寄存器組,有什么特點(diǎn)?如何選用?如何實(shí)現(xiàn)工作寄

存器的現(xiàn)場(chǎng)保護(hù)?

【答】片內(nèi)數(shù)據(jù)RAM區(qū)的。?31(OOH?1FH),共32個(gè)單元,是4個(gè)通用工作寄存器組,每

個(gè)組包含8個(gè)8位寄存器,編號(hào)為R0?R7,工作寄存器組如表2-1所列。在某一時(shí)刻,只能

選用一個(gè)寄存器組。可以通過(guò)軟件對(duì)程序狀態(tài)字PSW中:RSO、RSI兩

位的設(shè)置來(lái)實(shí)現(xiàn)。設(shè)置RSO,RSI時(shí),可以對(duì)PSW采用字節(jié)尋址方式,也可以采用位尋址方

式,間接或直接修改RSO、RSI的內(nèi)容。例如,若.RSO、RSI均為L(zhǎng)則選用工作寄存器3組

為當(dāng)前工作寄存器。若需要選用工作寄存器2組,則只需將RSO改成。.可用位尋址方式

(即“CLRPSW.3";其中:PSW.3為RSO位的符號(hào)地址)來(lái)實(shí)現(xiàn)。特別是在中斷嵌套時(shí),只要通

過(guò)軟件對(duì)程序狀態(tài)字PSW中的RSO、RSI兩位進(jìn)行設(shè)置,切換工作寄存器組,就可以極其方

便地實(shí)現(xiàn)對(duì)工作寄存器的現(xiàn)場(chǎng)保護(hù)。

[2-9]什么是堆棧?堆棧有哪些功能?設(shè)計(jì)時(shí),為什么還要對(duì)SP重新賦值?

表2—1工作寄存器組

11111

IRSI|RS0|組號(hào)1寄存器R0?R7地址|

1111

1111

|0101。組|00H?07H

11II

1111

|01111組I08H?OFH

11II

1111

111012組|:10H?17H

1III

111

11113組|18H?1FH

111??

堆棧指針SP的作用是什么?在程序

【答】堆棧是在片內(nèi)數(shù)據(jù)RAM區(qū)中,數(shù)據(jù)按照“先進(jìn)后出”或“后進(jìn)先出”原則進(jìn)行管理

的區(qū)域。堆棧功能有兩個(gè):保護(hù)斷點(diǎn)和保護(hù)數(shù)據(jù)。在子程序調(diào)用和中斷操作時(shí)這兩個(gè)功能特

別有用。在80c51單片機(jī)中,堆棧在子程序調(diào)用和中斷時(shí)會(huì)把斷點(diǎn)地址自動(dòng)進(jìn)棧和出棧。進(jìn)

棧和出棧的指令(PUSH、POP)操作可用于保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)。由于子程序調(diào)用和中斷都允

許嵌套,并可以多級(jí)嵌套,而現(xiàn)場(chǎng)的保護(hù)也往往使用堆棧,所以一定要注意給堆棧以一定的

深度,以免造成堆棧內(nèi)容的破壞而引起程序執(zhí)行的“跑飛”。

堆棧指針SP在80C51中存放當(dāng)前的堆棧棧頂所指存儲(chǔ)單元地址的一個(gè)8位寄存器。

80c51單片機(jī)的堆棧是向上生成的,即進(jìn)棧時(shí)SP的內(nèi)容是增加的;出棧時(shí)SP的內(nèi)容是減少

的。

系統(tǒng)復(fù)位后。80c51的SP內(nèi)容為07H。若不重新定義,則以07H為棧底,壓棧的內(nèi)容

從08H單元開(kāi)始存放。但工作寄存器R0-R7有4組,占有內(nèi)部RAM地址為00H?1FH,位

尋址區(qū)占有內(nèi)部RAM地址為20H?2FH。若程序中使用了工作寄存器1?3組或位尋址區(qū),

則必須通過(guò)軟件對(duì)SP的內(nèi)容重新定義,使堆棧區(qū)設(shè)定在片內(nèi)數(shù)據(jù)RAM區(qū)中的某一區(qū)域內(nèi)

(如30H),堆棧深度不能超過(guò)片內(nèi)RAM空間。

[2-10]80C51單片機(jī)的特殊功能寄存器SFR區(qū)有哪些特點(diǎn)?

【答】特殊功能寄存器SFR區(qū)是80c51單片機(jī)中各功能部件所對(duì)應(yīng)的寄存器區(qū),用來(lái)存放相

應(yīng)功能部件的控制命令寄存器、狀態(tài)寄存器或數(shù)據(jù)寄存器的區(qū)域。這是80C51系列單片機(jī)中

最有特色的部分。

80C51系列單片機(jī)設(shè)有128字節(jié)片內(nèi)數(shù)據(jù)RAM結(jié)構(gòu)的特殊功能寄存器區(qū)。除程序計(jì)數(shù)

器PC和4個(gè)通用工作寄存器組外,其余所有的寄存器都在這個(gè)地址空間之內(nèi)。特殊功能寄

存器在128字節(jié)空間中只分布了很小部分,這為80C51單片機(jī)系列功能的增加提供了極大

的可能性。所有80C51單片機(jī)系列功能部件的增加和擴(kuò)展幾乎都是通過(guò)增加特殊功能寄存

器來(lái)達(dá)到的。

在80C51的21個(gè)特殊功能寄存器中,字節(jié)地址中低位地址為0H或8H的特殊功能寄存

器,除有字節(jié)尋址能力外,還有位尋址能力。其中對(duì)于P0?P1口4個(gè)特殊功能寄存器的位

尋址使1/0的控制功能得到了增強(qiáng)。

[2-11]80C51單片機(jī)的布爾處理機(jī)包括哪些部分?它們具有哪些功能?共有多少個(gè)單元可以

位尋址?

【答】在80c51單片機(jī)系統(tǒng)中,專門設(shè)置了一個(gè)結(jié)構(gòu)完整、功能極強(qiáng)的布爾(位)處理機(jī)。這

是一個(gè)完整的一位微計(jì)算機(jī),它具有自己的CPU、寄存器、1/0、存儲(chǔ)器和指令集。80C51單

片機(jī)把8位機(jī)和布爾(位)處理機(jī)的硬件資源復(fù)合在一起,這是80C51系列單片機(jī)的突出優(yōu)點(diǎn)

之一,給實(shí)際應(yīng)用帶來(lái)了極大的方便。

布爾處理機(jī)系統(tǒng)包括以下幾個(gè)功能部件。

?位累加器:借用進(jìn)位標(biāo)志位CY。在布爾運(yùn)算中,CY既是數(shù)據(jù)源之一,又是運(yùn)算結(jié)果的存

放處和位數(shù)據(jù)傳送的中心。根據(jù)CY的狀態(tài)實(shí)現(xiàn)程序條件轉(zhuǎn)移:JCrel、JNCrel

?位尋址的RAM:內(nèi)部RAM位尋址區(qū)中的。?127位(20H?2FH)。

?位尋址的寄存器:特殊功能寄存器SF、R中的可位尋址的位?

?位尋址的I/。口:并行I/??谥锌晌粚ぶ返奈唬ㄈ鏟l.0)o

?位操作指令系統(tǒng):位操作指令可實(shí)現(xiàn)對(duì)位的置位、清零、取反、位狀態(tài)判跳、傳送、位邏

輯運(yùn)算、位輸入/輸出等操作。

布爾處理機(jī)的程序存儲(chǔ)器和ALU與字節(jié)處理器合用。利用內(nèi)部并行1/0口的位操作,提

高了測(cè)控速度,增強(qiáng)了實(shí)時(shí)性。利用位邏輯操作功能把邏輯表達(dá)式直接變換成軟件進(jìn)行設(shè)計(jì)

和運(yùn)算,免去了過(guò)多的數(shù)據(jù)往返傳送、字節(jié)屏蔽和測(cè)試分支,大大簡(jiǎn)化了編程,增強(qiáng)了實(shí)時(shí)

性能。還可實(shí)現(xiàn)復(fù)雜的組合邏輯處理功能。因此,一位機(jī)在開(kāi)關(guān)決策、邏輯電路仿真和實(shí)時(shí)

控制方面非常有效。

可以位尋址的單元包括兩部分:一是內(nèi)部RAM位尋址區(qū)中的。?127位(20H?2FH):

二是SFR中字節(jié)地址的低位地址為0H或8H的特殊功能寄存器。

[2-12]80C5I單片機(jī)的節(jié)拍、狀態(tài)、機(jī)器周期、指令周期是如何設(shè)置的?當(dāng)主頻為12MHz

時(shí),各種周期等于多少微秒?

【答】把單片機(jī)振蕩脈沖的周期定義為節(jié)拍。節(jié)拍經(jīng)過(guò)二分頻后,就是單片機(jī)的時(shí)鐘信號(hào)。

時(shí)鐘信號(hào)周期定義為狀態(tài)S,其前半周期對(duì)應(yīng)的節(jié)拍叫P1,后半周期對(duì)應(yīng)的節(jié)拍叫P2。

一個(gè)機(jī)器周期寬度為6個(gè)狀態(tài),并依次表示為S1?S6。由于一個(gè)機(jī)器周期共有12個(gè)振

蕩脈沖周期,因此,機(jī)器周期就是振蕩頻率的1/12。機(jī)器周期是80c51單片機(jī)的最小時(shí)間

單位。執(zhí)行一條指令的時(shí)間被稱為“指令周期”,80c51單片機(jī)執(zhí)行一條指令的時(shí)間包含有1

個(gè)、2個(gè)或4個(gè)機(jī)器周期。當(dāng)主頻為12MHz時(shí),振蕩脈沖的周期為1/128,狀態(tài)周期為1

/6ns,機(jī)器周期為1F,指令周期為1?4四

[2一13]程序存儲(chǔ)器指令地址、堆棧地址和外接數(shù)據(jù)存儲(chǔ)器地址各使用什么指針?為什么?

【答】程序存儲(chǔ)器指令地址使用程序計(jì)數(shù)器PC指針,PC中存放的是下一條將要從程序存儲(chǔ)

器中取出的指令的地址。程序計(jì)數(shù)器PC變化的軌跡決定程序的流程。PC最基本的工作方式

是自動(dòng)加1。在執(zhí)行條件轉(zhuǎn)移或無(wú)條件轉(zhuǎn)移指令時(shí),將轉(zhuǎn)移的目的地址送入程序計(jì)數(shù)器,程

序流向發(fā)生變化。在執(zhí)行調(diào)用指令或響應(yīng)中斷時(shí),將子程序的入口地址或者中斷矢量地址送

人PC,程序流向發(fā)生變化。堆棧地址使用堆棧指針.SPoSP在80c51中存放當(dāng)前的堆

棧棧頂所指存儲(chǔ)單元地址,是一個(gè)8位寄存器,對(duì)數(shù)據(jù)按照“先進(jìn)后出”原則進(jìn)行管理。外

接數(shù)據(jù)存儲(chǔ)器地址使用數(shù)據(jù)指針DPTR。DPTR是一個(gè)16位特殊功能寄存器,主要功能是作

為片外數(shù)據(jù)存儲(chǔ)器或I/O尋址用的地址寄存器,這時(shí)會(huì)產(chǎn)生RD或wR控制信號(hào),用于單片

機(jī)對(duì)外擴(kuò)的數(shù)據(jù)存儲(chǔ)器或1/0的控制。數(shù)據(jù)指針DPTR也可以作為訪問(wèn)程序存儲(chǔ)器時(shí)的基址

寄存器,此時(shí)是尋址程序存儲(chǔ)器中的表格、常數(shù)等單元,而不是尋址指令。

[2-14]請(qǐng)說(shuō)明80c51單片機(jī)ALE引腳的時(shí)序功能,并舉例說(shuō)明其在系統(tǒng)中有哪些應(yīng)用?

【答】80c51單片機(jī)ALE引腳是地址鎖存允許信號(hào).在系統(tǒng)中主要有兩種應(yīng)用:

①在訪問(wèn)片外存儲(chǔ)器或I/O時(shí),用于鎖存低8位地址,以實(shí)現(xiàn)低8位地址A0?A7與數(shù)

據(jù)D0-D7的隔離。在ALE的下降沿將P0口輸出的地址A0-A7通過(guò)鎖存器鎖存,然后在

P0口上出現(xiàn)DO-D7?

②由于ALE以1/6振蕩頻率的固定速率輸出,因此,可以作為對(duì)外輸出的時(shí)鐘或外部定

時(shí)脈沖,比如ALE信號(hào)可以做ADC0809的時(shí)鐘。

[2-15]說(shuō)明80C51單片機(jī)的程序狀態(tài)字PSW的主要功能。

【答】程序狀態(tài)字PSW(ProgramStatusWord)是一個(gè)程序可訪問(wèn)的8位寄存器,其內(nèi)容的主

要部分是算術(shù)邏輯運(yùn)算單元ALU的輸出,例如,奇偶校驗(yàn)位P、溢出標(biāo)志位。V、輔助進(jìn)位

標(biāo)志位AC及進(jìn)位標(biāo)志位CY,都是ALU運(yùn)算結(jié)果的直接輸出。一些條件轉(zhuǎn)移指令就是根據(jù)

PSW中的相關(guān)標(biāo)志位的狀態(tài)來(lái)實(shí)現(xiàn)程序的條件轉(zhuǎn)移。

程序狀態(tài)字PSW如圖2-1所示。

CYACFORslIRSOOV-PI

圖2—1程序狀態(tài)字PSW

1.P-----奇偶標(biāo)志位

該位表示累加器A中值為1的個(gè)數(shù)的奇偶性。若累加器A中值為1的個(gè)數(shù)是奇數(shù),則

P置位(奇校驗(yàn));否則,P清除(偶校驗(yàn))。

在串行通信中,常以傳送奇偶校驗(yàn)位來(lái)檢驗(yàn)傳輸數(shù)據(jù)的可靠性。通常將P置入串行幀中

的奇偶校驗(yàn)位。

2.0V------溢出標(biāo)志位

當(dāng)執(zhí)行運(yùn)算指令時(shí),由硬件置位或清除,以指示運(yùn)算是否產(chǎn)生溢出。OV置位表示運(yùn)算

結(jié)果超出了目的寄存器A所能表示的帶符號(hào)數(shù)的范圍(一128?+127)。

若以Ci表示位i向位i+1有進(jìn)位,則0V=C6①C7。當(dāng)位6向位7有進(jìn)位(或借位),而位

7不向cY進(jìn)位(或借位);或當(dāng)位7向c進(jìn)位(或借位),而位6不向位7進(jìn)位(或借位)時(shí),0V

標(biāo)志置位,表示帶符號(hào)數(shù)運(yùn)算時(shí)運(yùn)算結(jié)果是錯(cuò)誤的;否則,清除0V標(biāo)志,運(yùn)算結(jié)果正確。

對(duì)于MUL乘法,當(dāng)A、B兩個(gè)乘數(shù)的積超過(guò)255時(shí),0V置位;否則,OV=0。

對(duì)于DIV除法,若除數(shù)為0,OV=I;否則,OV=O。

3.RSI、RSO——4組工作寄存器組選擇位

用于設(shè)定當(dāng)前工作寄存器的組號(hào),參見(jiàn)表2—1。

4.AC----輔助進(jìn)位標(biāo)志位

當(dāng)進(jìn)行加法或減法運(yùn)算時(shí),若低4位向高4位數(shù)發(fā)生進(jìn)位(或借位),.AC將被硬件置位;

否則,被清除。在十進(jìn)制調(diào)整指令DA中要用到AC標(biāo)志位狀態(tài)。

5.CY——進(jìn)位標(biāo)志位

在進(jìn)行算術(shù)運(yùn)算時(shí),可以被硬件置位或清除,以表示運(yùn)算結(jié)果中高位是否有進(jìn)位(或借

位)。在布爾處理器中,CY被認(rèn)為是位累加器。

6.F0------用戶標(biāo)志位

開(kāi)機(jī)時(shí)該位為0。用戶可根據(jù)需要,通過(guò)位操作指令將FO置1或者清0。當(dāng)CPU執(zhí)行

對(duì)F0位測(cè)試條件轉(zhuǎn)移指令時(shí),根據(jù)FO的狀態(tài)實(shí)現(xiàn)分支轉(zhuǎn)移,相當(dāng)于“軟開(kāi)關(guān)”。

【2—16】80c51單片機(jī)的片內(nèi)外最大存儲(chǔ)容量可達(dá)多大?’

【答】80c51單片機(jī)存儲(chǔ)容量應(yīng)包括程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器兩部分。80C51具有16條地

址線,PC指針為16位,因此,程序存儲(chǔ)器最大容量為64KB。數(shù)據(jù)指針DPTR為16位,因

此,外擴(kuò)數(shù)據(jù)存儲(chǔ)器最大容量為64KB,再加上片內(nèi)具有的256個(gè)存儲(chǔ)單元,80C51單片機(jī)

片內(nèi)外最大存儲(chǔ)容量可達(dá)128.256KB.采用其他地址譯碼方法,80c51單片機(jī)存儲(chǔ)容量會(huì)

得到更大的擴(kuò)展。

[2-17180C51單片機(jī)片外數(shù)據(jù)存儲(chǔ)器與片內(nèi)數(shù)據(jù)存儲(chǔ)器地址允許重復(fù),并與程序存儲(chǔ)器地

址也允許重復(fù),如何區(qū)分?

【答】80c51單片機(jī)對(duì)片外數(shù)據(jù)存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器及程序存儲(chǔ)器采用不同的指令,會(huì)

產(chǎn)生不同的控制信號(hào)。片外數(shù)據(jù)存儲(chǔ)器有讀RD和寫(xiě)WR控制信號(hào),程序存儲(chǔ)器有讀PSEN

控制信號(hào),因此,擴(kuò)展時(shí)雖然數(shù)據(jù)線和地址線重復(fù),但由不同的控制信號(hào)加以區(qū)別。片內(nèi)數(shù)

據(jù)存儲(chǔ)器地址采用MOVC指令,不會(huì)產(chǎn)生讀RD和寫(xiě)WR控制信號(hào)。

[2-18]使80c51單片機(jī)復(fù)位有哪幾種方法?復(fù)位后單片機(jī)的初始狀態(tài),即各寄存器及RAM

中的狀態(tài)如何?

【答】復(fù)位操作有上電自動(dòng)復(fù)位、按鍵電平復(fù)位和外部脈沖復(fù)位3種方式。上電自動(dòng)復(fù)位是

通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的;按鍵電平復(fù)位是通過(guò)按壓鍵使復(fù)位端經(jīng)電阻與VCC

接通而實(shí)現(xiàn)的;外部脈沖復(fù)位是由外部提供一個(gè)寬度大于兩個(gè)機(jī)器周期復(fù)位脈沖而實(shí)現(xiàn)的。

復(fù)位操作把Pc初始化為0000H,使單片機(jī)從0000H單元開(kāi)始執(zhí)行程序。當(dāng)由于程序運(yùn)行出

錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),可以按復(fù)位鍵以重新啟動(dòng),也可以通過(guò)監(jiān)視定時(shí)器來(lái)

強(qiáng)迫復(fù)位。

除PC之外,復(fù)位操作還對(duì)其他一些特殊功能寄存器有影響,SFR的復(fù)位狀態(tài)如表2-2所

列。復(fù)位操作還對(duì)單片機(jī)的個(gè)別引腳信號(hào)有影響。例如在復(fù)位期間,ALE和PSEN信號(hào)變?yōu)?/p>

無(wú)效狀態(tài),即ALE=LPSEN=1。復(fù)位操作對(duì)RAM內(nèi)容沒(méi)有影響。

表2-2SFR的復(fù)位狀態(tài)

1iiii

1寄存器1復(fù)位時(shí)的內(nèi)容1寄存器1復(fù)位時(shí)的內(nèi)容I

11II1I1

IPCIOOHITCON|OXB|

I1I1I1I1

IACC|OOH|TLO|OOH|

1I1II1I1

1BOOH|THOIOOH|

1I|I1I1

IPSW|OOH1THIOOH|

1I1I1I1

ISPI07H|THIIOOH|

1I1II1I1

|DPTRIOOHISCON|OOH|

1I1II1I1

IP0~P3|FFH|SBUF1不定1

I11i1i1i

ITMODIXXB|PCONIOXXXOOOOB|

iiiii

[2-19]80C51單片機(jī)的4個(gè)I/??谠谑褂蒙嫌心男┓止ず吞攸c(diǎn)?

【答】4個(gè)I/O口的分工和特點(diǎn)如下:

①P0口是一個(gè)多功能的8位口,可按字節(jié)訪問(wèn)也可按位訪問(wèn)。

?用作I/O口。相當(dāng)于一個(gè)真正的雙向口:輸出鎖存,輸入緩沖,但輸入時(shí)須先將口

置I;每根口線可以獨(dú)立定義為輸入或輸出。

?用作地址/數(shù)據(jù)復(fù)用總線。作數(shù)據(jù)總線使用時(shí),輸入/輸出8位數(shù)據(jù)D0?D7;作地

址總線用時(shí),輸出低8位地址AO?A7。

②P1口是一個(gè)8位口,可按字節(jié)訪問(wèn)也可按位訪問(wèn),因此,P1口不僅可以8位一組進(jìn)

行輸入、輸出操作,還可以逐位分別定義各口線為輸入線或輸出線。輸入時(shí)有條件,即需

要先輸出1,將該口設(shè)為輸入狀態(tài)。一般作I/。口用。

③P2口是一個(gè)多功能的8位口,可按字節(jié)訪問(wèn)也可按位訪問(wèn)。在單片機(jī)采用并行擴(kuò)展

方式時(shí),P2口作為地址總線的高8位D8?D15。

④P3口是一個(gè)多功能的8位口,可按字節(jié)訪問(wèn),也按可位訪問(wèn)??勺鳛镮/O口使用,

為準(zhǔn)雙向口。既可以字節(jié)操作,也可以位操作;既可以8位口操作,也可以逐位定義口

線為輸入線或輸出線。

P3可替代輸入、輸出功能。

替代輸入功能:

P3.0-----RXD,串行輸入口。

P3.2-----IN'K0,外部中斷O的請(qǐng)求。

P3.3-----INTI,外部中斷1的請(qǐng)求。

P3.4-TO,定時(shí)器/計(jì)數(shù)器0外部計(jì)數(shù)脈沖輸入。

P3.5一一T1,定時(shí)器/計(jì)數(shù)器1外部計(jì)數(shù)脈沖輸入。

替代輸出功能:

P3.1------TXD,串行輸出口。

P3.6一一WR,外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通,輸出,低電平有效。

P3.7?RD,外部數(shù)據(jù)存儲(chǔ)器讀選通,輸出,低電平有效。

[2—20]80c51單片機(jī)的I/O口.P0?P3用作通用I/0口時(shí),要注意什么?

【答】P0-P3用作通用I/0口時(shí),輸入時(shí)都須先將相應(yīng)端口鎖存器置1,類似于置為輸入

方式。

I/O□:P。?P3都具有位地址,所以每根I/??诰€可以獨(dú)立定義為輸入或輸出。

P0口輸出時(shí)為漏極開(kāi)路輸出,與NM0S的電路接口時(shí),必須要用電阻上拉,才能有高

電平輸出;輸入時(shí)為懸浮狀態(tài),為一個(gè)高阻抗的輸入口。P1?P3口輸出級(jí)接有內(nèi)部上拉負(fù)

載電阻,能向外提供上拉負(fù)載電流,所以不必外接上拉電阻。

[2-21]80C51單片機(jī)有哪幾種工作方式?簡(jiǎn)單說(shuō)明其應(yīng)用場(chǎng)合和特點(diǎn)。

【答】80c51單片機(jī)共有復(fù)位、程序執(zhí)行、低功耗以及編程和校驗(yàn)4種工作方式。

?復(fù)位方式:是單片機(jī)的初始化操作,其主要功能是把程序計(jì)數(shù)器Pc初始化為0000H,

使單片機(jī)從000H單元開(kāi)始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)

行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,可以按復(fù)位鍵重新啟動(dòng),也可

以通過(guò)監(jiān)視定時(shí)器WDT來(lái)強(qiáng)迫復(fù)位。

?程序執(zhí)行方式:是單片機(jī)的基本工作方式。

?低功耗方式:80c51單片機(jī)有兩種低功耗方式,即待機(jī)方式和掉電保護(hù)方式。用于降低

功耗,提高可靠性。

?編程和校驗(yàn)方式:對(duì)于片內(nèi)具有EPROM型程序存儲(chǔ)器的87c51(87C52)和片內(nèi)具有

閃速存儲(chǔ)器的89c51(89C52)、78E51(78E52)等單片機(jī),可以通過(guò)編程來(lái)修改程序儲(chǔ)器中

的程序。

[2-22]舉例說(shuō)明80C51單片機(jī)在工業(yè)控制系統(tǒng)中低功耗工作方式的意義及實(shí)現(xiàn)方法。

【答】有些產(chǎn)品和系統(tǒng)要求工作時(shí)功耗盡量低,有的要求在停電時(shí)采用備用電池能工作較長(zhǎng)

時(shí)間,以上這些設(shè)計(jì)和要求往往與工業(yè)控制系統(tǒng)的低功耗設(shè)計(jì)密切相連。工業(yè)控制系統(tǒng)低功

耗設(shè)計(jì)除了降低功耗,節(jié)省能源,滿足綠色電子的基本要求之外,還能提高系統(tǒng)的可靠性,

滿足便攜式、電池供電等特殊應(yīng)用場(chǎng)合產(chǎn)品的要求。

80c51單片機(jī)有兩種低功耗方式,即待機(jī)(空閑)方式和掉電(停機(jī))保護(hù)方式。待機(jī)(空閑)

方式和掉電(停機(jī))保護(hù)方式都是由電源控制寄存器PCON的有關(guān)位來(lái)控制的。電源控制寄存

器是一個(gè)逐位定義的8位寄存器,其格式如圖2-2所示。

ISMODIGFIGFOPDIDI?

圖2-2電源控制寄存器PCON

SMOD波特率倍增位,在串行口工作方式時(shí),設(shè)SMOD=1,則波特率加倍。

GFI、GFO通信標(biāo)志位1、O,由軟件置位或復(fù)位。

PD掉電方位式,PD=1,則進(jìn)入掉電工作方式。

IDL待機(jī)方式位,IDL=1,則進(jìn)入待機(jī)工作方式。

若PD位和IDL位同時(shí)為1,則先激活掉電方式。復(fù)位時(shí)PCON中所有位均為0。

1.待機(jī)方式

①使用指令使PCON寄存器IDL位置1,則80C51進(jìn)入待機(jī)方式。

?此時(shí)振蕩器仍然運(yùn)行,并向中斷邏輯、串行口和定時(shí)器/計(jì)數(shù)器電路提供時(shí)鐘,中

斷功能繼續(xù)存在。

?向CPU提供時(shí)鐘的電路被阻斷,因此,CPU不能工作,與CPU有關(guān)的SP、PC、PSW、

ACC以及全部通用寄存器都被凍結(jié)在原狀態(tài)。

②可以采用中斷方式或硬件復(fù)位來(lái)退出待機(jī)方式。

在待機(jī)方式下,若產(chǎn)生一個(gè)外部中斷請(qǐng)求信號(hào),在單片機(jī)響應(yīng)中斷的同時(shí),IDL位

被硬件自動(dòng)清0,單片機(jī)就退出待機(jī)方式,而進(jìn)入正常工作方式。在中斷服務(wù)程序中安

排一條RETI指令,就可以使單片機(jī)恢復(fù)正常工作,從設(shè)置待機(jī)方式指令的下一條指令開(kāi)

始繼續(xù)執(zhí)行程序。

在待機(jī)方式下,振蕩器仍然在工作,因此,硬件復(fù)位只需保持兩個(gè)機(jī)器周期的高電

平就可以完成。RST端復(fù)位信號(hào)直接將IDL位清O,從而退出待機(jī)方式。CPU則從進(jìn)入待

機(jī)方式的下一條指令開(kāi)始重新執(zhí)行程序.

2.掉電保護(hù)方式.

①PCON寄存器的PD位控制單片機(jī)進(jìn)入掉電保護(hù)方式。

80c51單片機(jī)在檢測(cè)到電源故障時(shí),除進(jìn)行信息保護(hù)外,還應(yīng)把PD位置1,使之進(jìn)入

掉電保護(hù)方式。此時(shí)單片機(jī)一切工作都停止,只有內(nèi)部RAM單元的內(nèi)容被保護(hù)。

②只能依靠復(fù)位退出掉電保護(hù)方式。

80C51單片機(jī)備用電源由VCC端引人。當(dāng)VCC恢復(fù)正常后,只要硬件復(fù)位信號(hào)維持10

ms,就能使單片機(jī)退出掉電保護(hù)方式,CPU則從進(jìn)入待機(jī)方式的下一條指令開(kāi)始重新執(zhí)行

[2-2]單片機(jī)“面向控制”應(yīng)用的特點(diǎn),在硬件結(jié)構(gòu)方面有哪些體現(xiàn)?

【答】單片機(jī)“面向控制”應(yīng)用的特點(diǎn),在硬件結(jié)構(gòu)方面有以下幾個(gè)方面的體現(xiàn):

提供了數(shù)量多、功能強(qiáng)、使用靈活的I/O口和串行口。在80c51單片機(jī)系統(tǒng)中,還特

別設(shè)置了布爾(位)處理機(jī),對(duì)并行1/0口的口線直接進(jìn)行位的控制,對(duì)“面向控制”的應(yīng)用

帶來(lái)了極大方便。

設(shè)置多個(gè)中斷源,并具有可編程的中斷優(yōu)先級(jí),對(duì)于實(shí)時(shí)控制非常有利。

提供了多個(gè)定時(shí)器/計(jì)數(shù)器,有的單片機(jī)內(nèi)部還具有監(jiān)視定時(shí)器,有利于提高單片機(jī)的

實(shí)時(shí)控制能力和控制的可靠性。

第3章【單片機(jī)的指令系統(tǒng)】

思考與練習(xí)題解析

[3-1]什么是指令及指令系統(tǒng)?

【答】控制單片機(jī)進(jìn)行某種操作的命令稱為“指令”。單片機(jī)就是根據(jù)指令來(lái)指揮和控制

單片機(jī)各部分協(xié)調(diào)工作。指令由二進(jìn)制代碼表示,指令通常包括操作碼和操作數(shù)兩部分:操

作碼規(guī)定操作的類型,操作數(shù)給出參加操作的數(shù)或存放數(shù)的地址。

所有指令的集合稱為"指令系統(tǒng)"。80c51單片機(jī)的指令系統(tǒng)專用于80C51系列單片機(jī),

是一個(gè)具有255種操作碼(OOH?FFH,除A5H外)的集合。

【3一2】80c51單片機(jī)的指令系統(tǒng)具有哪些特點(diǎn)?

【答】80c51單片機(jī)的指令系統(tǒng)容易理解和閱讀。只要熟記代表33種功能的42種助記即

可。有的功能如數(shù)據(jù)傳送,可以有幾種助記符,如MOV、MOVc、MOVX。而指令功能助

記符與操作數(shù)各種尋址方式的結(jié)合,共構(gòu)造出111種指令,而同一種指令所對(duì)應(yīng)的操作碼可

以多至8種(如指令中Rn對(duì)應(yīng)寄存器R0?R7)。

80C51單片機(jī)的指令系統(tǒng)具有較強(qiáng)的控制操作類指令,容易實(shí)現(xiàn)“面向控制”的功能;

具有位操作類指令,有較強(qiáng)的布爾變量處理能力。

[3-3]簡(jiǎn)述80c51指令的分類和格式。

[答180C51的指令系統(tǒng)共有111條指令,按其功能可分為5大類:數(shù)據(jù)傳送類指令(28條)、

算術(shù)運(yùn)算類指令(24條)、邏輯運(yùn)算類指令(25條)、控制轉(zhuǎn)移類指令(17條)和布爾操作(位)類

指令(17條)。

指令的表示方法稱之為“指令格式”,其內(nèi)容包括指令的長(zhǎng)度和指令內(nèi)部信息的安排等。

在80c51系列的指令系統(tǒng)中,有單字節(jié)、雙字節(jié)和三字節(jié)等不同長(zhǎng)度的指令。

?單字節(jié)指令:指令只有一個(gè)字節(jié),操作碼和操作數(shù)同在一個(gè)字節(jié)中。

?雙字節(jié)指令:包括兩個(gè)字節(jié)。其中一個(gè)字節(jié)為操作碼,另一個(gè)字節(jié)是操作數(shù)。

?三字節(jié)指令:操作碼占一個(gè)字節(jié),操作數(shù)占兩個(gè)字節(jié)。其中操作數(shù)既可能是數(shù)據(jù),也

可能是地址。

【3—4】簡(jiǎn)述80c51的指令尋址方式,并舉例說(shuō)明。

【答】執(zhí)行任何一條指令都需要使用操作數(shù),尋址方式就是在指令中給出的尋找操作數(shù)或操

作數(shù)所在地址的方法。

80C5I系列單片機(jī)的指令系統(tǒng)中共有以下7種尋址方式。

①立即尋址。在指令中直接給出操作數(shù)。出現(xiàn)在指令中的操作數(shù)稱為“立即數(shù)”,為了

與直接尋址指令中的直接地址相區(qū)別,在立即數(shù)前面必須加上前綴

例如:MOVDPTR,#1234H;1234H為立即數(shù),直接送DPTR

②直接尋址。在指令中直接給出操作數(shù)單元的地址。

例如:MOVA,55H;55H是操作數(shù)單元的地址,55H單元內(nèi)的數(shù)據(jù)才是操作數(shù),

取出后送累加器A

③寄存器尋址。在指令中將指定寄存器的內(nèi)容作為操作數(shù)。因此,指定了寄存器就能得

到操作數(shù)。寄存器尋址方式中,用符號(hào)名稱來(lái)表示寄存器。

例如:INCR7;R7的內(nèi)容為操作數(shù),加1后再送回R7

④寄存器間接尋址。在指令中給出的寄存器內(nèi)容是操作數(shù)的地址,從該地址中取出的才

是操作數(shù)??梢钥闯?,在寄存器尋址方式中,寄存器中存放的是操作數(shù);而在寄存器間接尋

方式中,寄存器中存放的則是操作數(shù)的地址。

寄存器間接尋址須以寄存器符號(hào)名稱的形式表示。為了區(qū)別寄存器尋址和寄存器間接尋

址,在寄存器間接尋址中,應(yīng)在寄存器的名稱前面加前綴

例如:ORLA.@Ro;當(dāng)R0寄存器的內(nèi)容是60H時(shí),該指令功能是以RO寄存器的

內(nèi)容60H為地址,將60H地址單元的內(nèi)容與累加器A中的數(shù)相''或",其結(jié)果仍存放在A中。

⑤相對(duì)尋址。在指令中給出的操作數(shù)為程序轉(zhuǎn)移的偏移量。相對(duì)尋址方式是為實(shí)現(xiàn)程序

的相對(duì)轉(zhuǎn)移而設(shè)立的,為相對(duì)轉(zhuǎn)移指令所采用。

在相對(duì)轉(zhuǎn)移指令中,給出地址偏移量(在80c51系列單片機(jī)的指令系統(tǒng)中,以“rel”表

示,為8位帶符號(hào)數(shù)),把PC的當(dāng)前值加上偏移量就構(gòu)成了程序轉(zhuǎn)移的目的地址。而PC的

當(dāng)前值是指執(zhí)行完轉(zhuǎn)移指令后的PC值,即轉(zhuǎn)移指令的PC值加上轉(zhuǎn)移指令的字節(jié)數(shù)。轉(zhuǎn)移

的目的地址可用如下公式表示:

目的地址=(轉(zhuǎn)移指令所在地址+轉(zhuǎn)移指令字節(jié)數(shù))+rel

例如:SJMP80H;80H為程序轉(zhuǎn)移的偏移量,即一128。當(dāng)前PC值減去128后即

為轉(zhuǎn)移地址

⑥變址尋址。以DPTR或PC作基址寄存器,累加器A作變址寄存器,以兩者內(nèi)容相加

形成的16位程序存儲(chǔ)器地址作為操作數(shù)地址。又稱“基址寄存器+變址寄存器間接尋址”。

變址尋址方式只能對(duì)程序存儲(chǔ)器進(jìn)行尋址。

例如:MOVCA,@A+DPTR;功能是把DPTR和A的內(nèi)容相加,所得到的程序存儲(chǔ)

器地址單元的內(nèi)容送A

⑦位尋址。80c51系列單片機(jī)有位處理功能,可以對(duì)數(shù)據(jù)位進(jìn)行操作,因此,就有相應(yīng)

的位尋址方式。位尋址的尋址范圍:

?片內(nèi)RAM中的位尋址區(qū)。

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

例如:MOVc,80H;功能是把位尋址區(qū)的80H位(即P0.0)狀態(tài)送累加位C

[3-5]訪問(wèn)特殊功能寄存器SFR,可使用哪些尋址方式?

【答】訪問(wèn)特殊功能寄存器SFR的惟一尋址方式是直接尋址方式。這時(shí)除了可以單元地址形

式(如90H)給出外,還可以寄存器符號(hào)形式(如P1)給出。雖然特殊功能寄存器可以使用寄存

器符號(hào)標(biāo)志,但在指令代碼中還是按地址進(jìn)行編碼的。

[3-6]若訪問(wèn)外部RAM單元,可使用哪些尋址方式?

【答】訪問(wèn)外部RAM單元的惟一尋址方式是寄存器間接尋址方式。片外RAM的64KB單

元,使用DPTR作為間址寄存器,其形式的@DPTR,例如“MOVXA,@DPTR”的功能是把

DPTR指定的片外RAM單元的內(nèi)容送累加器A?

片外RAM低256個(gè)單元,除了可使用DPTR作為間址寄存器外,也可使用:R0或R1作

間址寄存器。例如“MOVXA,@R0"即把R0指定的片外RAM單元的內(nèi)容送累加器A。

[3-7]若訪問(wèn)內(nèi)部RAM單元,可使用哪些尋址方式?

【答】片內(nèi)RAM的低128單元可以使用寄存器間接尋址方式,但只能采用R0或R1為間址

寄存器,其形式為@川。=0,l)o

片內(nèi)RAM的低128單元可以使用直接尋址方式,在指令中直接以單元地址形式給出。

片內(nèi)RAM的低128單元中的20H?2FH有128個(gè)可尋址位,還可以使用位尋址方式,

對(duì)這128個(gè)位的尋址使用直接位地址表示。

[3-8]若訪問(wèn)程序存儲(chǔ)器,可使用哪些尋址方式?

【答】訪問(wèn)程序存儲(chǔ)器可使用的尋址方式有立即尋址方式、變址尋址方式和相對(duì)尋址方式三

種。立即尋址是指在指令中直接給出操作數(shù)。變址尋址方式只能對(duì)程序存儲(chǔ)器進(jìn)行尋址,或

者說(shuō)這是專門針對(duì)程序存儲(chǔ)器的尋址方式。相對(duì)尋址方式是為實(shí)現(xiàn)程序的相對(duì)轉(zhuǎn)移而設(shè)立

的。這三種尋址方式所得到的操作數(shù)或操作數(shù)地址都在程序存儲(chǔ)器中。

[3—9]MOV、MOVC、MOVI(指令有什么區(qū)別?分別用于哪些場(chǎng)合?為什么?

【答】MOV指令用于對(duì)內(nèi)部RAM的訪問(wèn).MOVC指令用于對(duì)程序存儲(chǔ)器的訪問(wèn),從程序存

儲(chǔ)器中讀取數(shù)據(jù)(如表格、常數(shù)等)。MOVX指令采用間接尋址方式訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器.有

Ri和DPTR兩種間接尋址方式。執(zhí)行MOVX指令時(shí),在P3.7引腳上輸出RD有效信號(hào).或

在P3.6引腳上輸出WR有效信號(hào),可以用做外部數(shù)據(jù)存儲(chǔ)器或1/0的讀/寫(xiě)選通信號(hào),

與單片機(jī)擴(kuò)展電路有關(guān)。

[3-10]說(shuō)明“DAA”指令功能,并說(shuō)明二一十進(jìn)制調(diào)整的原理和方法。

【答】“DAA”指令的功能是對(duì)兩個(gè)BCD碼的加法結(jié)果進(jìn)行調(diào)整。兩個(gè)壓縮型BCD碼按二進(jìn)

制數(shù)相加之后,必須經(jīng)過(guò)該指令的調(diào)整才能得到壓縮型BCD碼的和數(shù)。“DAA”指令對(duì)兩個(gè)

BCD碼的減法結(jié)果不能進(jìn)行調(diào)整。

BCD碼采用4位二進(jìn)制數(shù)編碼,并且只采用了其中的10個(gè)編碼,即0000?1001,分別

代表BCD碼0?9,而1010?1111為無(wú)效碼。當(dāng)兩個(gè)BCD碼相加結(jié)果大于9時(shí),說(shuō)明已進(jìn)

入無(wú)效編碼區(qū);當(dāng)兩個(gè)BCD碼相加結(jié)果有進(jìn)位時(shí),說(shuō)明已跳過(guò)無(wú)效編碼區(qū)。若結(jié)果進(jìn)入或

跳過(guò)無(wú)效編碼區(qū),則結(jié)果是錯(cuò)誤的,相加結(jié)果均比正確結(jié)果小6(差6個(gè)無(wú)效編碼)。

十進(jìn)制調(diào)整的修正方法為:當(dāng)累加器低4位大于9或半進(jìn)位標(biāo)志AC=1時(shí),進(jìn)行低4位

加6修正;當(dāng)累加器高4位大于9或進(jìn)位標(biāo)志CY=I時(shí),進(jìn)行高4位加6修正。

[3—11]說(shuō)明80C51單片機(jī)的布爾處理機(jī)的構(gòu)造及功能。

【答】80c51單片機(jī)內(nèi)部有一個(gè)布爾(位)處理機(jī),具有較強(qiáng)的布爾變量處理能力。布爾處理

機(jī)實(shí)際上是一位微處理機(jī),它包括硬件和軟件。布爾處理機(jī)以進(jìn)位標(biāo)志CY作為位累加器,

以80C51單片機(jī)內(nèi)部RAM的20H?2FH單元及部分特殊功能寄存器為位存儲(chǔ)器,以80C51

單片機(jī)的PO、Pl>P2和P3為位I/O。

對(duì)位地址空間具有豐富的位操作指令,包括布爾傳送指令、布爾狀態(tài)控制指令、位邏輯

操作指令及位條件轉(zhuǎn)移指令,為單片機(jī)的控制帶來(lái)很大方便。

[3-12]試分析以下程序段的執(zhí)行結(jié)果。

MOVSP,#60H

MOVA,#88H

MOVB,#OFFH

PUSHACC

PUSHB

POPACC

POPB

【答】結(jié)果如下:

MOVSP,#60tt;(SP)=60H

NOVA,#88tt;(A)=88H

MOVB.#OFFH;(B)=FFH

PUSHACC;(SP)=61H,(61H)=88H

PUSHB;(SP)=62H,(62H)=FFH

POPACC;(A)=FFH,(SP)=61H

POPB;(B)=88H,(SP)=60H

程序段的執(zhí)行結(jié)果:累加器A和寄存器B的內(nèi)容通過(guò)堆棧進(jìn)行了交換。

注意:80C51單片機(jī)的堆棧是按照先進(jìn)后出的原則進(jìn)行管理的。

[3-1]已知(A)=7AH,(RO)=30H,(30H)=A5H,(PSW)=80H。請(qǐng)?zhí)顚?xiě)各條指令單獨(dú)執(zhí)行后的結(jié)

果。

(1)XCHA,R0

(2)XCHA,30tt

(3)XCHA,@R0

(4)XCHDA,@R0

(5)SWAPA

(6)ADDA,R0

(7)ADDA,30H

(8)ADDA,#30H

(9)ADDCA,30H

(10)SUBBA,30H

(11)SUBBA,#30H

【答】結(jié)果如下:

(1)XCHA,RO;(A)=30H,(RO):7AH

⑵XCHA,30H;(A)=A5H,(30H)=7AH,(PSW)=81H

(3)XCHA,@R0;(A)=R5H,(30H)=7AH,(PSW)=81H

(4)XCHDA,@R0;(A)=75H,(30H)=AAH,(PSW)=81H

(5)SWAPA;(A)=A7H

(6)ADDA,RO;(A)=AAH,(PSW)=04H

(7)ADDA,30H;(A)=1FH,(PSW)=81H

(8)ADDA,#30H:(A)=AAH,(PSW)=04H

(9)ADDCA,30H;(A)=20H,(PSW)=01H

(10)SUBBA,30H;(A)=D4H,(PSW)=84H

(11)SUBBA,#30H;(A)=49H,(PSW)=01H

[3—14]已知(30H)=40H,(40H)=10H,(10H)=00H,(P1)=CAH,請(qǐng)寫(xiě)出執(zhí)行以下程序段后有

關(guān)單元的內(nèi)容-O

MOVRO,#30H

MOVA,@R0

MOVRI,A

MOVB,@R1

MOV@R1,Pl

MOVA,@R0

MOVIOH,#20H

MOV30H,10H

【答】有關(guān)單元的內(nèi)容如下:

MOVRO,#30H;(RO)=30H

MOVA,@R0;(A)=40H

MOVRI,A;(Rl)=40H

MOVB,@R1;(B)=10H

MOV@R1,Pl;(40H)=CAH

MOVA,@RO;(A)=40H

MOV10H,#20H;(10H)=20H

MOV30H,10H;(30H)=20H

執(zhí)行以上程序段后,有關(guān)單元的內(nèi)容分別為:(30H)=20H,(40H)=CAH,(10H)=20H,

(P1)=CAH。

[3-15]已知(Rl)=20H,(20H)=AAH,請(qǐng)寫(xiě)出執(zhí)行完下列程序段后A的內(nèi)容。

MOV

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論