Professional Documents
Culture Documents
Chng 7:
I. Gii thieu.
II. To chc ngat.
III. X ly ngat.
I. GII THIEU :
Ngat s dung trong vi x ly hay vi ieu khien hoat ong nh sau:
vi x ly hay vi ieu khien luon thc hien mot chng trnh ma ta
thng goi la chng trnh chnh, khi co mot s tac ong t ben ngoai
Ly thuyet & thc hanh.
109
bang phan cng hay s tac ong ben trong lam cho vi x ly ngng
thc hien chng trnh chnh e thc hien mot chng trnh khac (con
goi la chng trnh phuc vu ngat ISR) va sau khi thc hien xong vi x ly
tr lai thc hien tiep chng trnh chnh. Qua trnh lam gian oan vi x
ly thc hien chng trnh chnh xem nh la ngat.
Co nhieu s tac ong lam ngng chng trnh chnh goi la cac
nguon ngat, trong vi ieu khien khi timer/counter em tran se tao ra
ngat. Ngat ong mot vai tro quan trong trong lap trnh ieu khien.
Khi s dung ngat se cho phep vi x ly hay vi ieu khien ap ng
nhieu s kien quan trong va giai quyet s kien o trong khi chng
trnh khac ang thc thi. V du: vi ieu khien ang thc hien chng trnh
chnh th co d lieu t he thong khac gi en th vi ieu khien
ngng chng trnh chnh e thc hien chng trnh phuc vu ngat nhan
d lieu xong roi tr lai tiep tuc thc hien chng trnh chnh, hoac co
mot tn hieu bao ngat t ben ngoai th vi ieu khien se ngng thc
hien chng trnh chnh e thc hien chng trnh ngat roi tiep tuc thc
hien chng trnh chnh.
Ta co the s dung ngat e yeu cau vi ieu khien thc hien
nhieu chng trnh cung mot luc co ngha la cac chng trnh c thc
hien xoay vong.
Ta co the minh hoa qua trnh thc hien 1 chng trnh trong trng
hp co ngat va khong co ngat nh hnh 7-1.
Hnh 7-1. Vi ieu khien thc hien chng trnh chnh trong 2 trng hp
khong va co ngat.
Trong o : Ky hieu * cho biet vi ieu khien ngng chng trnh chnh
e thc thi chng trnh con phuc vu ngat ISR. Con ky hieu ** cho biet vi
ieu khien quay tr lai thc hien tiep chng trnh chnh sau khi thc
hien xong chng trinh con phuc vu ngat ISR.
II. TO CHC NGAT (INTERRUPT ORGANIZATION) :
Vi ieu khien 89C51 co 5 nguon ngat: 2 ngat ngoai, 2 ngat Timer
va mot ngat Port noi tiep. Vi ieu khien 89C52 co them mot nguon
ngat la cua timer T2 nh hnh 7-2. Mac nhien khi vi ieu khien b reset
110
K
hieu
EA
a ch
bit
AFH
IE.6
IE.5
ET2
AEH
ADH
IE.4
IE.3
IE.2
IE.1
IE.0
ES
ET1
EX1
ET0
EX0
ACH
ABH
AAH
A9H
A8H
Cho
Cho
Cho
Cho
Cho
phep
phep
phep
phep
phep
ngat
ngat
ngat
ngat
ngat
Bang 7-1. Tom tat chc nang cac bit cua thanh ghi IE.
Trong thanh ghi IE co bit IE.6 cha dung en, bit IE.7 la bit cho
phep/cam ngat toan bo cac nguon ngat. Khi bit IE.7= 0 th cam het
tat ca cac nguon ngat, khi bit IE.7=1 th cho phep tat ca cac nguon
ngat nhng con phu thuoc vao tng bit ieu khien ngat cua tng
nguon ngat.
V du e cho phep Timer 1 ngat ta co the thc hien tren bit:
SETB EA
;cho phep ngat toan bo
SETB ET1
;cho phep timer 1 ngat
Hoac co the dung lenh sau:
MOV IE, #10001000B
oi vi yeu cau cua v du tren th 2 cach thc hien tren la xong
nhng ta hay so sanh 2 cach thc hien va chu y mot vai ieu trong
lap trnh:
Cac lenh cua cach 1 khong anh hng cac bit con lai trong thanh
ghi IE.
Cach th hai se xoa cac bit con lai trong thanh ghi IE.
au chng trnh ta nen khi gan IE vi lenh MOV BYTE, nhng khi
ieu khien cho phep hay cam trong chng trnh th ta se dung cac lenh
SET BIT va CLR BIT e tranh tac ong en cac bit khac trong thanh ghi
IE.
2. u tien ngat (Interrupt Priority) :
Khi co nhieu nguon ngat tac ong cung luc th ngat nao quan
trong can thc hien trc va ngat nao khong quan trong th thc hien
sau giong nh cac cong viec ma ta giai quyet hang ngay. Ngat cung
c thiet ke co s sap xep th t u tien t thap en cao e
ngi lap trnh sap xep cac nguon ngat theo yeu cau cong viec ma
mnh x ly.
Thanh ghi co chc nang thiet lap che o u tien trong vi ieu
khien la thanh ghi IP (Interrupt Priority) tai a ch 0B8H. Hoat ong cua
tng bit trong thanh ghi IP c tom tat trong bang 7-2.
Bit
IP.7
IP.6
IP.5
IP.4
IP.3
IP.2
IP.1
IP.0
K
hieu
PT2
PS
PT1
PX1
PT0
PX0
a ch
bit
BDH
BCH
BBH
BAH
B9H
B8H
Chc nang
Cha s dung
Cha s dung
u tien cho s
u tien cho s
u tien cho s
u tien cho s
u tien cho s
u tien cho s
Bang 7-2. Tom tat chc nang cac bit cua thanh ghi IP.
Ly thuyet & thc hanh.
112
113
phat tao ra ngat e thc hien 2 cong viec khac nhau th ta phai kiem
tra c RI va TI e biet thc hien cong viec nao tng ng.
V du trong truyen d lieu: khi co bao ngat truyen d lieu th ta
phai kiem tra xem c RI = 1 hay khong? Neu ung th he thong khac
ang gi d lieu en va ta phai chuyen hng chng trnh phuc vu
ngat sang hng nhan d lieu, neu khong phai th chac chan la c
TI=1 bao cho chung ta biet rang d lieu a truyen i xong va san
sang truyen k t tiep theo va khi o ta phai chuyen hng chng trnh
phuc vu ngat sang phat d lieu tiep theo.
Tng t, cac yeu cau ngat cua Timer 2 tao ra t to hp OR cua
c tran TF2 va c nhap ngoai EXF2.
114
Cac bit c cua cac nguon ngat c tom tat bang 7-3:
Interrup
t
External
0
External
1
Timer 1
Timer 0
Serial
Port
Serial
Port
Timer 2
Timer 2
Flag
IE 0
TCON 1
IE 1
TCON 3
TF 1
TF 0
TI
TCON 7
TCON 5
SCON 1
RI
SCON 0
TF 2
EXF 2
T2CON 7 (8052)
T2CON 6 (8052)
Bang 7-3. Tom tat cac bit c cua cac nguon ngat.
III. X LY NGAT:
Khi tn hieu yeu cau ngat xuat hien va c chap nhan bi CPU
th CPU thc hien cac cong viec sau:
Neu CPU ang thc hien lech th phai ch thc hien xong lenh
ang thc hien.
Gia tr cua bo em chng trnh PC c cat gi vao Stack
(chnh la a ch cua lenh tiep theo trong chng trnh chnh).
Trang thai ngat hien hanh c lu vao ben trong.
Cac yeu cau ngat se b ngan lai.
a ch cua chng trnh phuc vuc ngat tng ng se c
nap vao bo em chng trnh PC.
Bat au thc hien chng trnh phuc vu ngat ISR.
Trong chng trnh phuc vu ngat luon ket thuc bang lenh RETI. Khi
gap lenh RETI th CPU se lay lai a ch cua lenh tiep theo trong ngan
xep tra lai cho thanh ghi PC e tiep tuc thc hien cac cong viec tiep
theo cua chng trnh chnh.
Ly thuyet & thc hanh.
115
Flag
RST
IE 0
TF 0
IE 1
TF1
RI or TI
TF 2 or EXF2
Vectors Address
0000H
0003H
000BH
0013H
001BH
0023H
002BH
116
Khi ban s dung yeu cau ngat nao th chng trnh con phuc vu
ngat phai viet ung tai a ch tng ng. V du ban s dung ngat
timer T0 th chng trnh ngat ban phai viet tai a ch 000BH.
Do khoang vung nh gia cac vector a ch cua cac nguon ngat
ch co vai o nh v du nh vector a ch ngat cua ngat INT0 tai
0003H va vector a ch ngat cua ngat T0 tai 000BH ch cach nhau co
9 o nh. Neu chng trnh phuc vu ngat cua ngat INT0 co kch thc
ln hn 9 byte th no se ung en vung nh cua ngat T0. Cach giai
quyet tot nhat la ngay tai a ch 0003H ta viet lenh nhay en mot
vung nh khac rong hn. Con neu cac ngat T0 va cac ngat khac
khong s dung th ta co the viet chng trnh tai o cung c.
Chng trnh chnh luon bat au tai a ch 0000H sau khi reset he
thong, neu trong chng trnh co s dung ngat th ta phai dung lenh
nhay tai a ch 0000H e nhay en mot vung nh khac rong hn
khong b gii han e viet tiep.
117