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

下載本文檔

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

文檔簡介

單片機原理及應用

張?zhí)m紅

9第1章微型計算機的基本概念

1.1微型計算機由哪幾部分組成?每一部分各起何作用?

解:微型計算機由微處理器芯片、存儲器芯片、輸入/輸出接口電路芯片與總線組成。

微處理器是微型計算機的核心,它通常包括3個基本部分:①算術邏輯部件

ALU(Arithmetic

LogicUnit),對傳送到微處理器的數(shù)據(jù)進行算術運算或邏輯運算的電路,如執(zhí)行加法、減

法運算,

邏輯與、邏輯或運算等。②工作寄存器組,用來存放操作數(shù)及運算的中間結果等。③控制

部件,

包括時鐘電路和控制電路,時鐘電路產(chǎn)生時鐘脈沖,用于計算機各部分電路的同步定時;控

制電路

產(chǎn)生完成各種操作所需的控制信號。

存儲器是微型計算機的重要組成部分,計算機有了存儲器才具備記憶功能。

I/O接口是溝通CPU與外部設備的不可缺少的重要部件。外部設備種類繁多,其運行速度、

數(shù)據(jù)形式、電平等各不相同,常常與CPU不一致,所以要用I/O接口作橋梁,起到信息

轉換與協(xié)

調的作用。

總線是在微型計算機各芯片之間或芯片內(nèi)部各部件之間傳輸信息的一組公共通信線。

1.2什么是CPU?什么是主機?

解:由于運算器、控制器是計算機處理信息的關鍵部件,所以常將它們合稱為中央處理單元

CPU

(CentralProcessingUnit,簡稱CPU)。

通常把運算器、控制器、存儲器這三部分稱為計算機的主機。

1.3何謂計算機系統(tǒng)?何謂單板機?何謂單片機?

解:計算機與外圍設備、電源、系統(tǒng)軟件一起構成應用系統(tǒng),稱為計算機系統(tǒng)。

在一塊印刷電路板上,集成了中央處理單元CPU、只讀存儲器ROM、隨機存取存儲器RAM、

I/O接口、定時器/計數(shù)器、中斷系統(tǒng)等功能部件,構成一臺完整的微型計算機,稱為單板

機。

在一塊半導體芯片上,集成了中央處理單元CPU、只讀存儲器ROM、隨機存取存儲器RAM、

I/O接口、定時器/計數(shù)器、中斷系統(tǒng)等功能部件,構成?臺完整的微型計算機,稱為單片

機。

1.4為什么要采用總線結構?芯片為什么要通過緩沖器才能掛在總線上?

解:微型計算機采用總線結構后,芯片之間不需單獨走線,大大減少了連接線的數(shù)量。

掛在總線上的芯片不能同時發(fā)送信息,否則多個信息同時出現(xiàn)在總線上將發(fā)生沖突而造成

出錯。

如果有幾塊芯片需要輸出信息,就必須分時傳送,為了實現(xiàn)這個要求,掛在總線上的各芯片

必須通

過緩沖器與總線相連。

1.5何謂程序計數(shù)器?程序計數(shù)器中存放的是什么內(nèi)容?它對計算機的工作起什么作用?

在什么情

況下,程序的執(zhí)行順序發(fā)生轉移?此時程序計數(shù)器的內(nèi)容是怎么樣的?

解:程序計數(shù)器PC是管理程序執(zhí)行次序的特殊功能寄存器。

程序計數(shù)器PC中存放的是下一條要執(zhí)行的指令的地址。它管理程序執(zhí)行的次序。

在執(zhí)行轉移指令的情況下,程序的執(zhí)行順序發(fā)生轉移。此時程序計數(shù)器直接接受內(nèi)部總線送

的數(shù)據(jù),并用該數(shù)據(jù)取代原有的內(nèi)容。

1.6評價存儲器有哪些重要的指標?為什么說存儲器性能已成為計算機性能提高的關鍵?

10

解:存儲器的重要指標是容量和存取速度。

容量越大,則記憶的信息越多,計算機的功能就越強。存儲器的存取速度比CPU的運算速

度要

低,所以存儲器的工作速度是影響計算機工作速度的主要因素。

1.7綜述存儲器的種類、特點、用途和優(yōu)缺點?(主要針對內(nèi)存)

解:按結構與使用功能分,內(nèi)存儲器可分為隨機存取存儲器RAM和只讀存儲器ROM兩類。

隨機存取存儲器RAM又稱讀寫存儲器,它的數(shù)據(jù)讀取、存入時間都很短,因此,計算機運

行時,

既可以從RAM中讀數(shù)據(jù),又可以將數(shù)據(jù)寫入RAMo但掉電后RAM中存放的信息將丟失。

RAM適宜存放原始數(shù)據(jù)、中間結果及最后的運算結果,因此又被稱作數(shù)據(jù)存儲器。

只讀存儲器ROM讀出一個數(shù)據(jù)的時間為數(shù)百納秒,有時也可改寫,但寫入一個數(shù)據(jù)的時間

長達

數(shù)十ms,因此在計算機運行時只能執(zhí)行讀操作。掉電后ROM中存放的數(shù)據(jù)不會丟失。

ROM適宜存放程序、常數(shù)、表格等,因此又稱為程序存儲器。

只讀存儲器又可以分為下列四類:

①掩膜ROM:在半導體工廠生產(chǎn)時,已經(jīng)用掩膜技術將程序做入芯片,用戶只能讀出其內(nèi)

容而

不能改寫。掩膜ROM只能應用于有固定程序且批量很大的產(chǎn)品中。

②可編程只讀存儲器PROM:用戶可將程序寫入PROM,僅程序一經(jīng)寫入就不能改寫。

③可擦除可編程只讀存儲器EPROM:用戶可將程序寫入EPROM芯片。如果要改寫程序,先

用紫外燈照射芯片,擦去原先的程序,然后寫入新程序。與PROM芯片一樣,寫入的速度很

慢,且

要用到高壓,所以必須用特定的EPROM編程器寫入信息。在計算機運行時只能執(zhí)行讀操作。

④電擦除可編程只讀存儲器EEPROM:這是近年發(fā)展起來的一種只讀存儲器。由于采用電擦

除方式,而且擦除、寫入、讀出的電源都用十5V,故能在應用系統(tǒng)中在線改寫。但目前寫

