Nhằm giới thiệu một cách hệ thống các khái niệm cơ bản về điện tử số, các cổng logic, các phần tử cơ bản, các mạch số chức năng điển hình, các phương pháp phân tích và thiết kế mạch logi
Trang 1(TẬP 1)
Nhμ xuÊt b¶n th«ng tin vμ truyÒn th«ng
Hμ Néi, 11-2009
Trang 2Cùng với sự tiến bộ của khoa học và công nghệ, các thiết bị điện
tử đã, đang và sẽ tiếp tục được ứng dụng ngày càng rộng rãi và mang lại hiệu quả cao trong hầu hết các lĩnh vực kinh tế kỹ thuật cũng như đời sống xã hội
Việc xử lý tín hiệu trong các thiết bị điện tử hiện đại đều dựa trên cơ sở nguyên lý số Bởi vậy việc nắm vững kiến thức về điện tử
số là yêu cầu bắt buộc đối với kỹ sư điện, điện tử, viễn thông và CNTT hiện nay Kiến thức về Điện tử số không phải chỉ cần thiết đối với kỹ sư các ngành kể trên mà còn cần thiết đối với nhiều cán bộ kỹ thuật các chuyên ngành khác có ứng dụng điện tử
Nhằm giới thiệu một cách hệ thống các khái niệm cơ bản về điện
tử số, các cổng logic, các phần tử cơ bản, các mạch số chức năng điển hình, các phương pháp phân tích và thiết kế mạch logic Học viện Công nghệ Bưu chính Viễn thông phối hợp với Nhà xuất bản Thông tin
và Truyền thông xuất bản cuốn sách “Giáo trình Điện tử số” (02 tập)
Giáo trình bao gồm các kiến thức cơ bản về cơ sở đại số logic, mạch cổng logic, mạch logic tổ hợp, các trigơ, mạch logic tuần tự, các mạch phát xung và tạo dạng xung, các bộ nhớ thông dụng Giáo trình còn bao gồm các kiến thức cơ bản về cấu kiện logic khả trình và ngôn ngữ mô tả phần cứng VHDL Đây là ngôn ngữ phổ biến hiện nay dùng
để mô tả cho mô phỏng cũng như thiết kế các hệ thống số Nội dung giáo trình gồm 02 tập có 9 chương: 7 chương đầu do ThS Trần Thị Thúy Hà biên soạn, 2 chương cuối do ThS Đỗ Mạnh Hà biên soạn Trước và sau mỗi chương đều có phần giới thiệu và phần tóm tắt để giúp người học dễ nắm bắt kiến thức Các câu hỏi ôn tập để người học kiểm tra mức độ nắm kiến thức sau khi học mỗi chương
Trang 3Tập 1 gồm:
Chương 1: Hệ đếm
Chương 2: Đại số Boole
Chương 3: Cổng logic TTL và CMOS
Chương 8: Cấu kiện logic khả trình (PLD)
Chương 9 : Ngôn ngữ mô tả phần cứng VHDL
Trên cơ sở các kiến thức căn bản, giáo trình đã cố gắng tiếp cận các vấn đề hiện đại, đồng thời liên hệ với thực tế kỹ thuật Tuy nhiên
do thời gian biên soạn có hạn nên cuốn giáo trình có thể còn những thiếu sót, rất mong được bạn đọc góp ý Các ý kiến xin gửi về Bộ môn
Kỹ thuật Điện tử - Khoa Kỹ thuật Điện tử 1 - Học viện Công nghệ Bưu chính Viễn thông
Xin trân trọng giới thiệu!
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trang 4ALU Arthmetic Logic Unit Đơn vị tính logic và số học
ANSI American National Standards
Institude
Viện tiêu chuẩn Quốc gia Hoa Kỳ
ASIC Application Specific Integrated
Circuit Mạch tích hợp ứng dụng đặc biệt BCD Binary Coded Decimal Số thập phân mã hóa theo nhị phân Bit Binary Digit Số nhị phân
C, CLK Clock Xung đồng hồ (Xung nhịp)
CAS Column Address Select Chọn địa chỉ cột
CMOS Complementary Metal Oxide
Semiconductor Vật liệu bán dẫn gồm hai linh kiện NMOS và PMOS mắc tổ hợp với
nhau CPU Central Processing Unit Đơn vị xử lý trung tâm
CPLD Complex Programmable Logic
Device Cấu kiện logic khả trình phức tạp Crumb 2 bit
DDL Diode-Diode Logic Cổng logic chứa các điốt
DLL Delay Locked Loop Vòng khoá pha trễ
DEMUX DeMultiplexer Bộ phân kênh
DRAM Dynamic RAM RAM động
Trang 5DTL Diode Transistor Logic Cổng logic chứa các điốt và tranzito
ECL Emitter Couple Logic Cổng logic ghép cực Emitơ
EEPROM Electrically Erasable ROM ROM lập trình được và xóa được
bằng điện EPROM Erasable ROM ROM lập trình được và xóa được
bằng tia cực tím FET Field Effect Transistor Tranzito hiệu ứng trường
FPGA Field Programmable Gate Array Ma trận cổng lập trình được theo
trường
I2L Integrated Injection Logic Mạch logic tích hợp phun
IC Integrated Circuit Mạch tích hợp
IEEE Institude of Electrical and
Electronics Engineers
Viện kỹ thuật Điện và điện tử
ISP In System Programming Lập trình trên hệ thống
LCD Liquid Crystal Display Hiển thị tinh thể lỏng
LED Light Emitting Diode Điốt phát quang
LSB Least Significant Bit Bit có ý nghĩa bé nhất
LUT Look Up Table Bảng ánh xạ
MOSFET Metal Oxide Semiconductor FET FET có cực cửa cách ly bằng lớp
ôxít kim loại MROM Mask ROM ROM được chế tạo bằng phương
pháp che mặt nạ MSB Most Significant Bit Bit có ý nghĩa lớn nhất
Trang 6MSI Medium Scale Integrated Mức độ tích hợp trung bình
MUX Multiplexer Bộ ghép kênh
NMOS N – chanel MOS Tranzito trường kênh dẫn N
PAL Programmable Array Logic Logic mảng khả trình
PLA Programmable Logic Array Mảng logic khả trình
PLD Programmable Logic Device Cấu kiện logic khả trình
Playte 16 bit
PLS Programmable Logic Sequence Logic tuần tự khả trình
PMOS P – chanel MOS Tranzito trường kênh dẫn P
PROM Programmable ROM ROM khả trình
RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên
RAS Row Address Select Chọn địa chỉ hàng
RBI Riple Blanking Input Đầu vào xóa nối tiếp
RBO Riple Blanking Output Đầu ra xóa nối tiếp
ROM Read Only Memory Bộ nhớ chỉ đọc
RTL Resistance Transistor Logic Cổng logic dùng điện trở và tranzito RTL* Register Transfer Level
(*Chương 9)
Mức luồng dữ liệu
SPLD Simple Programmable Logic
Device Cấu kiện logic khả trình đơn giản SRAM Static RAM RAM tĩnh
SSI Small Scale Integrated Mức độ tích hợp trung bình
TTL Transistor – Transistor Logic Cổng logic dùng Tranzito
VLSI Very Large Scale Integrated Mức độ tích hợp rất lớn
Trang 7i
Lời nói đầu 13
Thuật ngữ viết tắt 15
Chương 1: HỆ ĐẾM 19
1.1 Biểu diễn số 19
1.1.1 Hệ thập phân 20
1.1.2 Hệ nhị phân 21
1.1.3 Hệ 8 (bát phân) và hệ 16 (thập lục phân) 23
1.2 Chuyển đổi cơ số giữa các hệ đếm 26
1.2.1 Chuyển đổi từ hệ cơ số 10 sang các hệ khác 26
1.2.2 Đổi một biểu diễn trong hệ bất kì sang hệ thập phân 29
1.2.3 Đổi các số từ hệ nhị phân sang hệ cơ số 8 và 16 29
1.3 Số nhị phân có dấu 30
1.3.1 Biểu diễn số nhị phân có dấu 30
1.3.2 Các phép cộng và trừ số nhị phân có dấu 31
1.4 Dấu phảy động 33
1.4.1 Biểu diễn theo dấu phảy động 33
1.4.2 Các phép tính với biểu diễn dấu phảy động 36
1.5 Các hệ thống mã nhị phân thông dụng 36
1.5.1 Các dạng mã nhị thập phân (BCD) 36
1.5.2 Các phép tính trong số N-BCD 38
1.5.3 Các dạng mã nhị phân khác 41
Tóm tắt 43
Câu hỏi ôn tập 44
Trang 8ii
2.1.1 Các định lý cơ bản 48
2.1.2 Các định luật cơ bản 48
2.1.3 Ba quy tắc về đẳng thức 49
2.2 Các phương pháp biểu diễn hàm Boole 49
2.2.1 Bảng trạng thái 50
2.2.2 Phương pháp đại số 50
2.2.3 Phương pháp bảng Các nô (phương pháp hình học.) 54
2.3 Các phương pháp tối thiểu hóa (rút gọn hàm) 56
2.3.1 Phương pháp đại số 58
2.3.2 Phương pháp bảng Các nô 58
2.3.3 Rút gọn hàm logic ràng buộc 61
2.3.4 Phương pháp Quine Mc Cluskey 67
Tóm tắt 69
Câu hỏi ôn tập 70
Chương 3: CỔNG LOGIC TTL VÀ CMOS 75
3.1 Cổng logic và các tham số chính 76
3.1.1 Cổng logic cơ bản 76
3.1.2 Logic dương và logic âm 80
3.1.3 Một số cổng ghép thông dụng 80
3.1.4 Tính đa chức năng của cổng NAND, NOR 85
3.1.5 Các tham số chính 89
3.2 Các họ cổng logic 95
3.2.1 Họ DDL 95
3.2.2 Họ RTL 97
Trang 9iii
3.2.5 Một số mạch TTL khác 107
3.2.6 Một số mạch Tranzito khác 113
3.2.7 Sơ đồ chân IC của một số cổng logic họ TTL 115
3.2.8 Họ CMOS 117
3.2.9 Một số cổng có đầu ra đặc biệt 124
3.3 Giao tiếp giữa các cổng logic cơ bản TTL-CMOS và CMOS-TTL 126
3.3.1 Một số đặc điểm của họ TTL và CMOS khi sử dụng và ghép nối .126
3.3.2 Giao tiếp giữa TTL và CMOS 128
3.3.3 Giao tiếp giữa CMOS và TTL 130
Tóm tắt 133
Câu hỏi ôn tập 134
Chương 4: MẠCH LOGIC TỔ HỢP 141
4.1 Khái niệm chung 142
4.1.1 Đặc điểm cơ bản của mạch tổ hợp 142
4.1.2 Phương pháp biểu diễn chức năng logic 142
4.2 Phân tích mạch logic tổ hợp 143
4.3 Thiết kế mạch logic tổ hợp 143
4.4 Mạch mã hóa và giải mã 147
4.4.1 Các mạch mã hoá 147
4.4.2 Các bộ giải mã 151
4.4.3 Các bộ biến đổi mã 162
4.5 Bộ ghép kênh và phân kênh 166
4.5.1 Bộ ghép kênh (MUX-Multiplexer) 166
Trang 10iv
4 5.3 Một số ứng dụng của bộ ghép kênh và phân kênh 174
4.6 Bộ số học 176
4.6.1 Bộ cộng .176
4.6.2 Bộ trừ song song 2 số nhị phân n bit 182
4.6.3 Bộ cộng, trừ theo bù 1 và bù 2 .186
4.6.4 Bộ cộng số BCD 187
4.6.5 Bộ cộng/trừ số BCD theo bù .189
4.6.6 Bộ nhân số nhị phân .190
4.7 Mạch so sánh .193
4.7.1 Bộ so sánh bằng nhau 193
4.7.2 Bộ so sánh .194
4.8 Mạch tạo và kiểm tra chẵn,lẻ 196
4.8.1 Mã chẵn, lẻ .197
4.8.2 Mạch tạo bit chẵn/lẻ .197
4.8.3 Mạch kiểm tra chẵn/lẻ .198
4.9 Mạch tạo mã và giải mã Hamming 201
4.9.1 Tạo mã 202
4.9.2 Giải mã 204
4.10 Đơn vị số học và logic (ALU) .206
4.11 HAZARD trong mạch tổ hợp 210
4.11.1 Khái niệm .210
4.11.2 Bản chất của Hazard 211
4.11.3 Phân loại 214
4.11.4 Các biện pháp khắc phục Hazard .219
Tóm tắt 223
Câu hỏi ôn tập 225
Trang 11v
5.1.1 Khái niệm chung 228
5.1.2 Mô hình toán học 228
5.2 Phần tử nhớ của mạch tuần tự 229
5.2.1 Các loại trigơ 229
5.2.2 Đầu vào không đồng bộ của trigơ .243
5.2.3 Chuyển đổi giữa các loại trigơ .244
5.3 Giới thiệu một số IC Trigơ thông dụng 254
5.3.1 Trigơ JK 254
5.3.2 Trigơ D .254
5.3.3 Trigơ JK .254
5.4 Phương pháp mô tả mạch tuần tự 255
5.4.1 Bảng 255
5.4.2 Đồ hình trạng thái 257
5.5 Phân tích mạch tuần tự 260
5.5.1 Các bước phân tích mạch tuần tự 260
5.5.2 Phân tích mạch tuần tự đồng bộ 261
5.5.3 Phân tích mạch tuần tự không đồng bộ .264
5.6 Thiết kế mạch tuần tự 267
5.6.1 Các bước thiết kế mạch tuần tự đồng bộ 267
5.6.2 Các bước thiết kế mạch tuần tự không đồng bộ 268
5.6.3 Thiết kế mạch tuần tự từ đồ hình trạng thái .272
5.6.4 Ví dụ 274
5.6.5 Thiết kế mạch tuần tự từ bảng 281
5.7 Một số ví dụ khác .283
5.7.1 Mạch tuần tự đồng bộ 283
5.7.2 Mạch tuần tự không đồng bộ 289
Trang 12vi
5.8.2 Hiện tượng chạy đua trong mạch tuần tự không đồng bộ 296
5.8.3 Tối thiểu hoá và mã hoá trạng thái trong mạch tuần tự không đồng bộ 298
5.9 Một số mạch tuần tự thông dụng 300
5.9.1 Bộ đếm .300
5.9.2 Thiết kế bộ đếm 325
5.9.3 Giới thiệu một số IC đếm 332
5.9.4 Bộ ghi dịch (Shift Register) 346
5.9.5 Thanh chốt dữ liệu (Latch) 360
Tóm tắt 362
Câu hỏi ôn tập 364
Tài liệu tham khảo 371
Trang 13H ðM
GIỚI THIỆU
Khi nói ñến số ñếm, người ta thường nghĩ ngay ñến hệ thập phân với 10 chữ số ñược ký hiệu từ 0 ñến 9 Hệ thập phân là một trong nhiều hệ ñếm Thông thường người ta quen lấy số 10 làm gốc nhưng trên thực tế một số nguyên dương bất kỳ nào cũng có thể lấy làm gốc cho hệ ñếm
Máy tính hiện ñại thường không sử dụng số thập phân, mà hay
sử dụng số nhị phân với hai ký hiệu là 0 và 1 Khi biểu diễn các số nhị phân rất lớn, người ta thay nó bằng các số bát phân (Octal) và thập lục phân (HexaDecimal)
Trong chương này không chỉ trình bày các hệ thập phân, hệ nhị phân, hệ bát phân, hệ thập lục phân mà còn nghiên cứu cách chuyển
ñổi giữa các hệ ñếm Chương này cũng ñề cập ñến số nhị phân có dấu
và khái niệm về dấu phảy ñộng
1.1 BIỂU DIỄN SỐ
Tính chất quan trọng nhất của một hệ thống số là sử dụng một dãy các ký tự ñể thể hiện một con số trong hệ Giá trị của một số ñược thể hiện thông qua giá trị và vị trí của mỗi ký tự, vị trí này có trọng số tăng dần tính từ phải qua trái Số ký tự ñược dùng ñược gọi là cơ số của hệ và
ký hiệu là r Trọng số của một hệ ñếm bất kỳ sẽ bằng r i , với i là một số
nguyên dương hoặc âm
Trong kỹ thuật số có bốn hệ thống số quan trọng ñược sử dụng:
hệ thập phân, hệ nhị phân, hệ bát phân (hệ tám) và hệ thập lục phân (hệ mười sáu)
Trang 14Trong toán học, người ta gọi hệ ñếm theo cơ số của chúng Ví dụ: Hệ nhị phân = Hệ cơ số 2, Hệ thập phân = Hệ cơ số 10
Dưới ñây, trình bày một số hệ ñếm thông dụng
1.1.1 Hệ thập phân
Hệ thập phân có 10 ký hiệu từ 0 ñến 9 nên còn gọi là hệ cơ số
10 Khi ghép các ký hiệu với nhau ta sẽ ñược một biểu diễn số
Ví dụ: 1265,34 là biểu diễn số trong hệ thập phân:
1265,34 = 1 x 103 + 2 x 102 + 6 x 101 + 5 x 100 + 3 x 10-1 + 4 x 10-2Trong ñó: 10n là trọng số của hệ; các hệ số nhân (1, 2, 6…) chính
Nếu dùng r thay cho cơ số 10 thì biểu thức (1.1) có dạng tổng
quát cho mọi hệ ñếm
Biểu diễn số tổng quát:
n 1 i
Ưu ñiểm: Hệ thập phân là hệ phổ biến trên toàn thế giới ðây là
hệ mà con người dễ nhận biết nhất Ngoài ra, nhờ có nhiều ký hiệu nên khả năng biểu diễn của hệ rất lớn, cách biểu diễn gọn, tốn ít thời gian viết và ñọc
Nhược ñiểm: Hệ thập phân có nhiều ký hiệu nên việc thể hiện
bằng thiết bị kỹ thuật sẽ khó khăn và phức tạp
Trang 151.1.2 Hệ nhị phân
1.1.2.1 Tổ chức hệ nhị phân
Hệ nhị phân (Binary number systems) còn gọi là hệ cơ số hai, chỉ
gồm hai ký hiệu 0 và 1, cơ số của hệ là 2, trọng số của hệ là 2n Hệ
ñếm này ñược sử dụng rộng rãi trong mạch số
Trong hệ nhị phân, mỗi chữ số chỉ lấy 2 giá trị hoặc 0 hoặc 1 và
ñược gọi tắt là "bit" (Binary digit) Như vậy, bit là số nhị phân 1 chữ
số Số bit tạo thành ñộ dài biểu diễn của một số nhị phân
- Crumb, Tydbit hoặc Tayste: 2 bit
- Nibble hoặc Nybble: 4 bit
- Word: (phụ thuộc vào từng hệ thống)
Các giá trị 210 = 1024 ñược gọi là 1kbit, 220 = 1048576 Mêga bit Bit tận cùng bên phải gọi là bit có trọng số bé nhất (LSB – Least Significant Bit) và bit tận cùng bên trái gọi là bit có trọng số lớn nhất (MSB - Most Significant Bit)
Biểu diễn nhị phân dạng tổng quát:
n 1 i
Trang 161 1 0 12+ 1 0 1 12
4,37510) 3,75010)
1 0 0, 0 1 12+ 1 1, 1 1 02
(5, 510) (210)
1 0 1,12
x 1 02
1 0 0 1 + 1 0 0 1
0 0 0 0 + 1 0 1 1
1 1 0 1 1 (27 ) (11 ) 1 0 1 1, 0
Trang 17Ưu ñiểm: Hệ nhị phân chỉ có hai ký hiệu nên rất dễ thể hiện
bằng các thiết bị cơ, ñiện Các máy vi tính và các hệ thống số ñều dựa trên cơ sở hoạt ñộng nhị phân (2 trạng thái) Do ñó, hệ nhị phân ñược xem là ngôn ngữ của các mạch logic, các thiết bị tính toán hiện ñại - ngôn ngữ máy
Nhược ñiểm: Hệ nhị phân biểu diễn dài, do ñó thời gian viết,
ñọc dài
1.1.3 Hệ 8 (bát phân) và hệ 16 (thập lục phân)
1.1.3.1 Hệ 8 (Octal number systems)
a Tổ chức của hệ
Hệ 8 gồm 8 ký hiệu: 0, 1, 2, 3, 4, 5, 6 và 7 nên cơ số của hệ là 8
Hệ cơ số 8 có thể ñược biểu diễn thành 23 Do ñó, mỗi ký hiệu trong
hệ 8 có thể thay thế bằng 3 bit trong hệ nhị phân
Dạng biểu diễn tổng quát của hệ bát phân như sau:
n 1 i
Trang 18b Các phép tính trong hệ 8
Phép cộng
Phép cộng trong hệ bát phân ñược thực hiện tương tự như trong
hệ thập phân Khi kết quả của việc cộng hai hoặc nhiều chữ số cùng trọng số lớn hơn hoặc bằng 8 phải nhớ lên chữ số có trọng số lớn hơn
kế tiếp
Ví dụ:
a) 1278+ 3758
b) 6328
+ 5538
5248 14058
Trong ví dụ a) ta tiến hành cộng như sau: 7 + 5 = 1210; trong
hệ 8 không có số 12 nên ta phải chia 12 cho 8, số dư viết xuống tổng tương ứng với trọng số ñó, thương số nhớ lên trọng số kế tiếp; tức là 12 : 8 = 1 dư 4, số 4 ñược viết xuống tổng; tại trọng số kế tiếp
2 + 7 + 1(nhớ) = 10; sau ñó ta lấy 10: 8 = 1 dư 2, viết 2 xuống tổng và
số 1 ñược nhớ lên trọng số kế tiếp; cuối cùng ta lấy 1 + 3 + 1 (nhớ) = 5
Phép trừ
Phép trừ cũng ñược tiến hành như trong hệ thập phân Khi mượn
1 ở số có trọng số lớn hơn kế tiếp thì chỉ cần cộng thêm 810
Trong ví dụ a) ta tiến hành trừ như sau: 3 + 8 (mượn ở trọng số
kế tiếp) - 5 = 6; tại trọng số kế tiếp 2 - 7 - 1 + 8 (mượn) = 2; cuối cùng
Trang 19Trong ñó:
A = 1010 , B = 1110 , C = 1210 , D = 1310 , E = 1410 , F = 1510
Cơ số của hệ là 16, số 16 có thể ñược biểu diễn bằng 24 Do vậy,
ta có thể dùng một từ nhị phân 4 bit (từ 0000 ñến 1111) ñể biểu thị các
ký hiệu thập lục phân Dạng biểu diễn tổng quát:
Khi tổng hai chữ số lớn hơn 15, ta lấy tổng chia cho 16 Số dư
ñược viết xuống chữ số tổng và thương số ñược nhớ lên chữ số có trọng
số lớn hơn kế tiếp Nếu các chữ số là A, B, C, D, E, F thì trước hết, ta phải ñổi chúng về giá trị thập phân tương ứng rồi mới tiến hành cộng
Ví dụ:
a) 6 9 516+ 8 7 516
Khi trừ một số bé hơn cho một số lớn hơn ta cũng mượn 1 ở cột
kế tiếp bên trái, nghĩa là cộng thêm 16 rồi mới trừ
Trang 20Trong ví dụ a) ta tiến hành trừ như sau: 5 + 16 (mượn ở trọng số
kế tiếp) – 12 (C16) = 9; tại trọng số kế tiếp 9 - 7 - 1 = 1; cuối cùng ta
lấy 14 (E16) - 8 = 6
Phép nhân
Muốn thực hiện phép nhân trong hệ 16 ta phải ñổi các số trong mỗi thừa số về thập phân, nhân hai số với nhau Sau ñó, ñổi kết quả về
hệ 16 Bảng 1.1 biểu diễn 16 số ñầu tiên trong các hệ số ñếm
Bảng 1.1: Biểu diễn số của 4 hệ ñếm thường dùng
1.2 CHUYỂN ðỔI CƠ SỐ GIỮA CÁC HỆ ðẾM
1.2.1 Chuyển ñổi từ hệ cơ số 10 sang các hệ khác
ðể thực hiện việc ñổi một số thập phân ñầy ñủ sang các hệ khác
ta phải chia ra hai phần: phần nguyên và phân số
ðối với phần nguyên:
Ví dụ, ñổi từ hệ thập phân sang hệ nhị phân:
Trong ñẳng thức sau, vế trái là số thập phân, vế phải là số nhị phân:
Trang 21Tương tự như vậy ñể tìm toàn bộ các bit của số nhị phân
ðối với việc ñổi từ hệ thập phân sang hệ 8 và 16 cũng thực hiện
tương tự như vậy
Tóm lại: Ta chia liên tiếp phần nguyên của số thập phân cho cơ số
của hệ cần chuyển ñến, số dư sau mỗi lần chia viết ñảo ngược trật tự là kết quả cần tìm Phép chia dừng lại khi kết quả lần chia cuối cùng bằng 0
Ví dụ 1: ðổi số 3510 sang số nhị phân
Trang 22Ví dụ 3: ðổi số 3510 sang hệ 16
35 16 = 2 Dư 3 a0
2 16 = 0 Dư 2 a1
Ta có: 3510 = 2316
ðối với phần phân số:
Ví dụ, ñổi từ hệ thập phân sang hệ nhị phân:
Trong ñẳng thức sau, vế trái là số thập phân, vế phải là số nhị phân:
N =a 2− − +a 2− − + + a− 2− (1.8) Nhân 2 vế với 2, ta có:
vế phải (của tích số lần thứ 2):
2[2N −a ] a− = − +(a 2− − +a 2− − + + a− 2− + ) (1.11) Tương tự như vậy, ta tìm ñược toàn bộ các bit của số nhị phân
ðối với việc ñổi từ phần phân số của hệ thập phân sang hệ 8 và
16 cũng thực hiện tương tự như vậy
Tóm lại: Khi chuyển phần phân số ta thực hiện như sau: nhân
liên tiếp phần phân số của số thập phân với cơ số của hệ cần chuyển
ñến, phần nguyên thu ñược sau mỗi lần nhân, viết tuần tự là kết quả
cần tìm Phép nhân dừng lại khi phần phân số triệt tiêu hoặc cho ñến khi ñạt ñược số bit nằm sau dấu phảy theo yêu cầu (trong trường hợp phép nhân không hội tụ về 0)
Ví dụ 1: ðổi số 35,37510 sang số nhị phân
Phần nguyên ta vừa thực hiện ở ví dụ a), do ñó chỉ cần ñổi phần phân số 0,375
Trang 230,375 x 2 = 0,75 Phần nguyªn = 0 a-1 0,75 x 2 = 1,5 Phần nguyªn = 1 a-20,5 x 2 = 1,0 Phần nguyªn = 1 a-30,0 x 2 = 0 Phần nguyªn = 0 a-4
Kết quả : 0,37510 = 0,38
Ví dụ 3: ðổi số 0,37510 sang hệ 16
0,375 x 16 = 6,0 Phần nguyªn = 6 a-1 0,0 x 16 = 0 Phần nguyªn = 0 a-2
Kết quả : 0,37510 = 0,616
1.2.2 ðổi một biểu diễn trong hệ bất kì sang hệ thập phân
Muốn thực hiện phép biến ñổi, ta dùng công thức:
1.2.3 ðổi các số từ hệ nhị phân sang hệ cơ số 8 và 16
Vì 8 = 23và 16 = 24 nên ta chỉ cần dùng một số nhị phân 3 bit là
ñủ ghi 8 ký hiệu của hệ cơ số 8 và từ nhị phân 4 bit cho hệ cơ số 16
Do ñó, muốn ñổi một số nhị phân sang hệ cơ số 8 và 16 ta chia
số nhị phân cần ñổi, kể từ dấu phân số sang trái và phải thành từng nhóm 3 bit hoặc 4 bit Sau ñó thay các nhóm bit ñã phân bằng ký hiệu tương ứng của hệ cần ñổi tới
Trang 24Ví dụ:
a ðổi số 110111,0111 2 sang số hệ cơ số 8
Tính từ dấu phân số, ta chia số này thành các nhóm 3 bit như sau:
b ðổi số nhị phân 111110110,01101 2 sang số hệ cơ số 16
Ta phân nhóm và thay thế như sau:
1.3.1 Biểu diễn số nhị phân có dấu
Có ba phương pháp thể hiện số nhị phân có dấu
Bảng 1.2: Bảng biểu diễn các số nhị phân có dấu
Trang 25Bù 2 ñược thực hiện bằng cách lấy bù 1 cộng 1
Có thể biểu diễn số âm theo phương pháp bù 2 xen kẽ: bắt ñầu từ bit LSB, dịch về bên trái, giữ nguyên các bit cho ñến gặp bit 1 ñầu tiên
và lấy bù các bit còn lại Bit dấu giữ nguyên
Ví dụ: + 910 = 0000 10012; - 910 = 1111 01112 (bù 2)
1.3.2 Các phép cộng và trừ số nhị phân có dấu
Như ñã nói ở trên, phép bù 1 và bù 2 thường ñược áp dụng ñể thực hiện các phép tính nhị phân với số có dấu
Trang 261.3.2.1 Cộng và trừ các số theo biểu diễn bù 1
a Phép cộng
Hai số dương: cộng như cộng nhị phân thông thường, kể cả bit dấu
0 0 0 0 0 1 0 12+ 0 0 0 0 0 1 1 12
(510) (710)
0 0 0 0 1 1 0 02 (1210)
Hai số âm: biểu diễn chúng ở dạng bù 1 và cộng như cộng nhị phân, kể cả bit dấu Bit tràn cộng vào kết quả Chú ý, kết quả ñược viết dưới dạng bù 1
1 1 1 1 1 0 1 02+ 1 1 1 1 1 0 0 02
(-510) (-710)
1 1 1 1 1 0 0 1 02
↓ Bit trµn → + 1
1 1 1 1 0 0 1 1 (-1210)
Hai số khác dấu và số âm lớn hơn: cộng số dương với bù 1 của
số âm Kết quả không có bit tràn và ở dạng bù 1
1 1 1 1 0 1 0 12+ 0 0 0 0 0 1 0 12
(-1010) (+510)
1 1 1 1 1 0 1 0 (-510)
Hai số khác dấu và số dương lớn hơn: cộng số dương với bù 1 của số âm Bit tràn ñược cộng vào kết quả
0 0 0 0 1 0 1 02+ 1 1 1 1 1 0 1 02
(+1010) (-510)
Trang 271.3.2.2 Cộng và trừ nhị phân theo biểu diễn bù 2
a Phép cộng
Hai số dương: cộng như cộng nhị phân thông thường Kết quả là dương
0 0 0 0 1 0 1 12+ 0 0 0 0 0 1 1 12
(1110) (710)
0 0 0 1 0 0 1 02 (1810)
Hai số âm: lấy bù 2 cả hai số hạng và cộng, kết quả ở dạng bù 2
1 1 1 1 0 1 0 12+ 1 1 1 1 1 0 0 12
(-1110) (-710)
(+1110) (-710)
(-1110) (+710)
1 1 1 1 1 1 0 02 (-310)
b Phép trừ
Phép trừ hai số có dấu là các trường hợp riêng của phép cộng Ví
dụ, khi lấy +9 trừ ñi +6 là tương ứng với +9 cộng với -6
1.4 DẤU PHẢY ðỘNG
1.4.1 Biểu diễn theo dấu phảy ñộng
Ngoài các số nguyên còn có các số có phần phân số, ñể phần cách giữa phân nguyên và phần phân số Người Việt dùng dấu phảy
Trang 28nhưng theo ngôn ngữ máy thì dấu này là dấu chấm Có hai loại dấu chấm là dấu chấm tĩnh và dấu chấm ñộng
Dấu chấm tĩnh:
Xét ví dụ 1:
2 1 0 5 2 0 310+ 1 0 4 2 0 0 810
3 1 4 7 2 1 110
ðể thực hiện phép tính trên, máy tính sẽ thực hiện tính từ số tận
cùng bên phải, sau ñó thêm dấu chấm thập phân vào lưu trữ ở một ô nhớ xác ñịnh thích hợp Cách thức tính như vậy gọi là cách tính với dấu chấm tĩnh
Xét ví dụ 2: (5.62510 + 4.510)
Máy tính sẽ nhập dữ liệu và chuyển chúng sang số nhị phân, và coi mỗi số là một byte: (0101.10102 + 0100.10002) và thực hiện theo quy tắc cộng thông thường
0 1 0 1 1 0 1 02 + 0 1 0 0 1 0 0 02
Ví dụ biểu diễn số: 1900000 =1.9 x 106 = 1.9E6
0.0000019 = 0.19 x 10-5 = 0.19E-5
Trang 29Tổng quát, dấu chấm ñộng ñược biểu diễn theo dạng m x r e ; trong
ñịnh trị F nằm trong dải 1 ≤ F < 2 (ứng với phần nguyên bằng 1) Một
số X ñược ñịnh nghĩa là:
Trong ñó:
S là bit dấu (S = 0: phần ñịnh trị dương; S = 1: phần ñịnh trị âm)
E là số mũ ñược dịch chuyển ñi B vị trí
F là phần ñịnh trị
Thông thường B ñược chọn bằng 2m-1, trong ñó m là ñộ dài bit của
trường số mũ ðiều ñó cho phép lưu trữ các số mũ trong dạng ñược chuyển dịch chỉ gồm toàn các số nhị phân không âm vì số mũ âm nhất ñã
+ Số có ñộ chính xác kép dài 64 bit (Double)
+ Số có ñộ chính xác mở rộng dài 128 bit (Quadruple)
Bảng 1.3 biểu diễn các ñịnh dạng của các loại số dấu chấm ñộng theo tiêu chuẩn IEEE
Trang 30Bảng 1.3: ðịnh dạng của dấu chấm ñộng
Loạ i Single Double Quadruple
Bề rộng của trường (bit)
S 1 1 1
E 8 11 15
F 23 52 111 Tổng cộng 32 64 128
Số mũ
E cực ñại 255 2047 32767
E cực tiểu 0 0 0
ðộ dịch 127 1023 16383
1.4.2 Các phép tính với biểu diễn dấu phảy ñộng
Giống như các phép tính của hàm mũ Giả sử có hai số theo dấu phảy ñộng ñã chuẩn hóa: E x( )
ñó số mũ của tổng và hiệu sẽ lấy số mũ chung, còn ñịnh trị của tổng
và hiệu sẽ bằng tổng và hiệu các ñịnh trị thành phần
Ví dụ:
26 (,101)2 + 210 (,101101)2 = 210 (,0000101)2 + 210 (,101101)2 = = 210 (,1011111)2
Trang 31phân ñó thành số nhị phân và khi hiển thị phải chuyển số nhị phân thành thập phân Số BCD thực hiện nhiệm vụ chuyển 10 ký hiệu thập phân thành cụm số nhị phân 4 bit (1 ñề các) Từ số 10 trở lên thì mỗi
ký hiệu số ñược biểu thị ít nhất bằng 2 ñề các nhị phân
Ngoài mã NBCD còn có rất nhiều loại mã BCD với các trọng số khác nhau Bảng 1.4 giới thiệu một số loại mã BCD thường gặp với các chỉ số ñi theo mã là các trọng số BCD ở các vị trí tương ứng a) Mã BCD 7421
b) Mã BCD 5121
c) Mã BCD 2421 (mã Aiken) Mã Aiken ñược sắp xếp ñối xứng, tức là sự phủ ñịnh của tất cả các vị trí của một từ mã nhị phân ở một vị trí nào ñó sẽ có một từ mã nằm ñối xứng có phần bù tương ứng
Ví dụ:
710 = 0 1 1 12 = 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20 với BCD 8421 = 1 0 0 02 = 1 x 7 + 0 x 4 + 0 x 2 + 0 x 1 với BCD 7421 = 1 0 1 02 = 1 x 5 + 0 x 1 + 1 x 2 + 0 x 1 với BCD 5121 = 1 1 0 12 = 1 x 2 + 1 x 4 + 0 x 2 + 1 x 1 với BCD 2421
Ưu ñiểm:
- Mã BCD có trọng số không thay ñổi;
- ðược sắp xếp theo quy luật
- Dễ nhớ
Trang 3360 160
↓ Bit trµn (bỏ)
Trang 34Ví dụ 1: Bù 9 của 81 là 81; Bù 9 của - 21 là 102 – 21 – 1 = 78
Ta thực hiện cộng 2 số như sau:
+81 +81 + - 21 + 78
60 159
↓ Bit trµn + 59 = 60
Ví dụ 2: Bù 9 của 21 là 21; Bù 9 của - 81 là 102 – 81 – 1 = 18
Ta thực hiện cộng 2 số như sau:
- 81 18 + 21 + 21
- 60 39 → Bù 9 c ủ a -60
Khi thực hiện cộng/trừ số BCD phải tuân theo quy luật sau:
Phép cộng các số BCD ñược thực hiện bằng cách cộng các ñề các tương ứng và trong một ñề các thì cộng các phần tử nhị phân có cùng trọng số Trong quá trình cộng sẽ xuất hiện lỗi khi tổng nhị phân trong một ñề các lớn hơn 910 Nếu kết quả lớn hơn 9 phải chuyển 1 lên
ñề các kế tiếp và phải hiệu chỉnh ñề các ñó Có nhiều cách hiệu chỉnh
ñề các chứa số thập phân lớn hơn 9, một trong những cách ñó là cộng
với 610 (01102) Nếu xuất hiện bit tràn thì phải cộng bit tràn ñó vào kết quả Nếu không xuất hiện bit tràn thì ñáp số ở dạng bù
Phép trừ số thập phân ñược thực hiện trên cơ sở phép cộng bằng cách cộng với số bù của số trừ
0100 1000
= 4 8
Trang 35Vì vậy, người ta sử dụng mã Dư-3 ñược hình thành từ mã NBCD bằng cách cộng thêm 310 vào mỗi tổ hợp mã Như vậy, mã không bao gồm tổ hợp toàn Zero Mã Dư-3 chủ yếu ñược dùng ñể truyền dẫn tín hiệu mà không dùng cho việc tính toán trực tiếp.
Trang 361.5.3.2 Mã Gray
Mã Gray còn ñược gọi là mã cách 1, là loại mã mà các tổ hợp
mã kế nhau chỉ khác nhau duy nhất 1 bit Loại mã này không có tính trọng số Do ñó, giá trị thập phân ñã ñược mã hóa chỉ ñược giải mã thông qua bảng mã mà không thể tính theo tổng trọng số như ñối với
Bảng 1.5: Cấu tạo của một số mã nhị phân thông dụng
Trang 377 0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0
8 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0
9 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0
TÓM TẮT
Trong chương này chúng ta giới thiệu về một số hệ ñếm thường
ñược sử dụng trong hệ thống số: hệ nhị phân, hệ bát phân, hệ thập lục
phân Và phương pháp chuyển ñổi giữa các hệ ñếm ñó Trong chương 1, chúng ta cần nắm vững tổ chức của các hệ ñếm và các phép tính số học trong các hệ ñếm
Ngoài ra chương 1 còn giới thiệu một số mã nhị phân thông dụng:
mã BCD, mã Gray, mã vòng xoắn,…
Trang 38CÂU HỎI ÔN TẬP
1 Phân biệt các hệ ñếm nhị phân, hệ thập phân, hệ 8 và hệ 16
2 Hãy viết lại 16 trạng thái ñầu tiên của hệ ñếm nhị phân
3 ðổi các số thập phân sau sang các hệ nhị phân, bát phân và thập lục
Trang 397 Thực hiện phép tính hai số hệ 8 sau:
11 Hãy chuyển ñổi các số sau sang biểu diễn tương ñương khác: