Tải bản đầy đủ (.doc) (70 trang)

KỸ THUẬT VI ĐIỀU KHIỂN ỨNG DỤNG VI ĐIỀU KHIỂN HỌ 8051

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 (767.53 KB, 70 trang )

§å ¸ n m«n häc : Vi xö lý

GV HD : T RÇ N V¡ N H¹NH
Sinh

viªn:

§INH

NGäC

C¦êNG
1
Líp:

§L

-

§§T3

BỘ LAO ĐỘNG TH
Ư
ƠNG BINH VÀ XÃ HỘI
TR
Ư
ỜNG ĐẠI HỌC S
Ư
PHẠM KỸ THUẬT NAM ĐỊNH
KHOA: ĐIỆN - ĐIỆN TỬ






ĐỒ ÁN MÔN HỌC
KỸ THUẬT VI ĐIỀU KHIỂN
ỨNG DỤNG VI ĐIỀU KHIỂN HỌ 8051
Sinh viên
t
hực hiện: ĐINH NGỌC CƯỜNG
G
i
áo viên h
ư
ớng dẫn: TRẦN VĂN HẠNH
Lớp: ĐL ĐIỆN - ĐIỆN TỬ K3
Nam Định - năm 2010

Sinh

viªn:

§INH

NGäC

C¦êNG
2
Líp:

§L


-

§§T3
§å ¸ n m«n häc : Vi xö lý

GV HD : T RÇ N V¡ N H¹NH

PHẦN I. GIỚI THIỆU VỀ ĐỀ T
À
I
LỜI NÓI ĐẦU
Trong nhiều

nh vực sản xuất công nghiệp h
i
ện nay, nhất là ngành công
Nghiệp luyện k
i
m, chề b
i
ến
t
hực phẫm vấn đề đo và khống chế nhiệt độ đặc biệt
đ
ư
ợc chú
t
rọng đến v
ì


l
à mộ
t
yếu tố quyết định chất
l
ư
ợng sản phẫm. Nắm đ

ợc
tầm quan
t
rọng của vấn đề
t
rên nhóm thực hiện
ti
ến hành nghiên cứu và thiế
t
kế
một hệ thống đo nhiệ
t
độ kết hợp với ph

ơng
t
hức truyền thông , với mong muốn là
giải quyết những yêu cầu trên. Những kiến
t
hức năng lực đạt đ
ư

ợc trong quá trình
học tập ở
t
r
ư
ờng sẽ đ
ư
ợc đánh giá qua đợt bảo vệ đồ án môn học. Vì vậy chúng em
cố gắng tận dụng
tất
cả những kiến
t
hức đã học ở tr
ư
ờng cùng với sự tìm tồi ngh
i
ên
cứu, để có thể hoàn thành
t

t

l
uận văn này. Những sản phẫm những kế
t
quả
đạt
đ
ư
ợc ngày hôm nay

t
uy không có gì
l
ớn
l
ao. Nh
ư
ng đó là những
t
hành quả của năm
học tập. Là thành công đầu
ti
ên của chúng em tr
ư
ớc khi ra tr
ư
ờng.
Mặt dù chúng em rất cố gắng để hoàn thành tập luận văn này đúng
t
hời hạn,
nên không
t
ránh khỏi những thiếu sót mong quí thầy cô
t
hông cảm. Chúng em
mong đ

ợc đón nhận những ý kiến đóng góp. Cuối cùng xin chân thành cảm ơn quí
thầy cô và các bạn sinh viên.


I. ĐẶT VẤN ĐỀ
PHẦN II: NỘI DUNG
CH
Ư
ƠNG 1:DẪN NHẬP
Ngày nay vớ
i
sự phát triển của công nghiệp vi điện tử, kỹ thuật số các
hệ
thống điều khiển dần dần đ
ư
ợc tự động hóa. Với những kỹ thuậ
t
tiên
ti
ến nh

vi xử
lí, vi mạch số đựơc ứng dụng vào lỉnh vực điều khiển, thì các hệ thống điều khiển
cơ kh
í
thô sơ, vớ
i
tốc độ xử

chậm chạp
ít
chính xác đ
ư
ợc

t
hay thế bằng các hệ
thống điều khiển tự động với các lệnh ch
ư
ơng trình đã đ
ư
ợc thiế
t
lập tr

ớc. Trong
quá trình sản xuất ở các nhà máy, xí nghiệp hiện nay, việc đo nhiệ
t
độ tự động là
một yêu cầu hết sức cần
t
h
i
ế
t
và quan
t
rọng. Vì nếu nắm bắt đ
ư
ợc nhiệt độ
l
àm việc
của các hệ thống. Dây chuyền sản xuất giúp ta biết đ
ư
ợc


