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

giáo trình vi điều khiển ths phạm quốc thái

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 (15.41 MB, 116 trang )

1/25/2013
1
Nội dung:
•• Chương 1: Giới thiệu về Vi xử lýChương 1: Giới thiệu về Vi xử lý
• Chương 2: Giới thiệu về cấu trúc của Họ Vi điều
khiển 8051
khiển

8051
• Chương 3: Khảo sát tập lệnh và lập trình Vi điều
khiển 8051
• Chương 4: Hoạt động của bộ định thời

Chương 5: Hoạt động ngắt
Chương

5:

Hoạt

động

ngắt
• Chương 6: Hoạt động truyền thông nối tiếp
• Chương 7: Thiết kế giao tiếp
Chương 1: Giới thiệu về vi xử lý
1.1. Lịch sử phát triểncủavixử lý
Vi xử lý?
Vi xử l
ý
(MicroProcessor) là vi mạch


tích hợpcỡ lớn VLSI (Very High Scale
Intergration) hàng ngàn, hàng triệu
Transistor, có khả năng:
• Th

chi

n các thao tác
(
l

nh
)
.Cácl

nh


( ệ )

đượccấttrongbộ nhớ ⇒ Là mộtvi
mạch lậptrìnhđược.
• Đọcvàghivớibộ nhớ ngoài thông qua
các Bus.
1/25/2013
2
Thiết bị nội thất gia đình Văn phòng ô tô
Đồ điện trong nhà
Máy đàm thoại
Máy điện thoại

Các hệ thống an toàn
Điện thoại
Máy tính
Các hệ thống an toàn
Máy Fax
Điều khiển động cơ
Điều khiển ôtô
Điều khiển hộp số tự động
Điều khiển Túi khí
Ứng dụng
Các bộ mở c

a ga-ra xe
Máy trả lời
Máy Fax
Máy tính gia đình
Tivi
Truyền hình cáp
VCR
Máy quy camera
Điều khiển từ xa
Lò vi sóng
Máy sao chụp
Máy in lazer
Máy in màu,…
Điều khiển ABS, ESP, EBD
Hệ thống bảo mật
Điều khiển truyền tin
Giải trí
Điều hoà nhiệt độ

Điều khiển từ xa
Hệ thống định vị GPS,…
Trò chơi điện tử
Các nhạc cụ điện tử
Điều khiển ánh sáng
Máy nhắn tin
Đồ chơi
Các dụng cụ tập thể hình,…
Ứng dụng điều khiển trên ôtô
1/25/2013
3
Chương 1: Giới thiệu về vi xử lý
1.1. Lịch sử phát triển của vi xử lý
1.1.1. Thế hệ 1 (1971 - 1973)
¾ Năm 1971 Intel đưa ra thị trường Chip Vi xử lý
4004 ⇒ Dùng cho máy tính cầm tay.
• Tần số làm việc: 740 kHz
• Address bus: 12 bit
• Data bus: 4 bit
¾ Năm 1972 Chip 8008 ra đời nhưng chưa tìm
được nhiều ứng dụng.
Chương 1: Giới thiệu về vi xử lý
1.1.2. Thế hệ 2 (1974 - 1977)
¾ 1974 Intel công bố Chip Vi xử lý 8080
Tầ ố là iệ 2MH

Tầ
n s




m v
iệ
c:
2

MH
z
• Address bus: 16 bit
• Data bus:8 bit
¾ 1974 Motorola cũng đưa ra chip VXL 6800.
¾
1975 Intel công bố chip 8085
¾
1975

Intel

công

bố

chip

8085
.
¾ 1976 Zilog đưa ra chip Z80.
⇒ Ứng dụng rộng rãi trong công nghiệp và dùng cho máy
tính cá nhân (Apple II, Commodore 64).
1/25/2013

