篇名 實現 bcd 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1...

13
實現 BCD 碼加法器 1 篇名 實現 BCD 加法器 作者 顏子翔。國立澎湖事水產高職。資訊科二年甲班 王思婷。國立澎湖事水產高職。資訊科二年甲班 呂順傑。國立澎湖事水產高職。資訊科二年甲班

Upload: phungthuan

Post on 14-Oct-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

1

篇名

實現 BCD 加法器

作者

顏子翔。國立澎湖海事水產高職。資訊科二年甲班

王思婷。國立澎湖海事水產高職。資訊科二年甲班

呂順傑。國立澎湖海事水產高職。資訊科二年甲班

Page 2: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

2

壹前言

任何一門應用學科的最終目的不外改善人類的生活,數位邏輯當然也不例外。數

位邏輯的觀念應用在生活中是很常見的,例如:要或不要、是或不是等,常為正

(真)、反(假)兩種情形。而在數位邏輯的世界裡,只有 0(Lo)與 1(Hi)兩種簡單的

狀況,但在電腦的運算中,卻常使用 0 與 1 做任何數目系統且複雜的演算。因

為數位電路中的元件不是工作在導通(ON)的狀態,就是工作在截止(OFF)的狀態。

電腦或其他數位電路在做算術運算時,最基本的電路往往只有二進位加法器而

已,至於減法,則先取減數的補數後,再與被減數相加,而獲得兩數的差,乘法

等於連續的加法,除法則是連續的減法。可見加法器在運算數位系統中的重要性。

二進位的表示法,雖然符合電腦內部元件動作情形,但是對人類的視覺很容易混

淆看錯,所以在電腦的程式設計或分析上,均使用十六進位以方便讀寫。由於人

類常常以十隻手指當作輔助運算工具,所以大家都習慣使用十進位的方式來計算

數目。BCD 碼的特色是將十進位數以 4 個位元的二進位數組合,既適合人類閱

讀,又適合電腦運算,故廣受大家喜愛,也是我們選擇的原因。

我們這次的目的就是要實現 BCD 加法器的理論,全篇共分以下幾個步驟,先了

解 BCD 碼的特色與 BCD 加法器的特性與運算原則,從 BCD 加法器的真值表推

出運算方程式,再以 7483 等 IC 按方程式完成電路,並做出本篇結論。

Page 3: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

3

貳正文

一、數目系統概述

1、二進碼(Binary Code)

二進位的數目系統,只由 0 與 1 兩個數字所組合,用來表示一個數目,且以二為

基底,逢 2 便進位的數目系統。在二進位數目系統中,每一數字有其大小不同的

權值(weight),即代表每一數字所在的位置代表 2 的若干乘方。

例:101100(2) = 1 × 25 + 0 × 2

4 + 1 × 2

3 + 1 × 2

2 + 0 × 2

1 + 0 × 2

0

= 32 + 8 + 4

= 44(10)

2、BCD(Binary Coded Decimal) 碼

BCD 碼(二進位十進碼)是以 4 位元(bit)來表示一個十進位的數,由下表可發現

BCD 碼的前 10 碼(0~9)與二進位完全相同,而 10 碼以後就不同了。

例 1:將二進位數碼 1111 化成 BCD 碼。

答:1111(2) = 15(10) = 0001 0101(BCD)

例 2:將 69(10)化成 BCD 碼。

答:69(10) = 0110 1001(BCD)

BCD 碼 十進碼

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

0

1

2

3

4

5

6

7

8

9

00010000

00010001

00010010

00100000

10

11

12

20

… …

Page 4: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

4

二、加法器概述

雖然計算機可以執行複雜的運算,但最基本的運算卻是二進位相加,這種簡單的

加法只有四種可能的情況,即

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10

前三種運算的和皆為一位數,最後一種的和為二位數,較高的位元為進位(carry)。

1、半加器(HA, Half Adder)只能執行兩個一位元相加。

半加器之真值表:

輸入 輸出

被加數 加數 進位 和

A B Co S

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0

2、全加器(FA, Full Adder)能執行兩個一位元及前一位元所產生的進位相加。

全加器之真值表;

輸入 輸出

進位輸入 被加數 加數 進位輸出 和

Ci A B Co S

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

3、BCD 加法器 是將二個 BCD 碼以 4 位元二進位數加法運算。

Page 5: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

5

三、BCD 加法器運算原則

1、被加數與加數之範圍 0(0000B)~9(1001B)。

2、運算後四位元總和小於或等於 9(1001B),且無進位產生,則此”和”為有效

BCD 值。

3、運算後四位元總和大於 9(1001B)或有進位產生,則必須將”和”再加上 6

(0110B),才為有效 BCD 值。

4、將上述步驟產生之進位加至下一位數。

5、BCD 加法器之真值表

進位 總和 輸出

Co S4 S3 S2 S1 Y

0 0 0 0 0 0

0 0 0 0 1 0

0 0 0 1 0 0

0 0 0 1 1 0

0 0 1 0 0 0

0 0 1 0 1 0

0 0 1 1 0 0

0 0 1 1 1 0

0 1 0 0 0 0

0 1 0 0 1 0

0 1 0 1 0 1

0 1 0 1 1 1

0 1 1 0 0 1

0 1 1 0 1 1

0 1 1 1 0 1

0 1 1 1 1 1

1 X X X X 1

輸出 Y=0 表示有效 BCD 碼,不加 6。

輸出 Y=1 表示需要加 6 調整。

Y = S4 S3 + S4 S2 + Co

= S4 (S3 + S2) + Co

X 為不理會(ignore)

Page 6: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

6

例 1:

9 + 8 => 1001

+ 1000

1 0001 => 二進位的 17,產生進位

+ 0110 => 須加 6(0110B)調整