入時間較

長,約需10ms左右,讀出時間約為幾百ns,

1.8何謂堆棧?為什么要設置堆棧?棧區(qū)是怎樣確定的?數(shù)據(jù)進棧、出棧按照何種規(guī)律?進

棧用什

么指令?出棧用什么指令?進棧、出棧時棧指針如何變化?通常棧底所指是什么內(nèi)容?

解:微型計算機中的堆棧是讀寫存儲器RAM中的一個特殊的區(qū)域,是一組按照“先進后出”

的方式工

作的、用于暫存信息的存儲單元。

設置堆棧的目的是便于保護斷點地址與現(xiàn)場信息。

用堆棧指針指示堆棧所在的位置。

數(shù)據(jù)進棧、出?!鞍聪冗M后出”的原則工作。

進棧用PUSH指令,出棧用POP指令。進棧時指針向地址增加的方向變化,出棧時指針向

地址

減小的方向變化。

棧底是最先進棧的信息所在的單元。

1.9請解釋下列名詞:

(1)字長,字,字節(jié),BCD碼,ASCII碼。

(2)指令,指令地址,指令系統(tǒng),程序。

解:(1)一臺計算機一次所能處理的二進制代碼的位數(shù)稱為該計算機的字長。

16位二進制數(shù)稱為一個字。

8位二進制數(shù)稱為一個字節(jié)。

二進制編碼的十進制數(shù),簡稱二

十進制數(shù),又稱BCD碼(BinaryCodedDecimal)?

11

ASCII碼是美國標準信息交換代碼(AmericanStandardCodeforInformationInterchange)

的縮寫。

(2)指令:控制計算機進行各種操作的命令稱為指令。

指令地址:指令所在存儲單元的地址。

指令系統(tǒng):一臺計算機所具有的所有指令的結合,稱為該計算機的指令系統(tǒng)。

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

1.10計算機中常用的計數(shù)制有哪些?

解:二進制、十進制(BCD)、十六進制。

1.11什么是機器碼?什么是真值?

解:把符號數(shù)值化的數(shù)稱為機器數(shù)或機器碼,原來的數(shù)值叫做機器數(shù)的真值。

1.12完成下列數(shù)制的轉換。

(l)10100110B=()D=()H

(2)0.11B=()D

(3)253.25=()B=()H

(4)1011011.101B=()H=()BCD

解:

(1)166,A6

(2)0.75

(3)11111101.01,FD.4

(4)5B.A,10010001.011000100101

1.138位和16位二進制數(shù)的原碼、補碼和反碼可表示的數(shù)的范圍分別是多少?

解:8位二進制數(shù)原碼(127

?+127)、16位二進制數(shù)原碼(32767

?+32767)

8位二進制數(shù)補碼(128?+

127)、16位二進制數(shù)補碼(32768

?+32767)

8位二進制數(shù)反碼(127?+

127)、16位二進制數(shù)反碼(32767-+

32767)

1.14寫出下列真值對應的原碼和補碼的形式。

(1)X=1110011B

(2)X=71D

(3)X=+1001001B

解:

(1)原碼:1111001IB補碼:10001101B

(2)原碼:11000111B補碼:10111001B

(3)原碼:01001001B補碼:01001001B

1.15寫出符號數(shù)10110101B的反碼和補碼。

解:11001010B,11001011B

1.16已知X和Y的真值,求[X+Y]的補碼

(1)X=1110111B

Y=+1011010B

(2)X=56DY=21D

12

解;(1)1110001IB

(2)00100011B

1.17己知X=1101001B,

Y=1010110B.

用補碼求XY

的值。

解:11101101B

1.18請寫出下列字符的ASCII碼。

4A3=!

解:34H,41H,33H,3DII,21H

1.19若給字符4和9的ASCII碼加奇校驗,應是多少?

解:34H,B9II

1.20上題中若加偶校驗,結果如何?

解:B4H,3911

1.21計算下列表達式。

(1)(4EH+10110101B)X(0.0101)BCD=()D

(2)4EH(

24/08H十'B'/2)=()B

解:⑴129.51)

(2)101010B

13

第2章MCS51

單片機的硬件結構

2.1請結合課本中MCS51

系列單片機的結構圖,闡明其大致組成。

解:按功能部件分,51子系列單片機由CPU、數(shù)據(jù)存儲器RAM、程序存儲器ROM、特殊功

能寄存

器、4個并行I/O口、1個串行口、定時器/計數(shù)器、中斷系統(tǒng)等八個功能部件組成。

CPU由累加器A、暫存器1、2、ALU、PSW等組成

數(shù)據(jù)存儲器由RAM地址寄存器、RAM單元等組成。

程序存儲器指EPROM或ROMo

SFR指PO、Pl、P2、P3鎖存器、B、DPTR等。

2.2綜述MCS51

系列單片機各引腳的作用,并進行分類。

