1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu Chương 6: Hoạt động ngắt (Interrupt) pdf

12 849 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Ngày đăng: 20/01/2014, 19:20

TỪ KHÓA LIÊN QUAN

w