Sie sind auf Seite 1von 8

Ti liu tham kho TH.

Vi x l

GVHD: Trn Hoi Tm

CHNG VI : HOT NG NGT


1. M U: Ngt (interrupt) l s sy ra ca mt iu kin lm cho tr ng tr!nh hin hnh "# t$m ngng trong khi iu ki%n ny &c ph'c (' ")i mt ch ng tr!nh kh*c+ ,*c ngt -ng (ai tr. /uan tr0ng trong (ic thi1t k1 ( thc hin c*c 2ng 3'ng ca (i iu khi4n+ ,*c ngt cho ph5p h th6ng *p 2ng mt s kin theo c*ch kh7ng 8ng " ( 9: l; mt s kin trong khi mt ch ng tr!nh kh*c ang thc thi+ <t h th6ng &c iu khi4n ")i ngt cho ta o t)ng ang lm nhiu c7ng (ic 8ng th=i+ ,>? 3@ nhi%n kh7ng th4 thc hin nhiu h n mt lnh ) mt th=i i4m nhng ,>? c- th4 t$m ngng (ic thc thi mt ch ng tr!nh 4 thc thi mt ch ng tr!nh kh*c r8i sau - /uay tr) ( thc thi ti1p ch ng tr!nh ang "# t$m ngng+ Aiu ny gi6ng nh ,>? r=i khBi ch ng tr!nh g0i 4 thc hin ch ng tr!nh con "# g0i 4 r8i sau - /uay ( ch ng tr!nh g0i+ ,h ng tr!nh 9: l; mt ngt &c g0i l ch ng tr!nh ph'c (' ngt CDE (interrupt ser(ice routine)+ CDE &c thc thi nhFm *p 2ng mt ngt ( trong tr=ng h&p tGng /u*t thc hin (ic 9uHt nhIp (Ji mt thi1t "#+ Khi mt ngt 9uHt hinL (ic thc thi tr ng tr!nh chMnh t$m th=i "# 3Nng ( ,>? thc hin rO nh*nh 1n tr!nh ph'c (' ngt CDE+ ,>? thc thi CDE 4 thc hin mt c7ng (ic ( k1t thPc (ic thc thi ny khi gQp lnh R/uay ( tN mt tr!nh ph'c (' ngtS ETUC+ Ua c- th4 n-i ch ng tr!nh chMnh &c thc thi ) m2c nn c.n CDE &c thc thi ) m2c ngt+ 2. T CHC NGT CA 8051: ,- V nguy%n nhWn t$o ra ngt 6i (Ji XYVZ hai ngt 3o "%n ngoiL hai ngt 3o " #nh th=i ( mt ngt 3o port n6i ti1p+ XYV[ c- th%m nguy%n nhWn ngt th2 \Z 3o " #nh th=i &c th%m (oL " #nh th=i th2 "a+ Khi ta thi1t lIp tr$ng th*i "an ]u cho h th6ngL tHt c c*c ngt iu "# (7 hiu h-a ( sau - chPng &c cho ph5p
42

Ti liu tham kho TH. Vi x l ri%ng r^ "Fng ph]n mm+

GVHD: Trn Hoi Tm

Khi 9y ra hai hay nhiu ngt 8ng th=i hoQc 9y ra mt ngt trong khi mt ngt ang ph' ('L ta c- hai s 8 9: l; ngtZ s 8 chuGi (.ng ( s 8 hai m2c u ti%n+ 2.1 Cho php v khng cho php ngt: <_i mt nguy%n nhWn ngt &c cho ph5p hoQc kh7ng cho ph5p ri%ng rO th7ng /ua thanh ghi ch2c n`ng Qc "it #nh #a cha "itL thanh ghi cho ph5p ngt CT (interrupt ena"le) c- #a cha "yte l YbXc+ <_i mt "it ca thanh ghi ny cho ph5p hoQc kh7ng cho ph5p tNng nguy%n nhWn ngt ri%ng r^L thanh ghi CT 8ng th=i cmt "it ton c'c (glo"al) cho ph5p hoQc kh7ng cho ph5p tHt c c*c ngt+ B !" #.1 Thanh ghi cho php ngt IE B$% CT+d CT+\ CT+V CT+i CT+j CT+[ CT+k CT+Y &' ($)* Tb g TU[ TD TUk Tmk TUY TmY +, -(. /$% bec bTc bhc b,c blc bbc bnc bXc M0 % 1 0: 2(0!" -(3 4(546 1: -(3 4(54 7 ,ho ph5pfkh7ng cho ph5p ngt ton c'c Kh7ng s: 3'ng ,ho ph5p ngt 3o " #nh th=i [ ,ho ph5p ngt 3o port n6i ti1p ,ho ph5p ngt 3o " #nh th=i k ,ho ph5p ngt tN "%n ngoi ( ngt ngoi k ) ,ho ph5p ngt 3o " #nh th=i Y ,ho ph5p ngt tN "%n ngoi ( ngt ngoi Y )

T9Z Ngt 3o " #nh th=i k &c cho ph5p "Fng c*ch 3ong hai lnhZ DTUl TUk DTUl Tb qrs p ,ho ph5p ngt 3o " #nh th=i mt p set "it Tb "Fng k 4 cho ph5p ngt ton c'c

<tu CTL vkYYYkYYYl

2.2 u tin ngt: <_i mt nguy%n nhWn ngt &c lIp tr!nh ri%ng r^ 4 c- mt trong hai m2c u ti%n th7ng /ua ch2c n`ng thanh ghi Qc "it &c #nh #a cha "itL thanh ghi u ti%n ngt C> (interrupt priority)L thanh ghi ny c- #a cha "yte l YlXc+ B !" #.2 Thanh ghi u tin ngt IP
43

Ti liu tham kho TH. Vi x l B$% C>+d C>+\ C>+V C>+i C>+j C>+[ C>+k C>+Y &' ($)* g g >U[ >D >Uk >mk >UY >mY +, -(. /$% g g Ylhc Yl,c Yllc Ylbc Ylnc YlXc

GVHD: Trn Hoi Tm M0 % 11: 89- -,36 0: 89- %(:47 Kh7ng s: 3'ng Kh7ng s: 3'ng wu ti%n ngt 3o " #nh th=i [ wu ti%n ngt 3o port n6i ti1p wu ti%n ngt 3o " #nh th=i k wu ti%n ngt ngoi k wu ti%n ngt 3o " #nh th=i Y wu ti%n ngt ngoi Y

Khi h th6ng &c thi1t lIp l$i tr$ng th*i "an ]uL thanh ghi C> sO mQc #nh tHt c c*c ngt ) m2c u ti%n thHp+ ,h ng tr!nh chMnh 3o &c thc thi m2c nn ( kh7ng &c k1t h&p (Ji mt ngt no n%n lu7n lu7n "# t$m 3Nng ")i c*c ngt+ N1u c- hai ngt 9y ra 8ng th=i th! ngt no c- m2c u ti%n cao h n sO &c ph'c (' trJc+ 2.3 Chui v ng: N1u c- hai ngt c- cong m2c u ti%n 9uHt hin 8ng th=iL chu_i (.ng c6 #nh sO 9*c #nh ngt no &c ph'c (' trJc+ ,hu_i (.ng ny sO lZ ngt ngoi YL ngt 3o " #nh th=i YL ngt ngoi kL ngt 3o " #nh th=i kL ngt 3o port n6i ti1pL ngt 3o " #nh th=i [+ ;. <= >? NGT : Khi c- mt ngt 9uHt hin ( &c ,>? chHp nhInL ch ng tr!nh chMnh "# ngt+ ,*c thao t*c sau Wy 9y raZ con tHt (ic thc thi lnh hin hnh l 1m ch ng tr!nh >, &c cHt (o stack Ur$ng th*i ca ngt hin hnh &c lu gix l$i ,*c ngt &c chIn l$i ) m2c ngt l 1m ch ng tr!nh >, &c n$p #a cha (ector ca tr!nh ph'c (' ngt CDE
44

Ti liu tham kho TH. Vi x l CDE &c thc thi

GVHD: Trn Hoi Tm

CDE &c thc thi 4 *p 2ng c7ng (ic ca ngt+ uic thc thi CDE k1t thPc khi gQp lnh ETUC+ ynh ny lHy l$i gi* tr# cz ca " 1m ch ng tr!nh >, tN stack ( ph'c h8i tr$ng th*i ca ngt cz+ Cc vector ngt: Khi mt ngt &c chHp nhInL gi* tr# &c n$p cho " 1m ch ng tr!nh >, &c g0i l (ector ngt+ uector ngt l #a cha "t ]u ca tr!nh ph'c (' ngt ca nguy%n nhWn ngt t ng 2ng+ B !" #.; !"ng vcto# ngt N"@% Eeset h th6ng Ngt ngoi Y Ngt 3o " #nh th=i Y Ngt ngoi k Ngt 3o " #nh th=i k Ngt 3o port n6i ti1p Ngt 3o " #nh th=i [ +, -(. AB-%3C YYYYc YYYjc YYYlc YYkjc YYklc YY[jc YY[lc

D. THIET &E CHNG TFGNH H= IJNG CKC NGT: Khu7n m{u ngh# cho mt ch ng tr!nh &c thc thi c lIp c- s: 3'ng ngt nh sauZ tE| YYYYc y}<> <bCN g g tE| YYjYc <bCNZ g g
45

p i4m nhIp sau khi reset

p c*c i4m nhIp ca c*c CDE

p i4m nhIp ch ng tr!nh chMnh p ch ng tr!nh chMnh "t ]u

Ti liu tham kho TH. Vi x l TNh $.1 C%c t#&nh ph'c v' ngt k(ch th)c nh*:

GVHD: Trn Hoi Tm

,*c tr!nh ph'c (' ngt phi &c "t ]u ) g]n *y ca " nhJ ch ng tr!nh t$i c*c #a cha /ui #nh+ <Qc 3o cha c- X "yte gixa c*c i4m nhIp ca c*c tr!nh ph'c (' ngtL 3ung l&ng ny th=ng 4 thc hin c*c c7ng (ic &c y%u c]u ( /uay tr) ( ch ng th!nh chMnh tN mt tr!nh ph'c (' ngt+ Aiu ny c- ngh@a l tr!nh ph'c (' ngt cho c*c ngt t ng 2ng th=ng kh7ng 3i /u* X "yte+ N1u c- nhiu ngt &c 3ong ta phi c~n thIn 4 m "o c*c CDE &c "t ]u Png (# trM m kh7ng trn sang CDE k1+ T9Z tE| YYYYc y}<> <bCN tE| YYYlc UYCDE Z <tu >[L vYYYYkkkkl ETUC <bCN Z g g TNh p k1t thPc ch ng tr!nh p tr) ( ch ng tr!nh chMnh p ch ng tr!nh chMnh p i4m nhIp ngt " #nh th=i Y p "t ]u CDE cho " #nh th=i Y p i4m nhIp reset

$.2 C%c t#&nh ph'c v' ngt k(ch th)c +)n: N1u mt tr!nh ph'c (' ngt 3i h n X "yte &c c]n 1nL ta phi 3i chuy4n ph ng tr!nh ny 1n mt n i kh*c trong " nhJ ch ng tr!nh hoQc ta c- th4 cho lHn /ua i4m nhIp ca CDE k1+ Ai4n h!nh l CDE "t ]u (Ji mt lnh nhy 1n mt (ong kh*c ca " nhJ ch ng tr!nhL ) - CDE &c tri rng n1u c]n+ T9Z tE| YYYYc y}<> <bCN tE| YYYlc p i4m nhIp ngt 3o timer Y
4

p i4m nhIp reset

Ti liu tham kho TH. Vi x l y}<> UYCDE g g tE| YYjYc <bCNZ g g g UYCDEZ g g g ETUC TNh

GVHD: Trn Hoi Tm

p i4m nhIp c*c ngt kh*c (n1u c-)

p #a cha phMa tr%n c*c (ector ngt p ch ng tr!nh chMnh

p ch ng tr!nh con ph'c (' ngt p 3o " #nh th=i Y

p /uay ( ch ng tr!nh chMnh

T9Z ui1t ch ng tr!nh t$o s-ng (u7ng c- t]n s6 kYKc tr%n chWn pk+Y s: 3'ng " #nh th=i Y ( ngt 3o " #nh th=i Y+ tE| YYYYc y}<> <bCN tE| YYYlc UYCDEZ ,>y >k+Y ETUC <bCNZ <tu U<thL vYYYYYYkYl "it) <tu UcYL vgVY <tu CTL vkYYYYYkYl DTUl UEY D}<>
4!

p i4m nhIp reset

p i4m nhIp ngt timer Y p CDE timer Y p o "it >k+Y p tr) ( ch ng tr!nh chMnh

p timer Y ho$t ng ) ch1 [ (X p gi* tr# n$p l$i t ng 2ng (Ji VYus p cho ph5p ngt 3o " #nh th=i Y p "It timer Y p nhy t$i ch_

Ti liu tham kho TH. Vi x l TNh

GVHD: Trn Hoi Tm

T9Z ui1t ch ng tr!nh s: 3'ng c*c ngt 4 t$o ra 8ng th=i c*c 3$ng s-ng (u7ng c- t]n s6 l kYKc tr%n chWn >k+Y ( VYYc tr%n chWn >k+k tE| YYYYc y}<> <bCN tE| YYYlc y}<> N|bUUY tE| YYklc y}<> N|bUUk tE| YYjYc <bCNZ <tu U<thL vYYYkYYkYl <tu UcYL vgVY <tu UckL vcC|c(gkYYY) <tu UykL vyt(gkYYY) <tu CTL vkYYYkYkYl DTUl UEY DTUl UEk D}<> N|bUUYZ ,>y >k+Y ETUC N|bUUkZ ,yE UEk <tu UckL vcC|c(gkYYY) <tu UykL vyt(gkYYY) DTUl UEk ,>y >k+k ETUC
4"

p timer k ch1 kL timer Y ch1 [

Ti liu tham kho TH. Vi x l TNh $.3 C%c ngt ngoi:

GVHD: Trn Hoi Tm

Ngt ngoi 9y ra khi c- m2c thHp hoQc c- c$nh Wm tr%n chWn fCNUY hoQc fCNUk+ uic ch0n c*c ngt thuc t*c ng c$nh hay c*c ngt lo$i t*c ng m2c &c lIp tr!nh th7ng /ua c*c "it CUY ( CUk ca thanh ghi U,tN+ u! c*c chWn ngt ngoi &c lHy m{u mt l]n ) m_i chu k m*y c*c ng (o ny phi &c 3uy tr! t6i thi4u k[ chu k 3ao ng 4 m "o rFng (ic lHy m{u l Png+ N1u ngt ngoi thuc t*c ng c$nh nguy%n nhWn ngt ngoi phi &c 3uy tr! t$i chWn y%u c]u ) m2c cao t6i thi4u mt chu k ( sau - ) m2c thHp t6i thi4u mt chu k nxa 4 m "o rFng (ic chuy4n tr$ng th*i &c ph*t hin+ CTY ( CTk t ng &c 9-a khi ,>? trB tJi tr!nh ph'c (' ngt t ng 2ng+ N1u ngt ngoi thuc lo$i t*c ng m2cL nguy%n nhWn ngt ngoi phi &c 3uy tr! tr$ng th*i tMch cc cho 1n khi ngt theo y%u c]u thc s t$o ra+ Dau nguy%n nhWn ngt phi ) tr$ng th*i th' ng trJc khi tr!nh ph'c (' ngt &c thc thi 9ong hoQc trJc khi c- mt ngt kh*c &c t$o ra+ Uh7ng th=ngL mt c7ng (ic &c thc thi "%n trong tr!nh ph'c (' ngt lm cho nguy%n nhWn ngt tr tMn hiu y%u c]u ngt tr) ( tr$ng th*i kh7ng tMch cc+

4#

Das könnte Ihnen auch gefallen