解:(D主電源引腳

Vcc:接+5V電源正端。

Vss::接+5V電源地端。

(2)外接晶體引腳

XTAL1:片內(nèi)反相放大器輸入端

XTAL2:片內(nèi)反相放大器輸出端

(3)輸入/輸出引腳

PO.0P0.7:

P0口的8個引腳。在不接片外存儲器與不擴展I/O接口時,作為準雙向輸入/輸

出接口(在輸入時需要附加條件的雙向輸入輸出口,稱為準雙向I/O口)。在接有片外存

儲器或擴展

I/O接口時,P0口分時復用為低8位地址總線和雙向數(shù)據(jù)總線。

P1.0P1.7:

P1口的8個引腳。可作為準雙向I/O接口使用。對于52子系列,P1.0與Pl.1還有

第二種功能:P1.0可用作定時器/計數(shù)器2的計數(shù)脈沖輸入端T2;Pl.1可用作定時器/

計數(shù)器2的

外部控制端T2EX。

P2.0P2.7;

P2口的8個引腳。-?般可作為準雙向I/O接口;在接有片外存儲器或擴展I/O接

口且尋址范圍超過256個字節(jié)時,P2口用為高8位地址總線。

P3.0P3.7;

P3口的8個引腳。

①一般可作為準雙向I/O接口;

②P3口的第二功能如表21

所示。

表21

引腳第二功能

P3.0

P3.1

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

RXD(串行輸入U)

RXD(串行輸出口)

INTO(外部中斷0請求輸入端)

INT1(外部中斷1請求輸入端)

TO(定時器/計數(shù)器0計數(shù)脈沖輸入端)

T1(定時器/計數(shù)器1計數(shù)脈沖輸入端)

WR(片外數(shù)據(jù)存儲器寫選通信號輸出端)

RD(片外數(shù)據(jù)存儲器讀選通信號輸出端)

14

2.3EA引腳的作用是什么?在下列四種情況下,EA引腳各應該接何種電平?

⑴只有片內(nèi)ROM.

(2)只有片外ROM。

(3)有片內(nèi)ROM和片外ROM。

(4)有片內(nèi)ROM和片外ROM,片外ROM所存為調試程序。

解:EA/VDD:片外程序存儲器選用端。

(1)EA=1。

(2)EA=0。

(3)若片外ROM和片內(nèi)ROM編址不重疊,則EA=1。

(4)若片外ROM和片內(nèi)ROM編址重疊,則訪問片內(nèi)ROM時EA=1,訪問片外ROM時EA=O。

2.4MCS51

系列單片機的引腳中有多少根I/O線?它們與單片機對外的地址總線和數(shù)據(jù)總線之間有

什么關系?其地址總線和數(shù)據(jù)總線各有多少位?對外可尋址的地址空間有多大?

解:MCS51

系列單片機有4個I/O端口,每個端口都是8位雙向口,共占32根引腳。在無片外擴

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

外擴展存

儲器的系統(tǒng)中,P2口作為高8位地址線,P0口分時作為低8位地址線和雙向數(shù)據(jù)總線,

P3口作為

控制線使用。地址和數(shù)據(jù)線分別是16位和8位,對外可尋址的地址空間是64KB。

2.5程序計數(shù)器的符號是什么?MCS51

系列單片機的程序計數(shù)器有幾位?它的位置在哪里?

解:程序計數(shù)器的符號是PC,MCS51

系列單片機的程序計數(shù)器有16位,為一個專用寄存器。在

CPU內(nèi)部。

2.6何謂程序狀態(tài)字?它的符號是什么?它的位置在哪里?它各位的含義是什么?為1、為

0各代表

什么?各在何種場合有用?

解:程序狀態(tài)字是一個8位寄存器,它包含了程序運行的狀態(tài)信息,它的符號是PSW,它

的位置在

CPU中。各位含義如下:

D7D6D5D4D3D2DID0

CAcF0RSIRSO02P

(1)進位標志位C(PSW.7):

作用:在執(zhí)行某些算術操作類、邏輯操作類指令時,可被硬件或軟件置位或清零。

例如8位加法運算時,如果運算結果的最高位D7有進位,則C=l,否則C=0;

又如8位減法運算時,如果運算結果的最高位D7有借位,則C=l,否則C=0。

(2)輔助進位標志Ac(PSW.6):

作用:8位加法運算時,如果低半字節(jié)的最高位D3有進位,則Ac=l,否則Ac=O;8位

減法

運算時,如果D3有借位,貝UAc=l,否則Ac=O。

Ac在作BCD碼運算而進行二一十進制調整時有用。

(3)軟件標志FO(PSW.5)

作用:是用戶定義的一個狀態(tài)標志??赏ㄟ^軟件對它置位、或清零。編程時,也常測試其是

建起而進行程序分支。

15

(4)工作寄存器組選擇位RSI、RSO(PSW.4、PSW.3):

作用:用軟件置位或清零,以確定四組工作寄存器中的哪一組工作,它們與各組的對應關系

RSIRSO

000組(地址從0007H)

011組(地址從080FH)

102組(地址從101711)

113組(地址從181FH)

(5)溢出標志OV(PSW.2):

作用:當執(zhí)行算術運算時,由硬件置位或清零,以指示溢出狀態(tài)。各種算術指令對該位的影

響情

況在指令系統(tǒng)中詳細介紹。

(6)奇偶標志P(PSW.0):

每執(zhí)行一條指令,單片機都能根據(jù)A中1的個數(shù)的奇偶自動令P置位或清零:奇為1,

偶為0。

此標志對串行通信的數(shù)據(jù)傳輸非常有用,通過奇偶校驗可檢驗傳輸?shù)目煽啃浴?/p>

2.7MCS51

系列單片機的內(nèi)存由哪幾部分組成?其編址與訪問的規(guī)律是怎樣的?

解:MCS51

系列單片機內(nèi)存由程序存儲器與數(shù)據(jù)存儲器兩個獨立的空間。

程序存儲器的編址自0000H開始,最大可至FFFFILMCS51

單片機有3種不同的芯片:片內(nèi)

有掩膜只讀存儲器的(如8051、8052)、片內(nèi)有EPROM的(如8751)和片內(nèi)沒有只讀存儲器

的(如8031、

8032),而ROM的尋址范圍為64KB,所以片內(nèi)程序存儲器的容量遠小于該數(shù),可見如擴展

片外存

儲器,其裕量是很大的。

ROM編址規(guī)律:程序存儲器的編址規(guī)律為:先片內(nèi)、后片外,片內(nèi)、片外連續(xù),二者一般不

重疊。根據(jù)PC的內(nèi)容進行訪問。

片內(nèi)RAM從00H開始編址,片外RAM從0000H開始,部分地址重疊(實際并不完全一樣),

若只需擴展少量片外RAM,容量不超過256個單元,則也可以按照8位二進制編址,從00H

開始,

到FFH結束。由于訪問片內(nèi)外RAM所用的指令不一樣,不會引起混淆。

2.8MCS51

系列單片機片內(nèi)RAM有多少單元?有哪些用途?這些用途各占用哪些單元?堆棧的棧

區(qū)設在哪里?

解:51子系列片內(nèi)RAM有128B單元,52子系列片內(nèi)RAM有256B單元。

單片機片內(nèi)RAM可分為:工作寄存器區(qū),位尋址區(qū),數(shù)據(jù)緩沖區(qū)三個區(qū)域。

(1)工作寄存器區(qū):00H1FH

單元為工作寄存器區(qū)。供用戶編程時使用,臨時寄存8位信息。分

為四組:07R~R,但同時只能有一組參與程序程序的運行,用RSI,RSO兩位的狀態(tài)

來選擇參與

