You are on page 1of 10

Chng 7

KHAO SAT NGAT CUA


VI IEU KHIEN











I. Gii thieu.
II. To chc ngat.
III. X ly ngat.


















Chng 7: Hoat ong 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 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.
Ly thuyet & thc hanh. 114
Chng 7: Hoat ong ngat
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 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 ong 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.


Ly thuyet & thc hanh. 115





















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 ong th vi ieu khien se ngng chng trnh chnh e thc hien chng
trnh con phuc vu ngat, con khi khong cho phep th du co s tac ong 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 nang cho
phep / cam ngat. Ta s dung thanh ghi nay e cho phep hay khong cho phep oi vi tng nguon
ngat va cho toan bo cac nguon ngat.
Hoat ong cua tng bit trong thanh ghi cho phep ngat IE c tom tat trong bang 7-1:

Bit K hieu a ch bit Chc nang (Enable = 1; Dissble = 0)

Chng 7: Hoat ong ngat
Ly thuyet & thc hanh. 116
IE.7 EA AFH Cho phep toan bo hoac cam toan bo cac nguon ngat.
IE.6 - AEH Cha dung en
IE.5 ET2 ADH Cho phep ngat Timer 2 (8052).
IE.4 ES ACH Cho phep ngat Port noi tiep.
IE.3 ET1 ABH Cho phep ngat Timer 1.
IE.2 EX1 AAH Cho phep ngat ngoai External 1 (INT1).
IE.1 ET0 A9H Cho phep ngat Timer 0.
IE.0 EX0 A8H Cho phep ngat ngoai External 0 (INT0).
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 lam anh hng
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 K hieu a ch bit Chc nang
IP.7 - - Cha s dung
IP.6 - - Cha s dung
IP.5 PT2 BDH u tien cho s ngat Timer 2 (8052).
IP.4 PS BCH u tien cho s ngat Port noi tiep.
IP.3 PT1 BBH u tien cho s ngat Timer 1.
Chng 7: Hoat ong ngat
Ly thuyet & thc hanh. 117
IP.2 PX1 BAH u tien cho s ngat ngoai External 1.
IP.1 PT0 B9H u tien cho s ngat Timer 0.
IP.0 PX0 B8H u tien cho s ngat ngoai External 0.
Bang 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 hien th vi ieu khien phai ngng 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 ong 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 ong 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 chung 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 khong c phep th contact h mach nen tn
hieu yeu cau ngat se khong 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.
Vong 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 vong kiem tra u tien ngat co mc u tien thap hn.

Chng 7: Hoat ong ngat



























Hnh 7-3. Cau truc ngat cua vi ieu khien.
Ly thuyet & thc hanh. 118
Chng 7: Hoat ong ngat
Ly thuyet & thc hanh. 119
Trong hnh con cho chung 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 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.
Cac bit c cua cac nguon ngat c tom tat bang 7-3:

Interrupt Flag SFR Register and Bit Position
External 0 IE 0 TCON 1
External 1 IE 1 TCON 3
Timer 1 TF 1 TCON 7
Timer 0 TF 0 TCON 5
Serial Port TI SCON 1
Serial Port RI SCON 0
Timer 2 TF 2 T2CON 7 (8052)
Timer 2 EXF 2 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 khac 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.
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 cung khong xac nh CPU ang lam g va au.
Khi o chung ta mat quyen kiem soat vi x ly.
Chng 7: Hoat ong ngat
Ly thuyet & thc hanh. 120
Giong 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 ngng, sau khi lam xong cong viec th ta tiep tuc quay lai e oc tiep cuon
sach tai ni ta a dng. Tat ca eu xay ra nh vay th rat la bnh thng nhng trong khi ta thc
hien cong 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 khong ung trang chung 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 dung 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 vung 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 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 rang chng trnh chung ta thc hien ung 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 ung tai a ch quy nh o. Cac vect a ch ngat c
cho trong bang 7-4:

Interrupt Flag Vectors Address
System Reset RST 0000H
External 0 IE 0 0003H
Timer 0 TF 0 000BH
External 1 IE 1 0013H
Timer 1 TF1 001BH
Serial Port RI or TI 0023H
Timer 2 TF 2 or EXF2 002BH
Bang 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 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 7: Hoat ong ngat
Ly thuyet & thc hanh. 121
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.


























Chng 7: Hoat ong ngat
Ly thuyet & thc hanh. 122

You might also like