Bài giảng Kỹ thuật Vi xử lý
Bài giảng Kỹ thuật Vi xử lý
Ngành Điện tử-Viễn thông Đại học Bách khoa Đà Nẵng
Ngành Điện tử-Viễn thông Đại học Bách khoa Đà Nẵng
của Hồ Viết Việt, Bộ môn KTMT, Khoa ĐTVT
của Hồ Viết Việt, Bộ môn KTMT, Khoa ĐTVT
Tài liệu tham khảo
Tài liệu tham khảo
[1] Barry B. Brey, The Intel Microprocessors 8086/8088, 80186/80188, 80286, 80386, 80486,
[1] Barry B. Brey, The Intel Microprocessors 8086/8088, 80186/80188, 80286, 80386, 80486,
Pentium, Pentium Pro Processor, Pentium II, Pentium III, Pentium 4 Architecture,
Pentium, Pentium Pro Processor, Pentium II, Pentium III, Pentium 4 Architecture,
Programming, and Interfacing, 6
Programming, and Interfacing, 6
th
th
Edition, Prentice Hall, 2003
Edition, Prentice Hall, 2003
[2] Martin Bates, PIC Microcontrollers, An Introduction to Microelectronics, 2
[2] Martin Bates, PIC Microcontrollers, An Introduction to Microelectronics, 2
nd
nd
Edition,
Edition,
Elsevier, 2004
Elsevier, 2004
[3] Martin Bates, Interfacing PIC Microcontrollers, Embedded Design by Interactive
[3] Martin Bates, Interfacing PIC Microcontrollers, Embedded Design by Interactive
Simulation, Elsevier, 2006
Simulation, Elsevier, 2006
[4] Martin Bates,
[4] Martin Bates,
Programming 8-bit PIC Microcontrollers in C: With Interactive Hardware
Programming 8-bit PIC Microcontrollers in C: With Interactive Hardware
Simulation, Elservier, 2007
Simulation, Elservier, 2007
[5] Robert B. Reese,Microprocessors, From Assembly Language to C Using PIC 18Fxx2, Da
[5] Robert B. Reese,Microprocessors, From Assembly Language to C Using PIC 18Fxx2, Da
vinci Engineering Press, 2005
vinci Engineering Press, 2005
Chương 1: Review
Chương 1: Review
1.1 Các hệ thống số
1.1 Các hệ thống số
-
-
Hệ thập phân
Hệ thập phân
- Hệ nhị phân
- Hệ nhị phân
- Hệ thập lục phân
- Hệ thập lục phân
- Chuyển đổi giữa các hệ đếm
- Chuyển đổi giữa các hệ đếm
1.2 Các hệ thống mã hoá
1.2 Các hệ thống mã hoá
-
-
ASCII
ASCII
- BCD
- BCD
1.3 Các linh kiện điện tử số cơ bản
1.3 Các linh kiện điện tử số cơ bản
- Các cổng logic: AND, OR, XOR,NOT
- Các cổng logic: AND, OR, XOR,NOT
- Cổng đệm 3 trạng thái
- Cổng đệm 3 trạng thái
- DFF, Cac chip 74373, 74573, 74244, 74245
- DFF, Cac chip 74373, 74573, 74244, 74245
- Bộ giải mã: 74138
- Bộ giải mã: 74138
1.1 Các hệ thống số
1.1 Các hệ thống số
Hệ đếm thập phân (Decimal)
Hệ đếm thập phân (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ụ:1.1:
Ví dụ: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 Các hệ thống số
1.1 Các hệ thống số
Hệ đếm nhị phân (Binary)
Hệ đếm nhị phân (Binary)
Còn gọi là Hệ đếm cơ số hai
Còn gọi là Hệ đếm cơ số hai
Sử dụng hai ký hiệu (bit): 0 và 1
Sử dụng hai ký hiệu (bit): 0 và 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ỡ, LSB, MSB của số nhị phân
Kích cỡ, LSB, MSB của số nhị phân
Số nhị phân không dấu (Unsigned)
Số nhị phân không dấu (Unsigned)
Số nhị phân có dấu (Số bù hai)
Số nhị phân có dấu (Số bù hai)
Số nhị phân
Số nhị phân
Mỗi ký hiệu 0 hoặc 1 được gọi là 1 Bit (
Mỗi ký hiệu 0 hoặc 1 được gọi là 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ố bit của nó
Kích cỡ của một số nhị phân là số bit của nó
MSB (Most Significant Bit): Bit sát trái
MSB (Most Significant Bit): Bit sát trái
LSB (Least Significant Bit): Bit sát phải
LSB (Least Significant Bit): Bit sát phải
Ví dụ 1.1:
Ví dụ 1.1:
1010101010101010
1010101010101010
là một số nhị phân 16-bit
là một số nhị phân 16-bit
MSB LSB
Số nhị phân không dấu
Số 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 (>= 0)
âm (>= 0)
Với n-bit có thể biểu diễn các giá trị
Với n-bit có thể biểu diễn các giá trị
từ 0 đến 2
từ 0 đến 2
n
n
–
–
1
1
Ví dụ 1.3: Giá trị V của số nhị phân
Ví dụ 1.3: Giá trị V của số nhị phân
không dấu 1101 được tính:
không dấu 1101 đượ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ố nhị phân không dấu
Số nhị phân không dấu
Tổng quát: Nếu số nhị phân N n-bit:
Tổng quát: Nếu số nhị phân N n-bit:
N = b
N = b
( n-1)
( n-1)
b
b
( n-2)
( n-2)
….
….
b
b
1
1
b
b
0
0
thì giá trị V của nó là:
thì giá trị V của nó là:
V = b
V = b
(n -1)
(n -1)
x 2
x 2
(n-1)
(n-1)
+b
+b
(n-2)
(n-2)
x2
x2
(n-2)
(n-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 4-bit biểu
Các số nhị phân không dấu 4-bit biểu
diễn được các giá trị từ ? đến ?
diễn được các giá trị từ ? đến ?
16 giá trị từ 0 đến 15
16 giá trị từ 0 đến 15
Nhị phân không dấu
Nhị phân không dấu
Giá trị thập phân
Giá trị thập phân
0000
0000
0
0
0001
0001
1
1
0010
0010
2
2
0011
0011
3
3
0100
0100
4
4
0101
0101
5
5
0110
0110
6
6
0111
0111
7
7
1000
1000
8
8
1001
1001
9
9
1010
1010
10
10
1011
1011
11
11
1100
1100
12
12
1101
1101
13
13
1110
1110
14
14
1111
1111
15
15
Chuyển đổi thập phân sang nhị phân
Chuyển đổi thập phân sang 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ố nhị phân có dấu
Số 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à Số bù hai
Còn gọi là Số bù hai
Với n-bit có thể biểu diễn các giá trị
Với n-bit có thể biểu diễn các giá trị
từ – 2
từ – 2
(n-1)
(n-1)
đến 2
đến 2
(n-1)
(n-1)
–
–
1
1
Ví dụ 1.3: Giá trị V của số nhị phân
Ví dụ 1.3: Giá trị V của số nhị phân
có dấu 1101 được tính:
có dấu 1101 đượ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 = – 3
= – 8 + 4 + 0 + 1 = – 3
Số nhị phân có dấu
Số nhị phân có dấu
Tổng quát: Nếu số nhị phân N n-bit:
Tổng quát: Nếu số nhị phân N n-bit:
N = b
N = b
( n-1)
( n-1)
b
b
( n-2)
( n-2)
….
….
b
b
1
1
b
b
0
0
thì giá trị V của nó là:
thì giá trị V của nó là:
V = –b
V = –b
(n -1)
(n -1)
x 2
x 2
(n-1)
(n-1)
+b
+b
(n-2)
(n-2)
x2
x2
(n-2)
(n-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 4-bit biểu diễn
Các số nhị phân có dấu 4-bit biểu diễn
được các giá trị từ ? đến ?
được các giá trị từ ? đến ?
16 giá trị từ - 8 đến 7
16 giá trị từ - 8 đến 7
Nhị phân có dấu
Nhị phân có dấu
Giá trị thập phân
Giá trị thập phân
0000
0000
0
0
0001
0001
1
1
0010
0010
2
2
0011
0011
3
3
0100
0100
4
4
0101
0101
5
5
0110
0110
6
6
0111
0111
7
7
1000
1000
- 8
- 8
1001
1001
-7
-7
1010
1010
-6
-6
1011
1011
-5
-5
1100
1100
-4
-4
1101
1101
-3
-3
1110
1110
-2
-2
1111
1111
-1
-1
Tìm đối số (Lấy bù 2)
Tìm đối số (Lấy bù 2)
Tổng của một số với đối số của nó 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 sang nhị phân có dấu
Chuyển số thập phân sang nhị phân có dấu
Vơí số dương:Giống như chuyển thập
Vơí số dương:Giống như chuyển thập
phân sang nhị phân không dấu rồi
phân sang nhị phân không dấu rồi
thêm bit 0 vào
thêm bit 0 vào
sát bên trái
sát bên trái
Ví dụ: Chuyển 25 sang nhị phân có
Ví dụ: Chuyển 25 sang nhị phân có
dấu:
dấu:
Kết quả:
Kết quả:
0
0
11011
11011
Với số âm: Chuyển đối số sang nhị
Với số âm: Chuyển đối số sang nhị
phân có dấu rồi lấy bù 2
phân có dấu rồi lấy bù 2
Chuyển số thập phân sang nhị phân có dấu
Chuyển số thập phân sang nhị phân có dấu
V
V
í dụ 1.6 Chuyển – 26 sang nhị phân
í dụ 1.6 Chuyển – 26 sang nhị phân
1.
1.
chuyển đối số
chuyển đối số
:
:
+26
+26
= 11010
= 11010
2.
2.
Đưa 0 vào sát trái
Đưa 0 vào sát trái
:
:
011010
011010
3. B
3. B
ù 1
ù 1
:
:
100101
100101
4. C
4. C
ộng
ộng
1:
1:
+ 1
+ 1
-------------
-------------
-26 =
-26 =
100110
100110
Số thập lục phân
Số thập lục phân
Quen gọi là số Hexa (Hexadecimal)
Quen gọi là số Hexa (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ử dụng 16 ký hiệu để biểu diễn:
Sử dụng 16 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-bit
4-bit
Mục đích:
Mục đích:
Biểu diễn số nhị phân ở dạng ngắn gọn
Biểu diễn số nhị phâ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 4-bit
Mỗi ký hiệu tương ứng với 4-bit
Hexa
Hexa
Binary
Binary
Hexa
Hexa
Binary
Binary
0
0
0000
0000
8
8
1000
1000
1
1
0001
0001
9
9
1001
1001
2
2
0010
0010
A
A
1010
1010
3
3
0011
0011
B
B
1011
1011
4
4
0100
0100
C
C
1100
1100
5
5
0101
0101
D
D
1101
1101
6
6
0110
0110
E
E
1110
1110
7
7
0111
0111
F
F
1111
1111
Chuyển đổi Hexa & nhị phân
Chuyển đổi Hexa & 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
A B B A
1010 1011 1011 1010
Kết quả 2F8h = 001011111000b
ABBAh = 1010101110111010b
Chuyển đổi Hexa & nhị phân
Chuyển đổi Hexa & 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