4
Chương 1: Giới thiệu về vi vi xử lý
1.1.3. Thế hệ 3 (1978 - 1982)
¾Intel công bố Chip VXL 16 bit:
• Năm 1978: Chip 8086.
• Năm 1979: Chip 8088. Sau đó, Chip 80186.
• Năm 1982: Chip 80286 ⇒ Dùng cho các loại máy
vi tính AT.
¾ Trong lúc đó, Motorola cũng công bố VXL 16 bit:
• Năm 1979: Chip MC68000.
• Năm 1983: Chip MC68010.
Chương 1: Giới thiệu về vi vi xử lý
1.1.4. Thế hệ 4 (1983 - 1992)
¾ Intel công bố Chip VXL 32 bit:

Năm 1985: Chip 80386.
Năm

1985:

Chip

80386.
• Năm 1989: Chip 80486DX.
• Năm 1992: Chip 80486DX2.
¾ Motorola cũng công bố VXL 32 bit:
• Năm 1984: Chip 68020.

Năm 1987: Chip 68030


Năm

1987:

Chip

68030
.
• Năm 1988: Chip MM88000.
• Năm 1989: Chip 68040. Sau đó, công bố 68060 (1994).
¾ Zilog cũng công bố VXL Z80000 32 bit.
¾ AMD (Advance Micro Devices) công bố VXL Am29000 32 bit .
1/25/2013
5
Chương 1: Giới thiệu về vi xử lý
1.1.5. Thế hệ 5 (1993 1.1.5. Thế hệ 5 (1993 ––?)?)
¾¾Intel công bố Chip VXL 64 bit:Intel công bố Chip VXL 64 bit:
Nă 1993 P tiNă 1993 P ti
••

m
1993
:
P
en
ti
um.

m
1993

:
P
en
ti
um.
•• Năm 1997: Pentium II. Năm 1997: Pentium II.
•• Năm 1999: Pentium III.Năm 1999: Pentium III.
•• Năm 2000: Pentium 4.Năm 2000: Pentium 4.
••
Năm 2006: Intel® Core® 2 DuoNăm 2006: Intel® Core® 2 Duo
••
Năm

2006:

Intel®

Core®

2

Duo
.
Năm

2006:

Intel®

Core®


2

Duo
.
¾¾ Motorola cũng công bố VXL 64 bit 68060 và Power Motorola cũng công bố VXL 64 bit 68060 và Power
PC.PC.
Các Chip Vi xử lý của Intel qua các thời kỳ
1/25/2013
6
Họ vi xử lý x86 của Intel
• Model Năm sản xuất Số lượng Transistor
• 4004 1971 2,300
• 8008 1972 2
,
500
,
• 8080 1974 5,000
• 8086 1978 29,000
• 80286 1982 120,000
• 80386™ processor 1985 275,000
• 80486™ DX processor 1989 1,180,000
• Pentium® processor 1993 3,100,000
• Pentium II processor 1997 7,500,000
• Pentium III processor 1999 24,000,000
• Pentium 4 processor 2000 55,000,000
¾Năm 2003 AMD công bố Chip 64 bit :
AMD Athlon 64 và AMD Opteron.
1/25/2013
7

¾Năm 2004 AMD ra mắt VXL nhân 2:
AMD Turion 64 x2 và ADM Athlon 64 x2.
¾¾Năm 2007 AMD công bố VXL 4 nhân : Năm 2007 AMD công bố VXL 4 nhân :
Opteron và PhenomOpteron và Phenom
1/25/2013
8
1.2. Các thông số cơ bản của Vi xử lý
¾ Chiều dài từ dữ liệu (D-Bus, Data Bus )
¾
Khả ă t ấtbộ hớ (A
BAdd B)
¾
Khả
n
ă
ng
t
ruy xu
ất

bộ
n
hớ

