Thông tin tài liệu:
Hướng dẫn sử dụng Kit 89Bài 10 : Ngắt ngoàiMục đích: Nắm vững kĩ thuật điều khiển ngắt ngoài. Yêu cầu: Viết chương trình khi có ngắt ngoài 0 thì tăng biến đếm lên 1, ngắt ngoài 1 thì giảm đi 1, xuất giá trị ra led 7 đoạn.10.1 Nguyên lý điều khiển ngắt ngoàiNgắt ngoài có 2 loại : Ngắt cạnh và ngắt mức. Ngắt cạnh cũng có 2 loại : ngắt cạnh lên xảy ra khi có sự chuyển tín hiệu từ mức thấp lên mức cao ở chân ngắt ngoài. Tương tự ngắt cạnh xuống xảy ra...
Nội dung trích xuất từ tài liệu:
Hướng dẫn sử dụng Kit 89 - Bài 10 Hướng dẫn sử dụng Kit 89Bài 10 : Ngắt ngoàiMục đích: Nắm vững kĩ thuật điều khiển ngắt ngoài.Yêu cầu: Viết chương trình khi có ngắt ngoài 0 thì tăng biến đếm lên 1, ngắt ngoài 1 thìgiảm đi 1, xuất giá trị ra led 7 đoạn.10.1 Nguyên lý điều khiển ngắt ngoài Ngắt ngoài có 2 loại : Ngắt cạnh và ngắt mức. Ngắt cạnh cũng có 2 loại : ngắt cạnh lên xảy ra khi có sự chuyển tín hiệu từ mức thấp lên mức cao ở chân ngắt ngoài. Tương tự ngắt cạnh xuống xảy ra khi có sự chuyển tín hiệu từ mức cao xuống mức thấp. Ngắt mức cũng có 2 loại : ngắt mức cao và mức thấp. Ngắt mức cao xảy ra khi tín hiệu tại chân ngắt ngoài ở mức cao trong tối thiểu 1 chu kì. Trong vi điều khiển P89V51RB2, hỗ trợ 2 loại ngắt ngoài : ngắt cạnh lên và ngắtmức cao. Việc cấu hình cho ngắt ngoài dựa vào bit ITn trong thanh ghi TCON.10.2 Kết nối phần cứng Hai ngắt ngoài được mắc vào nút nhấn, tại chân P3.2 là ngắt ngoài 0 và P3.3 làngắt ngoài 1. Gạt switch 4 lên ON để kích hoạt led 7 đoạn.10.3 Viết chương trình Module ngắt ngoài khá đơn giản, gồm các hàm khởi tạo được khai báo trong fileext_int.h : void init_ext_int0(); void init_ext_int1(); Các hàm này được hiện thực trong file ext_int.c cùng với 2 hàm phục vụ ngắt ngắtngoài. Code xử lý trong bài mẫu này khá đơn giản, chỉ là việc cộng và trừ biến count rồidùng biến này để hiển thị giá trị tương ứng ra led 7 đoạn.10.3.1 Hàm init_ext_int0() void init_ext_int0() { IE &= ~(0x01);// enable external interrupt 0 IE |= 0x01; IT0 = 1; }10.3.2 Hàm init_ext_int1() void init_ext_int1() { IE &= ~(0x04);// enable external interrupt 1BKIT HARDWARE CLUB – www.bkit4u.com 58 Hướng dẫn sử dụng Kit 89 IE |= 0x04; IT1 = 1; }10.3.3 Hàm ext0_isr() Đây là hàm phục vụ ngắt ngoài 0. void ext0_isr() interrupt 0 { //Add your code here if(count0) count--; }BKIT HARDWARE CLUB – www.bkit4u.com 59