thiết bị báo cháy tự động, chương v

Chia sẻ: Nguyen Van Dau | Ngày: | Loại File: PDF | Số trang:5

0
99
lượt xem
39
download

thiết bị báo cháy tự động, chương v

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Các ví dụ trong các mục trước đã không sử dụng các ngắt nhưng đã có vòng lặp đợi để kiểm tra các cờ báo tràn (TF0 hoặc TF1) hoặc các cờ thu và cờ phát Pỏt nối tiếp (TI và RI). Vấn đề trong phương pháp này là thời gian thực thi có giá trị của CPU hoàn toàn không bị tiêu tốn trong việc đợi các cờ. Điều này hoàn toàn không thích hợp với các ứng dụng của vi điều khiển, trong đó bộ vi điều khiển phải tương tác với nhiều thiết bị xuất nhập...

Chủ đề:
Lưu

Nội dung Text: thiết bị báo cháy tự động, chương v

  1. THIEÁT KEÁ CHÖÔNG Chương V. TRÌNH DUØNG CAÙC NGAÉT Caùc ví duï trong caùc muïc tröoùc ñaõ khoâng söû duïng caùc ngaét nhöng ñaõ coù voøng laëp ñôïi ñeå kieåm tra caùc côø baùo traøn (TF0 hoaëc TF1) hoaëc caùc côø thu vaø côø phaùt Port noái tieáp (TI vaø RI). Vaán ñeà trong phöông phaùp naøy laø thôøi gian thöïc thi coù gía trò cuûa CPU hoaøn toaøn khoâng bò tieâu toán trong vieäc ñôïi caùc côø. Ñieàu naøy hoaøn toaøn khoâng thích hôïp vôùi caùc öùng duïng cuûa vi ñieàu khieån, trong ñoù boä vi ñieàu khieån phaûi töông taùc vôùi nhieàu thieát bò xuaát nhaäp ñoàng thôøi. Trong phaàn naøy ta seõ khaûo saùt caùch phaùt trieån chöông trình duøng vi ñieàu khieån. Khung ñeà nghò cho moät chöông trình phuïc vuï ngaét nhö sau: ORS 0000H ; ñieåm vaøo Reset. Ljmp main; caùc ñieåm vaøo ISR. Org 0030H; ñieåm vaøo chöông trình chính.
  2. Main: chöông trình chính baét ñaàu. Leänh thöù nhaát nhaûy tôùi ñòa chæ 0030H, vöøa treân caùc vò trí maø caùc ISR baét ñaàu. Nhö ñöôïc veõ hình sau, chöông trình chính baét ñaàu ôû ñòa chæ 0030H. FFFFH Chöông trình chính 0030H 002fH Caùc ñieåm vaøo LJMP main 0000H Reset vaø ngaét Hình : Toå chöùc boä nhôù khi duøng caùc ngaét 1.Chöông trình phuïc vuï ngaét coù kích thöôùc nhoû: Caùc chöông trình phuïc vuï ngaét phaûi baét ñaàu ôû gaàn phaàn ñaàu cuûa boä nhôù chöông trình ôû caùc ñòa chæ trong baûng caùc vectôr ngaét. Maët duø coù 8 byte ôû caùc ñieåm vaøo ngaét, thöôøng ñuû boä nhôù ñeå thöïc hieän caùc hoaït ñoäng mong muoán vaø quay veà chöông trình chính töø IRS. Neáu chæ coù moät nguoàn ngaét ñöôïc söû duïng, ví duï timer 0, thì coù theå söû duïng khung sau:
  3. ORS 000H; Reset LJMP MAIN ORG 000BH; ñieåm vaøo time 0 TOIRS: ; ISR cho time 0 baét ñaàu. RETI; quay veà chöông trình chính. MAIN: Chöông trình chính. Neáu söû duïng nhieàu ngaét phaûi ñaûm baûo laø chuùng phaûi baét ñaàu töø vò trí ñuùng vaø khoâng chaïy qua ISR keá. Vì chæ coù moät ngaét ñöôïc söû duïng trong ví duï treân, chöông trình chính coù theå baét ngay sau leänh RETI. 2. Caùc chöông trình phuïc vuï ngaét coù kích thöôùc lôùn: Neáu ISR daøi hôn 8 byte, coù theå caàn chuyeån noù tôùi moät nôi naøo ñoù trong boä nhôù chöông trình hoaëc coù theå ñeå noù ñi loá qua ñieåm vaøo cuûa ngaét keá. Tieâu bieåu laø ISR baét ñaàu vôùi leänh nhaûy ñeán vuøng nhôù khaùc ôû ñoù coù theå môû roäng chieàu daøi caùc ISR. Ví duï luùc naøy chæ xeùt timer 0, coù theå söû duïng khung sau: ORS 000H; Reset LJMP MAIN ORG 000BH; caùc vector ngaét tieáp theo. MAIN: TOISR: ; ISR cho time 0. RETI: ; quay veà chöông trình chính. Ñeå ñôn giaûn chöông trình chæ laøm vieäc moät luùc ban ñaàu. Chöông trình khôûi ñoäng Timer, Port noái tieáp vaø caùc thanh ghi ngaét cho thích hôïp vaø roài khoâng laøm gì caû. Coâng vieäc ñöôïc hoaøn
  4. toaøn laøm trong ISR. Sau caùc khôûi ñoäng, chöông trình chöùa caùc leänh sau: HERE: SJMP HERE Hay daïng vieát gaén goïn: SJMP Khi ngaét xaûy ra, chöông trình chính bò ngaét quaõng taïm thôøi trong khi ISR thöïc thi. Leänh RETI ôû cuoái ISR traû ñieàu khieån veà chöông trình chính vaø noù tieáp tuïc khoâng laøm gì caû. Trong nhieàu öùng duïng ñieàu khieån, nhieàu coâng vieäc thaät ra ñöôïc thöïc hieän hoaøn toaøn trong ISR. Vì söû duïng ngaét, neân leänh SJMP (HERE:SJMP HERE) coù theå ñöôïc thay theá baèng caùc leänh thöïc hieän coâng vieäc khaùc trong öùng duïng.
Đồng bộ tài khoản