nh trạng làm việc của
các yêu cầu. Và có những xử
l
ý kịp thời
t
ránh đ
ư
ợc những h
ư
hỏng và sự cố có
t
hể
xảy ra. Để đáp ứng đ
ư
ợc yêu cầu đo nhiệt độ
t
ự động, thì có nhiều ph

ơng pháp để
thực hiện, nghiên cửu khảo sát vi điều khiển 8051 nhóm thực hiện nhận thấy rằng:
ứng dụng vi điều khiển 8051 vào việc đo và khống chế nhiệt độ tự động là ph

ơng
pháp tối
ư
u nhất. Đồng đ

ợc sự đồng ý của khoa Điện Tr


ờng Đại Học S

Phạm Kỹ
Thuật. Nhóm chúng em
ti
ến hành
t
hực hiện đề
t
à
i
“ thiế
t
kế mạng
t
hu
t
hập dữ
li
ệu
dùng vi điều khiển 8051”.
II.GIỚI HẠN ĐỀ T
À
I :
Với
t
hời gian có hạn cũng nh

trình độ có hạn chúng em đã cố gắng hoàn thành tập
đồ án này nh


ng ch

giải quyết đ

ợc một số vấn đề sau:
- Thiết kế mạch đo nhiệt độ trong phòng
- Thiết kế 1 hệ thống thu thập nhiệt độ phòng gồm 1 vi điều khiển master và 1
vi điều khiển slave.
- Viế
t
ch

ơng trình cho vi điều khiển 8051 để đáp ứng các yêu cầu trên
III. MỤC ĐÍCH NGHIÊN CỨU
Mc ớch tr

c ht khi thc hin
ti
ny l hon t
t
ch

ng trỡnh mụn
hc iu kin ra
t
r

ng. C
t

h khi nghiờn cu thc hin
ti
l chỳng em
mun phỏt huy nhng thnh qu ng dng ca vi iu khin nhm to ra nhng sn
phm, nhng
t
h
i

t
b
ti
ờn tin hn, v t hiu qu sn xut cao hn. Mt khỏc tp
ỏn ny cng cú th lm t
i

li
u tham kho cho nhng sinh viờn khúa sau. G
i
ỳp
h hiu rừ hn v nhng ng dng ca vi
i
u khin .
Ngũai ra quỏ trỡnh nghiờn cu thc hin t
i
l mt c hi chỳng em
t
kim
tra
l


i
nhng kin
t
hc ó

c hc
t
r

ng, ng th
i
phỏt huy tớnh sỏng to, kh
nng gii quyt mt vn theo yờu cu
t
ra. V õy cng
l
dp chỳng em
t

khng nh mỡnh tr

c khi ra tr

ng tham gia vo cỏc hot ng sn xut ca xó
hi.
CH

NG 2: GII THIU CHUNG V B VI IU KHIN
I. GIớI THIệU

Bộ vi đ
i
ều khiển viết
tắt
là Micro-controller, là mạch tích hợp trên một chip
có thể lập trình đ

ợc, dùng để điều khiển hoạt động của một hệ thống. Theo các tập
lệnh của ng

ời
l
ập trình, bộ vi điều khiển
ti
ến hành đọc,
l

u
t
rữ thông
ti
n, xử
l
ý
t
hông
ti
n, đo
t
hời gian và

ti
ến hành đóng mở một cơ cấu nào đó. Trong các
t
h
i
ếh
bị
điện và điện và điện tử dân dụng, các bộ vi điều khiển, điều khiển hoạt động của
TV, máy giặt, đầu đọc laser, điện thọai, lò vi-ba. Trong hệ thống sản xuấ
t
tự động,
bộ vi điều khiển đ

ợc sử dụng trong Robot, dây chuyền tự động. Các hệ thống càng
thông minh
t
h
ì
vai trò của hệ vi điều khiển càng quan trọng.
II. LịCH Sử PHáT TRIểN CủA Bộ VI ĐIềU KHIểN :
Bộ vi điều khiển thực ra, là một
l
oạ
i
vi xử

trong
t
ập hợp các bộ vi xử
l

ý nói
chung. Bộ vi điều khiển đ

ợc phát triển
t
ừ bộ vi xử

, từ những năm 70 do
sự pháttriển và hoàn thiện về công nghệ vi điện tử dựa trên kỹ thuật MOS
(Metal-
Oxide-Semiconductor) , møc ®é tÝch hîp cña c¸c
li
nh kiÖn b¸n dÉn trong mét ch
i
p
ngày càng cao.
Năm 1971 xuất hiện bộ vi xử