(A
-
B
us,
Add
ress

B
us
)
¾Các Thanh
g
hi
¾Tốc độ của Vi xử lý
g
¾Tập lệnh
1.2.1. Chiều dài từ dữ liệu (D1.2.1. Chiều dài từ dữ liệu (D Bus, Data Bus)Bus, Data Bus)
• Mỗibộ VXL chỉ có thể xử lý dữ liệuvớimột độ
dài cốđịnh. Độ dài củatừ càng lớnthìtốc độ xử
lý càng nhanh.
• Ví dụ: So sánh VXL 8 bit và VXL 64 bit.
VXL 64 bit: mỗilầnlấydữ liệutừ bộ nhớ có thể
lấy
8
byte
.
Trong
khi
đó
VXL
8
bit
chỉ

thể
lấy
lấy

8
byte
.
Trong
khi
đó
VXL
8
bit
chỉ

thể
lấy
1byte⇒ VXL 64 bit có tốc độ xử lý nhanh hơn.
1/25/2013
9
1.2.2. Khả năng truy xuất bộ nhớ (A1.2.2. Khả năng truy xuất bộ nhớ (A Bus, Bus,
Address Bus)Address Bus)
• Độ rộng củaBusđịachỉ (A-Bus) quyết định
khả
năng
truy
xuất
bộ
nhớ
A
Bus
càng
lớn
thì

khả
năng
truy
xuất
bộ
nhớ
.
A
-
Bus
càng
lớn
thì
khả năng truy xuấtbộ nhớ càng lớn ⇒ có khả
năng xử lý chương trình càng lớn.
• Gọinlàđộ rộng củaA-Bus⇒ VXL có khả
năng truy xuất2
n
ônhớ.
Ví dụ: VXL có 32 (A
0
–A
31
) đường địachỉ
⇒ có khả năng truy xuất2
32
=4Gbyteônhớ.
1.2.3. Tốc độ làm việc 1.2.3. Tốc độ làm việc
Tầnsố xung cấp cho VXL quyết định tốc độ làm
việccủa VXL. VXL có tốc độ làm việccànglớn

thì
khả
năng
truy
xuất
lệnh
càng
lớn
Tốc
độ
thì
khả
năng
truy
xuất
lệnh
càng
lớn
.
Tốc
độ
làm việc (triệulệnh/giây-MIPS) được xác định:
MIPS = f*N/(M + T)
f: tầnsố làm việccủa VXL.

N: s

lượng bộ ALU.
M: số chu kỳ máy.
T: thờigiantruycậpbộ nhớ.

1/25/2013
10
1.2.4. Các Thanh ghi của VXL 1.2.4. Các Thanh ghi của VXL
Các thanh ghi là mộtphần quan trọng
tron
g
c

utrúccủa VXL. Dùn
g
đ

lưutrữ
,
g
g
,
kiểmtra,xử lý dữ liệu khi tính toán.
Số lượng thanh ghi càng lớn thì ngườilập
trình có th

vi
ế
tchươn
g
trình đơn
g
iản
g
g

hơn ⇒ Tốc độ xử lý sẽ nhanh hơn.
1.2.5. Tập lệnh của VXL
Tậplệnh củaVXLđóng vai trò rất quang trọng.
Mỗiloại VXL có mộttậplệnh riêng. VXL hoạt
động theo sự chỉ dẫncủatậplệnh. Ngườilập
trình dựa vào tậplệnh để soạnthảochương
trình điều khiểnhoạt động của VXL.
Số
lượng
tập
lệnh
càng
nhiều
thì
người
lập
trình
Số
lượng
tập
lệnh
càng
nhiều
thì
người
lập
trình
càng dễ dàng lựachọ khi lập trình.
1/25/2013
11

Tậplệnh thông thường được chia làm các nhóm
như sau:
• Nhóm lệnh chuyểndữ liệu.
• Nhóm lệnh số học và logic.
• Nhóm lệnh xử lý bit.
• Nhóm lệnh rẽ nhánh.

Nhóm
lệnh
điều
khiển
hệ
thống

