BÀI
6
Tên
bài:
HO T Đ NG NG T (Interrupt)
GI
I
THI U
Bài
này
trình
bày
v
kh
năng
qun
đ ng
th
i
nhi u
thiế
t
b
ngo i
vi
nh
vào
tính
năng
x
ng
t
c a
MCS-51,
đi u
này
r
t
phù
h p
v i
yêu
c u
l p
trình
hưng
đi u
khi n N i
dung
bài
g m
c
thuyế
t
th
c
nh
trên
b
th
c
t
p
UNIKIT, t
hiế
t
b
ngo i
vi
th
giao
ti
pế
v i
8051
thông
qua
các
ng
I/O
đ cượ
trang
b
s n
t
rên
board
UNIKIT
như
:
ng
t
c,
t
nh
n,
đèn,
chuôn
g,
đ ng
cơ
...
M C
TIÊU
TH C
HI N
Hi u
đ cượ
t
ác
d ng
th
c
t
ế
ca
m
t
h
th
ng
đ cượ
đi u
khi n
b ng
n
hi u
ng
t.
Biế
t
đ cượ
t
chc
ng
t
cơ
chế
th
c
hi n
chưngơ
trìn
h
ph c
v
ng
t
c a
8051
Biế
t
cách
kh i
t
o
ng
t t
heo
yêu
c
u.
N
I
DUNG
CHÍNH
N i
dung
bài
h c
t
p
trung
v
các
ch
đ
chính
như
sau:
Vai
trò
c a
ng
t
trong
yêu
c u
đi u
khi n
T
chc
ng
t
trong
8051
c
thanh
ghi
chc
năng
đ c
bi
t
liên
quan
Phưngơ
pháp
kh i
t
o
ng
t
ch
viế
t
chưngơ
trình
ph c
v
ng
t
kích
th
ưc
nh
l n
c
ng
dng
đi n
hình
1
1.
M
Đ U
Ng
t
s
xu
t
hi n
c a
m
t
đi u
ki
n,
m
t
s
ki n
làm
t
m
dng
chưngơ
trình
trong
khi
đi u
ki n
này
đ cượ
ph c
v
b
I
m
t
chưngơ
trì
nh
khác.
Ng
t
m
t
vai
trò quan
tr
ng
trong
thiế
t
kế
th
c
hi n
các
ng
d ng
c a
vi
đi u
khi
n.
Chúng
cho
phép
h
th
ng
đáp
ng
không
đ ng
b
v
I
m
t
s
ki n
x
s
ki n
trong
khi
m
t
chưngơ
trình
khác
đang
ho
t
đ ng.
M
t
h
th
ng
đ cượ
đi u
khi n
b ng
ng
t t
o
m
t
o
giác
th
c
hi n
đ ng
th
I
nhi u
công
vi c
cùng
m
t
lúc..
D
nhiên,
t
I
m
t th
I
đi m
CPU
không
th
th
c
hi n
nhi u
h nơ
m
t
l nh
nhưng
th
t
m
dng
chưngơ
trìn
h
đ
th
c
hi n
m
t
chưngơ
trình
khác
và
sau
đó
tr
l
I
chưngơ
trình
đ u
tiên.
Đi m
khác
trong
m
t
h
th
ng
đi u
khi n
b ng
ng
t,
các
ng
t
không
x y
ra
như
kế
t
qu
c a
m
t
l nh
(như
l nh
g
I
chưngơ
trình
con)
mà
đáp
ng
v
I
m
t
s
ki n
x y
ra
m
t
cách
không
đ ng
b
v
I
chưngơ
trìn
h
chính
nghĩa
không
biế
t tr
ưc
chưngơ
trìn
h
chính
s
b
ng
t
c
o.
Chưngơ
trình
x
ng
t
đ cượ
g
I
chưngơ
trình
ph c
v
ng
t
(Interrupt
service
routine)
viế
t t
t
ISR
hay
qu n
ng
t. ISR
ho
t
đ ng
đ
đáp
ng
m
t
ng
t
t
hưng
th
c
hi n
m
t
thao
tác
vào
ho c
ra
đ nế
m
t
thiế
t
b
.
Khi
xy
ra
m
t
ng
t thì
chưngơ
trình
chính
t
m
t
h
I
dng
l
I
r
nhánh
đ nế
ISR. IS
R
th
c
hi n
các
thao
tác
c n
thiế
t
kế
t
thúc
v
I
l nh
tr
v
t
ng
t
chưngơ
trình
chính
l
I ti
pế
t
c
t
n iơ
t
m
dng.
Như
vy
th
nói
chưngơ
trình
chính
ho
t
đ ng
mc
cơ
s
các
ISR
ho
t
đ ng
mc
ng
t
cũng
ng
các
thu
t
ng
:
“phía
tr
ưc”
(foreground)
đ
ch
mc
cơ
s
“ph
ía
sau”
(backgrround)
đ
ch
mc
ng
t,
trong
hình
6.1a
trình
bày
ho
t
đ ng
c a
m
t
chưngơ
trình
không
ng
t
và
6.1b
ho
t
đ ng
c a
chưngơ
trình
chính
mc
cơ
s
ng
t
các
ng
t
ho
t
đng
mc
ng
t.
M
t
d
đi n
hình
v
ng
t
vi c
nh p
d
liu
b ng
tay
dùng
bàn
phím.
y
kh o
t
m
t
ng
d ng
v
vi
ng:
Chưngơ
trình
chính
đi u
khi n
ph n
t
t
o
năng
lưng
vi
ng
đ
n u
ă
n,
nhưng
t
rong
khi
đang
n u
h
th
ng
c n
ph
I
đáp
ng
vic
nh p
b ng
tay
trên
c a
d
t
ăng
ho c
giãm
th
I
gian
n
u.
Khi
ngườ
I
x
d ng
th
t
nh
n,
m
t
ng
t
đ cượ
t
o
ra
(có
th
m
t tín
hi u
chuy n
t
mc
cao
xu ng
mc
th
p)
chương
trình
chính
b
dng
l
I,
chương
trình
ISR
ho
t
đ ng
đ c
các
m
c a
bàn
phím
và
thay
đ
I
quá
trình
n u
t
ưngơ
ng
sau
đó
ch m
d
t
b ng
cách
chuy n
đi u
khi n
v
cho
chưngơ
trình
chính,
chương
trình
chính
l
I ti
pế
t
c
t
n iơ
b
ng
t.
M
t
đi m
quan
tr
ng
trong
d
này
vi c
nh p
b ng
tay
x y
ra
m
t
cách
không
đ ng
b
nghĩa
không
biế
t tr
ưc
ho c
không
đ cượ
đi u
khi n
b ng
ph n
m m
đang
ch y
trong
h
th
ng.
Đó
chính
đ c
đi m
c a
ng
t
Thi gian
Chương trình chính
a) Thc hin chương trình không ngt
ISR ISR ISR
main main main main
b) Thc hin chương trình vi ngt
Hình 6.1 Thc hiên chương trình
2
2.
T
CH C
NG
T
CA
8051
8051
năm
ngu n
tín
hi u
ng
t:
2
ng
t
ngoà
i,
2
ng
t
đ nh
th
i
1
ng
t
c ng
n i
ti
ế
p.
8052
thêm
ng
t th
sáu
ca
timer
th
ba.
Tr ng
thái
m c
đnh
c a
các
ng
t
không
ho
t
đ ng
sau
khi
reset
h
th
ng
chuy n
sang
ho
t
đ ng
t
ng
ng
t
riêng
r
b ng
ph n
m m.
Trong
tr
ưng
h p
hai
ho c
nhi u
ng
t
xu
t
hi n
đ ng
th
i
ho c
m
t
ng
t
x y
ra
trong
khi
m
t
ng
t
khác
đang
đ cượ
ph c
v
.
hai
sơ
đ
s p
x pế
ưu
tiên
các
ng
t
đó
là:
Chu i
pooling
ưu
t
iên
hai
c
p, t
h
t
theo
chu i
pooling
t
c
đnh
nhưng
sơ
đ
ưu
tiên
hai
c p
thì
l p
trình
đượ
c.
Sau
đây
phưngơ
pháp
cho
phép
không
cho
phép
s
ho
t
đ ng
c a
các
ng
t.
Cho phép và không cho phép các ng t
M i
m
t tín
hi u
ng
t
đ cượ
cho
phép
ho c
không
cho
phép
b i
đ a
ch
bít
trong thanh
ghi
chc
năng
đ c
bi
t IE (I
nterrupt
enable)
t
i
đ a
ch
0A8H,
m
t bít
cho
phép tn
c
c, bít
này
khi
b
a
s
ngăn
t
t
c
các
ng
t.
(b ng
6.
1).
Đ
cho
phép
m
t
ng
t
c n
ph i
set
hai
bít:
M
t bít
cho
phép
riêng
b
ít
cho
phép
toàn
c
c. V
D
Ng
t
timer
1
đ cượ
cho
phép
như
sau:
SETB
ET1
SETB EA
Ho c
MOV IE,#10001000B
M c
hai
cách
trên
cùng
kế
t
qu
sau
khi
reset
h
th
ng
nhưng
kế
t
qu
s
khác
nhau
n uế
IE
được
ghi
gia
chưngơ
trình
trong
khi
đang
ch
y.
ch
th
nh
t
không
nh
hưng
đ nế
5
bít
còn
li
trong
thanh
ghi
IE
còn
cách
th
hai
s
a
các
bít
n
li
khác.
T
t
nh
t
nên
dùng
cách
th
hai
t
i
v
trí
b
t
đ u
chưngơ
trình
(nghĩa
khi
b
t
đ u
m
y
ho c
reset
h
th
ng)
nên
ng
l nh
SETB
CLR
trong
khi
chưngơ
trình
đang
ch y
đ
tránh
nh
hưng
c
bít
khác
trong
thanh
ghi
IE.
M c u tiên ư
M i
ng
t
đ cượ
l p
trình
m
t
trong
hai
mc
ưu
tiên
bng
thanh
ghi
IP
(Interrupt
priority)
t
i
đ a
ch
oB8H
(b ng
6.2)
Thanh
ghi
IP t
đ ng
a
sau
khi
reset
h
th
ng
đ
đ
t
các
ng
t
mc
ưu
tiên
th
p
B
NG
6.1
Thanh
ghi
IE
BÍT Ký
hi
uĐ a
ch
t
t
(1=cho
phép,
0=kng
cho
phép)
IE.7
IE.6
IE.5
IE.4
IE.3
IE.2
IE.1
IE.0
EA
-
ET2
ES
ET1
EX
1
ET0
EX
0
AFH
AEH
ADH
ACH
ABH
AAH
A9H
A8H
Cho
phép
toàn
c c
Không
dùng
Cho
phép
ng
t
timer
2
(8052)
Cho
phép
ng
t
c ng
n i
ti
pế
Cho
phép
ng
t
timer
1
Cho
phép
ng
t
1
ngoài
Cho
phép
ng
t
timer
0
Cho
phép
ng
t
0
ngoài
B
NG
6.2
Thanh
ghi
IP
BÍT Ký
hi
uĐ a
ch
t
t
(1=mc
cao,
0=mc
th p)
IP.7
IP.6
IP.5
IP.4
IP.3
IP.2
IP.1
IP.0
-
-
PT2
PS
PT1
PX
1
PT0
PX
0
-
-
0BDH
0BCH
0BBH
0BAH
0B9H
0B8H
Không
dùng
Không
dùng
uƯ
tiên
ng
t
timer
2
(8052)
uƯ
tiên
ng
t
c ng
n i
ti
ếp
uƯ
tiên
ng
t
timer
1
uƯ
tiên
ng
t
1
ngoài
uƯ
tiên
ng
t
timer
0
uƯ
tiên
ng
t
0
ngoài
Khái
ni m
ưu
tiên
cho
phép
m
t IS
R
b
dng
b i
m
t
ng
t
khác
n uế
ng
t
m i
xu
t
hi n
này
mc
ưu
tiên
cao
h nơ
ng
t
đang
được
ph c
v
,
đi u
này
phù
h p
v i
8051
ch
hai
mc
ưu
tiên,
n uế
m
t ISR
ưu
tiên
th
p
đang
chy
nhưng
l i
x y
ra
m
t
ng
t
ưu tiên
cao
thì IS
R
s
b
dng.
M
t ISR
ưu
tiên
không
th
b
dng
.
Chưngơ
trình
chính
ho
t
đ ng
mc
ưu
tiên
cơ
s
và
không
liên
h
v i
m
t
ng
t
b
t
kỳ
nào
n
luôn
b
dng
khi
x y
ra
ng
t.
N uế
hai
ng
t
mc
ưu
tiên
khác
nhau
cùng
x y
ra
thì
ng
t
mc
ưu
tiên
cao
s
đ cượ
phc
v
tr
ướ
c.
Chu i pooling
N uế
đ ng
th
i
xu
t
hi n
hai
ng
t
ng
mc
ưu
tiên
thì
ng
t
đ cượ
ph c
v
tr
ưc
đ cượ
xác
đnh
theo
th
t
chu i
pooling:
Ng
t
0
ngoài,
ng
t
timer
0,
ng
t
1
ngi,
ng
t
timer
1,
ng
t
c ng
n i
ti
ế
p,
ng
t
timer
2.
Hình
6.2
trình
bày
năm
ngu n
tín
hi u
ng
t
ng
cơ
chế
cho
phép
toàn
c c
riêng
r
,
chu i
pooling
các
mc
ưu
tiên,
tr
ng
thái
c a
t
t
c
các
ngu n
tín
hi u
ng
t
th
thông
qua
các
bít
c
trong
thanh
ghi
chc
năng
đ c
bi
t.
D
nhiên,
n uế
m
t
ng
t
nào
đó
không
đ cượ
cho
phép
thì
ng
t t
ưngơ
ng
không
đ cượ
t
o
ra
nhưng
ph n
mm
v n
th
ki m
tra
c
ng
t.
c
d
v
timer
cng
n i
ti
pế
trong
hai
bài
tr
ưc
đã
s
d ng
các
c
ng
t
mà
th
c
t
ế
không
ng
các
ng
t.
M
t
ng
t
c ng
n i
ti
pế
kế
t
qu
t
phép
OR
c a
ng
t th
u
(RI)
v i
ng
t
phát
(TI
)
.
T
ưngơ
t
,
ng
t
timer
2
đ cượ
t
o
ra
b i
c
tràn
TF2
ho c
v i
c
nh p
bên
ngoài
EX
F2
.
Kh
năng
t
o
ng
t
c a
các
bít
c
đ cượ
tóm
t
t
trong
b ng
6.
3
3.
X
NG
T
Khi
m
t
ng
t
xu
t
hi n
đ cượ
CPU
nh n
ra,
chưngơ
trình
chính
s
dng
l i
kế
ti
pế
c
t
hao
tác
như
sau:
Thc
hi n
hoàn
t
t
l nh
hi n
hành
Lưu
n i
dung
thanh
ghi
PC
vào
ngăn
x pế
Lưu
tr
ng
th
ái
ng
t
hi n
hành
c
ng
t
đ cượ
ch n
l i
t
i
mc
ng
t
N p
đ a
ch
vec
t
ơ
c a
ISR
vào
PC
Thc
hi n
IS
R
Chưngơ
trình
ISR
ho
t
đ ng
và
th
c
hi n
các
t
hao
tác
t
ương
ng
v i
ng
t.
Sau
đ
ó,
kế
t
thúc
khi
g p
l nh
R
ETI
(return
from
interrupt),
l nh
này
l y
l i
giá
tr
c a
PC
t
ngăn
x pế
ph c
h i
tr
ng
th
ái
ng
t
c
,
chưngơ
trình
ti
pế
t
c
chy
t
n iơ
t
m
dng.
B
NG
6.3
c
bít
c
ng
t
Ng tCThanh
ghi
SFR
v
trí
t
0
ngoài
1
ngoài
timer
1
timer
0
c ng
n i
ti
ếp
c ng
n i
ti
ếp
timer
2
timer
2
IE0
IE1
TF1
TF0
Ti
Ri
TF2
EX
F2
TCON.1
TCON.3
TCON.7
TCON.5
SCON.1
SCON.0
T2CON.7
(8052)
T2CON.6
(8052)
INT0
TF0
IE0
u tƯiên cao
u tiƯên thp
INT1
IE1
TF1 Chui
pooling
Ri
Ti
TF2
EXF2
Cho phép riêng
Cho phép toàn cc
Hình 6.2 Cu trúc ngt 8051
Các vec tơ ng t
Khi
m
t
ng
t
đ cượ
ch p
nh
n,
giá
tr
n p
vào
b
đ mế
chưngơ
trình
PC
đ cượ
g i
c
t
ơ
ng
t.
Đây
đ a
ch
b
t
đ u
c a
ISR
đ i
v i
ng
t t
ưngơ
ng.
c
véc
t
ơ
ng
t
đ cượ
cho
trong
bng
6.4.
c
t
ơ
reset
h
th
ng
(RST
t
i
đ a
ch
0000H)
cũng
đ cượ
cho
trong
b ng
nên
cũng
gi ng
như
m
t
ng
t,
dng
chưngơ
trìn
h
chính
n p
vào
PC
m
t
giá
tr
m
i.
Khi
tr
đ nế
m
t
ng
t,
c
y
ra
ng
t
s
b
a
t
đ ng
b
a
b i
ph n
cng
ngo i
tr
Ri
Ti
đ i
v i
ng
t
c ng
ni
ti
pế
TF2, EX
F2
đ i
v i
ng
t
timer
2.
Do
hai
nguyên
nhân
t
o
ng
t
cho
các
ng
t
này
nên
th
t
không
t
hc
t
ế
n uế
CPU
a
c
ng
t.
c
bít
này
ph i
đ cượ
ki m
tra
trong
ISR
đ
c
đ nh
nguyên
nhân
t
o
ng
t
sau
đó
c
ng
t
đ cượ
a
b ng
ph n
m m,
th
ưng
m
t
s
r
nhánh
đ nế
c
t
hao
tác
t
ương
ng
ph
thu c
vào
ngu n
t
o
ra
ng
t.
các
véc
t
ơ
ng
t
được
đ
t
phía
dưi
đáy
c a
b
nh
chưngơ
trình
nên
l nh
đ u tiên
c a
chưngơ
trình
chính
th
ưng
l nh
nh y
qua
ng
này
VD
l nh
LJMP
0030H.
4.
THI
T
K
CHƯƠNG
TRÌNH
DÙNG
NG
T
Trong
các
i
tr
ưc
đây
đã
không
ng
đ nế
ng
t
dùng
nhi u
các
ng
l p
đ
ki m
tra
c
tràn
c a
timer
TF0,
TF1
ho c
TF2
ho c
các
c
thu
phát
ca
c ng
n i
ti
pế
Ti
ho c
Ri,
v n
đ
c a
phưngơ
pháp
này
th
i
gian
ho
t
đ ng
c a
CPU
hoàn
toàn
được
ng
vào
vi c
ch
các
c
này
được
set,
đi u
này
hoàn
toàn
không
thích
h p
v i
các
ng
d ng
hưng
đi u
khi n
trong
đó
yêu
c u
vi
đi u
khi n
ph i
đ ng
th
i
t
ưngơ
c
v i
nhi u
thiế
t
b
vào
ra.
M
t ví
d
trong
ph n
này
s
minh
h a
các
phưngơ
pháp
th
c
t
ế
viế
t
ph n
m m
cho các
ng
dng
hưng
đi u
khi
n, t
hành
ph n
chính
c
ng
t.
M c
các
v
í
d
này