微型計(jì)算機(jī)原理(清華大學(xué))譚浩強(qiáng) 課件合集(1~3 章)_第1頁
微型計(jì)算機(jī)原理(清華大學(xué))譚浩強(qiáng) 課件合集(1~3 章)_第2頁
微型計(jì)算機(jī)原理(清華大學(xué))譚浩強(qiáng) 課件合集(1~3 章)_第3頁
微型計(jì)算機(jī)原理(清華大學(xué))譚浩強(qiáng) 課件合集(1~3 章)_第4頁
微型計(jì)算機(jī)原理(清華大學(xué))譚浩強(qiáng) 課件合集(1~3 章)_第5頁
已閱讀5頁,還剩264頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

新世紀(jì)計(jì)算機(jī)基礎(chǔ)教育叢書主編譚浩強(qiáng)

微型計(jì)算機(jī)原理及應(yīng)用

(第三版)

本教材及實(shí)驗(yàn)裝置榮獲教育部科技進(jìn)步二等獎(jiǎng).

廿

心目錄

第1章計(jì)算機(jī)基礎(chǔ)知識(shí)

第2章微型計(jì)算機(jī)的基本組成電路

第3章微型計(jì)算機(jī)的基本工作原理

第4章16位微處理器

第5章86系列微型計(jì)算機(jī)的指令系統(tǒng)

第6章微型計(jì)算機(jī)的程序設(shè)計(jì)

第7章微型計(jì)算機(jī)匯編語言及匯編程序

第8章輸入/輸出接口

第9章中斷控制器、計(jì)數(shù)/定時(shí)控制器及DMA控制器

第10章A/D及D/A轉(zhuǎn)換器

第11章32位微處理器

第12章PC總線及整機(jī)結(jié)構(gòu)

第13章MCS-51單片計(jì)算機(jī)

第14章微型計(jì)算機(jī)在自動(dòng)控制系統(tǒng)中的應(yīng)用

第1章計(jì)算機(jī)與信息化社會(huì)

1.1數(shù)制

1.2邏輯電路

1.3布爾代數(shù)

1.4二進(jìn)制數(shù)的運(yùn)算及其加法電路

習(xí)題

現(xiàn)代計(jì)算機(jī)是在微電子學(xué)高速發(fā)展與計(jì)算數(shù)學(xué)日臻

完善的基礎(chǔ)上形成的,可以說現(xiàn)代計(jì)算機(jī)是微電子

學(xué)與計(jì)算數(shù)學(xué)相結(jié)合的產(chǎn)物。微電子學(xué)的基本電路

元件及其逐步向大規(guī)模發(fā)展的集成電路是現(xiàn)代計(jì)算

機(jī)的硬件基礎(chǔ),而計(jì)算數(shù)學(xué)的數(shù)值計(jì)算方法與數(shù)據(jù)

結(jié)構(gòu)則是現(xiàn)代計(jì)算機(jī)的軟件基礎(chǔ)。

微電子學(xué)與計(jì)算數(shù)學(xué)發(fā)展至今已是內(nèi)容繁多、體系

紛紜,已有不少專著分別闡述。本章只是簡要地闡

述計(jì)算機(jī)中最基本的電路元件及最主要的數(shù)學(xué)知

識(shí)。對于已學(xué)過這些知識(shí)的讀者,本章將起到復(fù)習(xí)

和系統(tǒng)化的作用。對于未曾接觸過這些內(nèi)容的讀

者,本章的內(nèi)容是必要的入門知識(shí),因?yàn)檫@些內(nèi)容

都是以下各章的基礎(chǔ)。本章的目的是使本書能夠自

成系統(tǒng),讀者不必依賴于更多的參考書籍。

1.1數(shù)制

數(shù)制是人們利用符號(hào)來記數(shù)的科學(xué)方法。數(shù)制可

以有很多種,但在計(jì)算機(jī)的設(shè)計(jì)與使用上常使

用的則為十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)

制。

1.1.1數(shù)制的基與權(quán)

數(shù)制所使用的數(shù)碼的個(gè)數(shù)稱為基;數(shù)制每一位所

具有的值稱為權(quán)。

十進(jìn)制(decimalsystem)的基為“10”,即它所使用

的數(shù)碼為0,1,2,3,4,5,6,7,8,9,共

有10個(gè)。十進(jìn)制各位的權(quán)是以10為底的塞,如

下面這個(gè)數(shù):

523791

543210

101010101010

十萬萬千百十個(gè)

其各位的權(quán)為個(gè)、十、百、千、萬、十萬,即以10

為底的0塞、1寨、2寨等。故有時(shí)為了簡便而順次

稱其各位為0權(quán)位、1權(quán)位、2權(quán)位等。

二進(jìn)制(binai'ysystem)的基為“2”,即其使用的數(shù)碼

為0,X,共兩個(gè)。

二進(jìn)制各位的權(quán)是以2為底的塞,如下面這個(gè)數(shù):

二進(jìn)制110111

25242322212°

十進(jìn)制32168421

其各位的權(quán)為1,2,4…,即以2為底的0次哥、1次哥、2

次塞等。故有時(shí)也依次稱其各位為0權(quán)位、1權(quán)位、2權(quán)

位等。

八進(jìn)制(octavesystem)的基為“8”,即其數(shù)碼共有8個(gè):

0,1,2,3,4,5,6,7O八進(jìn)制的權(quán)為以8為底的

幕,有時(shí)也順次稱其各位為0權(quán)位、1權(quán)位、2權(quán)位等。

十六進(jìn)制(hexadecimalsystem)的基為“16”,即其數(shù)碼共

有16個(gè):0,1,2,3,4,5,6,7,8,9,A,B,

C,D,E,Fo十六進(jìn)制的權(quán)為以16為底的幕,有時(shí)也

稱其各位的權(quán)為0權(quán)、1權(quán)、2權(quán)等。

在微型計(jì)算機(jī)中這些數(shù)制都是經(jīng)常用到的,但在本書后

面的內(nèi)容中,二進(jìn)制和十六進(jìn)制更為常用,希望初學(xué)

者注意。

清華十字出版社

1.1.2為什么要用二進(jìn)制

電路通常只有兩種穩(wěn)態(tài):導(dǎo)通與阻塞、飽利與截

止、高電位與低電位等。具有兩個(gè)穩(wěn)態(tài)的電路

稱為二值電路。因此,用二值電路來計(jì)數(shù)時(shí),

只能代表兩個(gè)數(shù)碼:0利1。如以1代表高電

位,貝W代表低電位,所以,采用二進(jìn)制,可

以利用電路進(jìn)行計(jì)數(shù)工作。而用電路來組成計(jì)

算機(jī),則有運(yùn)算迅速、電路簡便、成本低廉等

優(yōu)點(diǎn)。

1.1.3為什么要用十六進(jìn)制

用十六進(jìn)制既可簡化書寫,又便于記憶。如下列

一些等值的數(shù):1000(2)=8(16)(BP8(10))

llll(2)=F(i6)(即EQ。))

110000(430(16)(即48(io))

一J14熱制的轉(zhuǎn)佳方法—-

由于我們習(xí)慣用十進(jìn)制記數(shù),在研究問題或討論解題的

過程時(shí),總是用十進(jìn)制來考慮和書寫的。當(dāng)考慮成熟

后,要把問題變成計(jì)算機(jī)能夠“看得懂”的形式時(shí),就

得把問題中的所有十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制代碼。這就

需要用到,,十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的方法,,。在計(jì)算

機(jī)運(yùn)算完畢得到二進(jìn)制數(shù)的結(jié)果時(shí),又需要用至臚二進(jìn)

制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的方法”,才能把運(yùn)算結(jié)果用十進(jìn)

制形式顯示出來。

1.十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的方法

一般可用下列方法求一個(gè)十進(jìn)制數(shù)的二進(jìn)制代碼:

用2除該十進(jìn)制數(shù)可得商數(shù)及余數(shù),則此余數(shù)為二進(jìn)制代

再用2除該商數(shù),又可得商數(shù)和余數(shù),則此余數(shù)為LSB左

鄰的二進(jìn)制數(shù)代碼。

用同樣的方法繼續(xù)用2除下去,就可得到該十進(jìn)制數(shù)的二

進(jìn)制代碼。

【例1.1】求13的二進(jìn)制代碼。其過程如下:

o1

211

230

(由上往下讀,可從左到右寫出二進(jìn)制代碼)

261

213

結(jié)果為:1101O

清‘培匯學(xué)期

上面是十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)的“除2取余法”。

如果十進(jìn)制小數(shù)要轉(zhuǎn)換成二進(jìn)制小數(shù),則要采取“乘

