You are on page 1of 7

Chng 7:

HOTNGNGT
I.
II.
III.

Gii thieu.
To chc ngat.
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 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 thon g khac gi en th vi ieu khien ngn g 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) :

Khosthotngngt

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 th tat ca cac ngat se mat tac dung va c cho phep bi phan mem.
Trong trng hp co hai hoac nhieu nguon ngat tac ong on g thi hoac vi ieu khien
ang phuc vu ngat th xuat hien mot ngat khac, th se co hai cach giai quyet la kiem tra lien tiep
va s dung che o u tien .

Hnh 7-2. Vi ieu khien 89C52 co 6 nguon ngat.


1. Cho phep / cam ngat (Enable and disabling Interrupt)
Trc tien chung ta phai hieu cho phep va khong cho phep ngat la nh the nao ? Khi ta cho
phep ngat va khi ngat tac on g th vi ieu khien se ngng chng trnh chnh e thc hien
chng trnh con phuc vu ngat, con khi khon g cho phep th du co s tac on g en ngat vi ieu
khien van tiep tuc thc hien chng trnh chnh khong thc hien chng trnh phuc vu ngat.
Trong vi ieu khien co 1 thanh ghi IE (Interrupt Enable) tai a ch 0A8H co chc nan g
cho phep / cam ngat. Ta s dun g thanh ghi nay e cho phep hay khong cho phep oi vi tn g
nguon ngat va cho toan bo cac nguon ngat.

VHngCng

http://www.machdien.com.vn

Khosthotngngt

Hoat ong cua tn g bit trong thanh ghi cho phep ngat IE c tom tat trong bang 7-1:
Bit
IE.7
IE.6
IE.5
IE.4
IE.3
IE.2
IE.1
IE.0

K hieu
EA
ET2
ES
ET1
EX1
ET0
EX0

a ch bit
AFH
AEH
ADH
ACH
ABH
AAH
A9H
A8H

Chc nang (Enable = 1; Dissble = 0)


Cho phep toan bo hoac cam toan bo cac nguon ngat.
Cha dun g en
Cho phep ngat Timer 2 (8052).
Cho phep ngat Port noi tiep.
Cho phep ngat Timer 1.
Cho phep ngat ngoai External 1 (INT1).
Cho phep ngat Timer 0.
Cho phep ngat ngoai External 0 (INT0).

Ban g 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 khon g 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 on g
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 con g 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 tn g bit trong thanh ghi IP c tom tat trong
bang 7-2.

VHngCng

http://www.machdien.com.vn

Khosthotngngt

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 ngat Timer 2 (8052).
u tien cho s ngat Port noi tiep.
u tien cho s ngat Timer 1.
u tien cho s ngat ngoai External 1.
u tien cho s ngat Timer 0.
u tien cho s ngat ngoai External 0.

Ban g 7-2. Tom tat chc nang cac bit cua thanh ghi IP.
Khi reset he thong th thanh ghi u tien ngat IP b xoa va tat ca cac ngat mc u tien thap
nhat.
Trong 89C51 co 2 mc u tien thap va 2 mc u tien cao. Neu vi ieu khien ang thc hien
chng trnh con phuc vu ngat co mc u tien thap va co mot yeu cau ngat vi mc u tien cao
hn xuat hie th vi ieu khien phai ngn g thc hien chng trnh con phuc vu ngat co mc u tien
thap e thc hien chng trnh con phuc vu ngat mi co u tien cao hn.
Ngc lai neu vi ieu khien ang thc hien chng trnh con phuc vu ngat co mc u tien
cao hn va co yeu cau ngat vi mc u tien thap hn xuat hien th vi ieu khien van tiep tuc thc
hien cho en khi thc hien xong chng trnh phuc vu ngat co u tien cao hn roi mi thc hien
chng trnh phuc vu ngat co u tien thap ang yeu cau .
Chng trnh chnh ma vi ieu khien luon thc hien trong mot he thong th mc thap
nhat, khong co lien ket vi yeu cau ngat nao, luon luon b ngat bat chap ngat mc u tien cao
hay thap. Neu co 2 yeu cau ngat vi cac u tien khac nhau xuat hien on g thi th yeu cau ngat
co mc u tien cao hn se c phuc vu trc.

3. Kiem tra vong quet lien tiep.


Neu 2 yeu cau ngat co cung mc u tien xuat hien ong thi th vong quet kiem tra lien
tiep se xac nh yeu cau ngat nao se c phuc vu trc tien. Vong quet kiem tra lien tiep theo
th t u tien t tren xuong la: ngat ngoai th 0 (INT0), ngat timer T0, ngat ngoai th 1 (INT1),
ngat Timer 1, ngat truyen d lieu noi tiep (serial Port), ngat timer 2. Hnh 7-3 se minh hoa cho
trnh t tren.
Quan sat trong hnh 7-3 chung ta thay co 6 nguon ngat cua 89C52 va tac dung cua cac
thanh ghi IE hoat ong nh mot contact On/Off con thanh ghi IP hoat on g nh mot contact
chuyen mach gia 2 v tr e la chon 1 trong 2.
Ta hay bat au t thanh ghi IE trc: bit cho phep ngat toan cuc (global enable) neu c
phep se ong toan bo cac contact va tuy thuoc vao bit cho phep cua tng nguon ngat co c
phep hay khong va chun g hoat ong cung giong nh mot contact: neu c phep th ong mach
va tn hieu yeu cau ngat se a vao ben trong e x ly, neu khon g c phep th contact h
mach nen tn hieu yeu cau ngat se khon g a vao ben trong va khong c x ly.
Tiep theo la thanh ghi IP: tn hieu sau khi ra khoi thanh ghi IE th a en thanh ghi IP e
sap xep u tien cho cac nguon ngat. Co 2 mc o u tien: mc u tien cao va mc u tien thap.
Neu cac nguon nao co u tien cao th contact chuyen mach se a tn hieu yeu cau ngat o en
vong kiem tra co u tien cao, neu cac nguon nao co u tien thap th contact chuyen mach se a
tn hieu yeu cau ngat o en vong kiem tra co u tien thap .
VHngCng