1 0111 => BCD 碼的 17(00010111(BCD))

例 2:

8 + 5 => 1000

+ 0101

1101 => 二進位的 13,未產生進位,但超過 9(1001B)

+ 0110 => 須加 6(0110B)調整

1 0011 => BCD 碼的 13(00010011(BCD))

四、實現 BCD 加法器

1、實驗設備材料

名稱 規格 數量

直流電源供應器 +5V 1

麵包板(Bread board) 1

積體電路(IC) 7483 2

積體電路 7408 1

積體電路 7432 1

發光二極體(LED) RED 4

發光二極體(LED) GREEN 1

排電阻 330Ω 1

Page 7: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

7

A、7483

a、方塊圖

b、接腳圖

A4 A3 A2 A1 B4 B3 B2 B1

Σ4 Σ3 Σ2 Σ1

A B

C0 C4

7483

A4

A3

A1

A2

B1

B2 B3

B4

C0 C4

S1

S2 S3

S4

Page 8: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

8

2、按 BCD 加法器的運算方程式和 IC 7483 接腳圖完成以下電路

A、BCD 加法器電路圖

B、BCD 加法器完成圖

A4 A3 A2 A1 B4 B3 B2 B1

C4 7483748374837483 C0

Σ4 Σ3 Σ2 Σ1

A4 A3 A2 A1 B4 B3 B2 B1

7483748374837483 C0

Σ4 Σ3 Σ2 Σ1

0

0

0

被加數 加數

S4~S1(和)

Page 9: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

9

3、測試過程

輸入 輸出

被加數 加數 進位 和

A4 A3 A2A1 B4 B3 B2B1 C Σ4Σ3Σ2Σ1

0010 0011 0 0101

0110 0111 1 0011

1001 1000 1 0111

0100 0100 0 1000

紅線為被加數(A4 A3 A2A)

綠線為加數(B4 B3 B2B1)

紅色 LED 為和(Σ4Σ3Σ2Σ1)

綠色 LED 為進位(C)

圖一、2(0010B) + 3(0011B) = 5(0101B) (小於 9(1001B)、且無進位)

此和為有效 BCD 碼。

(圖一)

(圖二)

(圖三)

(圖四)

Page 10: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

10

圖二、6(0110B) + 7(0111B) = 13(1101B) (大於 9(1001B) )

此和為無效 BCD 碼,須加 6 調整。

6 + 7 => 0110

+ 0111

1101 => 因 13 > 9

+ 0110 => 故加 6

1 0011 => BCD 碼的 13(0001 0011(BCD))

Page 11: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

11

圖三、9(1001B) + 8(1000B) = 17(10001B) (有進位)

此和為無效 BCD 碼,須加 6 調整。

9 + 8 => 1001

+ 1000

1 0001 => 因有進位

+ 0110 => 故加 6

1 0111 => BCD 碼的 17(0001 0111(BCD))

Page 12: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

12

圖四、4(0100B) + 4(0100B) =8(1000B) (小於 9(1001B)、且無進位)

此和為有效 BCD 碼。

五、實驗結果

在多次測驗後,我們的實際值與理論值相互吻合。

參結論

經過這次實驗後,我們覺得 BCD 碼真的比較容易轉換成我們熟悉的十進位,也

就是比較方便直接閱讀,但是 4 個位元卻只能表示 10 種狀態,這樣就浪費掉原

本可表示 16 種狀態的其他 6 種狀態了,而且麻煩的一點是在運算時,當結果為

無效 BCD 碼就要多加 6 的步驟。

此外,這次實驗也讓我們更進一步的了解 BCD 加法器的特性與原理,還有數位

邏輯方面的提升,更知道如何利用 IC 來製作電路,對於接麵包板也更為熟練。

但我們這次的 BCD 加法器算是簡單的電路,比起實際的計算機,還是有很寬廣

的空間,或許將來能將輸入端和輸出端改得更人性化一些,位元也能再多一點。

在這次小論文中更為可貴的是,我們組員間的分工合作,一起討論研究主題,在

Page 13: 篇名 實現 BCD 加法器 作者 - shs.edu.t · 積體電路(ic) 7483 2 積體電路 7408 1 積體電路 7432 1 發光二極體(led) red 4 發光二極體(led) green 1 排電阻

實現 BCD 碼加法器

13

參予的過程中,也一點一滴的增加對數位邏輯及小論文的興趣,不失為一個寶貴

的體驗。

肆引註資料

註一、黃慶璋.陳以熙。數位邏輯。(台北縣:全華,民 96)。頁 1、42、140。

註二、陳炳陽.朱洪福。數位邏輯實習。(台北縣:科友,民 96)。頁 107、111。

註三、謝明興.謝瑞元。計算機概論 INTERNET & WORD 97。(台北市:松崗,

民 86)。頁 2-4。

註四、鐘富昭。數位電路實習與專題製作。(台北市:全華,民 84)。頁 37、42。

註五、數位邏輯學。

http://www.nihs.tp.edu.tw/~nihsw9/logic-1-joe/logic/ch8/p1.htm。(檢索日期

2008/05/15)

註六、高職教師進修網站控制科。http://elearning.stut.edu.tw/control/Logic/。(檢索

日期 2008/05/22)

註七、數值計算中 Bcd 碼校驗電路的分析與設計 - 21IC 中國電子網。

http://www.21ic.com/news/html/75/show6711.htm。(檢索日期 2008/05/22)

註八、邏輯電路設計與應用。

http://www.csie.nctu.edu.tw/~chienwen/temp/bcdadder/。(檢索日期 2008/05/22)

註九、資料與編碼。http://www.ltivs.ilc.edu.tw/kocp/logic/ch2/2-3.htm。(檢索日期

2008/05/22)