2取整法”:

一個(gè)十進(jìn)制的小數(shù)乘以2之后可能有進(jìn)位使整數(shù)位為

1(當(dāng)該小數(shù)大于0?5時(shí)),也可能沒有進(jìn)位,其整數(shù)

位仍為零(當(dāng)該小數(shù)小于0.5時(shí))。這些整數(shù)位的結(jié)果

即為二進(jìn)制的小數(shù)位結(jié)果。舉例如下:

【例1.2】求十進(jìn)制數(shù)0.625的二進(jìn)制數(shù)。

用乘法的豎式計(jì)算,步驟如下:

????

6—SS

0.625

x2整數(shù)部為i,即二進(jìn)制小數(shù)后第一位為L

1.25

0.25

x2整數(shù)部為o,即二進(jìn)制小數(shù)后第二位為o.

050

0.50

整數(shù)部為1,即二進(jìn)制小數(shù)后第三位為L

1.00

至此就不用再算下去了。如果小數(shù)位不是0.0(),則還

得繼續(xù)乘下去,直至變成o.oo為止。因此,一個(gè)十

進(jìn)制小數(shù)在轉(zhuǎn)換為二進(jìn)制小數(shù)時(shí)有可能無法準(zhǔn)確地

轉(zhuǎn)換。如十進(jìn)制數(shù)0.1轉(zhuǎn)換為二進(jìn)制數(shù)時(shí)為

0.0001100110...o因此,只能近似地以0.00011001

來表示。

2.二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)的方法

由二進(jìn)制數(shù)各位的權(quán)乘以各位的數(shù)(0或1)再加起來就

得到十進(jìn)制數(shù)。

【例1.3】求二進(jìn)制數(shù)101011的十進(jìn)制數(shù)。

101011

權(quán):252423222120

乘積:3208021

<,7

V

累加:43

結(jié)果:43(io)

二進(jìn)制小數(shù)轉(zhuǎn)換為十進(jìn)制時(shí)也可用同樣的方法,不

過二進(jìn)制數(shù)小數(shù)各位的權(quán)是2?1,2-2...o

【例1.4】求二進(jìn)制數(shù)0.101的十進(jìn)制數(shù)。

0101

權(quán):2°242-22-3

乘積:00.500.125

累加:0.625

結(jié)果:0.625(助

由此可得出兩點(diǎn)注意事項(xiàng):

(1)一個(gè)二進(jìn)制數(shù)可以準(zhǔn)確地轉(zhuǎn)換為十進(jìn)制數(shù),而一個(gè)帶

少數(shù)的十進(jìn)制數(shù)不一定能夠準(zhǔn)確地用二進(jìn)制數(shù)來表

ZjSO

(2)帶小數(shù)的十進(jìn)制數(shù)在轉(zhuǎn)換為二進(jìn)制數(shù)時(shí),以小數(shù)點(diǎn)為

界,整數(shù)和小數(shù)要分別轉(zhuǎn)換。

此外,還有其他各種數(shù)制之間的轉(zhuǎn)換,其方法和上述方

法差不多,都用以從數(shù)判的定義中找至II轉(zhuǎn)換方法C

1.2邏輯電路

邏輯電路由其3種基本門電路(或稱判定元素)組

成。圖1.1是基本門電路的名稱、符號(hào)及表達(dá)

式。_________________________________

圖1.1

在這3個(gè)基本門電路的基礎(chǔ)上,還可發(fā)展成如圖1.2那

樣更復(fù)雜的邏輯電路。其中,最后一個(gè)叫作緩沖器

(buffer),為兩個(gè)非門串聯(lián)以達(dá)到改變輸出電阻的

目的。如果A點(diǎn)左邊電路的輸出電阻很高,則經(jīng)過

這個(gè)緩沖器之后,在Y點(diǎn)處的輸出電阻就可以變得

低許多倍,這樣就能夠提高帶負(fù)載的能力。

A

或非門

BYY=A+B

A

與非門YY=AXB

B

異或門A

YY=A^B

(異門)B

=AB+AB

異或非門A

Y

(同門)B

=AB+AB

緩沖器

A——1I1PYY=A

(變阻器)

圖1.2

清華十字出版社

1.3布爾代數(shù)

布爾代數(shù)也稱為開關(guān)代數(shù)或邏輯代數(shù),和一般代數(shù)一

樣,可以寫成下面的表達(dá)式:

Y=f(A,B,C,D)

但它有兩個(gè)特點(diǎn):

(1)其中的變量A,B,C,D等均只有兩種可能的數(shù)值:0

或1。布爾代數(shù)變量的數(shù)值并無大小之意,只代表事物

的兩個(gè)不同性質(zhì)。如用于開關(guān),貝小0代表關(guān)(斷路)或

低電位;1代表開(通路)或高電位。如用于邏輯推理,

貝IJ:0代表錯(cuò)誤(偽);1代表正確(真)。

⑵函數(shù)f只有3種基本方式:“或”運(yùn)算,“與”運(yùn)算及“反”

1.3.1“或”運(yùn)算

由于A,B只有0或1的可能取值,所以其各種可能結(jié)

果如下:

Y=O+O=O^Y=O

Y=O+1=1

Y=l+O=j-Y=1

Y=l+l=l

上述第4個(gè)式子與一般的代數(shù)加法不符,這是因?yàn)閅

也只能有兩種數(shù)值:0或1。

上面4個(gè)式子可歸納成兩句話,兩者皆偽者則結(jié)果必

偽,有一為真者則結(jié)果必真。這個(gè)結(jié)論也可推廣

至多變量,如A,B,C,D,……,各變量全偽者

則結(jié)果必偽,有一為真者則結(jié)果必真。寫成表達(dá)

式如下:

^Y=A+B+C+D+...

貝i」Y=O+O+.??+O=O->Y=0

Y=l+O+...+O=l

Y=O+l+...+O=l

Y=l+l+l...+l=l)

這意味著,在多輸入的“或”門電路中,只要其中一

個(gè)輸入為1,則其輸出必為1?;蛘哒f只有全部輸入

均為0時(shí),輸出才為0。

或運(yùn)算有時(shí)也稱為“邏輯或上當(dāng)A和B為多位二進(jìn)制

數(shù)時(shí),如:

A=A]A2A3。??An

高小幻二學(xué)出版社

B=B1B2B3...Bn

則進(jìn)行“邏輯或”運(yùn)算時(shí),各對應(yīng)位分別進(jìn)行“或”運(yùn)

舁:

Y=A+B

=(A1+B1)(A2+B2)(A3+B3)???(An+Bn)

【例1.5】

設(shè)

A=10101

B=11011

^ljY=A+B

=(1+1)(0+1)(1+0)(0+1)(1+1)

=11111

寫成豎式則為

10101

+)11011

意,1“或”1等于1,是沒有進(jìn)位的。

1.3.2“與”運(yùn)算

根據(jù)A和B的取值(0或1)可以寫出下列各種可能的

運(yùn)算結(jié)果:

Y=0X0=0

Y=1X0=0-Y=0

Y=0X1=0

Y=1X1=1->Y=1

這種運(yùn)算結(jié)果也可歸納成兩句話:二者為真者結(jié)果

必真,有一為偽者結(jié)果必偽。同樣,這個(gè)結(jié)論也可

推廣至多變量:各變量均為真者結(jié)果必真,有一為

偽者結(jié)果必偽。寫成表達(dá)式如下:

設(shè)丫二4乂:8乂(:><口又…

Y=OXOX...XO=O、

Y=1XOX...XO=OI-Y=0

Y=OX1X...XO=O

Y=1X1X1...X1=1-Y=1

這意味著,在多輸入“與”門電路中,只要其中一個(gè)

輸入為0,則輸出必為0,或者說,只有全部輸入均

為1時(shí),輸出才為1。

與運(yùn)算有時(shí)也稱為“邏輯與"。當(dāng)A和B為多位二進(jìn)制

數(shù)時(shí),如:

A=A]A2A3。*?An

B=B1B2B3...Bn

則進(jìn)行“邏輯與”運(yùn)算時(shí),各對應(yīng)位分別進(jìn)行“與“運(yùn)

>:

Y=AXB

=陽XB1)(A2XB2)(A3XB3)...(AnXBn)

【例1.6】

設(shè)A=11001010

B=00001111

則丫二人乂:8

=(1X0)(1X0)(0X0)(0X0)(1X1)(0X1)(1X1)(0X1)

=00001010

寫成豎式則為

11001010

X)00001111

00001010

