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

Chip Chip giải mã

74138 giải mã 74138

Chip Chip giải mã

74138 giải mã 74138

Flip Flop kiểu Flip Flop

kiểu DD

Flip Flop kiểu Flip Flop

kiểu DD

Flip Flop kiểu Flip Flop

kiểu DD

Flip Flop kiểu Flip Flop

kiểu DD

bit 74373 Chốt Chốt 88--bit 74373

bit 74573 Chốt Chốt 88--bit 74573

IC 74244 IC 74244

IC 74244 IC 74244

Đệm Đệm 2 2 chiều

74245 chiều 74245

ĐệmĐệm 2 2 chiều

74245 chiều 74245