http://www.machdien.com.vn

Khosthotngngt

Von g kiem tra ngat u tien cao se c thc hien trc va se kiem tra theo th t t tren
xuong va khi gap yeu cau ngat nao th yeu cau ngat o se c thc hien . Sau o tiep tuc thc
hien cho von g kiem tra u tien ngat co mc u tien thap hn.
Trong hnh con cho chun g ta thay yeu cau ngat truyen d lieu noi tiep tao ra t to hp OR
cua 2 c bao nhan RI va c bao phat TI. Khi ngat truyen d lieu xay ra va ta muon biet la do c
nhan hay c 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 n g.
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 hn g 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 ran g d lieu a truyen i xong va san san g truyen k t tiep theo va khi o ta phai
chuyen hn g 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.

Hnh 7-3. Cau truc ngat cua vi ieu khien .


VHngCng

http://www.machdien.com.vn

Khosthotngngt

Cac bit c cua cac nguon ngat c tom tat bang 7-3:
Interrupt
External 0
External 1
Timer 1
Timer 0
Serial Port
Serial Port
Timer 2
Timer 2

Flag
IE 0
IE 1
TF 1
TF 0
TI
RI
TF 2
EXF 2

SFR Register and Bit Position


TCON 1
TCON 3
TCON 7
TCON 5
SCON 1
SCON 0
T2CON 7 (8052)
T2CON 6 (8052)

Ban g 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:
v Neu CPU ang thc hien lech th phai ch thc hien xong lenh ang thc hien.
v Gia tr cua bo em chng trnh PC c cat gi vao Stack (chnh la a ch cua
len h tiep theo trong chng trnh chnh).
v Trang thai ngat hien han h c lu vao ben trong.
v Cac yeu cau ngat se b ngan lai.
v a ch cua chng trnh phuc vuc ngat tng ng se c nap vao bo em chng
trnh PC.
v Bat au thc hien chng trnh phuc vu ngat ISR.
Trong chng trnh phuc vu ngat luon ket thuc ban g 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.
Chu y: chng trnh con phuc vu ngat khong c lam mat hoac lam sai a ch cua PC a
lu trong ngan xep neu ieu nay xay ra th khi tr lai chng trnh chnh CPU se khong thc
hien tiep cong viec cua chng trnh chnh va chung ta cun g khong xac nh CPU ang lam g va
au. Khi o chung ta mat quyen kiem soat vi x ly.
Gion g nh ta ang oc mot cuon sach v mot cong viec khac ta phai ngng lai va ta co lam
dau tai trang ta tam ngn g, sau khi lam xong cong viec th ta tiep tuc quay lai e oc tiep cuon
sach tai ni ta a dn g. Tat ca eu xay ra nh vay th rat la bnh thng nhng trong khi ta thc
hien con g viec th co mot ngi khac xem cuon sach cua ta va vo tnh lam mat dau th khi ta
quay lai ta se oc khon g un g trang chun g ta ang dng lai. Nguyen tac lam viec cua vi x ly
hoan toan giong nh vay.
Trong vi ieu khien th bo nh ngan xep la bo nh RAM noi nen chung san sang hoat
ong cho viec lu tr tam, con oi vi vi x ly th bo nh ngan xep s dun g bo nh ngoai nen
ban phai khi tao bo nh ngan xep phai la vung nh RAM e co the ghi va oc lai c, neu
ban khi tao tai vun g nh EPROM hoac khi tao tai ni ma bo khong ghi vao c th se lam
mat a ch d lieu lu vao bo nh ngan xep dan en chng trnh se thc hien sai.
Mot ieu can phai chu y na la trong lap trnh chung ta khong c nhay t chng trnh
con sang chng trnh chnh e thc hien tiep chng trnh v lam nh vay sau nhieu lan thc
VHngCng

http://www.machdien.com.vn

Khosthotngngt

hien th bo nh ngan xep se b tran va ghi e len cac d lieu khac lam sai chng trnh. Trong
trng hp nay chung ta se thay ran g chng trnh chung ta thc hien un g mot vai lan va sau o
th sai.

Cac vect ngat (Interrupt Vectors) :


Nh a trnh bay tren, khi co mot yeu cau ngat xay ra th sau khi cat gia tr a ch trong
PC vao ngan xep th a ch cua chng trnh con phuc vu ngat tng ng con goi bi vect a
ch ngat se c nap vao thanh ghi PC, a ch nay la co nh va do nha che tao vi ieu khien qui
nh. Cac chng trnh ngat phai bat au viet un g tai a ch quy nh o. Cac vect a ch ngat
c cho trong bang 7-4:
Interrupt
System Reset
External 0
Timer 0
External 1
Timer 1
Serial Port
Timer 2

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

Ban g 7-4. Tom tat vector a ch ngat.


Vect reset he thong bat au tai a ch 0000H: khi reset vi ieu khien th thanh ghi PC =
0000H va chng trnh chnh luon bat au tai a ch nay.
Khi ban s dun g yeu cau ngat nao th chng trnh con phuc vu ngat phai viet un g 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 khoan g 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 ron g 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 dun g 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.

VHngCng

http://www.machdien.com.vn

You might also like