4 bit loại TMS1000 do công
t
y texas Instruments
vừa là nơi phát minh vừa là nhà sản xuất. Nhìn tổng
t
hể thì bộ vi xử

ch

có chứa
trên một chip những chức năng cần thiế
t

để xử

ch

ơng trình theo mộ
t
trình tự, còn
tất
cả bộ phận phụ trợ khác cần thiết nh


:
bộ nhớ dữ liệu , bộ nhớ ch

ơng trình , bộ
chuển đổi AID, khối điều khiển, khối hiển thị, điều khiển máy in,hối đồng hồ và
lịc
h là những linh kiện nằm ở bên ngoài đ

ợc nối vào bộ vi xử lí.
Mãi đến năm 1976 công
t
y INTEL (Interlligen-El
i
ctronics). Mới cho ra đời bộvi
điều khiển đơn chip đầu tiên
t
rên thế giới với
t
ên gọi 8048. Bên cạnh bộ xử


trung
tâm 8048 còn chứa bộ nhớ dữ liệu, bộ nhớ ch

ơng trình, bộ đếm và phát thờ
i
g
i
an
các cổng vào và ra Digi
tal

t
rên mộ
t
chip.Các công
t
y khác cũng lần
l

ợc cho ra đờ
i
các bộ vi điều khiển 8bit
t

ơng tự nh

8048 và hình thành họ vi điều khiển MCS-48
(Microcontroller-sus
t

em-48).Đến năm 1980 công
t
y INTEL cho ra đời
t
hế hệ thứ
hai của bộ vi điều khiển đơn ch
i
p với tên gọi 8051. Và sau đó hàng loạt các vi điều
khiển cùng
l
oạ
i
với 8051 ra đời và hình
t
hành họ vi điều khiển MCS-51 . Đến nay
họ vi điều khiển 8 bit MCS51 đã có đến 250 thành v
i
ên và hầu hế
t
các công
t
y hàng
dẫn hàng đầu thế giới chế
t
ạo. Đứng đầu là công ty INTEL và rấtnhiều công
t
y khác
nh



:
AMD, SIEMENS, PHILIPS, DALLAS, OKI Ngoài ra còn có các công
t
y khác cũng có những họ vi điều khiển riêng nh

:
-Họ 68hcos của công ty Motola
-Họ st62 của công ty sgs-thomson
-Họ h8 của công ty Hitachi
-Họ pic của công ty Micro chip
III.KHảO SáT Bộ VI ĐIềU KHIểN 8051 V

8031
1. Các thông số cơ bản
IC vi điều khiển 8051/8031 thuộc họ MCS51 có các đặ
t
điểm sau
:
- 4kby
t
e ROM (đ

ợc lập trình bởi nhà sản xuất chỉ có ở 8051)
- 128 búyt RAM
- 4port I10 8bit
- Hai bộ định thời 16bit
- Giao tiếp nố
i

tiế

p
- 64KB không gian bộ nhớ ch

ơng
t
r
ì
nh mở rộng
- 64 KB không gian bộ nhớ dữ
li
ệu mở rộng
- một bộ xử

luận

(thao tác trên các bit đơn)
- 210 bi
t
đ

ợc địa chỉ hóa
- bộ nhân
/
chia 40s
2.CấU TRúC BÊN TRONG CủA 8051
/
8031
Hình 2.1 Cấu trúc bên trong của 8051/
Nhiệm vụ các khối
- CPU: thực hiện các phép toán số học và

l
ô g
í
c, đ

a ra các chỉ th

lệnh
- Bộ tạo dao động: tạo ra

n hiệu xung nhịp cho CPU ,
t
ạo xung nhịp cho
timer/couter
- BUS điều khiển: tập chung

n hiệuđiều khiểnhoạt động của vi điều khiển
- PSEN: ( Program store enable) dùng để truy suấ
t
bộ nhớ ngoà
i
( bộ nhớ trong của
8051: ROM 4 kbyte, RAM 128 byte)
P0.6
P0.6
EA/CP
ALE/PRO
(
WR
)

(
RD
)
XTAL
XTAL1
+ Khi PSEN= 0: cho phép truy suất bộ nhớ ngoài
+ Khi PSEN= 1: cho phép truy suất bộ nhớ trong
- EA: dùng để truy suất bộ nhớ dữ
li
ệu hoặc bộ nhớ ch

ơng trình ngoài
- RST: reset
- ALE: (Adress Latch Enable) dùng để tách tín hiệu đ

a chỉvà

n h
i
ệu ở cổng P0
- Khối vào ra song song: dùng để
t
ruy suấ
t
dữ
li
ệu 8 bi
t
- Khối vào ra nối tiếp: dùng để truy suất dữ
liệ

