Bài
Bài
giảng
giảng
Kỹ
Kỹ
thuật
thuật
Vi
Vi
xử lý
xử lý
Ngành Điện tử
Ngành Điện tử
-
-
Viễn thông
Viễn thông
Đại học Bách khoa Đà Nẵng
Đại học Bách khoa Đà Nẵng
của
của
Hồ
Hồ
Viết Việt
Viết Việt
,
,
Khoa
Khoa
ĐTVT
ĐTVT
Tài liệu tham khảo
Tài liệu tham khảo
[1] Kỹ
[1] Kỹ
thuật
thuật
vi
vi
xử lý
xử lý
,
,
Văn Th
ế Minh
Văn Thế Minh
, NXB
, NXB
Giáo
Giáo
dục
dục
, 1997
, 1997
[2] Kỹ
[2] Kỹ
thuật
thuật
vi
vi
xử lý và Lập trình
xử lý và Lập trình
Assembly
Assembly
cho
cho
hệ
hệ
vi
vi
xử lý
xử lý
,
,
Đỗ Xuân Tiến
Đỗ Xuân Tiến
, NXB
, NXB
Khoa học
Khoa học
&
&
kỹ
kỹ
thuật
thuật
, 2001
, 2001
Chương
Chương
1
1
1.1
1.1
Các hệ thống số
Các hệ thống số
-
-
Hệ
Hệ
thập phân
thập phân
-
-
Hệ
Hệ
nhị phân
nhị phân
-
-
Hệ
Hệ
thập lục phân
thập lục phân
1.2
1.2
Các hệ thống mã hoá
Các hệ thống mã hoá
-
-
ASCII
ASCII
-
-
BCD
BCD
1.3
1.3
Các linh kiện điện tử số cơ bản
Các linh kiện điện tử số cơ bản
-
-
Các cổng
Các cổng
logic: AND, OR, XOR,NOT
logic: AND, OR, XOR,NOT
-
-
Các bộ giải mã
Các bộ giải mã
1.1
1.1
Các hệ thống số
Các hệ thống số
Hệ
Hệ
đếm thập phân
đếm thập phân
(Decimal)
(Decimal)
Còn gọi là hệ đếm cơ số mười
Còn gọi là hệ đếm cơ số mười
(
(
Vì có quá ít người có chín ngón tay hoặc mười một ngón chân
Vì có quá ít người có chín ngón tay hoặc mười một ngón chân
?)
?)
Dùng mười ký hiệu
Dùng mười ký hiệu
:
:
1,2,3,4,5,6,7,8,9,0
1,2,3,4,5,6,7,8,9,0
Ví dụ
Ví dụ
:1.1:
:1.1:
Ba nghìn Chín trăm Bảy mươi Tám
Ba nghìn Chín trăm Bảy mươi Tám
3978
3978
= 3x10
= 3x10
3
3
+ 9x10
+ 9x10
2
2
+ 7x10
+ 7x10
1
1
+ 8x10
+ 8x10
0
0
= 3000 + 900 + 70 + 8
= 3000 + 900 + 70 + 8
1.1
1.1
Các hệ thống số
Các hệ thống số
Hệ
Hệ
đếm nhị phân
đếm nhị phân
(Binary)
(Binary)
Còn gọi là
Còn gọi là
Hệ
Hệ
đếm cơ số hai
đếm cơ số hai
Sử
Sử
dụng hai ký hiệu
dụng hai ký hiệu
(bit): 0
(bit): 0
và
và
1
1
(
(
Các hệ thống điện tử số chỉ sử dụng hai mức điện áp
Các hệ thống điện tử số chỉ sử dụng hai mức điện áp
?)
?)
Kích cỡ
Kích cỡ
, LSB, MSB
, LSB, MSB
của số nhị phân
của số nhị phân
Số
Số
nhị phân không dấu
nhị phân không dấu
(Unsigned)
(Unsigned)
Số
Số
nhị phân có dấu
nhị phân có dấu
(Số
(Số
bù hai
bù hai
)
)
Số
Số
nhị phân
nhị phân
Mỗi ký hiệu
Mỗi ký hiệu
0
0
hoặc
hoặc
1
1
được gọi là
được gọi là
1 Bit (
1 Bit (
B
B
inary
inary
Dig
Dig
it
it
-
-
Chữ số nhị phân
Chữ số nhị phân
)
)
Kích cỡ của một số nhị phân là số
Kích cỡ của một số nhị phân là số
bit
bit
của nó
của nó
MSB (Most Significant Bit): Bit
MSB (Most Significant Bit): Bit
sát trái
sát trái
LSB (Least Significant Bit): Bit
LSB (Least Significant Bit): Bit
sát phải
sát phải
Ví dụ
Ví dụ
1.1:
1.1:
1010101010101010
1010101010101010
là một số nhị phân
là một số nhị phân
16
16
-
-
bit
bit
MSB LSB
Số
Số
nhị phân không dấu
nhị phân không dấu
Chỉ biểu diễn được các giá trị không
Chỉ biểu diễn được các giá trị không
âm
âm
(>= 0)
(>= 0)
Với
Với
n
n
-
-
bit
bit
có thể biểu diễn các giá trị
có thể biểu diễn các giá trị
từ
từ
0
0
đến
đến
2
2
n
n
–
–
1
1
Ví dụ
Ví dụ
1.3:
1.3:
Giá trị
Giá trị
V
V
của số nhị phân
của số nhị phân
không dấu
không dấu
1101
1101
được tính
được tính
:
:
V(1101) = 1x2
V(1101) = 1x2
3
3
+ 1x2
+ 1x2
2
2
+ 0x2
+ 0x2
1
1
+ 1x2
+ 1x2
0
0
= 8 + 4 + 0 + 1 = 13
= 8 + 4 + 0 + 1 = 13
Số
Số
nhị phân không dấu
nhị phân không dấu
Tổng quát
Tổng quát
:
:
Nếu số nhị phân
Nếu số nhị phân
N n
N n
-
-
bit:
bit:
N = b
N = b
( n
( n
-
-
1)
1)
b
b
( n
( n
-
-
2)
2)
….
….
b
b
1
1
b
b
0
0
thì giá trị
thì giá trị
V
V
của nó là
của nó là
:
:
V = b
V = b
(n
(n
-
-
1)
1)
x 2
x 2
(n
(n
-
-
1)
1)
+b
+b
(n
(n
-
-
2)
2)
x2
x2
(n
(n
-
-
2)
2)
+
+
…
…
+ b
+ b
1
1
x 2
x 2
1
1
+ b
+ b
0
0
x 2
x 2
0
0
Các số nhị phân không dấu
Các số nhị phân không dấu
4
4
-
-
bit
bit
biểu
biểu
diễn được các giá trị từ
diễn được các giá trị từ
?
?
đến
đến
?
?
16
16
giá trị từ
giá trị từ
0
0
đến
đến
15
15
15
15
1111
1111
14
14
1110
1110
13
13
1101
1101
12
12
1100
1100
11
11
1011
1011
10
10
1010
1010
9
9
1001
1001
8
8
1000
1000
7
7
0111
0111
6
6
0110
0110
5
5
0101
0101
4
4
0100
0100
3
3
0011
0011
2
2
0010
0010
1
1
0001
0001
0
0
0000
0000
Giá trị thập phân
Giá trị thập phân
Nhị phân không dấu
Nhị phân không dấu
Số
Số
nhị phân không dấu
nhị phân không dấu
Dải giá
Dải giá
tri
tri
của các số không dấu
của các số không dấu
8
8
-
-
bit
bit
là
là
[0,255]
[0,255]
(unsigned char
(unsigned char
trong
trong
C)
C)
Dải giá
Dải giá
tri
tri
của các số không dấu
của các số không dấu
16
16
-
-
bit
bit
là
là
[0,65535]
[0,65535]
(unsigned
(unsigned
int trong
int trong
C)
C)
Chuyển đổi thập phân
Chuyển đổi thập phân
sang
sang
nhị phân
nhị phân
Ví dụ 1.4
Chuyển 25 sang nhị phân không dấu. Dùng phương pháp
chia 2 liên tiếp
Chia 2 Thương số Dư số
25/2 = 12 1 LSB
12/2 = 6 0
6/2 = 3 0
3/2 = 1 1
1/2 = 0 1 MSB
Kết quả là: 11001
Số
Số
nhị phân có dấu
nhị phân có dấu
Biểu diễn được cả các giá trị âm
Biểu diễn được cả các giá trị âm
Còn gọi là
Còn gọi là
Số
Số
bù hai
bù hai
Với
Với
n
n
-
-
bit
bit
có thể biểu diễn các giá trị
có thể biểu diễn các giá trị
từ
từ
–
–
2
2
(n
(n
-
-
1)
1)
đến
đến
2
2
(n
(n
-
-
1)
1)
–
–
1
1
Ví dụ
Ví dụ
1.3:
1.3:
Giá trị
Giá trị
V
V
của số nhị phân
của số nhị phân
có dấu
có dấu
1101
1101
được tính
được tính
:
:
V(1101) =
V(1101) =
–
–
1x2
1x2
3
3
+ 1x2
+ 1x2
2
2
+ 0x2
+ 0x2
1
1
+ 1x2
+ 1x2
0
0
=
=
–
–
8 + 4 + 0 + 1 =
8 + 4 + 0 + 1 =
–
–
3
3
Số
Số
nhị phân có dấu
nhị phân có dấu
Tổng quát
Tổng quát
:
:
Nếu số nhị phân
Nếu số nhị phân
N n
N n
-
-
bit:
bit:
N = b
N = b
( n
( n
-
-
1)
1)
b
b
( n
( n
-
-
2)
2)
….
….
b
b
1
1
b
b
0
0
thì giá trị
thì giá trị
V
V
của nó là
của nó là
:
:
V =
V =
–
–
b
b
(n
(n
-
-
1)
1)
x 2
x 2
(n
(n
-
-
1)
1)
+b
+b
(n
(n
-
-
2)
2)
x2
x2
(n
(n
-
-
2)
2)
+
+
…
…
+ b
+ b
1
1
x 2
x 2
1
1
+ b
+ b
0
0
x 2
x 2
0
0
Các số nhị phân có dấu
Các số nhị phân có dấu
4
4
-
-
bit
bit
biểu diễn
biểu diễn
được các giá trị từ
được các giá trị từ
?
?
đến
đến
?
?
16
16
giá trị từ
giá trị từ
-
-
8
8
đến
đến
7
7
-
-
1
1
1111
1111
-
-
2
2
1110
1110
-
-
3
3
1101
1101
-
-
4
4
1100
1100
-
-
5
5
1011
1011
-
-
6
6
1010
1010
-
-
7
7
1001
1001
-
-
8
8
1000
1000
7
7
0111
0111
6
6
0110
0110
5
5
0101
0101
4
4
0100
0100
3
3
0011
0011
2
2
0010
0010
1
1
0001
0001
0
0
0000
0000
Giá trị thập phân
Giá trị thập phân
Nhị phân có dấu
Nhị phân có dấu
Số
Số
nhị phân có dấu
nhị phân có dấu
Dải giá
Dải giá
tri
tri
của các số có dấu
của các số có dấu
8
8
-
-
bit
bit
là
là
[
[
-
-
128,+127]
128,+127]
(char
(char
trong
trong
C)
C)
Dải giá
Dải giá
tri
tri
của các số có dấu
của các số có dấu
16
16
-
-
bit
bit
là
là
[
[
-
-
32768,+32767]
32768,+32767]
(
(
int trong
int trong
C)
C)
Tìm đối số
Tìm đối số
(
(
Lấy bù
Lấy bù
2)
2)
Tổng của một số với đối số củanóbằng 0
Ví dụ 1.5
Đối số của số nhị phân có dấu 10011101?
10011101 Số có dấu (-99)
01100010 Lấy bù 1
+ 1 Cộng 1
01100011 Kết quả (+99)
Chuyển số thập phân
Chuyển số thập phân
sang
sang
nhị phân có dấu
nhị phân có dấu
Vơí số dương
Vơí số dương
:
:
Giống như chuyển thập
Giống như chuyển thập
phân
phân
sang
sang
nhị phân không dấu rồi
nhị phân không dấu rồi
thêm
thêm
bit 0
bit 0
vào
vào
sát bên trái
sát bên trái
Ví dụ
Ví dụ
:
:
Chuyển
Chuyển
25 sang
25 sang
nhị phân có
nhị phân có
dấu
dấu
:
:
Kết quả
Kết quả
:
:
0
0
11011
11011
Với số âm
Với số âm
:
:
Chuyển đối số
Chuyển đối số
sang
sang
nhị
nhị
phân có dấu rồi lấy bù
phân có dấu rồi lấy bù
2
2
Chuyển số thập phân
Chuyển số thập phân
sang
sang
nhị phân có dấu
nhị phân có dấu
V
V
í dụ
í dụ
1.6
1.6
Chuyển
Chuyển
–
–
26 sang
26 sang
nhị phân
nhị phân
1.
1.
chuyển đối số
chuyển đối số
:
:
+26
+26
= 11010
= 11010
2.
2.
Đưa
Đưa
0
0
vào sát trái
vào sát trái
:
:
011010
011010
3.
3.
B
B
ù
ù
1
1
:
:
100101
100101
4.
4.
C
C
ộng
ộng
1:
1:
+ 1
+ 1
-
-
26 =
26 =
100110
100110
Số
Số
thập lục phân
thập lục phân
Quen gọi là số Hexa
Quen gọi là số Hexa
(Hexadecimal)
(Hexadecimal)
Còn gọi là hệ đếm cơ số mười sáu
Còn gọi là hệ đếm cơ số mười sáu
Sử
Sử
dụng
dụng
16
16
ký hiệu để biểu diễn
ký hiệu để biểu diễn
:
:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Mỗi ký hiệu tương ứng với
Mỗi ký hiệu tương ứng với
4
4
-
-
bit
bit
Mục đích
Mục đích
:
:
Biểu diễn số nhị phân
Biểu diễn số nhị phân
ở
ở
dạng ngắn gọn
dạng ngắn gọn
11110000
11110000
=
=
F0
F0
10101010
10101010
=
=
AA
AA
01010101
01010101
=
=
55
55
Nhị phân Thập lục phân
Nhị phân Thập lục phân
Mỗi ký hiệu tương ứng với
Mỗi ký hiệu tương ứng với
4
4
-
-
bit
bit
1111
1111
F
F
0111
0111
7
7
1110
1110
E
E
0110
0110
6
6
1101
1101
D
D
0101
0101
5
5
1100
1100
C
C
0100
0100
4
4
1011
1011
B
B
0011
0011
3
3
1010
1010
A
A
0010
0010
2
2
1001
1001
9
9
0001
0001
1
1
1000
1000
8
8
0000
0000
0
0
Binary
Binary
Hexa
Hexa
Binary
Binary
Hexa
Hexa
Chuyển đổi Hexa
Chuyển đổi Hexa
&
&
nhị phân
nhị phân
Ví dụ 1.7
Chuyển số hexa 2F8 và ABBA sang nhị phân
Thay thế mỗi ký hiệu hexa bằng 4-bit
tương ứng với nó
2 F 8
0010 1111 1000
AB BA
1010 1011 1011 1010
Kết quả 2F8h = 001011111000b
ABBAh = 1010101110111010b
Chuyển đổi Hexa
Chuyển đổi Hexa
&
&
nhị phân
nhị phân
Ví dụ 1.8
Chuyển số nhị phân 1100101011111110 sang
hexa
-Trước hết theo hướng từ LSB về MSB chia số nhị
phân đó thành các nhóm 4-bit
-Sau đóthay thế mỗi nhóm 4-bit bằng ký hiệu
hexa tương ứng với nó
1100 1010 1111 1110
C A F E
Kết quả: 1100101011111110b = CAFEh
1.2
1.2
Các hệ thống mã hoá
Các hệ thống mã hoá
ASCII:
ASCII:
A
A
merican
merican
S
S
tandard
tandard
C
C
ode for
ode for
I
I
nformation
nformation
I
I
nterchange.
nterchange.
Dùng để biểu diễn các ký tự
Dùng để biểu diễn các ký tự
(characters):
(characters):
Gồm
Gồm
ký tự
ký tự
hiển thị được
hiển thị được
và
và
ký tự
ký tự
điều khiển
điều khiển
Mỗi ký tự được biểu diễn bằng
Mỗi ký tự được biểu diễn bằng
8
8
-
-
bit
bit
gọi là
gọi là
mã
mã
ASCII
ASCII
của ký tự đó
của ký tự đó
•
•
C
C
ác chữ cái
ác chữ cái
in
in
và thường
và thường
:
:
A Z
A Z
v
v
à
à
a z
a z
•
•
C
C
ác chữ số thập phân
ác chữ số thập phân
:
:
0,1,…,9
0,1,…,9
•
•
C
C
ác dấu chấm câu
ác dấu chấm câu
:
:
; , . :
; , . :
v
v
ân vân
ân vân
•
•
C
C
ác ký tự đặc biệt
ác ký tự đặc biệt
:
:
$ & @ / {
$ & @ / {
v
v
ân vân
ân vân
•
•
C
C
ác ký tự điều khiển
ác ký tự điều khiển
:
:
carriage return (CR) ,
carriage return (CR) ,
line feed (LF), beep,
line feed (LF), beep,
v
v
ân vân
ân vân
Mã
Mã
ASCII
ASCII
Với bảng mã được sắp xếp theo trật tự tăng dần
Với bảng mã được sắp xếp theo trật tự tăng dần
của mã
của mã
ASCII:
ASCII:
•
•
Các chữ số thập phân
Các chữ số thập phân
: 0,1,…,9
: 0,1,…,9
nằm liên tiếp nhau
nằm liên tiếp nhau
,
,
chữ
chữ
số
số
0
0
có mã
có mã
ASCII
ASCII
là
là
30h
30h
•
•
Các chữ cái
Các chữ cái
in:A Z
in:A Z
nằm liên tiếp nhau
nằm liên tiếp nhau
,
,
chữ
chữ
A
A
có mã
có mã
ASCII
ASCII
là
là
41h
41h
•
•
Các chữ cái thường
Các chữ cái thường
: a z
: a z
n
ằm liên tiếp nhau
nằm liên tiếp nhau
,
,
chữ
chữ
a
a
có
có
mã
mã
ASCII
ASCII
là
là
61h
61h
•
•
Mã
Mã
ASCII
ASCII
của chữ
của chữ
in
in
và chữ thường tương ứng chỉ khác
và chữ thường tương ứng chỉ khác
nhau
nhau
ở bit 5
ở bit 5
A: 01
A: 01
0
0
00001
00001
B: 01
B: 01
0
0
00010
00010
Z: 01
Z: 01
0
0
11010
11010
a: 01
a: 01
1
1
00001
00001
b: 01
b: 01
1
1
00010
00010
z: 01
z: 01
1
1
11010
11010
•
•
32
32
ký tự điều khiển được xếp đầu bảng mã
ký tự điều khiển được xếp đầu bảng mã
(00h
(00h
đến
đến
1Fh)
1Fh)
Bảng mã
Bảng mã
ASCII
ASCII
Bảng mã
Bảng mã
ASCII
ASCII