由此可見,用“(T和一個(gè)數(shù)位相“與”,就是將其“抹

掉''而成為"0";用"1"和一個(gè)數(shù)位相“與”,就是將

此數(shù)位“保存”下來。這種方法在計(jì)算機(jī)的程序設(shè)計(jì)

中經(jīng)常會(huì)用到,稱為“屏蔽”。上面的B數(shù)(0000

1111)稱為“屏蔽字”,它將A數(shù)的高4位屏蔽起來,

使其都變成0了。

1.3.3“反”運(yùn)算

如果一件事物的性質(zhì)為A,則其經(jīng)過“反”運(yùn)算之后,其性

質(zhì)必與A相反,用表達(dá)式表示為:

Y=A

這實(shí)際上也是反相器的性質(zhì)。所以在電路實(shí)現(xiàn)上,反相

器是反運(yùn)算的基本元件。

反運(yùn)算也稱為“邏輯非”或“邏輯反”。

當(dāng)A為多位數(shù)時(shí),如:

A=A]A2A3???Afi

則其“邏輯反”為:Y=A1A2A3...An

【例設(shè):A=11010000

則:¥=00101111

1.3.4布爾代數(shù)的基本運(yùn)算規(guī)律

1.恒等式

A0=0A*1=AA*A=A

A+O=AA+l=lA+A=A

A+A=lA*A=OA=A

滴年十字出版社

K緋/'步算型明

2.運(yùn)算規(guī)律

與普通代數(shù)一樣,布爾代數(shù)也有交換律、結(jié)合律、

分配律,而且它們與普通代數(shù)的規(guī)律完全相同。

⑴交換律:AB=BA

A+B=B+A

⑵結(jié)合律:(AB)C=A(BC)=ABC

(A+B)+C=A+(B+C)=A+B+C

⑶分配律:A(B+C)=AB+AC

(A+B)(C+D)=AC+AD+BC+BD

利用這些運(yùn)算規(guī)律及恒等式,可以化簡很多邏輯關(guān)

系式。

【例1.8】A+AB=A(1+B)=A

A+AB=A+AB+AB=A+(A+A)B=A+B

【例1.9】如果原設(shè)計(jì)繼電器線路如圖1.3(a),現(xiàn)用邏

輯關(guān)系,化簡線路。

圖1.3

首先,把圖L3(a)中觸點(diǎn)(如同開關(guān))和燈的關(guān)系用布

爾代數(shù)表示如下:__

Y=(A+AB)B

其中A與A是同一繼電器的常開與常閉觸點(diǎn)。一般把

國開觸點(diǎn)定為變量A,B,則相應(yīng)的常閉觸點(diǎn)為A,

Bo

下面,用布爾代數(shù)進(jìn)行簡化:

Y=(A+AB)B

=AB+ABB

=AB+0

=AB

因此可以用圖1.3(b)中的電路,代替原設(shè)計(jì)的圖1.3(a)的電路。電路大大簡

化了,但能起到同樣的作用。

1.3.5摩根定理

在電路設(shè)計(jì)時(shí),人們手邊有時(shí)沒有“與”門,而只有

“或,門和“非”門;或者只有“與”門和“非”門,沒有

"或''門。利用摩根定理,可以解決元件互換的問

題。

二變量船摩根定理為:

A+B=AB

AB=A+B

推廣到多變量:

A+B+C+...=ABC...

ABC...=A+B+C+...

至于多變量的摩根定理,用相同的方法同樣可以得

到證明。

這個(gè)定理可以用一句話來記憶:頭上切一刀,下面

變個(gè)號(hào)。

A2B=A+B=A+B

A+B+C=ABC

1.3.6真值表及布爾代數(shù)式的關(guān)系

當(dāng)人們遇到一個(gè)因果問題時(shí),常常把各種因素全部

考慮進(jìn)去,然后再研究結(jié)果。真值表也就是這種

方法的一種表格形式。

例如,考慮兩個(gè)一位的二進(jìn)制數(shù)A和B相加,其本位

的和S及向高一位進(jìn)位C的結(jié)果如何?

全面考慮兩個(gè)一位二進(jìn)制數(shù),可能出現(xiàn)四種情況:

或A=0,B=0;或A=0,B=l;或A=LB=0;或

A=LB=l(一般ii個(gè)因素可有2n種情況)。這實(shí)質(zhì)是

兩個(gè)一位數(shù)(可為零,也可為1)的排列。然后,對

每一種情況進(jìn)行分析。當(dāng)A和B都為0時(shí),S為0,

進(jìn)位C也為0;當(dāng)A為0且B為1時(shí),S為L進(jìn)位C為

0;當(dāng)A為1且B為0時(shí),S為1,進(jìn)位C為0;當(dāng)A為1

且B也為1時(shí),由于S是一位數(shù)所以為0,而有進(jìn)位

C=lo

清工卷z:字曲函化

對于C因?yàn)橹挥蠥與B都為1時(shí),它才為1,所以經(jīng)

過分析即可知C=A?B。

對于S,因?yàn)樵诒碇械?行或第3行都可能為1,而第2

行要求A=0與B=l,在寫布爾代數(shù)式時(shí)要使S為1,

顯然只有AXB=0X1=1。所以第2行布爾代數(shù)式就

是A?B。對于第3行要求A=1與B=0,合寫布爾代數(shù)

式時(shí)要使S為1,顯然只有AXhlX冊1。所以第3

行布爾代數(shù)式就建A?瓦從而我們可以寫出S和A,

B的關(guān)系式為S=AB+AR。

這種從真值表寫出布爾代數(shù)式的方法可以用下面兩

段話來描述:

(1)寫布爾代數(shù)式先看真值表中結(jié)果為1的項(xiàng),有幾項(xiàng)

就有幾個(gè)“或”項(xiàng)。

(2)每一項(xiàng)各因素之間是“與”關(guān)系。寫該項(xiàng)時(shí)每個(gè)因

素都寫上,然后加“反*至于哪個(gè)因素要加

"反''(上橫線)要看該因素在這項(xiàng)里是否為"0”狀

態(tài),是“0”狀態(tài)則加"反”,否則不加“反”。

寫出布爾代數(shù)式后,要反過來去檢查寫得對不對。

例如,將第1項(xiàng)A=0和B=0代入式S=AB+A^,貝I」

S=00+00=0;將表中第2項(xiàng)A=0和B=1代入式

S=AB+AB貝iJSuO-l+O-lul+OuL依環(huán)推地代入檢

查。如果4項(xiàng)都對,則式子S=AB+AK確實(shí)代表了真

值表中S和A,B之間的邏輯關(guān)系。

通常,用真值表描述問題,不僅全面,而且通過它

來寫布爾代數(shù)式也很簡便。

1.4二進(jìn)制數(shù)的運(yùn)算及其加法電路

眾所周知,算術(shù)的基本運(yùn)算共有4種:力口、減、乘和

除。在微型計(jì)算機(jī)中常常只有加法電路,這是為

了使硬件結(jié)構(gòu)簡單而成本較低。不過,只要有了

加法電路,也能完成算術(shù)的4種基本運(yùn)算。

1.4.1二進(jìn)制數(shù)的相加

兩個(gè)二進(jìn)制數(shù)相加的幾個(gè)例子:

【例1.11】

(1)(2)

1A01A

+)1B+)10B

10S11S

進(jìn)位

(3)(4)

ffiEC

AOilA

+)11B+)011B

110110

進(jìn)位進(jìn)位

例中,加數(shù)A和被加數(shù)B都是1位數(shù),其和S變

成2位數(shù),這是因?yàn)橄嗉咏Y(jié)果產(chǎn)生進(jìn)位之故。

例1.11(2)中,A和B都是2位數(shù),相加結(jié)果S也是2位

數(shù),因?yàn)橄嗉咏Y(jié)果不產(chǎn)生進(jìn)位。

例1.11(3)中,A和B都是2位數(shù),相加結(jié)果S是3位數(shù),

這也是產(chǎn)生了進(jìn)位之故。

清工卷z:字曲函化

例111(4)中,是例1.11(3)的另一種寫法,以便看出

“進(jìn)位”究竟是什么意義。第1位(或稱0權(quán)位)是不可

能有進(jìn)位的,要求參與運(yùn)算的就只有兩個(gè)數(shù)A。和

Bo,其結(jié)果為S。。第2位(或稱1權(quán)位)就是3個(gè)數(shù)A1,

Bi及J參與運(yùn)算了。其中J是由于第1位相加的結(jié)

果產(chǎn)生的進(jìn)位。止匕3個(gè)數(shù)相加的結(jié)果其總和為

S1=l,同時(shí)又產(chǎn)生進(jìn)位C2,送入下一位(第3位)。

第3位(或稱2權(quán)位)也是3個(gè)數(shù)A2,及C2參加運(yùn)

