Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
543,18 KB
Nội dung
Chương 6: Ho t ñ ng ng t (Interrupt) Trư ng ðH Công nghi p Tp.HCM CHƯƠNG HO T ð NG NG T (INTERRUPT) I M ð U: CPU CH TH C THI ðƯ C L NH T I M T TH I ðI M Ng t (Interrupt) vi c x y m t ñi u ki n (m t s ki n) làm cho chương trình th c thi (chương trình chính) b t m d ng ñ quay sang th c thi m t chương trình khác (chương trình x lý ng t) r i sau quay tr v đ th c thi ti p chương trình b t m d ng Các ng t đóng vai trị quan tr ng vi c thi t k hi n th c ng d ng c a b vi ñi u n Các ng t cho phép h th ng ñáp ng m t s ki n theo cách khơng đ ng b x lý s ki n m t chương trình khác th c thi M t h th ng ñư c ñi u n b i ng t cho ta o tư ng nhi u cơng vi c đư c vi x lý th c hi n ñ ng th i CPU dĩ nhiên không th th c thi nhi u m t l nh m t th i ñi m CPU có th t m ngưng vi c th c thi m t chương trình đ th c thi m t chương trình khác r i sau ñó quay v th c thi ti p t c chương trình b t m ngưng, u tương t vi c CPU r i kh i chương trình g i đ th c thi chương trình b g i đ r i sau quay tr v chương trình g i C n ph i phân bi t s gi ng khác gi a “ng t” “g i chương trình con”: • Gi ng nhau: Khi x y ñi u ki n tương ng CPU s t m d ng chương trình th c thi đ th c thi m t chương trình khác (chương trình / chương trình x lý ng t) r i sau (sau x lý xong chương trình / chương trình x lý ng t) CPU s quay v ñ th c thi ti p t c chương trình b t m d ng • Khác nhau: Ng t Chương trình Th i m x y s ki n Không bi t trư c (hay x y không Bi t trư c (hay x y ñ ng b v i ñ ng b v i chương trình chính) chương trình chính) Nguyên nhân d n ñ n s ki n Do tín hi u u n t Timer, Do l nh g i chương trình Serial port bên ngồi chip (ACALL, LCALL) Chương trình x lý ng t (t c chương trình mà CPU ph i th c hi n có m t ng t x y ñ n) ñư c g i trình ph c v ng t ISR (ISR: Interrupt Service Routine) hay trình qu n lý ng t (Interrupt Handler) ISR ñư c th c thi nh m ñáp ng m t ng t trư ng h p t ng quát th c hi n vi c xu t nh p ñ i v i m t thi t b Khi m t ng t xu t hi n, vi c th c thi chương trình t m th i b d ng l i CPU th c thi vi c r nhánh ñ n trình ph c v ng t ISR CPU s th c thi ISR ñ th c hi n m t công vi c k t thúc vi c th c hi n công vi c g p l nh “quay v t trình ph c v ng t” (l nh RETI), sau chương trình ti p t c ñư c th c thi t i nơi b t m d ng Ta có th nói chương trình Giáo trình Vi x lý 177 Biên so n: Ph m Quang Trí Chương 6: Ho t đ ng ng t (Interrupt) đư c th c thi Trư ng ðH Công nghi p Tp.HCM m c n n (Base level), cịn ISR đư c th c thi m c ng t (Interrupt level) Bi u di n vi c th c thi chương trình có ng t khơng có ng t: M t ví d v ng t n hình nh p thơng s ñi u n s d ng bàn phím Ta kh o sát m t ng d ng c a lị viba Chương trình có th u n thành ph n công su t c a lị đ th c hi n vi c n u nư ng Tuy nhiên ñang n u, h th ng ph i ñáp ng vi c nh p s li u b ng tay c a lò (ch ng h n ta mu n yêu c u rút ng n b t hay kéo dài thêm th i gian n u), u có th x y t i b t c th i ñi m trình n u Trư ng h p ta không s d ng ng t: Như ta ñã bi t, m t h th ng ch có th th c thi m t cơng vi c t i m t th i ñi m Cho nên h th ng ñang th c thi vi c n u nư ng khơng th th c thi vi c ñáp ng nh p s li u x y ngư c l i Vì th trư ng h p h th ng ph i th c hi n cho xong vi c n u nư ng r i m i th c hi n ti p vi c ñáp ng nh p s li u (đi u vơ lý n u nư ng xong c n ph i u ch nh th i gian n a) ho c ngư c l i h th ng ph i th c hi n cho xong vi c ñáp ng nh p s li u r i m i th c hi n ti p vi c n u nư ng (đi u vơ lý khơng th bi t trư c đư c vi c nh p s li u x y lúc nào, q trình h th ng ch đ i vi c nh p s li u s tr nên vô nghĩa) Trư ng h p ta s d ng ng t: Ta nh n th y r ng vi c n u nư ng vi c di n liên t c t ñ u ñ n cu i, cịn vi c đáp ng nh p s li u ch x y ta nh n bàn phím (khơng xác đ nh đư c th i ñi m x y ra) Vì th , ta phân c p cho chương trình (m c n n) s u n thành ph n cơng su t c a lị đ th c hi n vi c n u nư ng, cịn vi c đáp ng nh p s li u s ng t ñi u n (m c ng t) Bình thư ng lị th c hi n vi c n u nư ng ñã xác ñ nh, ngư i s d ng nh n bàn phím m t tín hi u ng t đư c t o chương trình s b t m th i d ng l i ISR ñư c th c thi ñ ñ c mã phím thay ñ i ñi u ki n n u tương ng, sau ñó k t thúc b ng cách chuy n ñi u n tr v chương trình Chương trình ñư c th c thi ti p t nơi t m d ng ði u quan tr ng ví d nêu vi c nh p bàn phím xu t hi n khơng đ ng b nghĩa xu t hi n kho ng th i không báo trư c ho c ñư c ñi u n b i ph n m m ñang ñư c th c thi h th ng ðó m t ng t Giáo trình Vi x lý 178 Biên so n: Ph m Quang Trí Chương 6: Ho t ñ ng ng t (Interrupt) Trư ng ðH Công nghi p Tp.HCM II PHƯƠNG PHÁP PH C V THI T B : M t b vi ñi u n có th ph c v m t ho c nhi u thi t b Có hai phương pháp ph c v thi t b là: phương pháp ng t (Interrupt) phương pháp thăm dò (Polling) phương pháp ng t, m i có m t thi t b c n đư c ph c v thi t b s báo cho b vi ñi u n b ng cách g i đ n m t tín hi u ng t Khi nh n đư c tín hi u này, b vi u n s ng ng m i cơng vi c th c hi n ñ chuy n sang ph c v cho thi t b phương pháp thăm dò, b vi ñi u n liên t c ki m tra tình tr ng c a m t thi t b ñi u ki n ñư c ñáp ng s ti n hành ph c v cho thi t b Sau đó, b vi u n chuy n sang ki m tra tr ng thái c a thi t b k ti p cho ñ n t t c thi t b ñ u ñư c ph c v ði m m nh c a phương pháp ng t m t b vi u n có th ph c v ñư c nhi u thi t b , dĩ nhiên không m t th i ñi m M i thi t b có th ñư c b vi ñi u n ph c v d a theo m c ưu tiên ñư c gán phương pháp thăm dị, khơng th gán m c ưu tiên cho thi t b đư c b vi ñi u n ti n hành ki m tra thi t b theo ki u h i vòng m t cách l n lư t qua t ng thi t b Ngoài ra, phương pháp ng t cho phép b vi ñi u n che ho c b qua m t yêu c u ph c v c a thi t b , ñi u mà phương pháp thăm dị khơng th th c hi n Tuy nhiên, lý mà phương pháp ng t đư c ưa chu ng phương pháp thăm dị lãng phí đáng k th i gian c a b vi ñi u n ph i h i dò t ng thi t b , c chúng khơng c n đư c ph c v ð làm rõ v n ñ này, c n xem l i ví d v l p trình b đ nh th i đư c trình bày chương Trong có l nh JNB TF1, $ đư c s d ng ñ ch ñ i cho ñ n b ñ nh th i tràn (TF=1) ví d này, ch đ i c TF=1 b vi ñi u n không th làm ñư c công vi c khác, u d n đ n vi c lãng phí th i gian Cũng v i b ñ nh th i này, n u ta dùng phương pháp ng t b vi u n có th th c hi n m t s cơng vi c ch ñ i c TF=1 Khi c TF=1 b vi ñi u n s b ng t cho dù làm vi c n a, ñi u s không làm cho b vi ñi u n b lãng phí th i gian m t cách vô nghĩa III T CH C NG T C A 8051: Các ngu n ng t: Lưu ý: • Khi ta reset h th ng t t c ng t ñ u b c m ho t đ ng • Các ngu n ng t ñư c cho phép ho c c m ho t ñ ng b ng l nh ngư i l p trình thi t l p cho t ng ng t • Vi c x lý ng t ñư c th c hi n qua sơ ñ : o Sơ đ ưu tiên ng t → có th thay ñ i ñư c ngư i l p trình thi t l p o Sơ đ chu i vịng → c đ nh, khơng thay đ i ñư c ⇒ Hai sơ ñ giúp CPU gi i quy t v n ñ liên quan ñ n ng t như: hai hay nhi u ng t x y ñ ng th i ho c m t ng t x y m t ng t khác ñang ñư c th c thi Giáo trình Vi x lý 179 Biên so n: Ph m Quang Trí Chương 6: Ho t đ ng ng t (Interrupt) Trư ng ðH Công nghi p Tp.HCM Các c ng t c a chip 8051: Lưu ý: • M t ng t x y c ng t tương ng s ñư c set b ng • Khi ISR c a ng t ñư c th c thi c ng t tương ng s t ñ ng b xóa v b ng ph n c ng (ngo i tr c ng t RI TI ph i đư c xóa v b ng ph n m m) • ð i v i ng t ngồi s có hai cách kích ho t đ t o m t tín hi u ng t: ng t ngồi kích ho t có m c th p ng t ngồi kích ho t có c nh âm t i chân INT0\ ho c INT1\ Qui ñ nh vi c ch n lo i kích ho t cho ng t ngồi: Vi c ch n l a lo i kích ho t cho ng t ngồi, thu c lo i kích ho t c nh hay thu c lo i kích ho t m c, đư c l p trình thơng qua bit IT0 IT1 c a ghi TCON IT0 = → Ng t ngồi đư c kích kh i b i vi c phát hi n m c th p t i chân INT0\ IT0 = → Ng t ngồi đư c kích kh i b i vi c phát hi n c nh âm t i chân INT0\ IT1 = → Ng t ngồi đư c kích kh i b i vi c phát hi n m c th p t i chân INT1\ IT1 = → Ng t ngồi đư c kích kh i b i vi c phát hi n c nh âm t i chân INT1\ Lưu ý: Khi t o tín hi u ng t t i chân INT0\ ho c INT1\ ta c n ph i ý ñ n th i gian trì tác đ ng c a tín hi u ng t • ð i v i lo i ng t kích ho t c nh âm (th i gian t i thi u): 8051 INTx (1) fOSC (MHz): taàn số thạch anh Tm ( s): chu kỳ máy Tm = (0) x = 0, 12 f OSC Tm Tm • ð i v i lo i ng t kích ho t m c th p (th i gian t i ña): 8051 INTx (1) (0) (*) (**) Giáo trình Vi x lý x = 0, (*): Duy trì trạng thái (0) ISR tương ứng thực (*) = × Tm (**):Trở trạng thái (1) trước ISR tương ứng thực xong trước có ngắt khác tạo 180 Biên so n: Ph m Quang Trí Chương 6: Ho t ñ ng ng t (Interrupt) Trư ng ðH Công nghi p Tp.HCM Thanh ghi cho phép ng t (IE): Thanh ghi cho phép ng t (IE: Interrupt Enable): ch a bit dùng ñ cho phép ho c c m ng t ho t ñ ng C u trúc c a ghi IE: Hai ñi u ki n ñ m t ng t ñư c phép ho t ñ ng là: • Bit EA = • Bit ng t tương ng = Ví d : ð ng t c a Timer ñư c phép ho t ñ ng ta dùng l nh: SETB ET1 SETB EA ho c MOV IE, #10001000B M c dù c cách ñ u cho ta m t k t qu sau h th ng ñư c thi t l p l i tr ng thái ban ñ u (reset h th ng) Tuy nhiên chương trình ho t ñ ng nh hư ng c a hai cách có khác cách th hai ghi lên ghi IE Cách th nh t, s d ng hai l nh SETB nên ch nh hư ng ñ n bit c n tác đ ng mà khơng gây nh hư ng đ n bit cịn l i c a ghi IE Trong đó, cách th hai ch s d ng l nh MOV nên s làm cho bit l i bit xóa m t T t nh t ta nên kh i ñ ng ghi IE b ng l nh MOV đ u chương trình sau h th ng ñư c thi t l p l i Vi c cho phép ho c không cho phép ng t chương trình nên s d ng l nh SETB ho c CLR ñ tránh nh hư ng ñ n bit khác ghi IE Thanh ghi ưu tiên ng t (IP): Khái ni m ưu tiên ng t giúp 8051 gi i quy t v n đ hai tín hi u ng t xu t hi n ñ ng th i v n ñ m t tín hi u ng t xu t hi n m t ng t khác ñang ñư c th c thi Ng t ưu tiên m c cao → Ng t ưu tiên m c th p Thanh ghi ưu tiên ng t (IP: Interrupt Priority): ch a bit dùng ñ thi t l p m c ñ ưu tiên (m c cao hay m c th p) cho t ng ng t riêng r Giáo trình Vi x lý 181 Biên so n: Ph m Quang Trí Chương 6: Ho t đ ng ng t (Interrupt) Trư ng ðH Công nghi p Tp.HCM C u trúc c a ghi IP: Khi h th ng ñư c thi t l p l i tr ng thái ban đ u t t c ng t ñ u s ñư c m c ñ nh m c ưu tiên th p Ý tư ng “các m c ưu tiên” cho phép m t trình ph c v ng t đư c t m d ng b i m t ng t khác n u ng t m i có m c ưu tiên cao m c ưu tiên c a ng t hi n ñang ñư c ph c v ði u hồn tồn h p lý đ i v i 8051 ta ch có hai m c ưu tiên N u có ng t có m c ưu tiên cao xu t hi n, trình ph c v ng t cho ng t có m c ưu tiên th p ph i t m d ng (nghĩa b ng t) Ta không th t m d ng m t chương trình phuc v ng t có m c ưu tiên cao Chương trình đư c th c thi m c n n không ñư c k t h p v i m t ng t nên luôn b ng t b i ng t cho dù ng t có m c ưu tiên th p hay m c ưu tiên cao N u có hai ng t v i m c ưu tiên ng t khác xu t hi n đ ng th i, ng t có m c ưu tiên cao s ñư c ph c v trư c Th t chu i vòng ng t (Interrupt Polling Sequence): Khái ni m chu i vòng giúp 8051 gi i quy t v n ñ hai hay nhi u tín hi u ng t có m c ưu tiên gi ng xu t hi n ñ ng th i Chu i vịng s (đư c s p x p theo th t t th p đ n cao): Ng t ngồi → Ng t Timer → Ng t → Ng t Timer → Ng t port n i ti p → Ng t Timer (ch có 8052) Hình dư i ñây minh h a nguyên nhân ng t, ch cho phép riêng r toàn c c, chu i vòng m c ưu tiên Tr ng thái c a t t c nguyên nhân ng t đư c th hi n thơng qua bit c tương ng ghi ch c đ c bi t có liên quan Dĩ nhiên n u m t ng t khơng ñư c phép, nguyên nhân ng t tương ng không th t o m t ng t ph n m m v n có th ki m tra c ng t L y thí d b đ nh th i port n i ti p hai chương trư c s d ng c ng t m t cách r ng rãi dù khơng có ng t tương ng x y ra, nghĩa không s d ng ng t Ng t port n i ti p k t qu OR c a c ng t thu RI (c ng t thu) c ng t phát TI (c ng t phát) Giáo trình Vi x lý 182 Biên so n: Ph m Quang Trí Chương 6: Ho t đ ng ng t (Interrupt) Trư ng ðH Công nghi p Tp.HCM C u trúc ng t c a 8051: IV X LÝ NG T VÀ CÁC VECTƠ NG T: Qui trình x lý ng t: Các thao tác s x y có m t ng t xu t hi n đư c CPU ch p nh n: Hoàn t t th c thi l nh t i th i m d ng chương trình Giá tr c a ghi PC ñư c c t vào stack Tr ng thái c a ng t t i th i m ñư c lưu gi l i Các ng t ñư c gi l i m c ng t ð a ch c a ISR c a ng t tương ng ñư c n p vào ghi PC ISR c a ng t tương ng ñư c th c thi (ISR th c thi xong g p l nh RETI) • Giá tr stack (c a PC cũ) ñư c ph c h i l i vào ghi PC • Tr ng thái ng t đư c ph c h i l i • Chương trình ti p t c đư c th c thi t i ch b t m d ng • • • • • • ISR ñư c th c thi ñ ñáp ng công vi c c a ng t Vi c th c thi ISR k t thúc g p l nh RET (tr v t m t trình ph c v ng t) L nh l y l i giá tr cũ c a b ñ m chương trình PC t stack ph c h i tr ng thái c a ng t cũ Vi c th c thi chương trình đư c ti p t c nơi b t m ngưng Giáo trình Vi x lý 183 Biên so n: Ph m Quang Trí Chương 6: Ho t đ ng ng t (Interrupt) Trư ng ðH Công nghi p Tp.HCM Các vectơ ng t: Khi m t ng t ñư c ch p nh n, giá tr ñư c n p cho b đ m chương trình PC đư c g i vectơ ng t Vectơ ng t ñ a ch b t đ u c a chương trình ph c v ng t (ISR) c a ng t tương ng Vectơ reset h th ng ñư c xem m t ng t: chương trình b ng t b đ m chương trình PC đư c n p giá tr m i Khi m t trình ph c v ng t đư c tr đ n, c gây ng t s t ñ ng b xóa v b i ph n c ng Các ngo i l bao g m c RI TI ñ i v i ng t port n i ti p, nguyên nhân ng t thu c lo i có hai kh t o ng t nên th c t CPU khơng xóa c ng t B ng qui đ nh ñ a ch b t ñ u c a ISR (b ng vectơ ng t): V THI T K CÁC CHƯƠNG TRÌNH S D NG NG T: T ng quan: Khi thi t k chương trình khơng s d ng ng t ta s g p ph i nh ng trư ng h p CPU hồn tồn tiêu phí th i gian vào vi c ch ñ i tác nhân c n thi t x y (Ví d : s tràn c a c TF0, TF1; vi c thu xong m t d li u c RI=1; vi c phát xong m t ký t c TI=1; v.v…) đ sau m i ti p t c th c hi n cơng vi c ⇒ ði u khơng thích h p cho ng d ng ñi u n ñòi h i ph i tác ñ ng qua l i v i nhi u thi t b lúc ð gi i quy t v n ñ ta c n thi t k chương trình có s d ng đ n ng t ⇒ Vì giúp cho CPU khơng t n th i gian đ ch ñ i tác nhân mà ch tác nhân x y đ n CPU m i th c hi n vi c x lý tác nhân đó, kho ng th i gian tác nhân không x y CPU s làm vi c khác Giáo trình Vi x lý 184 Biên so n: Ph m Quang Trí Chương 6: Ho t ñ ng ng t (Interrupt) Trư ng ðH Công nghi p Tp.HCM T ch c b nh s d ng ng t: Khuông m u cho m t chương trình có s d ng ng t: ORG 0000H ;ði m nh p c a reset h th ng LJMP MAIN ;L nh nh y ñ vư t qua ISR ……………… ;ði m nh p c a ISR ……………… ……………… ORG 0030H ;ði m nh p c a chương trình MAIN: ……………… ;Chương trình b t đ u ……………… ……………… END Thi t k chương trình ISR kích thư c nh : ði u ki n: Khi ISR có kích thư c không byte (k c l nh RETI) ⇒ ISR ph i ñư c vi t ph m vi ñi m nh p tương ng c a b nh chương trình (xem ph n t ch c b nh s d ng ng t) Lưu ý: • N u ch có m t ngun nhân ng t đư c s d ng ISR c a có th đư c vi t tràn sang ñi m nh p c a ISR khác (nghĩa ISR có kích thư c l n byte, ph i nh 46 byte) Vì vùng nh c a ISR khác khơng đư c dùng đ n nên ta có th t n d ng ñ s d ng cho ISR • N u có nhi u ngun nhân ng t đư c s d ng ta ph i c n th n ñ ñ m b o cho ISR ñư c b t ñ u ñúng v trí mà khơng tràn sang ISR k (nghĩa ISR có kích thư c khơng q byte) Giáo trình Vi x lý 185 Biên so n: Ph m Quang Trí Chương 6: Ho t đ ng ng t (Interrupt) Trư ng ðH Công nghi p Tp.HCM Khuông m u chương trình: (Ví d : dùng ng t Timer0 ng t 1) ORG 0000H ;ði m nh p c a reset h th ng LJMP MAIN ;L nh nh y ñ vư t qua ISR ORG 000BH ;ði m nh p cho ISR c a Timer ……………… ;ISR c a Timer ……………… RETI ;K t thúc ISR c a Timer ORG 0013H ;ði m nh p cho ISR c a ng t ……………… ;ISR c a ng t ……………… RETI ;K t thúc ISR c a ng t ORG 0030H ;ði m nh p c a chương trình MAIN: ……………… ;Chương trình b t đ u ……………… ……………… END Thi t k chương trình ISR kích thư c l n: ði u ki n: Khi ISR có kích thư c vư t q byte ⇒ ISR khơng th vi t vào m nh p tương ng c a b nh chương trình (vì kích thư c m nh p ch có byte) → ta ph i chuy n ISR ñ n m t nơi khác b nh chương trình ho c có th vi t l n qua ñi m nh p c a ISR k ti p (n u ISR khơng s d ng) Khng m u chương trình: (Ví d : dùng ng t Timer0 ng t 1) ORG 0000H ;ði m nh p c a reset h th ng LJMP MAIN ;L nh nh y ñ vư t qua ISR ORG 000BH ;ði m nh p cho ISR c a Timer LJMP T0ISR ;L nh nh y ñ n ISR c a Timer ORG 0013H ;ði m nh p cho ISR c a ng t LJMP EX1ISR ;L nh nh y ñ n ISR c a ng t ORG 0030H ;ði m nh p c a chương trình MAIN: ……………… ;Chương trình b t đ u ……………… ……………… SJMP $ ;L nh cách ly chương trình T0ISR: ……………… ;ISR c a ng t Timer ……………… RETI ;K t thúc ISR c a Timer EX1ISR: ……………… ;ISR c a ng t ……………… RETI ;K t thúc ISR c a ng t ngồi END Giáo trình Vi x lý 186 Biên so n: Ph m Quang Trí Chương 6: Ho t ñ ng ng t (Interrupt) Trư ng ðH Cơng nghi p Tp.HCM • Nh n xét t ng qt: o ð đơn gi n, chương trình c a ch làm vi c th i m b t đ u Chương trình kh i ñ ng port n i ti p, b ñ nh th i ghi ng t cho thích h p v i u c u đ t r i khơng làm c Cơng vi c hồn tồn đư c th c hi n bên ISR Sau l nh kh i đ ng, chương trình ch a th c hi n l nh sau ñây (l nh nh y t i ch – khơng làm c ): SJMP $ o Khi có m t tín hi u ng t xu t hi n, chương trình t m th i b d ng l i ISR ñư c th c thi L nh RETI cu i c a ISR s tr ñi u n v cho chương trình chương trình ti p t c khơng làm c (l nh nh y t i ch ) ði u khơng t nhiên đ i v i Trong nhi u ng d ng hư ng ñi u n, ph n l n công vi c đư c th c hi n trình ph c v ng t Các ví d minh h a dư i ñây s cho ta th y ñi u VI CÁC VÍ D MINH H A: Ví d minh h a x lý ng t Timer: Ví d 1: Vi t chương trình s d ng Timer ng t ñ t o m t sóng vng có t n s 10 KHz chân P1.0, fOsc = 12MHz Gi i ORG LJMP ORG 0000H MAIN 000BH CPL RETI ORG P1.0 MOV MOV SETB MOV SJMP END TMOD, #02H TH0, #(-50) TR0 IE, #82H $ T0ISR: 0030H MAIN: ;ði m nh p reset ;Nh y qua kh i vectơ ng t ;ði m nh p ISR c a Timer ;ISR c a Timer ;L y bù ;K t thúc ISR c a Timer ;ði m nh p chương trình ;Chương trình b t đ u ;Ch n ch ñ cho Timer ;ð nh th i 50 s ;Cho Timer ho t ñ ng ;Cho phép ng t Timer ;Khơng làm (nh y t i ch ) ;K t thúc chương trình Lưu ý: L nh SJMP$ có th đư c thay th b ng m t ño n l nh ñ th c thi nh ng công vi c khác Vi c thay th khơng nh hư ng đ n vi c t o sóng vng f=10KHz t i chân P1.0 Vì c sau m i 50 s nh ng cơng vi c s b t m d ng (ng t Timer xu t hi n) ñ CPU th c hi n vi c t o sóng vuông r i quay v th c hi n ti p nh ng cơng vi c Ngay sau reset h th ng, b đ m chương trình PC ñư c n p 0000H L nh ñ u tiên ñư c th c thi LJMP MAIN, l nh r nhánh đ n chương trình đ a ch 0030H b nh chương trình Ba l nh đ u tiên c a chương trình s kh i ñ ng Timer ch ñ bit t ñ ng n p l i (Mode 2), cho Timer s tràn sau m i 50 s L nh MOV IE, #82H cho phép ng t Timer0 t o M i m t l n tràn, Timer s t o m t ng t Dĩ nhiên l n tràn ñ u tiên s khơng xu t hi n sau Giáo trình Vi x lý 187 Biên so n: Ph m Quang Trí Chương 6: Ho t ñ ng ng t (Interrupt) Trư ng ðH Cơng nghi p Tp.HCM 50 s chương trình vịng l p “khơng làm gì” Khi ng t xu t hi n sau m i 50 s, chương trình b ng t ISR cho Timer0 đư c th c thi ví d ISR ch ñơn gi n l y bù bit c a port quay tr v chương trình nơi vịng l p “khơng làm gì” đư c th c thi ñ ch m t ng t m i sau m i 50 s Lưu ý c tràn TF0 khơng c n đư c xóa b i ph n m m ng t ñư c cho phép c t đ ng đư c xóa b i ph n c ng CPU tr ñ n trình ph c v ng t Ví d 2: Vi t chương trình s d ng ng t ñ t o ñ ng th i d ng sóng vng có t n s KHz 500 Hz t i chân P1.7 P1.6 (không quan tâm ñ n ñ l ch pha c a hai sóng này), fOsc = 12MHz Gi i ORG LJMP ORG LJMP ORG LJMP ORG MAIN: MOV MOV SETB SETB MOV SJMP T0ISR: CPL RETI T1ISR: CLR MOV MOV SETB CPL RETI END 0000H MAIN 000BH T0ISR 001BH T1ISR 0030H ;ði m nh p reset ;Nh y qua kh i vectơ ng t ;ði m nh p ISR c a Timer ;L nh nh y ñ n ISR Timer ;ði m nh p ISR c a Timer ;L nh nh y ñ n ISR Timer ;ði m nh p chương trình ;Chương trình b t ñ u TMOD, #12H ;Ch n ch ñ cho Timer ;Ch n ch ñ cho Timer TH0, #-71 ;ð nh th i 71 s TR0 ;Cho Timer ho t ñ ng TF1 ;Bu c Timer ng t IE, #8AH ;Cho phép ng t ho t đ ng $ ;Khơng làm (nh y t i ch ) ;ISR c a ng t Timer P1.7 ;L y bù ;K t thúc ISR c a Timer ;ISR c a ng t Timer TR1 ;D ng Timer TH1, #HIGH(-1000) ;ð nh th i 1ms TL1, #LOW(-1000) TR1 ;Cho Timer ho t ñ ng P1.6 ;L y bù ;K t thúc ISR c a Timer ;K t thúc chương trình Giáo trình Vi x lý 188 Biên so n: Ph m Quang Trí ... m chương trình PC t stack ph c h i tr ng thái c a ng t cũ Vi c th c thi chương trình đư c ti p t c nơi b t m ngưng Giáo trình Vi x lý 183 Biên so n: Ph m Quang Trí Chương 6: Ho t ñ ng ng t (Interrupt). .. so n: Ph m Quang Trí Chương 6: Ho t đ ng ng t (Interrupt) Trư ng ðH Công nghi p Tp.HCM • Nh n xét t ng quát: o ð ñơn gi n, chương trình c a ch làm vi c th i ñi m b t ñ u Chương trình kh i đ ng... Biên so n: Ph m Quang Trí Chương 6: Ho t đ ng ng t (Interrupt) Trư ng ðH Công nghi p Tp.HCM 50 s chương trình vịng l p “khơng làm gì” Khi ng t xu t hi n sau m i 50 s, chương trình b ng t ISR cho