BàiBài giảng
xử lý thuật Vi Vi xử lý
giảng Kỹ Kỹ thuật Viễn thông Ngành Điện tử--Viễn thông Ngành Điện tử Đại học Bách khoa Đà Nẵng Đại học Bách khoa Đà Nẵng Khoa ĐTVTĐTVT Viết Việt, , Khoa của Hồ Hồ Viết Việt của
thuật vi vi xử lý Tài liệu tham khảo Tài liệu tham khảo xử lý, , Văn Thế Minh Văn Thế Minh, NXB , NXB Giáo Giáo
thuật vi vi xử lý và Lập trình xử lý và Lập trình Assembly cho Assembly cho
Đỗ Xuân Tiến, NXB , NXB Khoa học Khoa học & & kỹ kỹ
[1] Kỹ thuật [1] Kỹ dụcdục, 1997 , 1997 [2] Kỹ thuật [2] Kỹ hệ hệ vi vi xử lý xử lý, , Đỗ Xuân Tiến , 2001 thuật, 2001 thuật
Chương 11 Chương
ASCII -- ASCII -- BCDBCD
Các hệ thống số 1.11.1 Các hệ thống số -- HệHệ thập phân thập phân nhị phân -- HệHệ nhị phân -- HệHệ thập lục phân thập lục phân Các hệ thống mã hoá 1.21.2 Các hệ thống mã hoá
-- Các cổng logic: AND, OR, XOR,NOT Các cổng logic: AND, OR, XOR,NOT Các bộ giải mã -- Các bộ giải mã
Các linh kiện điện tử số cơ bản 1.31.3 Các linh kiện điện tử số cơ bản
Các hệ thống số 1.11.1 Các hệ thống số
(Decimal) đếm thập phân (Decimal) (cid:132)(cid:132) HệHệ đếm thập phân Còn gọi là hệ đếm cơ số mười (cid:132)(cid:132) 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:: (cid:132)(cid:132) 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
:1.1: (cid:132)(cid:132) Ví dụ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 = 3x10 3978 + 8x1000 + 7x1011 + 8x10
+ 9x1022 + 7x10 = 3x1033 + 9x10 = 3000 + 900 + 70 + 8 = 3000 + 900 + 70 + 8
Các hệ thống số 1.11.1 Các hệ thống số
(cid:132)(cid:132) HệHệ đếm nhị phân (cid:132)(cid:132) Còn gọi là (cid:132)(cid:132) SửSử dụng hai ký hiệu
(bit): 0 vàvà 11
(Binary) đếm nhị phân (Binary) đếm cơ số hai Còn gọi là HệHệ đếm cơ số hai dụng hai ký hiệu (bit): 0 ((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
(cid:132)(cid:132) Kích cỡ (cid:132)(cid:132) SốSố nhị phân không dấu (cid:132)(cid:132) SốSố nhị phân có dấu
, LSB, MSB của số nhị phân của số nhị phân (Unsigned) nhị phân không dấu (Unsigned) bù hai)) nhị phân có dấu (Số(Số bù hai
nhị phân SốSố nhị phân
inary 1 Bit (BBinary
(cid:132)(cid:132) Mỗi ký hiệu
được gọi là 1 Bit (
Mỗi ký hiệu 00 hoặchoặc 11 được gọi là DigDigitit-- Chữ số nhị phân Chữ số nhị phân)) của nó Kích cỡ của một số nhị phân là số bitbit của nó (cid:132)(cid:132) Kích cỡ của một số nhị phân là số sát trái MSB (Most Significant Bit): Bit sát trái (cid:132)(cid:132) MSB (Most Significant Bit): Bit sát phải LSB (Least Significant Bit): Bit sát phải (cid:132)(cid:132) LSB (Least Significant Bit): Bit (cid:132)(cid:132) Ví dụVí dụ 1.1:
1010101010101010 1.1: 1010101010101010
LSB
MSB là một số nhị phân 1616--bitbit là một số nhị phân
nhị phân không dấu SốSố nhị phân không dấu
Chỉ biểu diễn được các giá trị không (cid:132)(cid:132) Chỉ biểu diễn được các giá trị không (>= 0) âmâm (>= 0)
có thể biểu diễn các giá trị (cid:132)(cid:132) VớiVới nn--bitbit có thể biểu diễn các giá trị
của số nhị phân Giá trị VV của số nhị phân được tính:: 1101 được tính
từtừ 00 đếnđến 22nn –– 11 (cid:132)(cid:132) Ví dụVí dụ 1.3:1.3: Giá trị không dấu 1101 không dấu V(1101) = 1x233 + 1x2+ 1x222 + 0x2+ 0x211 + 1x2+ 1x200 V(1101) = 1x2
= 8 + 4 + 0 + 1 = 13 = 8 + 4 + 0 + 1 = 13
nhị phân không dấu SốSố nhị phân không dấu
(cid:132)(cid:132) Tổng quát
Nếu số nhị phân N nN n--bit:bit:
Tổng quát:: Nếu số nhị phân N = b( n( n--1) 1) bb( n( n--2) 2) …. …. bb11 bb00 N = b của nó là:: thì giá trị VV của nó là thì giá trị V = b(n (n --1)1) x 2x 2(n(n--1)1)+b +b (n(n--2) 2) x2 x2 (n(n--2)2)+ + V = b
… … + b+ b11 x 2x 21 1 + b+ b00 x 2x 200
biểu Các số nhị phân không dấu 44--bitbit biểu Các số nhị phân không dấu diễn được các giá trị từ ?? đếnđến ?? diễn được các giá trị từ
1616 giá trị từ
giá trị từ 00 đếnđến 1515
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
00
0001 0001
11
0010 0010
22
0011 0011
33
0100 0100
44
0101 0101
55
0110 0110
66
0111 0111
77
1000 1000
88
1001 1001
99
1010 1010
1010
1011 1011
1111
1100 1100
1212
1101 1101
1313
1110 1110
1414
1111 1111
1515
nhị phân không dấu SốSố nhị phân không dấu
(cid:132)(cid:132) Dải giá
[0,255] (unsigned char
(cid:132)(cid:132) Dải giá
của các số không dấu 88--bitbit (unsigned char trong của các số không dấu 1616-- int trong C)C)
Dải giá tritri của các số không dấu làlà [0,255] trong C)C) Dải giá tritri của các số không dấu [0,65535] (unsigned bitbit làlà [0,65535]
(unsigned int trong
Chuyển đổi thập phân sang Chuyển đổi thập phân
nhị phân sang nhị phân
(cid:132) 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
Dư số
Chia 2 Thương số
(cid:132) 25/2 = 12 1 LSB (cid:132) 12/2 = 6 0 (cid:132) 6/2 = 3 0 (cid:132) 3/2 = 1 1 (cid:132) 1/2 = 0 1 MSB
Kết quả là: 11001
nhị phân có dấu SốSố nhị phân có dấu
Biểu diễn được cả các giá trị âm (cid:132)(cid:132) Biểu diễn được cả các giá trị âm bù hai Còn gọi là SốSố bù hai (cid:132)(cid:132) Còn gọi là có thể biểu diễn các giá trị (cid:132)(cid:132) VớiVới nn--bitbit có thể biểu diễn các giá trị
từ –– 22(n(n--1)1) đếnđến 22(n(n--1)1) –– 11 từ
(cid:132)(cid:132) Ví dụVí dụ 1.3:1.3: Giá trị
của số nhị phân Giá trị VV của số nhị phân
được tính:: 1101 được tính có dấu 1101 có dấu V(1101) = –– 1x21x233 + 1x2+ 1x222 + 0x2+ 0x211 + 1x2+ 1x200 V(1101) =
= = –– 8 + 4 + 0 + 1 = 8 + 4 + 0 + 1 = –– 33
nhị phân có dấu SốSố nhị phân có dấu
(cid:132)(cid:132) Tổng quát
Nếu số nhị phân N nN n--bit:bit:
Tổng quát:: Nếu số nhị phân N = b( n( n--1) 1) bb( n( n--2) 2) …. …. bb11 bb00 N = b của nó là:: thì giá trị VV của nó là thì giá trị V = ––bb(n (n --1)1) x 2x 2(n(n--1)1)+b +b (n(n--2) 2) x2 x2 (n(n--2)2)+ + V =
… … + b+ b11 x 2x 21 1 + b+ b00 x 2x 200
biểu diễn Các số nhị phân có dấu 44--bitbit biểu diễn Các số nhị phân có dấu được các giá trị từ ?? đếnđến ?? được các giá trị từ
1616 giá trị từ
giá trị từ -- 88 đếnđến 77
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
00
0001 0001
11
0010 0010
22
0011 0011
33
0100 0100
44
0101 0101
55
0110 0110
66
0111 0111
77
1000 1000
-- 88
1001 1001
--77
1010 1010
--66
1011 1011
--55
1100 1100
--44
1101 1101
--33
1110 1110
--22
1111 1111
--11
nhị phân có dấu SốSố nhị phân có dấu
(cid:132)(cid:132) Dải giá
của các số có dấu 88--bitbit làlà
128,+127] (char
(cid:132)(cid:132) Dải giá
của các số có dấu 1616--bitbit làlà int trong C)C)
Dải giá tritri của các số có dấu [[--128,+127] Dải giá tritri của các số có dấu 32768,+32767] ((int trong [[--32768,+32767]
(char trong trong C)C)
Tìm đối số ((Lấy bù Tìm đối số
Lấy bù 2)2)
(cid:132) Tổng của một số với đối số của nó bằng 0 (cid:132) Ví dụ 1.5
Đối số của số nhị phân có dấu 10011101?
(cid:132)
10011101 Số có dấu (-99) 01100010 Lấy bù 1
(cid:132)
Cộng 1
+ 1 ------------- 01100011 Kết quả (+99)
Chuyển số thập phân sang Chuyển số thập phân
nhị phân có dấu sang nhị phân có dấu
Giống như chuyển thập Vơí số dương::Giống như chuyển thập (cid:132)(cid:132) Vơí số dương phân sang phân thêmthêm bit 0bit 0 vào
nhị phân không dấu rồi sang nhị phân không dấu rồi sát bên trái vào sát bên trái nhị phân có 25 sang nhị phân có
Chuyển 25 sang
(cid:132)(cid:132) Ví dụVí dụ:: Chuyển
sang nhị nhị
dấudấu:: 11011 Kết quả: : 0011011 Kết quả Chuyển đối số sang Với số âm:: Chuyển đối số (cid:132)(cid:132) Với số âm phân có dấu rồi lấy bù 22 phân có dấu rồi lấy bù
Chuyển số thập phân sang Chuyển số thập phân
nhị phân có dấu sang nhị phân có dấu
VVí dụí dụ 1.61.6 Chuyển 1.1. chuyển đối số 2.2. ĐưaĐưa 00 vào sát trái vào sát trái:: 3.3. BBùù 11: : 4.4. CCộngộng 1:1:
Chuyển –– 26 sang
--26 =26 =
nhị phân 26 sang nhị phân = 11010 chuyển đối số: : +26+26 = 11010 011010 011010 100101 100101 + 1 + 1 ------------- ------------- 100110 100110
thập lục phân SốSố thập lục phân
(Hexadecimal) Quen gọi là số Hexa (Hexadecimal) (cid:132)(cid:132) Quen gọi là số Hexa Còn gọi là hệ đếm cơ số mười sáu (cid:132)(cid:132) Còn gọi là hệ đếm cơ số mười sáu ký hiệu để biểu diễn:: dụng 1616 ký hiệu để biểu diễn (cid:132)(cid:132) SửSử dụng
(cid:132)(cid:132) Mỗi ký hiệu tương ứng với (cid:132)(cid:132) Mục đích
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 44--bitbit dạng ngắn gọn Biểu diễn số nhị phân ởở dạng ngắn gọn Mục đích:: Biểu diễn số nhị phân 11110000 11110000
F0F0
= =
10101010 10101010
= =
AAAA
5555
== 01010101 01010101 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 44--bitbit Mỗi ký hiệu tương ứng với
HexaHexa 00 11 22 33 44 55 66 77 Binary Binary 0000 0000 0001 0001 0010 0010 0011 0011 0100 0100 0101 0101 0110 0110 0111 0111 HexaHexa 88 99 AA BB CC DD EE FF Binary Binary 1000 1000 1001 1001 1010 1010 1011 1011 1100 1100 1101 1101 1110 1110 1111 1111
nhị phân Chuyển đổi Hexa && nhị phân Chuyển đổi Hexa
(cid:132) 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 B B A A
1010 1011 1011 1010 (cid:132) Kết quả 2F8h = 001011111000b
ABBAh = 1010101110111010b
nhị phân Chuyển đổi Hexa && nhị phân Chuyển đổi Hexa
(cid:132) 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
(cid:132) Kết quả: 1100101011111110b = CAFEh
Các hệ thống mã hoá 1.21.2 Các hệ thống mã hoá
(cid:132)(cid:132) ASCII:
điều khiển ký tự điều khiển
ký tự hiển thị được
hiển thị được và và ký tự
ode for tandard CCode for merican SStandard
; , . : vvân vân ân vân ân vân $ & @ / { vvân vân
ASCII: AAmerican IInformation nterchange. nformation IInterchange. (characters): Dùng để biểu diễn các ký tự (characters): (cid:132)(cid:132) Dùng để biểu diễn các ký tự GồmGồm ký tự Mỗi ký tự được biểu diễn bằng 88--bitbit gọi là gọi là (cid:132)(cid:132) Mỗi ký tự được biểu diễn bằng mãmã ASCII của ký tự đó ASCII của ký tự đó •• CCác chữ cái và thường: : A..ZA..Z vvàà a..za..z ác chữ cái inin và thường •• CCác chữ số thập phân 0,1,…,9 ác chữ số thập phân: : 0,1,…,9 •• CCác dấu chấm câu ác dấu chấm câu: : ; , . : •• CCác ký tự đặc biệt ác ký tự đặc biệt: : $ & @ / { carriage return (CR) , •• CCác ký tự điều khiển ác ký tự điều khiển: : carriage return (CR) , ân vân line feed (LF), beep, vvân vân line feed (LF), beep,
ASCII MãMã ASCII
Với bảng mã được sắp xếp theo trật tự tăng dần (cid:132)(cid:132) Với bảng mã được sắp xếp theo trật tự tăng dần ASCII: của mã ASCII: của mã
: 0,1,…,9 nằm liên tiếp nhau
chữ nằm liên tiếp nhau,, chữ
•• Các chữ số thập phân
có mã ASCII
ASCII làlà 30h30h in:A..Z nằm liên tiếp nhau
có mã nằm liên tiếp nhau,, chữchữ AA có mã
nằm liên tiếp nhau,, chữchữ aa có có
•• Các chữ cái thường
: a..z nằm liên tiếp nhau
Các chữ số thập phân: 0,1,…,9 sốsố 00 có mã Các chữ cái in:A..Z •• Các chữ cái ASCII làlà 41h41h ASCII Các chữ cái thường: a..z mãmã ASCII •• MãMã ASCII
ASCII làlà 61h61h ASCII của chữ
và chữ thường tương ứng chỉ khác của chữ inin và chữ thường tương ứng chỉ khác
ở bit 5 nhau ở bit 5 nhau B: 010000010 00001 B: 01 A: 010000001 00010 A: 01 00010 b: 011100010 00001 a: 011100001 b: 01 a: 01 ký tự điều khiển được xếp đầu bảng mã (00h
Z: 010011010 11010 Z: 01 11010 z: 011111010 z: 01 (00h đếnđến •• 3232 ký tự điều khiển được xếp đầu bảng mã
1Fh)1Fh)
ASCII Bảng mã ASCII Bảng mã
ASCII Bảng mã ASCII Bảng mã
MãMã BCDBCD
ecimal) oded DDecimal)
inary CCoded BCD (BBinary (cid:132)(cid:132) BCD ( Quen gọi là số BCDBCD (cid:132)(cid:132) Quen gọi là số Dùng để mã hoá các số thập phân bằng (cid:132)(cid:132) Dùng để mã hoá các số thập phân bằng các ký hiệu nhị phân các ký hiệu nhị phân Mỗi chữ số thập phân được biểu diễn bằng (cid:132)(cid:132) Mỗi chữ số thập phân được biểu diễn bằng một tổ hợp 44--bitbit một tổ hợp không sử dụng gọi là các Các tổ hợp 44--bitbit không sử dụng gọi là các (cid:132)(cid:132) Các tổ hợp tổ hợp cấm tổ hợp cấm Nhiều linh kiện điện tử sử dụng mã này (cid:132)(cid:132) Nhiều linh kiện điện tử sử dụng mã này (Bộ(Bộ giải mã giải mã BCDBCD--LEDLED bảy đoạn 7447) bảy đoạn 7447)
Bảng mã BCDBCD Bảng mã
Thập phân Thập phân 88 99
Thập phân Thập phân 00 11 22 33 44 55 66 77 BCDBCD 0000 0000 0001 0001 0010 0010 0011 0011 0100 0100 0101 0101 0110 0110 0111 0111 BCDBCD 1000 1000 1001 1001 1010 1010 1011 1011 1100 1100 1101 1101 1110 1110 1111 1111
MãMã BCDBCD
(cid:132)(cid:132) Đừng nhầm mã hoá
với việc Đừng nhầm mã hoá BCDBCD với việc nhị phân:: sang nhị phân chuyển đổi thập phân sang chuyển đổi thập phân
Ví dụVí dụ 1.9:1.9: Cho số thập phân
Cho số thập phân 1515
của nó là:: MãMã BCDBCD của nó là
00010101 00010101
nhị phân không dấu SốSố nhị phân không dấu 88--bitbit tương ứng là tương ứng là::
00001111 00001111
Bit, Nibble, Byte, Word Bit, Nibble, Byte, Word
Một chữ số nhị phân 00 hoặchoặc 11
): 32--bitbit
= 128 byte = 1024 bit = 128 byte = 1024 bit = 1024 byte = 1024 byte
(cid:132)(cid:132) G = 2
= 1024 Mb = 1048576 Kb = 1048576 Kb = 1024 Mb = 1048576 KB = 1024 MB = 1048576 KB = 1024 MB
(cid:132)(cid:132) Bit:Bit: Một chữ số nhị phân byte) Nibble: 4--bit (bit (nửanửa byte) (cid:132)(cid:132) Nibble: 4 Octet) Còn gọi là Octet) Byte: 8--bit (bit (Còn gọi là (cid:132)(cid:132) Byte: 8 Word (Từ): 16--bitbit (cid:132)(cid:132) Word (Từ): 16 Double Word (Từ képkép): 32 (cid:132)(cid:132) Double Word (Từ K = 21010 = 1024 = 1024 (cid:132)(cid:132) K = 2 kilôbit) ) Kb (Kb (kilôbit kilôbyte) ) KB (KB (kilôbyte Kilôbit trên giây Kbps (Kilobit per second): Kilôbit trên giây Kbps (Kilobit per second): (cid:132)(cid:132) M = 2M = 22020 = 1024 K = 1048576 = 1024 K = 1048576 = 1048576 bit = 1024 Kb = 1048576 bit Mêgabit) ) Mb (Mb (Mêgabit = 1024 Kb MB (MB (Mêgabyte = 1048576 byte = 1024 KB = 1048576 byte Mêgabyte) ) = 1024 KB G = 23030 = 1024 M = 1048576 K = 1024 M = 1048576 K GbGb (Gigabit) (Gigabit) GB (Gigabyte) GB (Gigabyte) T = ? (cid:132)(cid:132) T = ?
Các linh kiện điện tử số cơ bản 1.31.3 Các linh kiện điện tử số cơ bản
Phân chia linh liện số theo mật độ tích (cid:132)(cid:132) Phân chia linh liện số theo mật độ tích : SSI, MSI, LSI, VLSI hợphợp: SSI, MSI, LSI, VLSI mạch tích hợp cỡ nhỏ SSI (Small Scale Integration): Vi mạch tích hợp cỡ nhỏ SSI (Small Scale Integration): Vi mạch tích hợp cỡ trung MSI (Medium Scale Integration): Vi mạch tích hợp cỡ trung MSI (Medium Scale Integration): Vi mạch tích hợp cỡ lớn LSI (Large Scale Integration): Vi mạch tích hợp cỡ lớn LSI (Large Scale Integration): Vi mạch tích hợp cỡ cực lớn VLSI (Very Large Scale Integration):Vi mạch tích hợp cỡ cực lớn VLSI (Very Large Scale Integration):Vi
, not logic and, or, xorxor, not Các chốt,, đệmđệm
(cid:132)(cid:132) SSI:SSI: Các cổng (cid:132)(cid:132) MSI:MSI: Các bộ giải mã LSI,VLSI: Các bộ (cid:132)(cid:132) LSI,VLSI: DSPsDSPs
Các cổng logic and, or, Các bộ giải mã,, Các chốt Các bộ vivi xử lý xử lý, vi điều khiển,, , vi điều khiển
logic AND CổngCổng logic AND
A
A AND B
AA BB AND B A A AND B
B
11 11 11
Cổng AND có thể có nhiều hơn 2 đầu vào Trên một chip có thể có nhiều cổng AND
11 00 00
00 11 00
00 00 00
logic AND: IC 7408 CổngCổng logic AND: IC 7408
logic AND: IC 7411 CổngCổng logic AND: IC 7411
logic OR CổngCổng logic OR
A
A OR B
AA BB A A OR BOR B
B
11 11 11
Cổng OR có thể có nhiều hơn 2 đầu vào Trên một chip có thể có nhiều cổng OR
11 00 11
00 11 11
00 00 00
logic OR: IC 7432 CổngCổng logic OR: IC 7432
logic XOR CổngCổng logic XOR
A
A XOR B
BB XOR B A A XOR B AA
B
11 11 00
Cổng XOR có thể có nhiều hơn 2 đầu vào Trên một chip có thể có nhiều cổng XOR
11 00 11
00 11 11
00 00 00
logic NOT CổngCổng logic NOT
AA NOT A NOT A
11 00
A
NOT A
11 00
00 11
00 11
trạng thái Đệm Đệm 3 3 trạng thái
cc 00 11 zz HiZHiZ xx cc 11 00 zz HiZHiZ xx