算。由于A2及都是0,所以即等于第3位的相加

結(jié)果§2。

從以上幾例的分析可得出下列結(jié)論:

(1)兩個(gè)二進(jìn)制數(shù)相加時(shí),可以逐位相加。如二進(jìn)制

數(shù)可以寫成:

A=A3A2Aj.A。

B=B3B2BXB0

則從最右邊第1位(即0權(quán)位)開始,逐位相加,其結(jié)果

可以寫成:

s=s3s2s1s0

其中各位是分別求出的:

So=Ao+Bo-進(jìn)位C1

Si=Ai+Bi+C\一進(jìn)位C2

SZ=A2+B2+C2一進(jìn)位C3

S3=A3+B3+C3一進(jìn)位C4

最后所得的和是:

高小幻二學(xué)出版社

C4S3S2S1S0=A+B

⑵右邊第1位相加的電路要求:

輸入量為兩個(gè),即A。及B。;

輸出量為兩個(gè),即S。及Cj

這樣的一個(gè)二進(jìn)制位相加的電路稱為半加器(half

adder)。

⑶從右邊第2位開始,各位可以對應(yīng)相加。各位對應(yīng)

相加時(shí)的電路要求:

輸入量為3個(gè),即Aj,BpG;

輸出量為兩個(gè),即以4+1。

其中i=l,2,3,…,no這樣的一個(gè)二進(jìn)制位相加的電

路稱為全加器(fulladder)o

1.4.2半加器電路

要求有兩個(gè)輸入端,用以兩個(gè)代表數(shù)字(A。,B0)的電位輸

入;有兩個(gè)輸出端,用以輸出總和So及進(jìn)位Cj

這樣的電路可能出現(xiàn)的狀態(tài)可以用圖1.4中的表來表示。

此表在布爾代數(shù)中稱為真值表。

考察一下Ci與A。及B。之關(guān)系,即可看出這是“與”的關(guān)

系,即:

Ci=A°XBo

再看一下與A0及Bo之關(guān)系,也可看出這是“異或”的關(guān)

系,即:

So=A0十B。

=^0?0+^0?0

即只有當(dāng)A。及Bo二者相異時(shí),才起到或的作用;二

者相同時(shí),則其結(jié)果為0。因此,可以用“與門”及

“異或門”(或稱“異門”)來實(shí)現(xiàn)真值表的要求。圖1.4

就是這個(gè)真值表及半加器的電路圖。

真值表

AoBoCiSoAoBo

0000

0101

1001

L

1110

與門

或門

圖1.4

1.4.3全加器電路

全加器電路的要求是:有3個(gè)輸入端,以輸入

APBi和有兩個(gè)輸出端,即A及Ci+i。其真

值表可以寫成如圖L5所示。由此表分析可見,

其總和&可用“異或門”來實(shí)現(xiàn),而其進(jìn)位G+i

則可以用3個(gè)“與門”及一個(gè)“或門”來實(shí)現(xiàn),其

電路圖也畫在圖1.5中。

E

圖1.5

這里遇到了3個(gè)輸入的“異或門”的問題。如何判斷多

輸入的“異或門”的輸入與輸出的關(guān)系呢?判斷的方

法是:多輸入A,B,C,D,…中為“產(chǎn)的輸入量

的個(gè)數(shù)為零及偶數(shù)時(shí),輸出為0;為奇數(shù)時(shí),輸出

為1。

1.4.4半加器及全加器符號(hào)

圖1.6(a)為半加器符號(hào),圖1.6(b)為全加器符號(hào)。

(a)半加器符號(hào)(b)全加器符號(hào)

圖1.6

1.4.5二進(jìn)制數(shù)的加法電路

圖1.7

清紀(jì)學(xué)出版社SHiHM

A與B相加,寫成豎式算法如下:

A:1010

B:1011(+

S:10101

即其相加結(jié)果為S=10101。

從加法電路,可看到同樣的結(jié)果:

S=C4s3s2§上0

=10101

1.4.6二進(jìn)制數(shù)的減法運(yùn)算

在微型計(jì)算機(jī)中,沒有專用的減法器,而是將減法運(yùn)

算改變?yōu)榧臃ㄟ\(yùn)算。其原理是:將減數(shù)B變成其補(bǔ)

碼后,再與被減數(shù)A相加,其和(如有進(jìn)位的話,則

舍去進(jìn)位)就是兩數(shù)之差。

補(bǔ)碼是什么呢?對于二進(jìn)制數(shù)來說,簡言之,可用下

式來表示:

補(bǔ)碼=反碼+1

這就是說,如有一個(gè)二進(jìn)制數(shù)為A,這就是原碼,則

其反碼為,于是補(bǔ)碼A,可以寫成:

A=A+1

補(bǔ)碼并非只有二進(jìn)制數(shù)才有。在十進(jìn)制、十六進(jìn)制

等各種進(jìn)制中都是存在的。如在十進(jìn)制中原碼為6

的補(bǔ)碼是4,原碼為64的補(bǔ)碼是36,原碼為642的補(bǔ)

碼是358等°

由此可見:原碼+補(bǔ)碼的結(jié)果如下:

6+4=10

64+36=100

642+358=1000

即原碼與補(bǔ)碼互相補(bǔ)充而能得到一個(gè)進(jìn)位數(shù):

1位數(shù)的原碼加補(bǔ)碼得到的是2位數(shù)10;

2位數(shù)的原碼加補(bǔ)碼得到的是3位數(shù)100;

3位數(shù)的原碼加補(bǔ)碼得到的是4位數(shù)1000。

在做十進(jìn)制減法時(shí),也可以利用補(bǔ)碼而將減法運(yùn)算

變成加法運(yùn)算。例如73?15,可利用15的補(bǔ)碼85而

使減法變成加法:73+85=158,把進(jìn)位位1去掉,58

即為73與15之差。不過在十進(jìn)制中用電路由原碼求

補(bǔ)碼不十分方便,所以沒有人用這個(gè)規(guī)律去算減

法。

在二進(jìn)制中,將原碼每位變反,可得反碼。如10100

的反碼為01011,用2位電路很容易做到,而原碼與

反碼相加正好差1而未有進(jìn)位(無溢出)。如上例:

原碼:10100

反碼:01011

原碼+反碼=11111

清華;/‘二字出^

如果反碼加1后再去與原碼相加就得:

原碼+(反碼+1)=10100+01100

所以,在二進(jìn)制中,常用反碼加1的方法來獲得補(bǔ)

碼。

這在計(jì)算機(jī)中非常方便,因?yàn)槎M(jìn)制電路由原碼求

反碼是很容易的,這在下面就會(huì)看到。

有了補(bǔ)碼,就可以將減法變成加法來運(yùn)算了。請看

下面的例子。

【例1.12】求Y=8QO)?4(IO)=?

解:因?yàn)锳=8(1O)=1OOO(2)

B=4(10)=0100(2)

貝UB'=1011+1=1100⑵

高小幻二學(xué)出版社

于是Y=A-B

=A+B,

=1000+1100

=10100

匚進(jìn)位,應(yīng)舍去

二0100⑵=4(坳

【例1.13】求Y=F(H)?A(H尸?(即求15減10之差)

設(shè)A=F(H)=1111⑻=15(D)

B=A(H)=1010(B)=10(D)

B'=0101+l=0110(B)

所以Y=llll+0110

=X0101

—進(jìn)位,舍去

=0101(B)(結(jié)果為5)

1.4.7可控反相器及加法/減法電路

利用補(bǔ)碼可將減法變?yōu)榧臃▉磉\(yùn)算,因此需要有

這么一個(gè)電路,它能將原碼變成反碼,并使其

最小位加1。

圖1.8的可控反相器就是為了使原碼變?yōu)榉创a而設(shè)

計(jì)的。這實(shí)際上是一個(gè)異或門(異門),兩輸入

端的異或門的特點(diǎn)是:兩者相同則輸出為0,

兩者不同則輸出為1。

利用這個(gè)特點(diǎn),在圖1.7的4位二進(jìn)制數(shù)加法電路上增

力口4個(gè)可控反相器并將最低位的半加器也改用全加

器,就可以得到如圖1.9的4位二進(jìn)制數(shù)加法器/減

法器電路了,因?yàn)檫@個(gè)電路既可以作為加法器電路

(當(dāng)SUB=O),又可以作為減法器電路(當(dāng)SUB=1)。

6

I

如果有下面兩個(gè)二進(jìn)制數(shù):

A=A3AzAj.A。

B=B3B2B1B0

則可將這兩個(gè)數(shù)的各位分別送入該電路的對應(yīng)端,

