Bài giảng Kỹ thuật số - Chương 1: Hệ thống số đếm
KHÁI NIỆM VỀ KỸ THUẬT SỐ
Mức Logic (Logic Level):
- Hệ thống số nhị phân chỉ có 2 số: 0 và 1 (còn gọi là các bit – binary digit).
- Trong các mạch số cũng có 2 mức điện áp đại diện cho 2 giá trị 0 và 1:
1: là mức điện áp cao (HIGH)
0: là mức điện áp thấp (LOW)
- Tập hợp các bit được gọi là các mã (code) và chúng được dùng để biểu diễn cho các giá trị của tín hiệu số.
Mức logic:
hân chỉ có 2 số: 0 và 1 (còn gọi là các bit – binary digit). - Trong các mạch số cũng có 2 mức điện áp đại diện cho 2 giá trị 0 và 1: 1: là mức điện áp cao (HIGH) 0: là mức điện áp thấp (LOW) - Tập hợp các bit được gọi là các mã (code) và chúng được dùng để biểu diễn cho các giá trị của tín hiệu số. Mức logic: Giản đồ xung (Waveform) của tín hiệu số: là dạng sóng được biểu diễn theo thời gian - Các tín hiệu số có dạng sóng có chu kỳ hoặc không có chu kỳ Tần số của dạng sóng có chu kỳ T Chu kỳ bổn phận Giản đồ định thì (Timing Diagram): Trong nhiều hệ thống số, các tín hiệu số còn được đồng bộ hóa theo 1 dạng sóng định thì cơ bản gọi là xung nhịp (clock) Chương 1: HỆ THỐNG SỐ ĐẾM I. Các hệ thống số đếm: 1. Các khái niệm: - Cơ số (r - radix):số lượng ký tự chữ số (digit – ký số) sử dụng để biểu diễn trong hệ thống số đếm. - Trọng số (weight): đại lượng biểu diễn cho vị trí của 1 con số trong chuỗi số. Trọng số = Cơ số Vị trí - Giá trị của 1 số (value): tính bằng tổng theo trọng số Giá trị = S (Ký số x Trọng số) a. Số thập phân (Decimal): Cơ số r = 10 b. Số nhị phân (Binary): Cơ số r = 2 c. Số thập lục phân (Hexa-Decimal): Cơ số r = 16 2. Chuyển đổi cơ số: a. Nhị phân với thập phân: - B à D: giống như cách tính giá trị của 1 số nhị phân - D à B: b. Thâp lục phân với thập phân: - H à D: giống như cách tính giá trị của 1 số thập lục phân - D à H: c. Nhị phân với thập lục phân: II. Số nhị phân (Binary): 1.Các tính chất của số nhị phân - Số nhị phân n bit có 2n giá trị từ 0 đđến 2n - 1. - Số nhị phân có giá trị 2n được biểu diễn 1 0 . 0 (n bit 0) và giá trị 2n-1 là số 1 . 1 (n bit 1). - Bit có trọng số nhỏ nhất là LSB (Least Significant Bit) và bit có trọng số lớn nhất là MSB (Most Significant Bit) - Số nhị phân có giá trị lẻ là số có LSB = 1; ngược lại giá trị chẵn là số có LSB = 0 - Các bội số của bit: 1 B (Byte) = 8 bit 1 KB = 210 B = 1024 B 1 MB = 210 KB = 220 B 1 GB = 210 MB 2. Các phép toán số học trên số nhị phân: a. Phép cộng: 0 + 0 = 0 1 1 1 0 + 1 = 1 Vd: 1 0 1 1 1 1 + 0 = 1 + 1 0 1 1 + 1 = 0 nhớ 1 1 1 1 0 0 b. Phép trừ: 0 - 0 = 0 1 1 1 1 0 - 1 = 1 mượn 1 Vd: 1 0 0 1 0 1 - 0 = 1 - 1 1 1 1 - 1 = 0 1 0 1 1 c. Phép nhân: 0 x 0 = 0 Vd: 1 0 1 1 0 x 1 = 0 x 1 0 0 1 1 x 0 = 0 1 0 1 1 1 x 1 = 1 + 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 d. Phép chia: Là phép toán so sánh và trừ. Vd: 1 0 0 1 0 0 0 1 1 0 1 1 - 1 0 1 1 1 1 0 1 1 1 1 0 - 1 0 1 1 1 1 0 1 - 1 0 1 1 1 0 3. Mã nhị phân – Từ mã: - Mã nhị phân cho số thập phân Số thập phân BCD (8421) BCD (2421) Mã BCD quá 3 Mã 1 trong 10 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 BCD (Binary Coded Decimal) Mã quá 3 (Excess 3 – XS3) BCD không nén (Unpacked-BCD) BCD nén (Packed-BCD) - Mã Gray Số thập phân Binary Gray 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 Đổi Binary sang mã Gray Đổi mã Gray sang Binary 1 1 0 1 1 1 0 1 B: 1 1 0 1 0 G: 1 0 1 1 0 G: 1 0 1 1 1 B: 1 1 0 1 1 - Mã LED 7 đoạn: a a b c d e f g 0 f b 1 2 g 3 e c 4 5 6 d 7 8 9 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 Mã ký tự ASCII (American Standard Code for Information Interchange) b6b5b4 (Cột) (Hàng) 000 001 010 011 100 101 110 111 b3b2b1b0 Hex 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 2 3 4 5 6 7 8 9 A B C D E F NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US SP ! ” # $ % & ’ ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL - Mã 1 trong n (1-out-n): là mã nhị phân có n từ mã trong đó chỉ có 1 bit là tích cực (0 hoặc 1) và n-1 bit còn lại không tích cực (1 hoặc 0) Vd: Mã 1 trong 4 1 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 0 Tích cực cao (mức 1) Tích cực thấp (mức 0) III. Số nhị phân có dấu : 1. Biểu diễn số có dấu: a. Số có dấu theo biên độ (Signed_Magnitude): - Bit M5SB là bit dấu: 0 là số dương và 1 là số âm 0 0 1 1 0 1 = + 13 1 0 1 1 0 1 = - 13 - Số nhị phân n bit có thể biểu diễn cho giá trị trong tầm: - (2n-1 – 1) ÷ + (2n-1 – 1) b. Số bù_1 (1’s Complement): - Số bù_1 của 1 số nhị phân N có chiều dài n bit được định nghĩa Bù_1 (N) = 2n – 1 – N Vd: Bù_1 (1001) = 24 – 1 – 1001 = 10000 – 1 – 1001 = 0110 - Có thể lấy Bù_1 của 1 số nhị phân bằng cách lấy đảo từng bit của nó (0 thành 1 và 1 thành 0) - Số nhị phân n bit có thể biểu diễn cho giá trị trong tầm: - (2n-1 – 1) ÷ + (2n-1 – 1) c. Số bù_2 (2’s Complement): - Số bù_2 của 1 số nhị phân N có chiều dài n bit được định nghĩa Bù_2 (N) = 2n – N = Bù_1 (N) + 1 Vd: Bù_2 (1001) = 24 – 1001 = 10000 – 1001 = 0111 - Số nhị phân n bit có thể biểu diễn cho 2n giá trị trong tầm: - (2n-1) ÷ + (2n-1 – 1) Vd: Số nhị phân 3 bit biễu diễn 8 giá trị: 4 giá trị dương và 4 giá trị âm Giá trị dương Giá trị âm 000 = 0 001 = + 1 010 = + 2 011 = + 3 100 = - 4 101 = - 3 110 = - 2 111 = - 1 - Để tính được biên độ của số âm ta lấy bù_2 của nó sẽ có được số dương có cùng biên độ. Vd: Số 110010 là số âm có giá trị: Bù_2 (110010) = 001101 + 1 = 001110 = 14 - Mở rộng chiều dài số có dấu: số dương thêm các bit 0 và số âm thêm các bit 1 vào trước. Vd: Số 4 bit 1011 là số âm, có thể biều diễn 8 bit là 11111011 - Số -1 được biểu diễn là 1..11 (n bit 1) - Số -2n được biểu diễn là 100..00 (n bit 0) 2. Các phép toán số học trên số có dấu: a. Phép cộng: Thực hiện giống như cộng số không dấu, tuy nhiên cần chú ý: - Kết quả sau khi cộng ta bỏ bit nhớ (carry) có trọng số lớn nhất. - Kết quả sẽ sai nếu như kết quả vượt quá phạm vi biễu diễn số có dấu. Trường hợp này có thể khắc phục bằng cách mở rộng chiều dài bit của số cần cộng. Vd: 1 0 1 0 = - 6 + 0 0 1 1 = + 3 1 1 0 1 = - 3 Vd: 1 1 1 0 = - 2 + 1 1 0 1 = - 3 1 1 0 1 1 Bỏ carry = - 5 Vd: 0 1 0 0 = + 4 0 0 1 0 0 = + 4 + 0 1 0 1 = + 5 + 0 0 1 0 1 = + 5 1 0 0 1 = - 7 Sai 0 1 0 0 1 = + 9 Đúng Vd: 1 1 0 1 = - 3 1 1 1 0 1 = - 3 + 1 0 1 0 = - 6 + 1 1 0 1 0 = - 6 1 0 1 1 1 = + 7 Sai 1 1 0 1 1 1 = - 9 Đúng b. Phép trừ: Thực hiện tương tự như phép trừ số không dấu. Chú ý bỏ số mượn (borrow) lớn nhất và nếu kết quả lớn hơn phạm vi biểu diễn thì phải mở rộng bit dấu Vd: 1 0 1 0 = - 6 - 1 1 0 1 = - 3 1 1 0 1 = - 3 Vd: 0 0 1 1 = + 3 - 1 1 0 1 = - 3 1 0 1 1 0 Bỏ borrow = + 6 Vd: 1 1 0 0 = - 4 1 1 1 0 0 = - 4 - 0 1 0 1 = + 5 - 0 0 1 0 1 = + 5 0 1 1 1 = + 7 Sai 1 0 1 1 1 = - 9 Đúng Vd: 0 1 1 1 = + 7 0 0 1 1 1 = + 7 - 1 0 1 1 = - 5 - 1 1 0 1 1 = - 5 1 1 1 0 0 = - 4 Sai 1 0 1 1 0 0 = + 12 Đúng Trừ với số bù_2: A – B = A + Bù_2 (B) Vd: Trừ với số có dấu 1 0 1 0 = - 6 1 0 1 0 - 1 1 0 1 = - 3 Bù_2(-3) + 0 0 1 1 1 1 0 1 = - 3 1 1 0 1 Vd: Trừ với số không dấu 0 1 1 0 = 6 0 1 1 0 - 1 1 0 1 = 13 Bù_2(13) + 0 0 1 1 1 0 0 1 = - 7 1 0 0 1 IV. Cộng trừ số BCD: Khi cộng hoặc trừ số BCD, ta cần cần phải hiệu đính kết quả như bảng sau: A + B S = A + B Nếu tổng Si ≥ 10 hoặc có bit nhớ Ci = 1, thì hiệu đính Si : Si = Si + 6 và Si+1 = Si+1 + Ci A - B D = A – B = A + Bù_2(B) (Kết quả bỏ bit Cn) Cn = 1: kết quả là số dương (A≥B) Nếu Ci = 1 thì không hiệu đính Nếu Ci = 0 thì hiệu đính Di : Di = Di + 10 Cn = 0: kết quả là số âm (A<B). Lấy bù kết quả Nếu Ci = 1 thì hiệu đính Di : Di = Di + 6 Nếu Ci = 0 thì không hiệu đính - Bù_2 của số BCD: số mã BCD có trọng số nhỏ nhất lấy bù_2, còn các số mã BCD còn lại lấy bù_1 - Chỉ số n là của số mã BCD có trọng số lớn nhất, và chỉ số i là của các số mã BCD còn lại với i từ 0 đến n-1. 1 Vd: 0 0 1 0 1 0 0 1 (29) 0 0 1 0 1 0 0 0 (28) + 0 1 0 1 0 1 0 1 (55) + 0 0 0 1 1 0 0 1 (19) 0 1 1 1 1 1 1 0 0 1 0 0 0 0 0 1 + 0 1 1 0 + 0 1 1 0 1 0 0 0 0 1 0 0 (84) 0 1 0 0 0 1 1 1 (47) 1 Vd: 0 0 1 0 1 0 0 1 (29) 0 0 1 0 1 0 0 1 - 0 1 0 1 0 1 0 1 (55) + 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 0 + 0 1 1 0 1 1 0 1 1 0 1 0 (-26) Lấy bù _2: 0 0 1 0 0 1 1 0
File đính kèm:
- Slide-KTS1-C1.doc