u nối
tiế
p theo tiêu chuẩn RS232
- Khối sử lý ngắt: tiếp nhận ngắt và thực h
i
ện ch

ơng
t
rình phục vụ ngắt
- T
i
mer/ couter
:
tạo khoảng thời g
i
an hoặc đếm các sự kiện
- ROM on chip: (4 kbyte)
l

u giữ ch

ơng trình
- RAM on chíp: (128 byte)
l

u g
i
ữ ch


ơng trình tạm thời
3.Sơ Đồ CHÂN VI ĐIềU KHIểN
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST
(
RXD
)
(
TXD
)
(
NT0
)
(
NT1
)
(
T0
)
(
T1
)
GND

1
40
2
39
3 38
4
37
5 36
6
35
7
34
8
8051
33
9
(89C51)
32
10
31
11
30
12
29
13
28
14 27
15 26
16 25
17 24

18
23
19
22
20 21
Vcc
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
PSEN
P2.7
P2.6
P2.5
P2.4
(
A12
)
P2.3
P2.2
P2.1

(
A9
)
P2.0

(

AB
)
Hình 2.2 Sơ đồ chân của IC 89C51
Chức năng các chân
Chân 32

39
t
huộc cổng P0
t
hực hiện
t
ruy suất dữ liệu hoặc làm chân địa
chỉ trong tr

ờng hợp có
t
h
i
ế
t
kế mở rộngbộ nhớ
Chân 1

8 thuộc cổng P1 chỉ dùng để
t
ruy suất dữ liệu
Chân 21

28 thuộc cổng P2có chức năng cơ bản dùng để vào ra dữ

li
ệu
trong tr

ờng hợp có thiết kế mở rộng bộ nhớ thì nó đ

ợc dùng làm chân địa chỉ cho các
bít cao của địa chỉ 16 b
it
Chân 10

17
t
huộc cổng P3 ở trạng thái b
ì
nh th

ơng ta có thể dùng để vào
ra dữ liệu, ngoài ra cổng P3 còn
l

u giữ các chức năng đặc biệt
P
3.I
Tên Chức năng
P
3.0
R
XD
Nhập dữ liệu

t
rong
t
r

ờng hợp truyền nối tiếp
P
3.1
T
XD
Phát dữ liệu trong tr

ờng hợp
t
ruyền song song
P
3.2
INT
0
Đầu vào ngắ
t
0
P
3.3
INT
1
Đầu vào ngắ
t
1
P

3.4
T
0
Đầu vào cho bộ
ti
mer/couter 0
P
3.5
T
1
Đầu vào cho bộ
ti
mer/couter 1
P
3.6
WR Đ

ờng điều khiển ghi bộ nhớ ngoài
P
3.7
RD Đ

ờng điều khiển đọc bộ nhớ ngoài
Chân 18, 19: Đầu vào của bộ dao động
Chân 20
:
chân Mass
Chân 40
:
chân d


ơng nguồn
4.Tổ chức bộ nhớ
Các vi điều khiển thuộc ho 8051 đều tổ chức thành 2 không gian ch

ơng trình
và dữ liệu. Kiến trúc vi xử lý 8 bi
t
của 8051 này cho phép truy nhập và

nh toán
nhanh hơn đố
i
với không gian dữ liệu nhờ việc phân không gian bộ nhớ
ch

ơng trình và dữ
li
ệu nh

trên. Tuy nhiên bộ nhớ ngoài đ

ợc truy nhập bởi hệ
thống 16 bit địa chỉ vẫn có thể thực hiện nhờ thanh ghi con trỏ Bộ nhớ ch

ơng trình
( ROM, EFROM)
l
à bộ nhớ chỉ đọc, có thể mở rộng tối đa 64kbyte. Với họ vi điều
khiển 89xx, bộ nhớ ch


ơng
t
r
ì
nh đ

ợc

ch hợp sẵn trong chip có kich th

ớc nhỏ
nhất
l
à 4Kbyte. Với các vi điều khiển không

ch hợp sẵn bộ nhớ ch

ơng trình trên
chip, buộc phả
i
thiế
t
kế bộ nhớ ch

ơng trình bên ngoài. Ví dụ sử dụng EFROM:
2746(64Kbyte) khi đó chân PSEN phải đặt ở mức cao (5V). Bộ nhớ dữ
liệ
u (RAM)
tồn tạ

i
độc
l
ập so với bộ nhớ ch

ơng
t
r
i
nh. Họ vi điều khiển8051 có bộ nhớ dữ
liệ
u
tíc
h hợp trên chip nhỏ nhất là 128 Byte và có thể mở rộng dữ liệu ngoà
i
lên tới
64Kbyte. Với những vi điều khiển không