于是:

當(dāng)SUB=O時(shí),電路作加法運(yùn)算:A+Bo

當(dāng)SUB=1時(shí),電路作減法運(yùn)算:A-Bo

圖1.9電路的原理如下:當(dāng)SUB=0時(shí),各位的可控反

相器的輸出與B的各位同相,所以圖L9和圖1.7的

原理完全一樣,各位均按位相加。結(jié)果

S=S3s2S1S0,而其和為:C3S=C4S3S2S1S0o

高小幻二學(xué)出版社

K緋/'步算型明

當(dāng)SUB=1時(shí),各位的反相器的輸出與B的各位反相。注意,最右

邊第一位(即SO位)也是用全加器,其進(jìn)位輸入端與SUB端相

連,因此其Co=SUB=l。所以此位相加即為:

A0+B0+l

其他各位為:

A[+B]+C]

A2+B2+C2

A3+B3+C3

因此其總和輸出S二S3s2S1S0,即:

S=A+B+1

=A3A2A1A0+B3B2B]Bo+1

=A+B,

=A-B

當(dāng)然,此時(shí)C4如不等于0,則要被舍去。

習(xí)題

1.1將下列各二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)。

(1)1101⑵

⑵11010(2)

(3)110100⑵

(4)10101001⑵

1.2將1.1題的各二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)。

1.3簡述3個(gè)門電路的基本元素在電路中對電平高低

的作用。

1.4布爾代數(shù)有哪兩個(gè)特點(diǎn)?

1.5布爾代數(shù)的“或運(yùn)算”結(jié)果可用哪兩句話來歸納?

其“與運(yùn)算”結(jié)果又可歸納成哪兩句話?

1.6什么叫原碼、反碼及補(bǔ)碼?

1.7為什么需要半加器和全加器,它們之間的主要區(qū)

別是什么?

1.8用補(bǔ)碼法寫出下列減法的步驟:

(1)1111(2)-1010(2)=?(2)=?(10)

(2)HOO(2)-OOll(2)=?(2)=?(lo)

1.9做出101011⑵+011110⑵的門電路圖并求其相加的

結(jié)果。

1.10做出第L9題中兩數(shù)相減的門電路圖并求其相減

的結(jié)果。

第2章微型計(jì)算機(jī)的基本組成電路

2.1算術(shù)邏輯單元

2.2觸發(fā)器

2.3寄存器

2.4三態(tài)輸出電路

2.5總線結(jié)構(gòu)

2.6存儲(chǔ)器

習(xí)題

任何一個(gè)復(fù)雜的電路系統(tǒng)都可以劃分為若干電路,

這些電路大都由一些典型的電路組成。微型計(jì)算機(jī)

就是由若干典型電路通過精心設(shè)計(jì)而組成的,各個(gè)

典型電路在整體電路系統(tǒng)中又稱為基本電路部件。

本章就是對微型計(jì)算機(jī)中最常見的基本電路部件的

名稱及電路原理作一簡單介紹。這些基本電路中最

主要的是算術(shù)邏輯單元(arithmaticlogicalunit,

ALU)>觸發(fā)器(trigger)、寄存器(register)、存儲(chǔ)器

(memoi*y)及總線結(jié)構(gòu)等。在本章中,數(shù)據(jù)在這些

部件之間的流通過程以及“控制字”的概念也將逐步

地引出。所有這些內(nèi)容都是組成微型計(jì)算機(jī)的硬件

基礎(chǔ)。

清華十字出版社

2.1算術(shù)邏輯單元

顧名思義,這個(gè)部件既能進(jìn)行二進(jìn)制數(shù)的四則運(yùn)算,也

能進(jìn)行布爾代數(shù)的邏輯運(yùn)算。

第1章已講過,二進(jìn)制數(shù)的運(yùn)算電路只能算加法。增加可

控反相器后,又能進(jìn)行減法,所以上章最后介紹的二

進(jìn)制補(bǔ)碼加法器/減法器就是最簡單的算術(shù)部件。但

是,只要利用適當(dāng)?shù)能浖浜希朔ㄒ部梢宰兂杉臃?/p>

來運(yùn)算,除法也可變成減法來運(yùn)算。

如果在這個(gè)基礎(chǔ)上,增加一些門電路,也可使簡單的

ALU進(jìn)行邏輯運(yùn)算。所謂邏輯運(yùn)算就是指“與”運(yùn)算和

“或”運(yùn)算。為了不使初學(xué)者陷入復(fù)雜的電路分析之

中,本教程不打算在邏輯運(yùn)算問題上開展討論。

清華方字出版社

ALU的符號(hào)一般畫成圖2.1那樣。A和B為兩個(gè)二進(jìn)制

數(shù),S為其運(yùn)算結(jié)果,control為控制信號(hào)(見圖1.9

的控制線端SUB)。

AB

ALU----control

s

圖2.1

2.2觸發(fā)器

觸發(fā)器(trigger)是計(jì)算機(jī)的記憶裝置的基本單元,也

可說是記憶細(xì)胞。觸發(fā)器可以組成寄存器,寄存

器又可以組成存儲(chǔ)器。寄存器和存儲(chǔ)器統(tǒng)稱為計(jì)

算機(jī)的記憶裝置。

微型計(jì)算機(jī)所用觸發(fā)器一般用晶體管元件而不用磁

性元件。這是因?yàn)榫w管元件可以制成大規(guī)模的

集成電路,體積可以更小些。從晶體管電路基礎(chǔ)

中,我們已經(jīng)知道觸發(fā)器可以由兩個(gè)晶體管組成

的對稱電路來構(gòu)成,我們也知道觸發(fā)電路中有所

謂單穩(wěn)態(tài)觸發(fā)電路和雙穩(wěn)態(tài)觸發(fā)電路,這里不打

算重復(fù)這些電路的原理圖和工作特點(diǎn)了。

下面簡要地介紹一下RS觸發(fā)器、D觸發(fā)器和JK觸發(fā)

器,因?yàn)檫@些類型的觸發(fā)器是計(jì)算機(jī)中最常見的

基本元件。

2.2.1RS觸發(fā)器

RS觸發(fā)器可以用兩個(gè)目非門來組成,如圖2.2所示。當(dāng)

S=1而R=0時(shí),Q=1(Q=O)稱為置位;當(dāng)S=0而R=1時(shí),

Q=O(Q=1)稱為復(fù)位。

為了作圖方便,以后我們就只用方塊來表示,如圖2.3就

是RS觸發(fā)器的符號(hào)。

S端一般稱為置位端,使Q=1(=O),

R端一般稱為復(fù)位端,使0=。(=1)。

時(shí)標(biāo)RS觸發(fā)器——為了使觸發(fā)器在整個(gè)機(jī)器中能和其他

部件協(xié)調(diào)工作,RS觸發(fā)器經(jīng)常有外加的時(shí)標(biāo)脈沖,如

圖2.4所示。

*超!越目部老那里驛:/

圖2.4

此圖中的CLK即為時(shí)標(biāo)脈沖。它與置位信號(hào)脈沖S同

時(shí)加到一個(gè)與門的兩個(gè)輸入端;而與復(fù)位信號(hào)脈沖

同時(shí)加到另一個(gè)與門的兩個(gè)輸入端。這樣,無論是

置位還是復(fù)位,都必須在時(shí)標(biāo)脈沖端為高電位時(shí)才

能進(jìn)行。

2.2.2D觸發(fā)器

RS觸發(fā)器有兩個(gè)輸入端S和R。為了存儲(chǔ)一個(gè)高

電位,就需要一個(gè)高電位輸入的S端;為了存

儲(chǔ)一個(gè)低電位,就需要另一個(gè)高電位輸入的R

端。這在很多應(yīng)用中是不很方便的。D觸發(fā)器

是在RS觸發(fā)器的基礎(chǔ)上引伸出來的,它只需一

個(gè)輸入端口,圖2.5就是D觸發(fā)器的原理。

當(dāng)D端為高電位時(shí),S端為高電位,而通過非門后加

到R端的就是低電位,所以此時(shí)Q端就是高電位,

稱為置位。當(dāng)D端為低電位時(shí),S端為低電位,同

時(shí)R端變?yōu)楦唠娢?,所以Q端是低電位,稱為復(fù)

位。

圖2.5

圖2.6

無時(shí)標(biāo)的D觸發(fā)器是不能協(xié)調(diào)運(yùn)行的,圖2.6所示是

如何為D觸發(fā)器加上時(shí)標(biāo)的電路。此圖和圖2.4的道

理是一樣的,也是增加兩個(gè)與門就可以接受時(shí)標(biāo)脈

沖CLK的控制。

時(shí)標(biāo)脈沖CLK-般都是方波,在CLK處于正半周內(nèi)

的任何瞬間,觸發(fā)器都有翻轉(zhuǎn)的可能。這樣計(jì)算機(jī)

的動(dòng)作就不可能整齊劃一。我們總是想由時(shí)標(biāo)

CLK來指揮整個(gè)機(jī)器的行動(dòng)。因此,采用時(shí)標(biāo)邊

緣觸發(fā)的方式就可以得到準(zhǔn)確劃一的動(dòng)作。圖2.7

就是邊緣觸發(fā)的D觸發(fā)器的電路原理圖。

圖2.7與圖2.6的區(qū)別僅為增加了一個(gè)RC微分電路,

它能使方波電壓信號(hào)的前沿產(chǎn)生正尖峰,后沿產(chǎn)生

負(fù)尖峰。這樣,在D端輸入信號(hào)建立之后,當(dāng)時(shí)標(biāo)

脈沖的前沿到達(dá)的瞬間,觸發(fā)器才產(chǎn)生翻轉(zhuǎn)動(dòng)作。

如果D輸入端的信號(hào)是在時(shí)標(biāo)脈沖前沿到達(dá)之后才

建立起來的,則雖然仍在時(shí)標(biāo)脈沖的正半周時(shí)間

內(nèi),也不能影響觸發(fā)器的狀態(tài),而必須留到下一個(gè)

時(shí)標(biāo)脈沖的正半周的前沿到達(dá)時(shí)才起作用。這樣就

可以使整個(gè)計(jì)算機(jī)運(yùn)行在高度準(zhǔn)確的協(xié)調(diào)節(jié)拍之

中。

高小幻二學(xué)出版社

K緋/'步算型明

觸發(fā)器的預(yù)置和清除:在一些電路中,有時(shí)需要預(yù)

先給某個(gè)觸發(fā)器置位(即置1)或清除(即置0),而與

時(shí)標(biāo)脈沖以及D輸入端信號(hào)無關(guān),這就是所謂預(yù)置

和清除。這種電路很簡單,只要在圖2.7的電路中

增加兩個(gè)或門就可以實(shí)現(xiàn),如圖2.8所示。

PRESET(預(yù)置)

CLEAR(清除)

圖2.8

-------r---------=----------------二.3三I)再興少c內(nèi)玄5//:超S髭勢心享得后斐濟(jì)

邊緣觸發(fā)的D觸發(fā)器在計(jì)算機(jī)電路圖中常用圖2.9的

符號(hào)來表示。

圖2.9

圖2.9(a)為正邊緣觸發(fā)的符號(hào),而圖2.9(b)為負(fù)邊緣觸

發(fā)的符號(hào)。此二符號(hào)之差別在于后者增加了一個(gè)所

謂汽泡“?!?。這實(shí)際上是在D觸發(fā)器的時(shí)標(biāo)CLK的

微分電路之后再串聯(lián)一個(gè)非門(反相器)的簡化符

號(hào)。圖2.9(c)與前二圖之差別,也在于其增加了兩

個(gè)汽泡“O”,這也是代表了增加兩個(gè)非門于

PRESET和CLR端。這樣,就必須是低電平到來才

能經(jīng)非門轉(zhuǎn)換成高電平去進(jìn)行預(yù)置和清除作用。

清華十字出版社

2.2.3JK觸發(fā)器

JK觸發(fā)器是組成計(jì)數(shù)器的理想記憶元件,這里

就JK觸發(fā)器的電路原理作一簡要介紹。_

在RS觸發(fā)器前面增加兩個(gè)與門,并從輸出(。和Q)

到輸入(與門的輸入端)作交叉反饋,即可得到

JK觸發(fā)器如圖2.10所示。圖中的CLK輸入端串

有RC電路也是為了獲得正邊緣觸發(fā)的工作方

式的。這個(gè)電路的工作過程是:

or呈

SSWHdAlTsun<3LT

(1)當(dāng)J=0,K=0,即J和K郡是低電平時(shí),兩個(gè)與門

都被阻塞,無論此時(shí)Q和Q是什么狀態(tài),由于S利R

也是低電平,所以不會(huì)改變Q^Q的狀態(tài),這種狀

態(tài)稱為保持閉鎖狀態(tài)。

(2)J=0,K=l,即J為低電平而K為高電平。此時(shí)上

面的與門被阻塞,即S不可能為高電平,所以也無

置位(即使Q=l)的可能。如果此時(shí)Q=l,則反饋至

下面的與門。在下一個(gè)CLK的正脈沖邊沿到達(dá)

時(shí),觸發(fā)器就產(chǎn)生復(fù)位動(dòng)作(Q=0,Q=l)o如果Q原

來為低電平(Q=O「Q=1),則反饋至下面的與門而

使其也被阻塞,所以即使K=l,_也沒有任何動(dòng)作產(chǎn)

生,觸發(fā)器仍處于復(fù)位狀態(tài)(Q=0,Q=l)o

,?三M卜£士下探小7G!'2z,」7/尸戶戶廠尸1匚Z?^/

⑶J=LK=0,即J為高電平而K為低電平。此時(shí)下面的

與門被阻塞,即R不可能為高電平,所以也無復(fù)位(即

使Q=0)的可能。如果此時(shí)Q=0,而=1,則反饋至上面

的與門,在下一個(gè)CLK的正脈沖邊緣到達(dá)時(shí),觸發(fā)器

就產(chǎn)生量位動(dòng)作(Q=LQ=0)o如果Q原來為高電平

(Q=l,Q=0),則反饋至上面的與門而將其阻塞,這樣

上下兩個(gè)與門都被阻塞了,觸發(fā)器就仍處于置位狀態(tài)

(Q=l,Q=0)o

(4)J=LK=l,即J,K同為高電平,則可能使觸發(fā)器置

位(Q=LQ=0)或復(fù)位(Q=0,Q=l)o也就是說,如果原

來的狀態(tài)為Q=0,Q=l,在J=1及K=l>且在CLK的正

邊緣脈沖到達(dá)時(shí),就會(huì)翻轉(zhuǎn)到Q=LQ=0o反之,如果

原來的狀態(tài)為Q=LQ=0,在J=1及K=1W且在CLK的

正邊緣脈沖到達(dá)時(shí),就會(huì)翻轉(zhuǎn)到Q=0,Q=lo所謂翻

轉(zhuǎn),就是觸發(fā)器的狀態(tài)改變的意思。

清華方字出版社

下面要講到的計(jì)數(shù)器就是利用JK觸發(fā)器的翻轉(zhuǎn)特性

而組成的。JK觸發(fā)器的符號(hào)如圖2.11所示。

圖2.11

清隼十字出Q社

2.3寄存器

寄存器(register)是由觸發(fā)器組成的。一個(gè)觸發(fā)器就是一

個(gè)一位寄存器。由多個(gè)觸發(fā)器可以組成一個(gè)多位寄存

器。寄存器由于其在計(jì)算機(jī)中的作用之不同而具有不

同的功能,從而被命名為不同的名稱。常見的寄存器

有:緩沖寄存器——用以暫存數(shù)據(jù);移位寄存器——

能夠?qū)⑵渌娴臄?shù)據(jù)一位一位地向左或向右移;計(jì)數(shù)

器———個(gè)計(jì)數(shù)脈沖到達(dá)時(shí),會(huì)按二進(jìn)制數(shù)的規(guī)律累

計(jì)脈沖數(shù);累加器——用以暫存每次在ALU中計(jì)算的

中間結(jié)果。

下面分別介紹這些寄存器的工作原理及其電路結(jié)構(gòu)。

2.3.1緩沖寄存器

其基本工作原理為:設(shè)有一個(gè)二進(jìn)制數(shù),共有4位數(shù):

X=X3X2XxX0

要存到這個(gè)緩沖寄存器(buffer)中去,此寄存器是由4個(gè)D

觸發(fā)器組成的。將X。,XPX2,X3分別送到各個(gè)觸發(fā)

器的Do,DPD2,D3端去,只要CLK的正前沿還未到

來,則Qo,Qi,Q2,Q3就不受X。,XPX2,X3的影

響而保持其原有的數(shù)據(jù)。只有當(dāng)CLK的正前沿來到

時(shí),Qo,Qi,Q2,Q3才接受Do,DpD2,D3的影

響,而變成:

Qo=x0

Q1=X]

Ql=^2

^3=^3

結(jié)果就是:Q=Q3Q2Q1Q0=X3X2X1X0=Xo

這就叫做將數(shù)據(jù)X裝到寄存器中去了。如要將此數(shù)據(jù)送

