BÀI GIẢNG TRÊN CỦA KHOA ĐTVT - BKĐN
NỘI DUNG .
Chương 1 . Hệ thống số đếm và khái niệm về mã
Chương 2 . Đại số Boole
Chương 3 . Các phần tử logic cơ bản
Chương 4 . Hệ tổ hợp
Chương 5 . Hệ tuần tự
11 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2125 | Lượt tải: 4
Bạn đang xem nội dung tài liệu Bài giảng Điện tử số 1, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TRѬӠNG ĈҤI HӐC BÁCH KHOA ĈÀ NҸNG
KHOA Ĉ,ӊN TӰ VIӈN THÔNG
----- oOo -----
BÀI GIҦNG
Ĉ,ӊN TӰ SӔ 1
Ĉà Nҹng, 08 / 2007
Chѭѫng 1. HӋ thӕng sӕÿӃm và khái niӋm vӅ mã Trang 1
Chѭѫng 1
+ӊ THӔNG SӔĈӂM VÀ KHÁI NIӊM Vӄ MÃ
1.1. Hӊ THӔNG SӔĈӂM
1.1.1. HӋÿӃm
1. Khái niӋm
+ӋÿӃm là tұp hӧp các phѭѫng pháp gӑi và biӇu diӉn các con sӕ bҵng các kí hiӋu có giá trӏ sӕ
Oѭӧng xác ÿӏnh gӑi là các chӳ sӕ.
2. Phân loҥi
Có thӇ chia các hӋÿӃm làm hai loҥi: hӋÿӃm theo vӏ trí và hӋÿӃm không theo vӏ trí.
a. H͏ÿ͇m theo v͓ trí:
+ӋÿӃm theo vӏ trí là hӋÿӃm mà trong ÿó giá trӏ sӕ lѭӧng cӫa chӳ sӕ còn phө thuӝc vào vӏ trí cӫa
nó ÿӭng trong con sӕ cө thӇ.
Ví dͭ: HӋ thұp phân là mӝt hӋÿӃm theo vӏ trí. Sӕ 1991 trong hӋ thұp phân ÿѭӧc biӇu diӉn bҵng
2 chӳ sӕ “1” và “9”, nhѭng do vӏ trí ÿӭng cӫa các chӳ sӕ này trong con sӕ là khác nhau nên sӁ mang
các giá trӏ sӕ lѭӧng khác nhau, chҷng hҥn chӳ sӕ “1” ӣ vӏ trí hàng ÿѫn vӏ biӇu diӉn cho giá trӏ sӕ
Oѭӧng là 1 song chӳ sӕ “1” ӣ vӏ trí hàng nghìn lҥi biӇu diӉn cho giá trӏ sӕ lѭӧng là 1000, hay chӳ sӕ
“9” khi ӣ hàng chөc biӇu diӉn giá trӏ là 90 còn khi ӣ hàng trăm lҥi biӇu diӉn cho giá trӏ là 900.
b. H͏ÿ͇m không theo v͓ trí:
+ӋÿӃm không theo vӏ trí là hӋÿӃm mà trong ÿó giá trӏ sӕ lѭӧng cӫa chӳ sӕ không phө thuӝc vào
Yӏ trí cӫa nó ÿӭng trong con sӕ.
+ӋÿӃm La Mã là mӝt hӋÿӃm không theo vӏ trí. HӋÿӃm này sӱ dөng các ký tӵ “I”, “V”, “X”...
ÿӇ biӇu diӉn các con sӕ, trong ÿó “I” biӇu diӉn cho giá trӏ sӕ lѭӧng 1, “V” biӉu diӉn cho giá trӏ sӕ
Oѭӧng 5, “X” biӇu diӉn cho giá trӏ sӕ lѭӧng 10... mà không phө thuӝc vào vӏ trí các chӳ sӕ này ÿӭng
trong con sӕ cө thӇ.
Các hӋÿӃm không theo vӏ trí sӁ không ÿѭӧc ÿӅ cұp ÿӃn trong giáo trình này.
1.1.2. Cѫ sӕ cӫa hӋÿӃm
0ӝt sӕ A bҩt kǤ có thӇ biӇu diӉn bҵng dãy sau:
A= am-1am-2.....a0a-1......a-n
Trong ÿó ai là các chӳ sӕ, ( 1mni -¸-= ); i là các hàng sӕ, i nhӓ: hàng trҿ, i lӟn: hàng già.
Giá trӏ sӕ lѭӧng cӫa các chӳ sӕ ai sӁ nhұn mӝt giá trӏ nào ÿó sao cho thӓa mãn bҩt ÿҷng thӭc sau:
1Na0 i -££ (ai nguyên)
N ÿѭӧc gӑi là cѫ sӕ cӫa hӋÿӃm. &ѫ sӕ cӫa mӝt hӋÿӃm là sӕ lѭӧng ký tӵ phân biӋt ÿѭӧc sӱ
Gөng trong mӝt hӋÿӃm. Các hӋ thӕng sӕÿӃm ÿѭӧc phân biӋt vӟi nhau bҵng mӝt cѫ sӕ N cӫa hӋ
ÿӃm ÿó. Mӛi ký tӵ biӇu diӉn mӝt chӳ sӕ.
Bài giҧng KӺ THUҰT SӔ Trang 2
Trong ÿӡi sӕng hҵng ngày chúng ta quen sӱ dөng hӋÿӃm thұp phân (decimal) vӟi N=10. Trong
KӋ thӕng sӕ còn sӱ dөng nhӳng hӋÿӃm khác là hӋÿӃm nhӏ phân (binary) vӟi N=2, hӋÿӃm bát phân
(octal) vӟi N=8 và hӋÿӃm thұp lөc phân (hexadecimal) vӟi N=16.
- HӋ nhӏ phân : N =2 Þ ai = 0, 1.
- HӋ thұp phân : N =10 Þ ai = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
- HӋ bát phân : N =8 Þ ai = 0, 1, 2, 3, 4, 5, 6, 7.
- HӋ thұp lөc phân : N =16 Þ ai = 0, 1, 2, …8, 9, A, B, C,D, E, F.
Khi ÿã xuҩt hiӋn cѫ sӕ N, ta có thӇ biӇu diӉn sӕ A dѭӟi dҥng mӝt ÿa thӭc theo cѫ sӕ N, ÿѭӧc ký
hiӋu là A(N) :
A(N) = am-1.Nm-1 + am-2.Nm-2 +...+ a0.N0 + a-1.N-1 + ... + a-n.N-n
Hay:
å
-
-=
=
1m
ni
i
i(N) NaA (1.1)
9ͣi N=10 (h͏ th̵p phân):
A(10) = am-1.10m-1 + am-2.10m-2 +....+ a0.100 +...+ a-n.10-n
1999,959(10) =1.103 + 9.102 + 9.101 + 9.100 + 9.10-1 + 5.10-2 + 9.10-3
9ͣi N=2 (h͏ nh͓ phân):
A(2) = am-1.2m-1 + am-2.2m-2 +...+ a0.20 ....+a-n2-n
1101(2) = 1.23 +1.22 + 0.21 + 1.20 = 13(10)
9ͣi N=16 (h͏ th̵p lͭc phân):
A(16) = am-1.16m-1 + am-2.16m-2 +...+ a0.160 + a-116-1 + ... + a-n16-n
3FF(16) = 3.162 + 15.161 + 15.160 = 1023(10)
9ͣi N=8 (h͏ bát phân):
A(8) = am-1.8m-1 + am-2.8m-2 +...+ a0.80 + a-1.8-1 + ... + a-n.8-n
376(8) = 3.82 + 7.81 + 6.80 = 254(10)
Nhѭ vұy, biӇu thӭc (1.1) cho phép ÿәi các sӕӣ bҩt kǤ hӋ nào sang hӋ thұp phân (hӋ 10).
1.1.3. Ĉәi cѫ sӕ
1. Ĉәi tӯ cѫ sӕ d sang cѫ sӕ 10
ĈӇ chuyӇn ÿәi mӝt sӕӣ hӋÿӃm cѫ sӕ d sang hӋÿӃm cѫ sӕ 10 ngѭӡi ta khai triӇn con sӕ trong cѫ
Vӕ d dѭӟi dҥng ÿa thӭc theo cѫ sӕ cӫa nó (theo biӇu thӭc 1.3).
Ví dͭ 1.1 Ĉәi sӕ 1101(2)ӣ hӋ nhӏ phân sang hӋ thұp phân nhѭ sau:
1011(2) = 1.23 + 0.22 + 1.21 + 1.20 = 11(10)
2. Ĉәi tӯ cѫ sӕ 10 sang cѫ sӕ d
ĈӇ chuyӇn ÿәi mӝt sӕ tӯ cѫ sӕ 10 sang cѫ sӕ d (d = 2, 8, 16) ngѭӡi ta lҩy con sӕ trong cѫ sӕ 10
chia liên tiӃp cho d ÿӃn khi thѭѫng sӕ bҵng không thì dӯng lҥi. KӃt quҧ chuyӇn ÿәi có ÿѭӧc trong
KӋÿӃm cѫ sӕ d là tұp hӧp các sӕ dѭ cӫa phép chia ÿѭӧc viӃt theo thӭ tӵ ngѭӧc lҥi, nghƭa là sӕ dѭ
ÿҫu tiên có trӑng sӕ nhӓ nhҩt. (xem ví dө 1.2)
Chѭѫng 1. HӋ thӕng sӕÿӃm và khái niӋm vӅ mã Trang 3
Ví dͭ 1.2:
.Ӄt luұn: Gӑi d1, d2, ..,dn lҫn lѭӧt là dѭ sӕ cӫa phép chia sӕ thұp phân cho cѫ sӕ d ӣ lҫn thӭ 1, 2,
3, 4, .., n thì kӃt quҧ chuyӇn ÿәi mӝt sӕ tӯ hӋÿӃm cѫ sӕ 10 (thұp phân) sang hӋÿӃm cѫ sӕ d sӁ là:
dndn-1dn-2...d1,
nghƭa là dѭ sӕ sau cùng cӫa phép chia là bít có trӑng sӕ cao nhҩt (MSB), còn dѭ sӕÿҫu tiên là bít
có trӑng sӕ nhӓ nhҩt (LSB).
Trong các ví dө trên, cѫ sӕ cӫa hӋÿӃm ÿѭӧc ghi ӣ dҥng chӍ sӕ bên dѭӟi. Ngoài ra cNJng có thӇ ký
Wӵ chӳÿӇ phân biӋt nhѭ sau:
B - HӋ nhӏ phân (Binary) O - HӋ bát phân (Octal)
D - HӋ thұp phân (Decmal) H - HӋ thұp lөc phân (Hexadecimal)
Ví dͭ: 1010B có nghƭa là 1010(2)
37FH có nghƭa là 37F(16)
& Quy t̷c chuy͋n ÿ͝i giͷa các h͏ÿ͇m c˯ s͙ 2, 8, 16 ?
1.2. HӊĈӂM NHӎ PHÂN VÀ KHÁI NIӊM Vӄ MÃ
1.2.1. HӋÿӃm nhӏ phân
1. Khái niӋm
+ӋÿӃm nhӏ phân, còn gӑi là hӋÿӃm cѫ sӕ 2, là hӋÿӃm trong ÿó ngѭӡi ta chӍ sӱ dөng hai kí hiӋu
0 và 1 ÿӇ biӇu diӉn tҩt cҧ các sӕ. Hai ký hiӋu ÿó gӑi chung là bit hoһc digit, nó ÿһc trѭng cho mҥch
ÿLӋn tӱ có hai trҥng thái әn ÿӏnh hay còn gӑi là 2 trҥng thái bӅn cӫa FLIP- FLOP (ký hiӋu là FF).
Trong hӋÿӃm nhӏ phân ngѭӡi ta quy ѭӟc nhѭ sau:
- Mӝt nhóm 4 bít gӑi là 1 nibble.
- Mӝt nhóm 8 bít gӑi là 1 byte.
- Nhóm nhiӅu bytes gӑi là tӯ (word), có thӇ có tӯ 2 bytes (16 bít), tӯ 4 bytes (32 bít), ...
ĈӇ hiӇu rõ hѫn mӝt sӕ khái niӋm, ta xét sӕ nhӏ phân 4 bít: a3a2a1a0. BiӇu diӉn dѭӟi dҥng ÿa thӭc
theo cѫ sӕ cӫa nó là:
a3a2a1a0 (2) = a3.23 + a2.22 + a1.21 + a0.20
Trong ÿó:
- 23, 22, 21, 20 (hay 8, 4, 2, 1) ÿѭӧc gӑi là các trӑng sӕ.
- a0 ÿѭӧc gӑi là bit có trӑng sӕ nhӓ nhҩt, hay còn gӑi bit có ý nghƭa nhӓ nhҩt (LSB - Least
Significant Bit), còn gӑi là bít trҿ nhҩt.
1023 16
63 16
3 16
0
15
15
3
A(10)=1023 ® A(16)=3FFH
13 2
6 2
3 2
1
1
0
1 2
01
A(10)=13 ® A(2)=1101
Bài giҧng KӺ THUҰT SӔ Trang 4
- a3 ÿѭӧc gӑi là bit có trӑng sӕ lӟn nhҩt, hay còn gӑi là bít có ý nghƭa lӟn nhҩt (MSB - Most
Significant Bit), còn gӑi là bít già nhҩt.
Nhѭ vұy, vӟi sӕ nhӏ phân 4 bit a3a2a1a0 trong ÿó mӛi chӳ sӕ ai (i tӯ 0 ÿӃn 3) chӍ nhұn ÿѭӧc hai
giá trӏ {0,1} ta có 24 = 16 tә hӧp nhӏ phân phân biӋt.
%ҧng sau ÿây liӋt kê các tә hӧp mã nhӏ phân 4 bít cùng các giá trӏ sӕ thұp phân, sӕ bát phân và sӕ
thұp lөc phân tѭѫng ӭng.
& Tͳ b̫ng này hãy cho bi͇t m͙i quan h͏ giͷa các s͙ trong h͏ nh͓ phân vͣi các s͙ trong h͏
bát phân (N=8) và h͏ th̵p lͭc phân (N=16)? Tͳÿó suy ra ph˱˯ng pháp chuy͋n ÿ͝i nhanh giͷa các
K͏ này?
6ӕ thұp phân a3a2a1a0 Sӕ bát phân Sӕ thұp lөc phân
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
00
01
02
03
04
05
06
07
10
11
12
13
14
15
16
17
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
%̫ng 1.1. Các t͝ hͫp mã nh͓ phân 4 bít
6ӵ chuyӇn ÿәi giӳa các hӋ thӕng sӕ ÿӃm khác nhau giӳ vai trò quan trӑng trong máy tính sӕ.
Chúng ta biӃt rҵng 23 = 8 và 24 = 16, tӯ bҧng mã trên có thӇ nhұn thҩy mӛi chӳ sӕ trong hӋ bát phân
Wѭѫng ÿѭѫng vӟi mӝt nhóm ba chӳ sӕ (3 bít) trong hӋ nhӏ phân, mӛi chӳ sӕ trong hӋ thұp lөc phân
Wѭѫng ÿѭѫng vӟi mӝt nhóm bӕn chӳ sӕ (4 bít) trong hӋ nhӏ phân. Do ÿó, khi biӇu diӉn sӕ nhӏ phân
nhiӅu bit trên máy tính ÿӇ tránh sai sót ngѭӡi ta thѭӡng biӇu diӉn thông qua sӕ thұp phân hoһc thұp
Oөc phân hoһc bát phân.
Ví dͭ 1.3: Xét viӋc biӇu diӉn sӕ nhӏ phân 1011111011111110(2).
1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0
9ұy, có thӇ biӇu diӉn : 137376(8) theo hӋ bát phân
hoһc : BEFE(H) theo hӋ thұp lөc phân.
673731
EFEB
Chѭѫng 1. HӋ thӕng sӕÿӃm và khái niӋm vӅ mã Trang 5
& Vͣi s͙ nh͓ phân n bít có bao nhiêu t͝ hͫp nh͓ phân khác nhau? Xét tr˱ͥng hͫp s͙ nh͓
phân 8 bít (n=8) a7a6a5a4a3a2a1a0 có bao nhiêu t͝ hͫp nh͓ phân (tͳ mã nh͓ phân) khác nhau?
2. Các phép tính trên sӕ nhӏ phân
a. Phép c͡ng
ĈӇ cӝng hai sӕ nhӏ phân, ngѭӡi ta dӵa trên qui tҳc cӝng nhѭ sau:
0 + 0 = 0 nhӟ 0
0 + 1 = 1 nhӟ 0
1 + 0 = 1 nhӟ 0
1 + 1 = 0 nhӟ 1
Ví dͭ 1.4:
3 ® 0011
2 ® 0010
5 ® 0101 = 1.22 + 1.20 = 5(10)
b. Phép trͳ
0 - 0 = 0 mѭӧn 0
0 - 1 = 1 mѭӧn 1
1 - 0 = 1 mѭӧn 0
1 - 1 = 0 mѭӧn 0
Ví dͭ 1.5:
7 ® 0111
5 ® 0101
2 ® 0010 = 0.23 + 0.22 + 1.21 + 0.20 = 2(10)
c. Phép nhân
0 . 0 = 0
0 . 1 = 0
1 . 0 = 0
1 . 1 = 1
Ví dͭ 1.6:
7 ® 0111
5 ® 0101
35 0111
0000
0111
0000
0100011 = 1.25 + 1.21 + 1.20 = 35(10)
d. Phép chia
0 : 1 = 0
1 : 1 = 1
/˱u ý: Khi chia s͙ chia ph̫i khác 0
++
- -
x x
Bài giҧng KӺ THUҰT SӔ Trang 6
Ví dͭ 1.7: 10 5 ® 1010 101
2 101 10(2) = 2(10)
00
0
Ӭng dөng thanh ghi dӏch thӵc hiӋn phép toán nhân hai, chia hai:
1.2.2. Khái niӋm vӅ mã
1. Ĉҥi cѭѫng
Trong ÿӡi sӕng hàng ngày, con ngѭӡi giao tiӃp vӟi nhau thông qua mӝt hӋ thӕng ngôn ngӳ qui
ѭӟc, nhѭng trong máy tính và các hӋ thӕng sӕ chӍ xӱ lý các dӳ liӋu nhӏ phân. Do ÿó, mӝt vҩn ÿӅÿһt
ra là làm thӃ nào tҥo ra mӝt giao diӋn dӉ dàng giӳa ngѭӡi và máy tính, nghƭa là máy tính thӵc hiӋn
ÿѭӧc nhӳng bài toán do con ngѭӡi ÿһt ra.
Vì các máy tính sӕ hiӋn nay chӍ hiӇu các sӕ 0 và sӕ 1, nên bҩt kǤ thông tin nào dѭӟi dҥng các chӳ
Vӕ, chӳ cái hoһc các ký tӵ phҧi ÿѭӧc biӃn ÿәi thành dҥng sӕ nhӏ phân trѭӟc khi nó có thӇÿѭӧc xӱ
lý bҵng các mҥch sӕ.
ĈӇ thӵc hiӋn ÿLӅu ÿó, ngѭӡi ta ÿһt ra vҩn ÿӅ vӅ mã hóa dӳ liӋu. Nhѭ vұy, mã hóa là quá trình
biӃn ÿәi nhӳng ký hiӋu quen thuӝc cӫa con ngѭӡi sang nhӳng ký hiӋu quen thuӝc vӟi máy tính.
Nhӳng sӕ liӋu ÿã mã hóa này ÿѭӧc nhұp vào máy tính, máy tính tính toán xӱ lý và sau ÿó máy tính
thӵc hiӋn quá trình ngѭӧc lҥi là giҧi mã ÿӇ chuyӇn ÿәi các bít thông tin nhӏ phân thành các ký hiӋu
quen thuӝc vӟi con ngѭӡi mà con ngѭӡi có thӇ hiӇu ÿѭӧc.
Các lƭnh vӵc mã hóa bao gӗm:
- Mã hóa sӕ thұp phân
- Mã hóa ký tӵ
- Mã hóa tұp lӋnh
- Mã hóa tiӃng nói
- Mã hóa hình ҧnh ..v..v..
Phҫn tiӃp theo chúng ta khҧo sát lƭnh vӵc mã hóa ÿѫn giҧn nhҩt là mã hóa sӕ thұp phân bҵng
cách sӱ dөng các tӯ mã nhӏ phân. ViӋc mã hóa ký tӵ, tұp lӋnh, tiӃng nói, hình ҧnh... ÿӅu dӵa trên cѫ
Vӣ mã hóa sӕ thұp phân.
0 0 0 0 0 1 011 0
0 0 0 0 0 0 111 Thanh ghi ban ÿҫu
Thanh ghi sau khi dӏch trái 1 bít
'ӏch trái 1 bít « nhân 2
0 0 0 0 0 0 10 1 1
0
Thanh ghi sau khi dӏch phҧi 1 bít
'ӏch phҧi 1 bít « chia 20 Gѭ
Hình 1.1. Ͱng dͭng thanh ghi d͓ch thc hi͏n phép toán nhân và chia 2
Chѭѫng 1. HӋ thӕng sӕÿӃm và khái niӋm vӅ mã Trang 7
2. Mã hóa sӕ thұp phân
a. Khái ni͏m
Trong thӵc tӃÿӇ mã hóa sӕ thұp phân ngѭӡi ta sӱ dөng các sӕ nhӏ phân 4 bit (a3a2a1a0) theo quy
Wҳc sau:
0 ® 0000 ; 5 ® 0101
1 ® 0001 ; 6 ® 0110
2 ® 0010 ; 7 ® 0101
3 ® 0011 ; 8 ® 1000
4 ® 0100 ; 9 ® 1001
Các sӕ nhӏ phân dùng ÿӇ mã hóa các sӕ thұp phân ÿѭӧc gӑi là các sӕ BCD (Binary Coded
Decimal: Sӕ thұp phân ÿѭӧc mã hóa bҵng sӕ nhӏ phân).
b. Phân lo̩i
Khi sӱ dөng sӕ nhӏ phân 4 bit ÿӇ mã hóa các sӕ thұp phân tѭѫng ӭng vӟi 24 = 16 tә hӧp mã nhӏ
phân phân biӋt.
Do viӋc chӑn 10 tә hӧp trong 16 tә hӧp ÿӇ mã hóa các ký hiӋu thұp phân tӯ 0 ÿӃn 9 mà trong
thӵc tӃ xuҩt hiӋn nhiӅu loҥi mã BCD khác nhau.
0һc dù tӗn tҥi nhiӅu loҥi mã BCD khác nhau, nhѭng có thӇ chia làm hai loҥi chính: Mã BCD có
tr͕ng s͙ và mã BCD không có tr͕ng s͙.
b1. Mã BCD có trӑng sӕ là loҥi mã cho phép phân tích thành ÿa thӭc theo trӑng sӕ cӫa nó. Mã
BCD có trӑng sӕÿѭӧc chia làm 2 loҥi là: mã BCD tӵ nhiên và mã BCD sӕ hӑc.
Mã BCD t nhiên là loҥi mã mà trong ÿó các trӑng sӕ thѭӡng ÿѭӧc sҳp xӃp theo thӭ tӵ tăng
Gҫn. Ví dө: Mã BCD 8421, BCD 5421.
Mã BCD s͙ h͕c là loҥi mã mà trong ÿó có tәng các trӑng sӕ luôn luôn bҵng 9.Ví dө: BCD
2421, BCD 5121, BCD8 4-2-1
Ĉһc trѭng cӫa mã BCD sӕ hӑc là có tính chҩt ÿӕi xӭng qua mӝt ÿѭӡng trung gian. Do
Yұy, ÿӇ tìm tӯ mã BCD cӫa mӝt sӕ thұp phân nào ÿó ta lҩy bù (ÿҧo) tӯ mã BCD cӫa sӕ bù 9
Wѭѫng ӭng.
Ví dͭ xét mã BCD 2421. Ĉây là mã BCD sӕ hӑc (tәng các trӑng sӕ bҵng 9), trong ÿó sӕ 3
(thұp phân) có tӯ mã là 0011, sӕ 6 (thұp phân) là bù 9 cӫa 3. Do vұy, có thӇ suy ra tӯ mã cӫa 6
Eҵng cách lҩy bù tӯ mã cӫa 3, nghƭa là lҩy bù 0011, ta sӁ có tӯ mã cӫa 6 là 1100.
b2. Mã BCD không có trӑng sӕ là loҥi mã không cho phép phân tích thành ÿa thӭc theo trӑng
Vӕ cӫa nó. Các mã BCD không có trӑng sӕ là: Mã Gray, Mã Gray thӯa 3.
Ĉһc trѭng cӫa mã Gray là bӝ mã trong ÿó hai tӯ mã nhӏ phân ÿӭng kӃ tiӃp nhau bao giӡ cNJng chӍ
khác nhau 1 bit.
Ví dө:
Các bҧng dѭӟi ÿây trình bày mӝt sӕ loҥi mã thông dөng.
Mã Gray: 2 ® 0011
3 ® 0010
4 ® 0110
Còn vӟi mã BCD 8421:
3 ® 0011
4 ® 0100
Bài giҧng KӺ THUҰT SӔ Trang 8
%ҧng 1.2: Các mã BCD t nhiên.
BCD 8421 BCD 5421 BCD quá 3
a3 a2 a1 a0 b3 b2 b1 b0 c3 c2 c1 c0
6ӕ thұp
phân
0 0 0 0 0 0 0 0 0 0 1 1 0
0 0 0 1 0 0 0 1 0 1 0 0 1
0 0 1 0 0 0 1 0 0 1 0 1 2
0 0 1 1 0 0 1 1 0 1 1 0 3
0 1 0 0 0 1 0 0 0 1 1 1 4
0 1 0 1 1 0 0 0 1 0 0 0 5
0 1 1 0 1 0 0 1 1 0 0 1 6
0 1 1 1 1 0 1 0 1 0 1 0 7
1 0 0 0 1 0 1 1 1 0 1 1 8
1 0 0 1 1 1 0 0 1 1 0 0 9
%ҧng 1.3: Các mã BCD s͙ h͕c
BCD 2421 BCD 5121 BCD 84-2-1
a3 a2 a1 a0 b3 b2 b1 b0 c3 c2 c1 c0
6ӕ thұp
phân
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1 0 1 1 1 1
0 0 1 0 0 0 1 0 0 1 1 0 2
0 0 1 1 0 0 1 1 0 1 0 1 3
0 1 0 0 0 1 1 1 0 1 0 0 4
1 0 1 1 1 0 0 0 1 0 1 1 5
1 1 0 0 1 1 0 0 1 0 1 0 6
1 1 0 1 1 1 0 1 1 0 0 1 7
1 1 1 0 1 1 1 0 1 0 0 0 8
1 1 1 1 1 1 1 1 1 1 1 1 9
%ҧng 1.4: BCD t nhiên và mã Gray.
BCD 8421 BCD quá 3 Mã Gray Gray quá 3
a3 a2 a1 a0 c3 c2 c1 c0 G3 G2 G1 G0 g3 g2 g1 g0
6ӕ thұp
phân
0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0
0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1
0 0 1 0 0 1 0 1 0 0 1 1 0 1 1 1 2
0 0 1 1 0 1 1 0 0 0 1 0 0 1 0 1 3
0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 4
0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 5
0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 6
0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 7
1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 8
1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 9
Chѭѫng 1. HӋ thӕng sӕÿӃm và khái niӋm vӅ mã Trang 9
Chú ý: Mã Gray ÿѭӧc suy ra tӯ mã BCD 8421 bҵng cách: các bit 0,1 ÿӭng sau bit 0 (ӣ mã
BCD 8421) khi chuyӇn sang mã Gray ÿѭӧc giӳ nguyên, còn các bit 0,1 ÿӭng sau bit 1 (ӣ mã BCD
8421) khi chuyӇn sang mã Gray thì ÿҧo bít, nghƭa là tӯ bit 1 thành bit 0 và bit 0 thành bit 1.
3. Mҥch nhұn dҥng sӕ BCD 8421:
0ҥch nhұn dҥng sӕ BCD 8421 nhұn tín hiӋu vào là các bít a3, a2, a1 cӫa sӕ nhӏ phân 4 bít
a3a2a1a0, ÿҫu ra y ÿѭӧc quy ÿӏnh nhѭ sau:
- NӃu y = 1 thì a3a2a1a0 không phҧi sӕ BCD 8421
- NӃu y = 0 thì a3a2a1a0 là sӕ BCD 8421
Nhѭ vұy, nӃu mӝt sӕ nhӏ phân 4 bit không phҧi là mӝt sӕ BCD 8421 thì ngõ ra y = 1. Tӯ bҧng
1.1 ta thҩy mӝt sӕ nhӏ phân 4 bít không phҧi là sӕ BCD 8421 khi bít a3 luôn luôn b̹ng 1 và (bit a1
E̹ng 1 ho̿c bít a2 b̹ng 1).
Suy ra phѭѫng trình logic cӫa ngõ ra y: y = a3(a1 + a2) = a3a1 + a3a2
6ѫÿӗ logic:
&NJng do viӋc xuҩt hiӋn sӕ BCD nên có hai cách nhұp dӳ liӋu vào máy tính: nhұp sӕ nhӏ phân,
nhұp bҵng mã BCD.
ĈӇ nhұp sӕ BCD thұp phân hai chӳ sӕ thì máy tính chia sӕ thұp phân thành các ÿӅcác và mӛi
ÿӅcác ÿѭӧc biӇu diӉn bҵng sӕ BCD tѭѫng ӭng. Chҷng hҥn: 11(10) có thӇÿѭӧc nhұp vào máy tính
theo 2 cách:
- Sӕ nhӏ phân : 1011
- Mã BCD : 0001 0001
4. Các phép tính trên sӕ BCD
a. Phép c͡ng
Do sӕ BCD chӍ có tӯ 0 ÿӃn 9 nên ÿӕi vӟi nhӳng sӕ thұp phân lӟn hѫn sӁ chia sӕ thұp phân thành
nhiӅu ÿӅcác, mӛi ÿӅcác ÿѭӧc biӇu diӉn bҵng sӕ BCD tѭѫng ӭng.
Ví dͭ 1.8 Cӝng 2 sӕ BCD mӝt ÿӅcác:
5 ® 0101 7 ® 0111
3 ® 0011 5 ® 0101
8 1000 12 1100
0110
0001 0010
0ҥch nhұn dҥng
Vӕ BCD 8421
ya3
a2
a1
a1
a2
a3
y
a1
a2
a3
y
6ӕ hiӋu chӍnh
+ + + +
+
Bài giҧng KӺ THUҰT SӔ Trang 10
Có hai trѭӡng hӧp phҧi hiӋu chӍnh kӃt quҧ cӫa phép cӝng 2 sӕ BCD 8421:
- Khi k͇t qu̫ cͯa phép c͡ng là m͡t s͙ không ph̫i là s͙ BCD 8421
- Khi k͇t qu̫ cͯa phép c͡ng là m͡t s͙ BCD 8421 nh˱ng l̩i xṷt hi͏n s͙ nhͣ b̹ng 1.
ViӋc hiӋu chӍnh ÿѭӧc thӵc hiӋn bҵng cách cӝng kӃt quҧ vӟi sӕ hiӋu chӍnh là 6 (01102).
Ӣ ví dͭ 1.8 ÿã xem xét trѭӡng hӧp hiӋu chӍnh khi kӃt quҧ không phҧi là mӝt sӕ BCD 8421.
Trѭӡng hӧp hiӋu chӍnh khi kӃt quҧ là mӝt sӕ BCD 8421 nhѭng phép cӝng lҥi xuҩt hiӋn sӕ nhӟ bҵng
1 ÿѭӧc xem xét trong ví dө sau ÿây:
Ví dͭ 1.9 HiӋu chӍnh kӃt quҧ cӝng 2 sӕ BCD mӝt ÿӅcác khi xuҩt hiӋn sӕ nhӟ bҵng 1:
8 ® 1000
9 ® 1001
17 1 0001
0110
0001 0111
b. Phép trͳ
Phép toán trӯ 2 sӕ BCD ÿѭӧc thӵc hiӋn theo quy tҳc sau ÿây:
A - B = A + B
Trong ÿó B là sӕ bù 2 cӫa B.
Ví dͭ 1.10 Thӵc hiӋn trӯ 2 sӕ BCD mӝt ÿӅcác:
7 ® 0111 0111
5 ® 0101 1010
2 0010 1 0001
1
0010
/ѭu ý:
- Bù 1 cͯa m͡t s͙ nh͓ phân là ḽy ÿ̫o ṱt c̫ các bít cͯa s͙ÿó (bit 0 thành 1, bit 1 thành 0).
- Bù 2 cͯa m͡t s͙ nh͓ phân b̹ng s͙ bù 1 c͡ng thêm 1 vào bít LSB.
Xét các tr˱ͥng hͫp mͧ r͡ng sau ÿây:
1. Thc hi͏n trͳ 2 s͙ BCD 1 ÿ͉các mà s͙ b͓ trͳ nh͗ h˯n s͙ trͳ ?
2. Mͧ r͡ng cho c͡ng và trͳ 2 s͙ BCD nhi͉u ÿ͉các ?
6ӕ hiӋu chӍnh (6)
+ + .Ӄt quҧ là sӕ BCD 8421 nhѭng
Oҥi xuҩt hiӋn sӕ nhӟ bҵng 1
.Ӄt quҧ sau khi hiӋu chӍnh là 17
Bù 1 cӫa 5
- - +
+ &ӝng 1 LSB ÿӇ có bù 2 cӫa 5%ӓÿi sӕ nhӟ
.Ӄt quҧ cuӕi cùng