Nhóm
lệnh
điều
khiển
hệ
thống
,…
1.2. Cấu trúc bên trong của Vi xử lý1.2. Cấu trúc bên trong của Vi xử lý
AH AL
BH BL
CH CL
DH
DL
CS
SUMMATION
Address Bus 20 bits

Data Bus
EU BIU
Temporary
DH
DL
SP
BP
DI
BI
DS
SS
ES
IO
Internal
Communications
Registers
Bus
Control
8088
Bus
Temporary
Registers
ALU
Flags
EU
Control
1 2 3 4
Instruction Queue
1/25/2013
12

Bên trong VXL 8088/8086 gồm 2 khối cơ
bản:
• Khối phối ghép bus (BIU - Bus Interface
Unit)
• Khối thực hiện lệnh (EU - Excution Unit)
BIU
• Khốiphối ghép bus (BIU): đưarađịachỉ, đọc

lệnh
từ
bộ
nhớ
Đọc/ghi
dữ
liệu
vào/ra
từ

lệnh
từ
bộ
nhớ
.
Đọc/ghi
dữ
liệu
vào/ra
từ
cổng giao tiếphoặcbộ nhớ nhớ.
• TrongBIUcòncóbộ nhớđệm (cache): dùng để

chứ các mã lệnh đọc đượcnằmsẵn để chờ EU

ý
x

l
ý
.
1/25/2013
13
Bên trong EU gồm có:
• Khối điều khiển (CU - Control Unit), có chức năng:
EUEU
− Cung cấp thông tin về địa chỉ để BIU đọc lệnh và dữ liệu.
− Giải mã lệnh và thực hiện lệnh.
− Đưa ra các xung điều khiển hoạt động của VXL.