至其他記憶元件去,則可由YO,Yl,Y2,Y3各條引

線引出去。

可控緩沖寄存器:圖2.12的緩沖寄存器的數(shù)據(jù)X輸入到Q

只是受CLK的節(jié)拍管理,即只要一將X各位加到寄存

器各位的D輸入端,時(shí)標(biāo)節(jié)拍一到,就會(huì)立即送到Q

去。這有時(shí)是不利而有害的,因?yàn)橐苍S我們還想讓早

已存在其中的數(shù)據(jù)多留一些時(shí)間,但由于不可控之

故,在CLK正前沿7到就會(huì)立即被來到門口的數(shù)據(jù)X

魅件玷

H

圖2.12

為此,我們必須為這個(gè)寄存器增設(shè)一個(gè)可控的

“門喝這個(gè)“門”的基本原理如圖2.13所示,它是由

兩個(gè)與門一個(gè)或門以及一個(gè)非門所組成的。

圖2.13

在X。端送入數(shù)據(jù)(0或1)后,如LOAD端(以下簡稱為L

端)為低電位,則右邊的與門被阻塞,X。過不去,

而原來已存在此位中的數(shù)據(jù)由Q。送至左邊的與門。

此與門的另一端輸入從非門引來的與L端反相的電

平,即高電位。所以Q。的數(shù)據(jù)可以通過左邊的與

門,再經(jīng)或門而送達(dá)Do端。這就形成自鎖,即既存

的數(shù)據(jù)能夠可靠地存在其中而不會(huì)丟失。如L端為

高電位,則左邊與門被阻塞而右邊與門可讓X。通

過,這樣Q。的既存數(shù)據(jù)不再受到自鎖,而X。可以

到達(dá)Do端。只要CLK的正前沿一到達(dá),X0即被送

到Qo去,這時(shí)就叫做裝入(LOAD)。一旦裝入之

后,L端又降至低電平,則利用左邊的與門,X。就

能自鎖而穩(wěn)定地存在Qo中。

要記住,以后我們一提到“L門”,大家就要想到圖

2.13的電路結(jié)構(gòu)及其作用:高電平時(shí)使數(shù)據(jù)裝入,

低電平時(shí),數(shù)據(jù)自鎖在其中。

對于多位的寄存器,每位各自有一套如圖2.13一樣的

電路。不過只用一個(gè)非門,并且只有一個(gè)LOAD輸

入端,如圖2.14所示。

trz國

ssmud人iTs&m八

清華方字出版社

可控緩沖寄存器的符號(hào)一般畫成圖2.15那樣,LOAD

為其控制門,而CLR為高電平時(shí)則可用以清除,使

其中各位變?yōu)?。

Q

圖2.15

2.3.2移位寄存器

移位寄存器(shiftingregister)能將其所存儲(chǔ)的數(shù)

據(jù)逐位向左或向右移動(dòng),以達(dá)到計(jì)算機(jī)在運(yùn)行

過程中所需的功能,例如用來判斷最左邊的位

是0或1等。電路原理圖如圖2.16所示。

圖2.16

左移寄存器如圖2.16(a)所示,當(dāng)Dj產(chǎn)1而送至最右邊

的第1位時(shí),即為1,當(dāng)CLK的正前沿到達(dá)時(shí),

Qo即等于1。同時(shí)第2位的D1也等于1。當(dāng)CLK第2

個(gè)正前沿到達(dá)時(shí),Qi也等于1。結(jié)果可得下列的左

移過程:

前沿未到

CLKQ=Q3Q2QIQO=OOO。

第1前沿來到Q=0001

第2前沿來到Q=0011

第3前沿來到Q=0111

第4前沿來到Q=llll

第5前沿來到,如此時(shí)Din仍為1,則Q不變,仍為

llllo

當(dāng)Q=llll之后,改變DM,使DE=O,則結(jié)果將是把。逐

位左移:

第1前沿來到Q=1110

第2前沿來到Q=1100

第3前沿來到Q=1000

第4前沿來到Q=0000

由此可見,在左移寄存器中,每個(gè)時(shí)鐘脈沖都要把所

儲(chǔ)存的各位向左移動(dòng)一個(gè)數(shù)位。

右移寄存器如圖2.16(b)所示。圖2.16(b)與圖2.16(a)之

差別僅在于各位的接法不同,而且輸入數(shù)據(jù)Dg是加

到左邊第1位的輸入端D3。根據(jù)上面的分析,當(dāng)

口加=1時(shí),隨著時(shí)鐘脈沖而逐步位移是這樣的:

CLK前沿未到Q=0000

第1前沿來到Q=1000

第2前沿來到Q=1100

第3前沿來到Q=1110

第4前沿來到Q=llll

由此可見,在右移寄存器中,每個(gè)時(shí)鐘脈沖都要把

所存儲(chǔ)的各位向右移動(dòng)一個(gè)位置。

可控移位寄存器:和緩沖寄存器一樣,在整機(jī)運(yùn)行

中,移位寄存器也需要另有控制電路,以保證其在

適當(dāng)時(shí)機(jī)才參與協(xié)調(diào)工作。這個(gè)電路也和圖2.13—

樣,只要在每一位的電路上增加一個(gè)這樣的LOAD

門(L門)即可以達(dá)到控制的目的。

可控移位寄存器的符號(hào)如圖2.17所示,其中新出現(xiàn)的

符號(hào)的意義是:

SHL——左移(shifttotheleft)

SHR——右移(shifttotheright)

圖2.17

清華十字出版社

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

計(jì)數(shù)器(counter)也是由若干個(gè)觸發(fā)器組成的寄存器,它

的特點(diǎn)是能夠把存儲(chǔ)在其中的數(shù)字加1。

計(jì)數(shù)器的種類很多,有行波計(jì)數(shù)器、同步計(jì)數(shù)器、環(huán)形

計(jì)數(shù)器和程序計(jì)數(shù)器等。

(1)行波計(jì)數(shù)器(travellingwavecounter)的特點(diǎn)是:第1

個(gè)時(shí)鐘脈沖出使其最低有效位(leastsignificantbit,LSB)

加1,由0變1。第2個(gè)時(shí)鐘脈沖促使最低有效位由1變

0,同時(shí)推動(dòng)第2位,使其由0變1。同理,第2位由1變0

時(shí)又去推動(dòng)第3位,使其由0變1,這樣有如水波前進(jìn)一

樣逐位進(jìn)位下去。圖2.18就是由JK觸發(fā)器組成的行波

圖2.18中的各位的J,K輸入端都是懸浮的,這相當(dāng)

于J,K端都是置1的狀態(tài),亦即是各位都處于準(zhǔn)備

翻轉(zhuǎn)的狀態(tài)。只要時(shí)鐘脈沖邊緣一到,最右邊的觸

發(fā)器就會(huì)翻轉(zhuǎn),即Q由0轉(zhuǎn)為1或由1轉(zhuǎn)為0。各位的

JK觸發(fā)器的時(shí)鐘脈沖輸入端都帶有一個(gè)“氣泡”,

這表示是串有一個(gè)反相門(非門),這樣,只有時(shí)鐘

脈沖的后沿(產(chǎn)生負(fù)的尖峰電壓)才能為其所接受。

因此,可得計(jì)數(shù)步驟如下:

圖2.18

開始時(shí)使CLR由高電位變至低電位(這也是由于有“氣

泡”在CLR輸入端之故),則計(jì)數(shù)器全部清除,所

以:

Q=Q3Q2QIQO=OOOO

第1時(shí)鐘后沿到Q二0001

此Qo由低電位(0)升至高電位(1),產(chǎn)生的是電位上升

的變化,由于有“氣泡”在第2位的時(shí)鐘脈沖輸入

端,所以第2個(gè)觸發(fā)器不會(huì)翻轉(zhuǎn),必須在Qo由1降為

0時(shí)才會(huì)翻轉(zhuǎn)。接著:

第2時(shí)鐘后沿到Q=0010

第3時(shí)鐘后沿到Q二0011

第4時(shí)鐘后沿到Q二0100

第5時(shí)鐘后沿到Q二0101

第6時(shí)鐘后沿到Q二0110

第7時(shí)鐘后沿到Q二0111

第8時(shí)鐘后沿到Q二1000

第15時(shí)鐘后沿到Q=llll

第16時(shí)鐘后沿到Q二0000

在第16個(gè)時(shí)鐘脈沖到時(shí),計(jì)數(shù)器復(fù)位至0,因此這個(gè)

計(jì)數(shù)器可以計(jì)由0至15的數(shù)。如果要計(jì)的數(shù)更多,

就需要更多的位,即更多的JK觸發(fā)器來組成計(jì)數(shù)

器。如8位計(jì)數(shù)器可計(jì)由0至255的數(shù),12位計(jì)數(shù)器

可計(jì)由0至4095的數(shù),16位則可計(jì)由0至65535的

數(shù)。圖2.19是可控計(jì)數(shù)器的電路原理圖。

H

圖2.19

清華7二字:密版強(qiáng)

圖2.18中的J,K輸入端是懸浮的,所以每次時(shí)鐘脈

沖到時(shí),它都要翻轉(zhuǎn)一次。圖2.19中的各個(gè)J,K輸

入端連在一起引出來,由計(jì)數(shù)控制端COUNT的電

位信號(hào)來控制。當(dāng)COUNT為高電位時(shí),JK觸發(fā)器

才有翻轉(zhuǎn)的可能。當(dāng)COUNT為低電位時(shí)就不可能

翻轉(zhuǎn)。圖2.20是這種計(jì)數(shù)器的符號(hào)。

(2)同步計(jì)數(shù)器初學(xué)者可先不閱讀此段。

(synchronouscounter)行波計(jì)數(shù)器的工作原理是在

時(shí)鐘邊緣到來時(shí)開始計(jì)數(shù),由右邊第一位(LSB)開

始,如有進(jìn)位的話則要一位一位的推進(jìn)。而每一位

觸發(fā)器都需要建立時(shí)間tpg約為10納秒)。如果是16

位的計(jì)數(shù)器,則最大可能的計(jì)一個(gè)數(shù)的時(shí)間為160

納秒,這就顯得太慢了。

同步計(jì)數(shù)器是將時(shí)鐘脈沖同時(shí)加到各位的觸發(fā)器的

時(shí)鐘輸入端,而將前一位的輸出端(Q)接到下一位

的JK端去。這樣可以使計(jì)數(shù)器計(jì)數(shù)時(shí)間只相當(dāng)于

一個(gè)觸發(fā)器的建立時(shí)間tp,所以同步計(jì)數(shù)器在很多

微型機(jī)中常被使用。為了避免初學(xué)者陷到電路分析

中去,這里就不介紹具體線路了。

(3)環(huán)形計(jì)數(shù)器(ringcounter)也是由若干個(gè)觸發(fā)器組

成的。不過,環(huán)形計(jì)數(shù)器與上述計(jì)數(shù)器不一樣,它

只是僅有唯一的一個(gè)位為高電位,即只有一位為

1,其他各位為0。圖2.21是由D觸發(fā)器組成環(huán)形計(jì)

數(shù)器的電路原理圖。

圖2.20

圖2.21

當(dāng)CLR端有高電位輸入時(shí),除右邊第1位(LSB)外,

其他各位全被置0(因清除電位CLR都接至它們的

CLR端),而右邊第1位則被置1(因清除電位CLR被

引至其PR端)。這就是說,開始時(shí)Qo=L而Qi,

Q2,Q3全為0。因此,D1也等于1,而DO=Q3=O。

在時(shí)鐘脈沖正邊緣來到時(shí),則Qo=O,而Qi=L其

他各位仍為0。第2個(gè)時(shí)鐘脈沖前沿來到時(shí),

Qo=O,Qi=0,而Qz=l,Q3仍=0。這樣,隨著時(shí)鐘

脈沖而各位輪流置1,并且是在最后一位(左邊第1

位)置1之后又回到右邊第1位,這就形成環(huán)形置

位,所?稱為環(huán)形計(jì)數(shù)器。環(huán)形計(jì)數(shù)器的符號(hào)如圖

2.22所示。

環(huán)形計(jì)數(shù)器不是用來計(jì)數(shù)用,而是用來發(fā)出順序控

制信號(hào)的,這在計(jì)算機(jī)的控制器中是一個(gè)很重要的

(4)程序計(jì)數(shù)器(programcounter)也是一個(gè)行波計(jì)數(shù)

器(也可用同步計(jì)數(shù)器)。不過它不但可以從0開始

計(jì)數(shù),也可以將外來的數(shù)裝入其中,這就需要一個(gè)

COUNT輸入端,也要有一個(gè)LOAD門,程序計(jì)數(shù)

器的符號(hào)如圖2.23所示。

累加器也是一個(gè)由多個(gè)觸發(fā)器組成的多位寄存

器,累力口器的英文為accumulator,譯作累力口

器,似乎容易產(chǎn)生誤解,以為是在其中進(jìn)行算

術(shù)加法運(yùn)算。其實(shí)它不進(jìn)行加法運(yùn)算,而是作

為ALU運(yùn)算過程的代數(shù)和的臨時(shí)存儲(chǔ)處。這種

特殊的寄存器在微型計(jì)算機(jī)的數(shù)據(jù)處理中擔(dān)負(fù)

著重要的任務(wù)。

累加器除了能裝入及輸出數(shù)據(jù)外,還能使存儲(chǔ)其

中的數(shù)據(jù)左移或右移,所以它又是一種移位寄

存器。累加器的符號(hào)如圖2.24所示。

圖2.22

.一"/三二'

圖2.23圖2.24

宿監(jiān)";二蜀

2.4三態(tài)輸出電路

由于記憶元件是由觸發(fā)器組成的,而觸發(fā)器只有兩個(gè)狀

態(tài):o和1,所以每條信號(hào)傳輸線只能傳送一個(gè)觸發(fā)器

的信息(0或1)。如果一條信號(hào)傳輸線既能與一個(gè)觸發(fā)

器接通,也可以與其斷開而與另外一個(gè)觸發(fā)器接通,

則一條信息傳輸線就可以傳輸隨意多個(gè)觸發(fā)器的信息

To三態(tài)輸出電路(或稱三態(tài)門)就是為了達(dá)到這個(gè)目

的而設(shè)計(jì)的。

三態(tài)輸出電路可以由兩個(gè)或非門和兩個(gè)NMOS晶體管

(TPT?)及一個(gè)非門組成,如圖2.25所示。

當(dāng)ENABLE(選通端)為高電位時(shí),通過非門而加至兩個(gè)

或非門的將為低電位,則兩個(gè)或非門的輸出狀態(tài)將決

定手A端曲山位。當(dāng)A為高電位,G?就是彳氐

電位,而Gi為高電位,因而叫導(dǎo)通而12截止,所

以B端也呈現(xiàn)高電位(VB^VDD);當(dāng)A為低電位,G2

將呈現(xiàn)高電位而G1為低電位,因而叫截止而T2導(dǎo)

通,所以B也呈現(xiàn)低電位(VBg0)。這就是說,在選

通端(ENABLE端)為高電位時(shí)A的兩種可能電平(0

和1)都可以順利地通到B輸出去,即E=1時(shí),

B=Ao

當(dāng)選通端E為低電位時(shí),通過非門加至兩個(gè)或非門的

將為高電位。此時(shí),無論A為高或低電位,兩個(gè)或

非門的輸出都是低電位,即Gi與G2都是低電位。

所以叫和T2同時(shí)都是截止?fàn)顟B(tài)。這就是說,在選通

端(E端)為低電位時(shí),A端和B端是不相通的,即它

們之間存在著高阻狀態(tài)。

三態(tài)輸出電路的符號(hào)如圖2.25(b)所示。

圖2.25稱為單向三態(tài)輸出電路。有時(shí)需要雙向輸出

時(shí),一般可以用兩個(gè)單向三態(tài)輸出電路來組成,如

圖2.26所示。A為某個(gè)電路裝置的輸出端,C為其

輸入端。當(dāng)E0UT=1時(shí),B=A,即信息由左向右傳

輸;EIN=1時(shí),C=B,即信息由右向左傳輸。

圖2.25

圖2.26

三態(tài)門(E門)和裝入門(L門)一樣,都可加到任何寄存

器(包括計(jì)數(shù)器和累加器)電路上去。這樣的寄存器

就稱為三態(tài)寄存器。L門專管對寄存器的裝入數(shù)據(jù)

的控制,而E門專管由寄存器輸出數(shù)據(jù)的控制。

有了L門和E門就可以利用總線結(jié)構(gòu),使計(jì)算機(jī)的信

息傳遞的線路簡單化,控制器的設(shè)計(jì)也更為合理而

易于理解了。

高小幻二學(xué)出版社

K緋/'步算型明

2.5總線結(jié)構(gòu)

設(shè)有A,B,C和D4個(gè)寄存器,它們都有L門和E

門,其符號(hào)分別附以A,B,C和D的下標(biāo)。它

們的數(shù)據(jù)位數(shù),設(shè)有4位,這樣只要有4條數(shù)據(jù)

線即

溫馨提示

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

評(píng)論

0/150

提交評(píng)論