運行的工作寄存器組。

(2)位尋地址:20H2FH,

對該區(qū)的每一位,都有一個位地址,共有128個位地址。

(3)數(shù)據(jù)緩沖區(qū):30H7FH(

52子系列為30H'FFH),作為普通的RAM單元使用。

(4)堆棧棧區(qū)一般設在2FH以上的單元。

2.9MCS51

系列單片機在片內(nèi)集成了哪些主要邏輯功能部件?各個邏輯部件的主要功能是什么?

解:MCS51

單片機在片內(nèi)集成了中央處理器(CPU)、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、

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

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

運算,

16

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

存器IR

(InstructionRegister),指令譯碼器ID(InstructionDecoder)>定時控制邏輯和振

蕩器OSC等電路組

成。CPU根據(jù)PC中的地址將欲執(zhí)行指令的指令碼從存儲器中取出,存放在IR中,ID對IR

中的指

令碼進行譯碼,定時控制邏輯在OSC配合下對ID譯碼后的信號進行分時,以產(chǎn)生執(zhí)行本

條指令所

需的全部信號。

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

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

8051內(nèi)部有兩個16位可編程序的定時器/計數(shù)器T0和T1,均為加1計數(shù)器??捎糜诙?/p>

時和對

外部輸入脈沖的計數(shù)。

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

對5個

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

路組成。其

中,IE用于控制5個中斷源中哪些中斷請求被允許向CPU提出,哪些中斷源的中斷請求被

禁止;IP

用于控制5個中斷源的中斷請求的優(yōu)先權級別。

I/O接口是MCS51

單片機對外部實現(xiàn)控制和信息交換的必經(jīng)之路,用于信息傳送過程中的速度

匹配和增加它的負載能力??煞譃榇泻筒⑿蠭/O接口。

2.108051單片機的控制總線信號有哪些?各有何作用?

解:獨立的控制線一共有4條:

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

儲器時,

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

個高電位

脈沖,用于把這個片外存儲器低8位地址鎖存到外部專用地址鎖存器,以便空出P0.7-P0.0

引腳線

去傳送隨后而來的片外存儲器讀寫數(shù)據(jù)。在不訪問片外存儲器時,8051自動在ALE/PROG

上輸出頻

率為fosc/6的脈沖序列。該脈沖序列可用作外部時鐘源或作為定時脈沖源使用。

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

用片外

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

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

產(chǎn)

生一個負脈沖,用于為片外ROM芯片的選通。其他情況下PSEN線均為高電平封鎖狀態(tài)。

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

2.11何謂特殊功能寄存器?8031有哪些特殊功能寄存器?試按其用途相關聯(lián)的硬件功能

單元(如

CPU、并行1/0口、串行1/0口、定時器/計數(shù)器、中斷控制等)進行分類。

解:特殊功能寄存器也稱專用寄存器。專用于控制、管理片內(nèi)算術邏輯部件,并行1/0口,

串行1/0

口,定時器/計數(shù)器,中斷系統(tǒng)等功能模塊的工作,用戶在編程時可以置數(shù)設定,但不能移

作它用。

除PC外,8031有18個專用寄存器,其中3個為雙字節(jié)寄存器,共占用21個字節(jié),按

其用途

相關聯(lián)的硬件功能單元可分:P0口,堆棧指針、數(shù)據(jù)指針低字節(jié),數(shù)據(jù)指針高字節(jié),定時

器/計數(shù)器

/計數(shù)器0高、低字節(jié),定時器/計數(shù)器1高、低字節(jié),P1口,電源控制、串行控制;串

行數(shù)據(jù)緩沖

器,P2口,中斷允許控制,P3口,中斷允許優(yōu)先級控制,程序狀態(tài)字,累加器,B寄存器

共18個

專用寄存器。

2.12何謂時鐘周期、指令周期、機器周期?針對MCS51

系列單片機,如采用12MHZ晶振,它們

的頻率和周期各是什么?

解:振蕩器輸出的振蕩脈沖經(jīng)二分頻成為內(nèi)部時鐘信號,用作單片機內(nèi)部各功能部件按序

協(xié)調工作

的控制信號,其周期稱時鐘周期。

機器周期:6個時鐘周期構成一個機器周期。

17

指令周期:CPU執(zhí)行一條指令的時間。

針對MCS51

系列單片機,采用12MHz晶振,則振蕩周期為0.167us,時鐘周期為0.333us,

頻率為6MHZ,機器周期為lus,頻率為1MHZ,指令周期為lus到4us,頻率為1MHZ到

0.25MHz。

2.13綜述P0、Pl、P2、P3口各有哪幾種功能。

解:這4個接口可以并行輸入或輸出8位數(shù)據(jù);也可按位使用,即每一?根輸入/輸出線都

能獨立地

用作輸入或輸出。四個8位并行口的功能各不相同:

P0口是三態(tài)雙向口,通常稱為數(shù)據(jù)總線口,因為只有該口能直接用于對外部數(shù)據(jù)總線的讀

寫操

作,P0口還用于輸出外部數(shù)據(jù)存儲器的低8位地址。山于是分時輸出,故應在外部加地址

鎖存器將

地址數(shù)據(jù)鎖存,地址鎖存信號用ALE。

Pl口是專門供用戶使用的I/O接口,是準雙向接口。

P2口是供系統(tǒng)擴展時作高8位地址線用,如果沒有系統(tǒng)擴展,例如使用8051/8751單片

機不擴

展外部存儲器時,P2口也可以作為用戶I/O線使用。P2口也是準雙向口。

P3口是雙功能口,該口的每一位均可以獨立地定義為第一I/O功能或第二I/O口功能。

P3口的

第二功能如表21

所示。

2.14在讀回端口數(shù)據(jù)時,為什么應讀鎖存器內(nèi)容,而不宜讀引腳電平?

解:假如通過三態(tài)門從引腳上讀回數(shù)據(jù),有時會發(fā)生錯誤。例如用一根口線去驅動一個晶體

管的

基極,在向此口線輸出1時,鎖存器Q=l,但晶體管導通后,引腳上的電平已拉到低電平

(0.7V),

從引腳讀回數(shù)據(jù)會錯讀為0。

2.15闡明“準雙向口”這一名稱所以要加用“準”字的理由。

解:在執(zhí)行輸入操作時,如果鎖存器原來寄存的數(shù)據(jù)Q=0。那么由于Q=1將使VI導通,

引腳被

始終箝拉在低電平上,不可能輸入高電平。為此,用作輸入前,必須先用輸出指令置Q=l,

使VI

截止。正因為如此P1口稱為準雙向接口。

2.168031單片機與開關及LED發(fā)光二極管接口電路如2.16題圖所示。用8031單片機Pi口的

P1.3P1.0

作為數(shù)據(jù)輸入口,聯(lián)接開關K3K0,

P1.7P1.4

作為輸出口,聯(lián)接發(fā)光二極管LED3LED。;

編程使開關

K3Ko

的狀態(tài)由P1.3P1.0

輸入,再由P1.7P1.4

輸出,通過發(fā)光二極管顯示出來,要求開關合上時,二

極管亮,開關斷開時,二極管不亮。

+5V

EA

P1.5

P1.6

8031

P1.7

LED1

LED2

LED3

P1.4

+5V

PL0

Pl.1

PL2

LED0

Pl.3

KI

K2

K3

KO

2.16題圖

解:ORG2200H

MOVA,#FFH;Pl口為輸入,先送1

18

MOVPi,A;Pi口低4位輸出1

LOOP:MOVA,Pi;口狀態(tài)輸入

SWAPA;開關狀態(tài)到高4位

ORLA,#OFH;低4位為1,為下一次輸入做準備

MOVPi,A;開關狀態(tài)輸出

AJMPLOOP;循環(huán)

2.17電路如2.17題圖所示,用8031P1口的PLO、Pl.1作為變量X、W的輸入端,用

P1.2作為電

路輸出端,并用LED來顯示輸出,Pl.3端傳送狀態(tài)消息。當檢測到P1.3為低電平時,

CPU開始運

算D=(X0W)。(XUW),并把結果送P1.2輸出顯示,然后重新開始檢測P1.3狀

態(tài)信息,試編

寫完成上述要求的程序。

EA+5V

P1.0

PL1

8031

Pl.3

Y

Pl.2

2.17題圖

解:參考程序如卜:

ORG0000H

LJMPMAIN

ORG01OOH

MAIN:MOVPl,#08H

LOOP:MOVC,P1.3

JCLOOP

MOVPl,#03H

MOVC,P1.0

ANLC,P1.1

CPLC

MOVOOH,C

MOVC,P1.0

ORLC,P1.1

ANLC,OOH

MOVP1.2,C

SJMPMAIN

END

2.18第2.18題圖示電路中,XI、X2、X3是三個故障源,當系統(tǒng)無故障時,XI、X2、X3均

為低電

19

平,對應的三個顯示燈全滅;當某部分出現(xiàn)故障時,其對應的輸入端山低電平變?yōu)楦唠娖剑?/p>

