Tải bản đầy đủ (.pdf) (427 trang)

bài giảng kĩ thuật vi xử lí- BKHN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.66 MB, 427 trang )

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


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


[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


[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


[
[
-
-
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


[
[
-
-
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


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à


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


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


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


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




ASCII
ASCII



61h
61h




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

×