ch hợp Rom trên chip thì vẫn có RAM
treenc chip là 128 byte. Khi sử dụng RAM ngoài Cpu đọc và ghi dữ
li
ệu nhờ tín
hiệu trên các chân RD và WR. Kh
i
sử dụng cả bộ nhớ ch

ơng
t
r
ì

nh và bộ nhớ dữ
liệ
u bên ngoà
i
thì buộc phảo kết hợp chân RD và PSEN bởi cổng logic AND đế
phân biệt tín hiệu truy xuấ
t
dữ liệu trên ROM hay trên RAM
4.1 Bộ nhớ ch

ơng trình
Hình 2.3 Cấu trúc bộ nhớ ch

ơng trình
Hình 2.4 Đ

a ch

ngắt
t
rên bộ nhớ ch

ơng trình
Sau khi khởi động CPU bắt đầu thực hiện ch

ơng trình ở vị trí 0000h. Mõi
khi có ngắ
t
xảy ra con trỏ của CPU sẽ nhảy đến đúng địa ch


ngắ
t

t

ơng ứng và thực
thi ch

ơng trình
tại
đó
4.2 Bộ nhớ dữ
liệ
u
Hình 2.5 Cấu trúc bộ nhớ dữ liệu
Hình trên mô tả cẩu trúc bộ nhớ dữ liệu
t
rong và bộ nhớ dữ liệu ngoài của họ
vi điều khiển 8051. CPU sẽ dùng đến các chân RD và WR khi truy cập đến bộ nhớ
dữ liệu ngoài. D

ới đây là cấu trúc bộ nhớ dữ liệu trong chip, đ

ợc chia
l
àm 3 khối
là 128 byte thấp, 128 byte cao và 128 byte đặc biệt
Hình 2.6 Cấu
t
rúc bộ nhớ dữ liệu trên chip

Hình d

ới đây mô tả cấu trúc 128 byte thấp của bộ nhớ dữ
liệ
u của họ v
i
điều
khiển 8051. 32byte đầu
ti
ên ( 00H - 1FH) đ

ợc sử dụng cho 4 bộ bank thanh ghi R0
- R7. Hai b
it
của thanh gh
i
đặc biệt PSW sẽ lựa chon 1
t
rong 4 bộ
t
hanh ghi mà vi
điều khiển sẽ dùng trong khi thực hiện ch

ơng
t
rình
Hình 2.7 Cấu trúc 128 byte thấp của bộ nhớ dữ liệu
t
rong
8051 chứa 210 vị trí bit đ


ợc định địa chỉ trong đó 128 bit chứa các byte ở
địa chỉ từ 20H đến 2FH và phần còn
lại
chứa trong các thanh ghi chức năng đặc
biệt. Ngoài ra 8051 còn có các por
t
xuất/nhập có
t
hể định địa chỉ bit, điề này làm
đơn giản việc giao tiếp bằng phấn mềm vớ
i
các thiết bị xuất/nhập đơn bit.
Vùng
RAM đa mục đích có 80 byte đặ
t
ở địa ch

30H đến 7FH, bân d

ới vùng này từ địa
chỉ 00H đến 20Fh là vùng nhớ có
t
hể sử dụng
t

ơng tự. Bấ
t
kỳ ở vị trí nào
t

rên Ram
đa mục đích đều có thể đ

ợc
t
ruy xuất tự do bằng cách sử dụng các kiểu định địa
chỉ trực tiếp hay gián tiếp. Cũng nh

các thanh ghi từ R0 đến R7 ta có 21 thanh ghi
chức năng đặc b
i
ệt SFR chiếp phần
t
rên của Ram nội từ địa ch

80H đến FFH. ( Cần
l

u ý là không phảI
t

t
cả 128 byte địa ch

từ 80H đến FFH đều đ

ợc định nghĩa mà
chỉ có 21 địa ch

đ


ợc định nghĩa )
Hình 2.8 128 byte cao của bộ nhớ dữ liệu
4.3 Các chế độ định địa ch

4.3.1 Chế độ định địa ch


t
ức thời
Chế độ đ

nh địa chỉ tức thờ
i
th

ơng dùng để nạp dữ liệu cho thanh ghi, dữ
liệ
u là một hăng số cụ thể, dữ liệu đ

ợc gọi qua
t
ên nhãn ỷtong chế đọ định địa chỉ
tức thờ
i
thì đằng tr

ớc dữ liệu có ký hiệu #
Vd: Nạp giá tri 25H vào thanh ghi A (Reg A)
MOV A,#25H

Số liệu đ

ợc đặt tên
l
à data equ 25H
MOV A,#data (Nạp giá tri 25H vào thanh ghi A)
Chú ý: chế độ định địa chỉ này số liệu th

ờng
l
à một hằng số không thay đổi
trong suốt ch

ơng trình hoạt động, và giá trị nạp vào phả
i
có kích th

ớc phù hợp vớ
i
thanh ghi (thanh ghi A, B, R là
t
hanh ghi 8 bit, thanh ghi DPTR là thanh gh
i
16 bit)
4.3.2 Chế độ định địa ch


t
hanh gh
i

Trong chế độ này dữ
li
ệu đ

ợc
l

u
t
rữ
t
rong các
t
hanh ghi va CPU
t
ruy xuất
tới dữ liệu thông qua tên của thanh ghi. Trong câu lệnh dịch chuyển dữ liệu sử dụng
ph

ơng pháp địng địa chỉ thanh ghi thì các
t
oán hạng trong câu lệnh phải có kích
th

ớc phù hợp nhau, và không đ

ợc sử dụng 2 thanh ghi R
i

trng 1 câu lệnh

Vd: di chuyển nội dung
t
hanh ghi R
0

vào thanh ghi A
MOV A,R0
4.3.3 Chế độ định địa ch


t
rực
ti
ếp
Trong ph

ơng pháp định đ

a chỉ trực tiếptoán hạng
t
rong câu lệnh
t
hể hiện
địa chỉ của nguồn nhớ chứa dữ liệu (ngăn nhớ của Ram on chip) chế độ định địa chỉ
này
t
hông th

ờng dùng để chỏ tới vùng không gian nhớ30


7F h. Ph

ơng pháp
này đ

ợc ứng dụng nhiều trong câu lệnh
t
hao tác ngăn xếp
- PUSH địa ch

trực tiếp (cất dữ
liệ
u trong ô nhớ có địa chỉ trực tiếp vào ngăn xếp)
- POP địa chỉ trực tiếp (
l
ấy dữ
liệ
u trong ngăn xếp đ

a ra ô nhớ có đ

a chỉ trực tiếp)
Vd: PUSH 7
4.3.4 Chế độ định địa chỉ gián tiếp
Trong chế độ định địa chỉ này thì thanh ghi dữ
liệ
u R
0

và R

1

làm con chỏ để
chỏ tới dữ liệu
t
rong bộ nhớ. Trong câu lệnh nếu R
0

và R
1

làm con chỏthì có ký hiệu
@ phía tr

ớc .
Vd: MOV R0,#30H (Nạp
t
hanh ghi dữ liệu R
0