從而引

起51單片機中斷,中斷服務程序的任務是判定故障,并點亮對應的發(fā)光二極管,發(fā)光二

極管LED1?

LED3對應三個輸入端XI?X3。試編程。

+5V

EA

P1.3

P1.4

8031

P1.5

INTO+

XI

X2

X3

LED1

LED2

LED3

P1.0

Pl.1

Pl.2

2.18題圖

解:參考程序如下:

ORG0000H

LJMPMAIN

ORG0003H

LJMPINTOSER

ORG01OOH

MAIN:MOVP1,#OFFH

SETBITO

SETBEXO

SETBEA

LOOP:AJMPLOOP

INTOSER:JNBPL0,LI

CLRP1.3

LI:JNBPl.1,L2

CLRP1.4

L2:JNBPl.2,L3

CLRP1.5

L3:RET

END

2.19設某單片機應用系統(tǒng)的Pl口連接如第2.19題圖所示,要求根據(jù)K0的合斷情況決

定DI、DO

的點亮。如果K0合上,D0點亮,如果K0斷開,D1點亮。試編程實現(xiàn)之

解:

ORG0000H

LJMPMAIN

ORG0100H

MAIN:MOVPl,#OCOH

LOOP:JBPl.7,ELSE

CLRP1.0

20

AJMPLOOP

ELSE:CLRP1.1

AJMPLOOP

END

+5V

+5V

EA

KO

DO

DI

Pl.7

Pl.1

P1.0

8031

第2.19題圖

2.20設某單片機應用系統(tǒng)的P1口連接如第2.20題圖所示,問:

+5V

+5V

EA

K0

K1

D0

D1

Pl.7

Pl.6

Pl.l

P1.0

8031

第2.20題圖

(1)執(zhí)行第一條指令后,哪些指示燈會亮?

(2)第二條指令的用處?

(3)執(zhí)行下列指令到最后,(A)=?要求寫出分析過程。

MOVPl,#OEH

ORLPl,#COH

MOVA,Pl

ANLA,#COH

解:1.DI會亮。

2.為PL7、Pl.6的輸入做準備。

3.A的內(nèi)容為80Ilo

2.21MCS51

怎樣實現(xiàn)上電復位與操作復位?并請綜述各專用寄存器復位后的狀態(tài)。

解:與其他計算機一樣,MCS51

單片機系統(tǒng)有上電復位和操作復位兩種方法。所謂上電復位,是

21

指計算機上電瞬間,要在RST引腳上出現(xiàn)寬度大于10ms的正脈沖,使計算機進入復位狀

態(tài)。操作

復位指用戶按下“復位”按鈕使計算進入復位狀態(tài)。

復位是靠外部電路實現(xiàn)的。2.21題圖是上電復位及按鈕復位的一種實用電路。

上電時+5V電源立即對單片機芯片供電,同時經(jīng)R對C3充電。C3上電壓建立的過程就是負

沖的寬度,經(jīng)倒相后,RST上出現(xiàn)正脈沖使單片機實現(xiàn)了上電復位。按鈕按下時RST上同

樣出現(xiàn)

高電平,實現(xiàn)了操作復位。在應用系統(tǒng)中,有些外圍芯片也需要復位,如果這些芯片復位端

的復位

電平與單片機一致,則可以與單片機復位腳相連。因此,非門在這里不僅起到了倒相作用,

還增大

了驅動能力。電容Cl、C2起濾波作用,防止干擾竄入復位端產(chǎn)生誤動作。

10KW

iC2C

3C

ccV

100pF10uF10uF