Khốisố họcvàlogic(ALU
Arithmetic and Logic

Khối

số

học



logic


(ALU

Arithmetic

and

Logic

Unit): dùng để thực hiện các thao tác khác nhau với
các toán hạng của lệnh.
Để tăng tốc độ xử lý thì sử dụng các kỹ thuật:
• Bộ nhớ Cache.
ầ ố
• Tăng t

n s

làm việc của VXL.
• Tăng độ rộng từ dữ liệu (D-Bus).
• Cơ chế Pipelining.

Xử lý /bộ đồ ử lý

Xử


song song
/bộ

đồ

ng x



.
1/25/2013
14
Cơ chế pipelining
F1 D1 E1 F2 D2 E2 F3 D3 E3
F1 D1
F2
E1
D2 E2
Không có
pipelining

p
i
p
elinin
g
F3 D3 E3
pp g
Giới thiệu về Hệ Vi xử lý
1/25/2013
1
Nội dung:
• Chương 1: Giới thiệu về Vi xử lý
•• Chương 2: Giới thiệu về cấu trúc của Họ Vi điều Chương 2: Giới thiệu về cấu trúc của Họ Vi điều
khiể 8051khiể 8051

khiể
n
8051khiể
n
8051
• Chương 3: Khảo sát tập lệnh và lập trình Vi điều
khiển 8051
• Chương 4: Hoạt động của bộ định thời

Chương 5: Hoạt động ngắt

Chương

5:

Hoạt

động

ngắt
• Chương 6: Hoạt động truyền thông nối tiếp
• Chương 7: Thiết kế giao tiếp
Chương 2: Cấu trúc họ vi điều khiển 8051
2.1. Giớithiệu chung
• Cùng vớiviệc phát triểncácVXLchohệ máy tính, các
hãng cũng chế tạocáchệ vi xử lý chuyên dụng
⇒ Vi điềukhiển(VĐK).
• VĐK (MicroController) là một thiếtbị tích hợpcác
p
hầntử củam


th

vi xử l
ý
lên trên cùn
g
m

tChi
p
.
p


ý
g

p
1/25/2013
2
Chương 2: Cấu trúc họ vi điều khiển 8051
2.1. Giớithiệu chung
VĐK
cũng

thể

:
VĐK

cũng

thể

:
–Timer:phụcvụ cho các hoạt động có tính chu kỳ.
– Truyềntinnốitiếp : dùng để kếtnốivớicácthiết
bị khác.
– ADC : cho phép xử lý các tín hiệutương tự -số.
1/25/2013
3
Chương 2: Cấu trúc họ vi điều khiển 8051
2.2. Giớithiệu chung về họ VĐK 8051
• Hiệnnaycóhơn40côngtysảnxuấtcácloạiviđiều
khiển
khác
nhau
của
họ
8051
khiển
khác
nhau
của
họ
8051
.
• Mộtsố công ty có trên 40 version 8051.
• Trên 100 triệuviđiềukhiển 8051 đượcbánramỗi
năm.

• Họ VĐK MCS-51 được phát triểnbởiIntelnăm 1980
và sau đó các nhà sảnxuất khác như: Siemens, Philips,
Atmel,…
1/25/2013
4
Tóm tắtmộtsốđặc điểm chính củahọ 8051:
4K bytes ROM trong.
128 bytes RAM trong.
4

I/O
8
bit
4
c

ng
I/O
8
-
bit
.
2bộđịnh thời16bit.
Giao tiếpnốitiếp.
Quảnlýđược 64K bộ nhớ chương trình bên ngoài.
Quảnlýđược 64K bộ nh

d

liệu bên ngoài.

Thao tác trên các Bit riêng rẽ.
210 vị trí nhớđược định địachỉ Bit.
Thựchiện phép nhân/chia trong 4μs.
MCS-51 bao gồm nhiềuphiênbản khác nhau, mỗi
phiên bảnsautăng thêm mộtsố thanh ghi điềukhiểnhoạt
động của MCS-51.
Đặctính
8051
8031
8751
8052
8032
8752
Đặc

tính
8051
8031
8751
8052
8032
8752
ROM trên chíp 4K byte 0K 4K 8K 0K 8K byte
RAM 128 byte 128 byte 128 byte 256 byte 256 byte 256 byte
Bộ định thời222333
Chân vào ra 32 32 32 32 32 32
1/25/2013
5
Cấu trúc bên
trong của MCS-51

1/25/2013
6
Vi điều khiển AT89C51
• AT89C51 là vi điều khiển do Atmel sản xuất, chế tạo
theo công nghệ CMOS.
• 4 KB EEPROM (Electrical Erase Programmable Read
Only Memory), có khả năng tới 1000 chu kỳ ghi xoá.
2.3. Sơ đồ chân
1/25/2013
7
2.3. Sơ đồ chân
¾ Chân nguồn: Vcc, GND.
¾ Các cổng vào/ra: P0, P1, P2, P3.
¾ Chân truy xuất bộ nhớ ngoài: /EA.
¾ Chân cho phép bộ nhớ chương
trình: /PSEN.
¾ Chân cho
p

p
chốt đ

a chỉ: ALE.
pp ị
¾ Chân Reset: RST.
¾ Các chân XTAL1 và XTAL2.
¾ Chân nguồn:
V
5V
±

20%
(hâ ố 40)
V
cc
=
5V

±
20%
:
(
c

n s


40)

GND = 0V : (chân số 20)
1/25/2013
8
¾ Các cổng vào/ra
• P
0
:gồm các chân từ 32 – 39, có 2 công dụng:
9
X ấ
/
hậ


h
á
hiế
kế
hỏ
9
X
u

t
/
n
hậ
p:

ng c
h
oc
á
ct
hiế
t
kế
n
hỏ
.
9 Bus địachỉ /dữ liệu đahợp: khi dùng các
thiếtkế lớn, đòi hỏiphảisử dụng bộ nhớ
n
g

oài thì Port 0 vừalà
b
us d

liệu
(
8
b
it
)
vừa
g
(
)
là bus địachỉ (8 bit thấp).
¾ Các cổng vào/ra
• P
1
:gồm các chân từ 1-8: Chỉ có chứcnăng
xuất/nhập.
Tuy nhiên đốivới các VĐK: 8032, 8052, 8752 (có
sử dụng bộđịnh thờithứ 3) thì P
1.0
và P
1.1
còn làm
ngõ vào cho bộđịnh thờithứ 3.
1/25/2013
9
¾ Các cổng vào/ra

• P
2
:gồm các chân từ 21 – 28, có 2 công dụng:
9

ế
ế
9
Xu

t/nhập: dùng cho các thi
ế
tk
ế
nhỏ.
9 Bus địachỉ /dữ liệu đahợp: khi dùng các
thiếtkế lớn, đòi hỏiphảisử dụng bộ nhớ
n
g
oài thì Port 2 vừalà
b
us d

li

u
(
8
b
it

)
vừa
g

(
)
là bus địachỉ (8 bit cao). -
• P
3
:gồm các chân từ 10 – 17, có 2 công dụng:
9 Xuất/nhập.
9 Các công dụng khác đượcmôtả như sau:
Bit Tên Chức năn
g
P3.0 RxD Ngõ vào port nối tiếp
P3.1 TxD Ngõ ra port nối tiếp
P3.2 /INT
0
Ngắt ngoài 0
P3.3 /INT
1
Ngắt ngoài 1
P3.4 T
0
Ngõ vào của bộ định thời 0
P3.5 T
1
Ngõ vào của bộ định thời 1
P3.6 /WR Điều khiển ghi dữ liệulênbộ nhớ ngoài.
P3.7 /RD Điều khiển đọctừ bộ nhớ dữ liệu ngoài.

1/25/2013
10
¾ Chân truy xuất bộ nhớ ngoài: /EA (External Access)
• EA (chân 31) dùng để cho phép thực thi chương trình
từ ROM ngoài.
• Khi nối EA với Vcc (5V) , AT89C51 sẽ thực thi chương
trình từ ROM nội.
• Ngược lại, khi nối EA với GND (0V) , AT89C51 sẽ thực
t
hi
c
h
ươ
n
g

t
rình
từ
R
O
M n
goà
i
.

tcươ gt từ O goà .
• Ngoài ra, chân EA còn được dùng để nhận điện áp
cho việc lập trình (V
pp

) EPROM nội.
¾ Chân cho phép bộ nhớ chương trình: /PSEN
(Program Store Enable)
• PSEN (chân 29): cho phép đọc bộ nhớ chương trình mở
rộng đốivớicácứng dụng sử dụng ROM ngoài
rộng

đối

với

các

ứng

dụng

sử

dụng

ROM

ngoài
.
• Thường được nối đến chân OE (Output Enable) của
ROM ngoài để đọc các byte mã lệnh.
• Khi 89x51 thi hành chươn
g
trình tron

g
ROM nội, PSEN
sẽ ở mức logic 1.
1/25/2013
11
¾ Chân cho phép chốt địa chỉ: ALE (Address Latch Enable)
• ALE/ PROG (chân 30) cho phép tách các đường địachỉ và
dữ liệutại Port 0 và Port 2.
• Khi truy xuấtbộ nhớ ngoài. ALE thường nốivới
chân Clock củaICchốt (74373, 74573).
• Các xung tín hiệu ALE có tốc độ bằng 1/6 lầntầnsố dao
động trên chip (12/6 = 2 MHz).
• Ngoài ra, chân này còn được dùng để nhận ngõ vào xung
lập trình cho ROM nội (PROG).
¾ Chân Reset: RST
• Ngõ vào Reset (chân 9): dùng để thiếtlậptrạng thái ban
đầu(Reset)chohệ thống.
• Để thựchiện Reset cầnphảigiữ ngõ vào RST ở mứccaoít
hấ
2
h
kỳ
á
n
hấ
t
2
c
h
u

kỳ
m
áy
.

×