g
i
á trị 30h)
MOV a,@R0 (Nạp nội dung ô nhớ có địa chỉ trong R
0

30H vào thanh ghi A
4.3.5 Chế độ định địa chỉ chị số thanh ghi
Trong ph


ơng pháp định địa chỉ gián
tiê
pthì thanh ghi con
t
rỏ 8 bit (R
0

R
1
)
chỉ có thể chỏ tớ
i
địa ch

tối đa là FFh
t
rong
t
r

ờng hợp muốn trỏ tớ
i
các địa chỉ lớn
hơn
t
a sẽ sử dụng ph

ơng pháp định địa chỉ chỉ số. Trong ph

ơng pháp này ta dùng

thanh ghi chứa A và
t
hanh ghi con chỏ d

liệu DPTR để xác định đ

a chỉ. Chú ý:
thanh gh
i
A bao giờ cũng kếtt hợp vớ
i
DPTR để tạo địa chỉ nh

ng DPTR có
t
hể đi
riêng. Ph

ơng pháp định địa chỉnày dùng để chỏ tới ROM on chip và ROM RAM
ngoà
i
Vd: MOVC A,@A + DPTR (8051 lấy nội dung thanh ghi A + nội dung của DPTR
làm đị chỉ của ROM on chip sau đó sao dữ liệu ở địa chỉ A+DPTR vào
t
hanh gh
i
A
MOVX A, @DPTR (8051 lấy dữ
liệ
u trong RAM ngoài có địa ch


ở DPTR
sao vào thanh ghi A)
4.4 Tập
l
ệnh của họ v
i
điều khiển 8051
Quy

ớc:
# Da
ta:
toán hang định địa chỉ tức thời
Direct
:
Toán hạng định địa chỉ trực
tiế
p
@Ri
:
Toán hạng định đia chỉ gián
ti
ếp
Rn
:
Toán hạng định địa chỉ thanh ghi
4.4.1 Nhóm lệnh di chuyển dữ
li
ệu

a. Lệnh Mov:
* Tr

ờng hợp 1
:
Mov A, Data
Mov A, direct
Mov A, @Ri
Mov A, Rn
*Tr

ờng hợp 2: Mov Direct, A
Mov Direct, #Data
Mov Direct, @Ri
Mov D
* Tr

ờng hợp 3: Mov Rn, #Data
Mov Rn, A
Mov Rn, Direc
t
* Tr

ờng hợp 4:
Mov @Ri, #data
Mov @Ri, A
b, Lệnh Movx:
Mov D
i
rect

c, Lệnh Movc
Movx A,@Ri
Movx @ Ri,A
Movc A,@ A +DPTR
Movc A , @A +PC
d, Lệnh trao đổi nội dung thanh ghi A với toán hạng 2
XCH A, Direct
XCH A, @Ri
XCH A, Rn
e, Lệnh XCHD
f, Lệnh PUSH
g, Lệnh POP
4.4.2 Nhóm lệnh số học:
a, Lệnh cộng không nhớ ADD
b, Lệnh cộng có nhớ ADDC
c, Lệnh tăng
t
oán hạng một đơn
vị:
XCHD mailto:@Ri,@Ri
PUSH Direct
POP Direct
ADD A, # data
ADD A, Direc
t
ADD A, @Ri
ADD A, Rn
ADDC A, # data
ADDC A, Direct
ADDC A, @Ri

ADDC A, Rn
d, LÖnh trõ
INC A
INC Direct
INC @Ri
INC Rn
SUBB # data
SUBB Direc
t
SUBB @Ri
SUBB Rn
e, LÖnh gi¶m néi dung
t
hanh ghi mét gi¸ trÞ:
DEC A
DEC Divect
DEC @Ri
DEC Rn
g, LÖnh nh©n MUL:
MUL AB
Th

c hiÖn nh©n néi dung
t
hanh ghi A víi néi dung
t
hanh ghi B
KÕt qu¶: Byte thÊp
l


u trªn
t
hanh ghi A
Byte cao
l

u trªn thanh ghi B
f, LÖnh chia DIV:
DIV AB
Th

c hiÖn chia néi dung thanh gh
i
A víi néi dung thanh ghi B
KÕt qu¶: PhÇn nguyªn
l

u trªn
t
hanh ghi A
PhÇn d


l

u
t
rªn thanh ghi B
4.4.3 Nhãm lÖnh logic:
a, LÖnh ANL: Có ph¸p:

ANL A, # Data
ANL A, Direct
ANL A, @Ri
ANL A, Rn
ANL Direc
t
, #Data
ANL Direct, A
LÖnh
t
hùc hiÖn gi÷a c¸c bÝ
t

t

¬ng øng cña to¸n h¹ng thø nhÊt víi c¸c b
Ýt
cña
t
o¸n h¹ng ha
i
B¶ng ch©n


:
IN OUT
0 0 0
0 1 0
1 0 0
1 1 1

b, LÖnh ORL:
B¶ng ch©n lý:
B¶ng 1.8 B¶ng ch©n lý lÖnh ANL
Có ph¸p: ORL A, #Data
ORL A, Direct
ORL A, @Ri
ORL A, Rn
ORL Direct, #Data
ORL Direct, A
IN OUT
0 0 0
0 1 1
1 0 1
1 1 1
c,Lệnh hoặc
t
uyệ
t
đối
Bảng chân
lí:
XRL A, #Data
XRL A, Direc
t
XRL A, @Ri
XRL A, Rn
XRL Direct, #Data
XRL Direct, A
IN OUT
00 0

01 1
10 1
11 0
d, Lệnh xoá thanh ghi A
Cú pháp : CLR A
A

0
Lệnh lấy phần bù
t
hanh ghi A
CPL A
A

A
e, Lệnh quay phải nội dung thanh ghi A
Cú pháp
:
RR A
- Lệnh này di chuyển đ

ợc
tất
cả các bít của thanh ghi A sang phải 1 bí
t
f, Lệnh quay trái nội dung thanh ghi A
Cú pháp: RL A
- Lệnh này di chuyển tấ
t
cả các bít của thanh ghi A sang trái 1 bi

t
g, Lệnh quay phải nội dung thanh ghi A qua cờ C
Cú pháp: RRC A
h, Lệnh quay
t
rái nộ
i
dung thanh ghi A qua cờ C
Cú pháp: RLC A
k,Lệnh trao đổi 4 bit cao vớ
i
4 bít
t
hấp của
t
hanh ghi A
Cú pháp: SWAP A
4.4.4 Nhóm lệnh rẽ nhánh ch

ơng trình
Nhóm lệnh rẽ nhánh không điều kiện
a, Lệnh nhảy JMP
Cú pháp: JMP nhãn
Thực hiện rẽ nhánh ch

ơng trình đến địa chỉ đ

ợc xác đinh bởi toán hạng nhãn
*Khái niệm về nhãn:
Nhãn là tên hình thức đại diện cho một địa chỉ vật lý xác đinh trong bộ nhớ

*Quy
t
ắc đặ
t

t
ên nhãnP
:
-Tên nhãn bao giờ cũng bao gồm các chữ cái từ A

Z; a

z; các số từ 0

9
-Kế
t

t
húc tên của nhãn
l
à dấu
:

-Giữa các ký tự trong nhãn không đ

ợc đặt dấu cách
-Tên nhãn phải đ

ợc bắt đầu bằng một chữ cá

i
-Tên nhãn không đ

ợc trùng với các từ đã đ

ợc định nghĩa tr

ớc
-Tên nhãn không dai quá 32 ký tự
b, Lệnh gọi ch

ơng trình con
*Lệnh CALL
Cú pháp: CALL tên ch

ơng trình con
*Lệnh ACALL< lệnh gọi tuyệt đối>
Cú pháp: ACALL địa chỉ 11bít
*Lệnh LCALL<lệnh gọi dài>
Cú pháp
:
LCALL địa chỉ 16 bít
c.Lệnh AJMP
Cú pháp: AJMP địa chỉ 11
d,Lệnh nhảy không điều kiện
*Lệnh nhảy dài LJMP
Cú pháp: LJMP đ

a chỉ 16
*Lệnh nhảy ngắn SJMP

Cú pháp: SJMP Rel
e, Lệnh JZ
*A

0
Cú pháp: JZ nhãn
Thực hiện kiểm
t
ra nội dung thanh ghi A
Nếu A=0 rẽ nhánh đến nhãn
Nếu A

0 thực hiện lệnh tiếp theo
Nhóm lệnh rẽ nhánh có điều kiện
e, Lệnh JNZ
Thực hiện kiểm
t
ra nội dung thanh ghi A
*A

0
Nếu A=0 thực h
i
ện lệnh tiếp
t
heo
Nếu A

0 rẽ nhánh đến nhãn
b, Lệnh CJNE

:
So sánh nộ
i
dung của
t
oán hạng1
Cú pháp: CJNE TH1, TH2, nhãn
So sánh nội dung của TH1

TH2
-Nếu TH1 TH2 rẽ nhánh đến nhãn
-Nếu TH1=TH2 thực hiện lệnh
tiế
p theo
CJNE A, #data, nhãn
CJNE A, Direct, nhãn
c, Lệnh DJNZ
Cú pháp: DJNZ TH,nhãn
DJNZ Rn,nhãn
DJNZ Direct, nhãn
nhãn
Giảm nội dung của toán hạng(TH)đ
i
mộ
t
đơn vị và so sanh với 0
Nếu TH

0 thì rẽ nhánh ch


ơng
t
r
ì
nh đến địa chỉ xác định bởi
t
oán hạng
Nếu TH=0 thì thực hiện lệnh tiếp theo
1, TH TH-1
2, TH

0
TH 0 rẽ nhánh nhãn
TH=0
t
hực hiện lệnh tiếp theo
d, Lệnh NOP
4.4.5 Nhóm lệnh xử lý toán hạng bít
a, Lệnh xoá bít CLR
Cú pháp : CLR THbi
t
THbit=0
CLR C
b, Lệnh SETB
Cú pháp: SETB C
;
C=1
SETB THbít
Thbit=1
c, Lệnh CPL

Cú pháp: CPL C
CPL THbít
d, Lệnh ANL:
Cú pháp:
Thbit=THbít
e, LÖnh ORL:
Có ph¸p:
f, LÖnh MOV
ANL C,THbÝ
t
ANL C,/THbÝt
ORL C,THbÝt
ORL C,
/
THb
Ýt
Mov C,THbÝt
Mov THbÝt,C
Sao chÐp néi dung cña to¸n h¹ng 2 vµo
t
o¸n h¹ng 1.

t
trong 2 to¸n h¹ng
l
µ cê C
g, LÖnh MOV
Có ph¸p:
JC nh·n
Thùc hiÖn kiÓm tra cê C

-NÕu C=1 thùc hiÖn rÏ nh¸nh
-NÕu C=0 thùc hiÖn lªnh tiÕp theo
h, LÖnh JNC
Có ph¸p: JNC nh·n
Thùc hiÖn kiÓm tra cê C
-NÕu C=1 thùc hiÖn lÖnh tiÕp theo
-NÕu C=0 thùc hiÖn rÏ nh¸nh
Thùc hiÖn kiÓm
t
ra néi dung thanh ghi a
*A
〈〉
0
A

0 rÏ nh¸nh ®Õn nh·n
A=0 thùc hiÖn lÖnh tiÕp theo
i, LÖnh JB

×