2.21題圖復位電路

各專用寄存器復位后的狀態(tài)如下表所示:

22

第3章MCS51

系列單片機的指令系統(tǒng)

3.1MCS51

系列單片機的尋址方式有哪幾種?請列表分析各種尋址方式的訪問對象與尋址范圍。

解:①立即尋址、②寄存器尋址、③寄存器間接尋址、④直接尋址、⑤基址寄存器加變址寄

存器間

接尋址、⑥相對尋址、⑦位尋址。

尋址方式訪問對象尋址范圍

立即尋址立即數(shù)--------

寄存器尋址

工作寄存器R0~R7,累加器

A、寄存器B,數(shù)據(jù)指針

DPTR,位處理器C

OOH'IFH,EOH,FOH、82H、

8311

寄存器間接尋址RAM單元內(nèi)部RAM及外部擴展的

64KRAM

直接尋址ROM和RAM內(nèi)部RAM00H7FH,

SFR

80HFFH,

R0M64KB

變址尋址ROMROMOOOOHFFFFH

相對尋址ROMROMOOOOHFFFFH

位尋址位尋址區(qū)內(nèi)RAM20H2FH

中的可尋

址位,SFR中的可尋址位

3.2要訪問片內(nèi)RAM,可有哪兒種尋址方式?

解:對于51系列,要訪問片內(nèi)RAM,有間接尋址、直接尋址、位尋址。52子系列訪問片

內(nèi)低128

個字節(jié)有直接尋址、位尋址、間接尋址,高128字節(jié)有間接尋址。

3.3要訪問片外RAM,可有哪幾種尋址方式?

解:訪問片外RAM有寄存器間接尋址方式。

3.4要訪問ROM,可有哪幾種尋址方式?

解:要訪問ROM有直接尋址、變址尋址、相對尋址

3.5試分別對51子系列和52子系列,說明MOVA,direct指令與MOVA,@Rj指令的

訪問范圍。

解:MOVA,direct指令中direct對于51子系列的訪問范圍為內(nèi)RAM中的低128B單

元,從00H

到7FH,訪問SFR的范圍是從80H到FF出52子系列的訪問范圍與51子系列的訪問范

圍相同。

MOVA,?Rj指令對于51子系列的訪問范圍為內(nèi)RAM的128B單元,從00H至!j7FH,對

52子系列的訪問范圍為片內(nèi)RAM從00H到FFH。

3.6傳送指令中有哪兒小類是訪問RAM的?咖幾個類是訪問ROM的,CPU訪問ROM多不

多?

什么時候需要訪問ROM?

解:訪問RAM的有:以累加器A為一方的傳送指令,不以累加器為一方的傳送指令,用

立即數(shù)置

數(shù)的指令,訪問片外RAM的傳送指令,進棧出棧指令,交換指令。

訪問ROM的有:基址寄存器加變址寄存器間址指令

23

因為ROM是只讀存儲器,用作程序存儲器,已事先存入各種程序,常數(shù)、表格等,CPU訪

ROM不多,當執(zhí)行程序,程序轉移以及用戶訪問時需要訪問ROM,

3.7區(qū)分下列指令的不同功能:

⑴MOVA,#24H與MOVA,24H

⑵MOVA,RO與MOVA,?RO

⑶MOVA,@R0與MOVXA,@R0

解:⑴前者是將立即數(shù)24H送入A中,后者是將24H單元的內(nèi)容送入A中.

(2)前者將R0中的內(nèi)容送入A中,后者是將以R0中的內(nèi)容為地址所在單元的內(nèi)容送入A

中.

(3)前者是將片內(nèi)RAM以R0中的內(nèi)容為地址所在單元的內(nèi)容送入A中,后者是將片外

RAM

的以R0中的內(nèi)容為地址所在單元的內(nèi)容送入A中.

3.8設片內(nèi)RAM30H單元的內(nèi)容為40H,設片內(nèi)RAM40H單元的內(nèi)容為10H,片內(nèi)RAM10H

元的內(nèi)容為OOH,(P1)=OCAH,請寫出下列指令執(zhí)行后的結果。

MOVRO,#30H

MOVA,?RO

MOVRI,A

MOVB,@R1

MOV?RO,Pl

MOVP3,Pl

MOV10H,#20H

MOV3OH,1OH

解:MOVRO,#30H;RO-30H

MOVA,?RO;A-40H

MOVRI,A;RI-40H

MOVB,@R1;B-10H

MOV@R0,Pl;30H-OCAH

MOVP3,Pl;P3-0CAH

MOV10H,#20H;1OH=20H

MOV30H,10H;30H-20H

3.9已知:(A)=35H,(R0)=6FH,(Pl)=(90H)=FCH,(SP)=COH,試寫出下列指令的執(zhí)行結果。

(1)MOVR6,A

(2)MOV@R0,A

(3)MOVA,#90H

(4)MOVA,90H

(5)MOV80H,#81H

(6)MOVX?RO,A

(7)PUSHA

(8)SWAPA

(9)XCHA,RO

24

解:(l)MOVR6,A;(R6)=3511

(2)MOV?RO,A;(6FH)=35H

(3)MOVA,#9011;(A)=9011

(4)MOVA,90H;(A)=FCH

(5)MOV80H,#8111;(80H)=8111

(6)MOV?RO,A;(6FH)=35H

(7)PUSHA;(SP)=C1H,(C1H)=35H

(8)SWAPA;(A)=53H

(9)XCHA,RO;(A)=6FH,(R0)=35H

3.10已知:(A)=02H,(R1)=7FH,(DPTR)=2FFCH,片內(nèi)RAM(7FH)=70H,片外

RAM(2FFEH)=11H,

ROM(2FFEH)=64H,試分別寫出下列指令的執(zhí)行結果。

(1)MOVA,@R1

(2)MOVX?DPTR,A

(3)MOVCA,@A+DPTR

(4)XCHDA,@R1

解:(1)(A)=70H(2)片外RAM(2FFCH)=02H

(3)(A)=64H(4)(A)=00H片內(nèi)RAM(7FH)=72H

3.11已知:(A)=78H,(R1)=78H,(B)=04H,C=L片內(nèi)RAM(78H)=DDH,片內(nèi)RAM(80H)=6CH,

試分別寫出下列指令的執(zhí)行結果(如涉及標志位,也要寫出)。

(1)ADDA,@R1

(2)ADDCA,78H

(3)SUBBA,#77H

(4)INCRI

(5)DEC78H

(6)MULAB

(7)DIVAB

(8)ANL78H,#78H

(9)ORLA,ttOFH

(10)XRL80H,A

解:(1)(A)=55H(PSW)=11XXX1X0

(2)(A)=56H(PSW)=11XXX1X0

(3)(A)=0011(PSW)=00XXX0X0

25

(4)(Ri)=7911

(5)(78H)=DCH

(6)(BA)=01E0H,C=1OV=1

(7)(B)=00H,(A)=1EH

(8)(78H)=5811

(9)(A)=7FH

(10)(8011)=14H

3.12請對下列各組數(shù)分別計算“與”、“或”、“異或”的結果:

(1)10011010B和00001111B

⑵11010011B和01011010B

⑶11001100B和00110011B

(4)10101010B和11111111B

解:(1)結果分別為00001010B10011111B10010101B

(2)結果分別為01010010B11011011B10001001B

(3)結果分別為OOOOOOOOB11111111B11111111B

(4)結果分別為10101010B11111111B01010101B

3.13為達到下列要求,請說明應采用何種邏輯操作,采用什么操作數(shù),要求不得改變各未

涉及位的

內(nèi)容。

(1)使累加器的最低位置1

(2)清除累加器的高四位

(3)使A.2和A.3置1。

(4)清除A.3、A.4、A.5、A.6

解:(1)邏輯或操作操作數(shù):00000001B

(2)邏輯與操作操作數(shù):00001111B

(3)邏輯或操作操作數(shù):00001100B

(4)邏輯與操作操作數(shù):10000111B

3.14寫出下列各條指令的機器碼,并逐條寫出依次執(zhí)行每一條指令后的結果和PSW的內(nèi)

容:

(1)CLRA

(2)MOVA,#9BH

(3)MOVB,#OAFH

26

(4)ADDA,B

解:(1)機器碼E4H;(A)=0

(2)機器碼749BH;(A)=9BH

(3)機器碼75F0AFH;(A)=AFH

(4)機器碼25F0H;(A)=4AH;(PSW)=11XXX1X1B

3.15要選用工作寄存器3組,請采用三種不同的指令實現(xiàn)之。

解:(1)SETBPSW.4

SETBPSW.3

(2)ORLPSW,#18H

(3)MOVPSW,#18H

3.16列舉三種能使累加器A內(nèi)容清零的指令,并比較其優(yōu)缺、點。

解:(1)ANLA,#0011

(2)MOVA,#00H

(3)CLRA

3.17回答問題:

(1)算術操作類指令對標志位的影響。

(2)邏輯操作類指令對字節(jié)內(nèi)容的修改。

解:(1)算術操作指令的執(zhí)行將影響特殊功能寄存器中狀態(tài)寄存器PSW的3個標志位:

C:(PSW.7)進位標志;Ac:(PSW.6)輔助進位標志;OV:(PSM2)輔助進位標志

3個標志除特別指出外,指令服從以下規(guī)則:

①操作結果在最高位有進位輸出(加法時)或借位輸入(減法時),C=l;否則;C=0?

②操作結果的低4位有進位輸出(加法時)或有向高4位的借位(減法時),Ac=l;

否則;Ac=0?

③溢出標志0V滿足邏輯關系式OV=C6?C7;

C6為加法時,累加器A的D6位向D7產(chǎn)生的進位,或減法時累加器A的D6位向D7產(chǎn)

生的

借位,有進位或借位時,C6=l;

C7為加法時,累加器A的D7位向更高位產(chǎn)生的進位,或減法時累加器A的D7位向更

高位產(chǎn)

生的借位,有進位或借位時,C7=l;

0V標志位常用于加減指令對帶符號數(shù)做補碼加、減運算時,(0V)=1表示加、減運算的結

果超出

了A所能表示的帶符號數(shù)的范圍(128?

127)。

(2)①若要對內(nèi)部的某幾位清零,而其它位保持不變,可以選用ANLdirect,#data指令,

在需

27

要清零的位上對應的data的相應位清零。

②若要對內(nèi)部的某幾位置1可以選用ORLdirect,#data指令,在需要置1的位上對應

的data

的相應位置1?

③若要對內(nèi)部的某幾位求反可以選用XRLdirect,#data指令,在需要求反的位上對應的

data

的相應位置lo若要對內(nèi)部RAM某單元求反可以選用XRLdirect,#OFFH。

3.18要將片內(nèi)RAMOFH單元的內(nèi)容傳送去專用寄存器B,對0FH單元的尋址可有三種方

法:

(1)R尋址;

(2)R間址;

(3)Direct尋址;

請分別編寫出相應程序,比較其字節(jié)數(shù)、機器周期數(shù)和優(yōu)缺點。

解:⑴MOVRO,OFH

MOVB,RO

(2)MOV@R0,OFH

MOVB,?RO

(3)MOVB,OFH

(1)占四個字節(jié)數(shù),四個機器周期數(shù);(2)占四個字節(jié)數(shù),四個機器周期數(shù);(3)占三個字

節(jié)

數(shù),三個機器周期數(shù);所以第三種方法最好。

3.19設(RO)=7EH,(DPTR)=1OFEH,片內(nèi)RAM7EH單元的內(nèi)容為OFFH;7F單元的內(nèi)容為

38H,

試為下列程序的每條指令注釋其執(zhí)行結果。

INC@R0

INCRO

INC?RO

INCDPTR

INCDPTR

INCDPTR

解:INC?RO;將7EH單元的內(nèi)容加1,即7EH-00H

INCRO;R0-7FH

INC@R0;7FH-39II

INCDPTR;DPTR-1OFFH

INCDPTR;DPTR-11OOII

INCDPTR;DPTR-11O1H

28

3.20試編程:引用“與”運算,判斷某8位二進制數(shù)是奇數(shù)還是偶數(shù)

解:設該8位二進制數(shù)放在累加器A中,如果是奇數(shù),將F0標志置1,如果是偶數(shù),

將F0標志

清0o

ORG2000H

START:MOVRO,A

ANLA,#01H

JZLOOP

MOVA,RO

SETBPSW.5

SJMPHERE

LOOP:MOVA,RO

CLRPSW.5

HERE:SJMPHERE

3.21試編程:引用“或”運算,使任意8位二進制數(shù)的符號位必為“1”。

解:ORG2000H

START:ORLA,#80H

3.22請思考:引用“異或”運算,怎樣可使一帶符號數(shù)的符號位改變、數(shù)據(jù)位不變:怎樣

可使該數(shù)必

然變“0”o

解:將該數(shù)與80H相異或,就可以改變其符號位,而數(shù)值位保持不變。

將該數(shù)與其本身相異或,就可以使該數(shù)必然為0o

3.23要選擇工作寄存器組,可有幾種編程辦法?

解:可以采用如下三種辦法:

(1)SETBPSW.4

SETBPSW.3

(2)ORLPSW,#18H

(3)MOVPSW,#18H

3.24設ROM、片內(nèi)RAM、片外RAM各有關單元的內(nèi)容示如下圖,問執(zhí)行下列程序段后(A)

=?

0000AJMP030H

ORG0030H

0030MOVR0,#32H

29

MOVA,@R0

MOVRI,A

MOVXA,@R1

MOVCA,?A+DPTR

30H

33H

32H

31H

30H

31H

32H

33H

片內(nèi)RAM

3011

33H

32H

31H

32H

30H

33H

31H

片外RAM

0030H

0033H

0032H

0031H

30H

33H

31H

32H

ROM

解:(A)=30H

3.25若在片內(nèi)RAM30H單元中有二位壓縮的BCD碼95H,問執(zhí)行下列程序后,片內(nèi)

RAM30H單

元的內(nèi)容是什么?31H、32H的內(nèi)容又是什么?并寫出BCD碼十進制調整的過程。

MOVRO,#30H

MOVA,@R0

ANLA,#OFH

MOVR3,A

MOVA,@R0

SWAPA

ANLA,#OFH

ADDA,R3

DAA

MOV@R0,A

MOVR3,A

INCRO

ANLA,#OFH

MOV@R0,A

INCRO

MOVA,R3

ANLA,#OFOH

SWAPA

MOV?RO,A

RET

解:(30H)=14H;(3111)=0411;(32H)=01H;

30

第4章MCS51

匯編語言程序設計

4.1請解釋下列名詞:

機器碼助記符操作碼操作數(shù)源程序目標程序匯編程序匯編語言匯編語言程

序匯編指令匯編機器匯編人工匯編

解:機器碼二進制代碼形式的指令

操作碼用指令的英文縮寫表示,便于辨識指令的功能,也便于記憶,稱為助記符。

操作數(shù)是參與該指令操作的操作數(shù)或操作數(shù)所在的地點(尋址方式),有時,用一個表達式

來表

示一個操作數(shù),例如#TAB十lo

源程序匯編語言程序與高級語言程序

目標程序二進制代碼形式的程序

匯編程序機器匯編時用到的軟件

匯編語言用縮寫的英文單詞表示操作碼,用字母、數(shù)字表示操作數(shù)的語言

匯編語言程序用匯編指令書寫的程序

匯編指令用縮寫的英文單詞表示操作碼,用字母、數(shù)字表示操作數(shù)的指令

匯編將匯編語言源程序翻譯成目標程序的過程

機器匯編由機器完成匯編工作

人工匯編由編程人員手工完成匯編工作。

4.2經(jīng)過匯編后,下列各條語句的標號將是什么數(shù)值?

ORG2000H

TABLE:DS10

WORD:DB15,20,25,30

FANG:EQU1000H

BEGIN:MOVA,RO

解:TABLE=2000H;W0RD=200AH;FANG=1000H;BEGIN=200EH

4.3下列程序段經(jīng)過匯編后,從2000H開始的各有關存儲單元的內(nèi)容將是什么?

ORG2000H

TAB:DS5

DB10H,10

DW2100H

ORG2050H

31

DWTAB

DB“WORK"

解:從2000H到2004H單元內(nèi)容為預留的

(2005H)=10H;(2006H)=0AH

(2007H)=00H;(2008H)=21H

(2050H)=00H;(2051H)=20H

(2052H)=57H;(2053H)=4FH

(205411)=5211;(2055H)=4BII

4.4下列程序段經(jīng)過匯編后,從1000H開始的各有關存儲單元的內(nèi)容將是什么?

ORG1000H

TABI:EQU1234H

TAB2:EQU3000H

DB“START”

DWTABI,TAB2

解:(1000H)=53H;(1001H)=54H

(100311)=5211;(1004H)=541l

(1005H)=34H;(1006H)=12H

(100711)=0011;(100811)=3011

4.5有程序如下:

CLRC

CLRRSI

CLRRSO

MOVA,#38H

MOVRO,A

MOV29H,RO

SETBRSO

MOVRI,A

MOV26H,A

MOV28H,C

要求:(1)區(qū)分哪些是位操作指令?哪些是字節(jié)操作指令

32

(2)寫出程序執(zhí)行后,片內(nèi)RAM有關單元的內(nèi)容。

(3)譯成機器碼。

(4)按匯編語言程序的標準格式書寫,要求有各條指令的存放地址和必要的注釋。

解:(1)位操作指令為CLR、SETB指令,再加上MOV28H,C

(2)(C)=0;(RS1)=O;(RSO)=1;(A)=3811;(R0)=38H;(29H)=38H;(RI)=3811;(26H)=38H;

(28H)=0

⑶、(4)略。

4.6試編程:將兩個四位二進制數(shù)并存與一個字節(jié)。

解:設兩個四位二進制數(shù)分別存放于R0和R1的低半字節(jié),合并后的結果存于R2中。

ORG2000H

START:MOVA,RI

SWAPA

ORLA,RO

MOVR2,A

SJMP$

4.7試編程:有兩個雙字節(jié)壓縮的BCD碼數(shù)相加,設這兩待加數(shù)分別按先低后高原則存放

在30H、

31H和40H、41H單元,和要求放回30H、31H單元。

解:ORG0050H

START:MOVRO,#30H

MOVA,@R0

ADDA,40H

DAA

MOV@R0,A

INCRO

MOVA,@R0

ADDCA,41H

DAA

MOV@R0,A

SJMP$

ENDSTART

4.8試編程:將累加器A內(nèi)容

溫馨提示

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

評論

0/150

提交評論