Microsoft PowerPoint huong dan thuc hanh interrupt sv HƯỚNG DẪN LẬP TRÌNH NGẮT GV Vũ Thị Hồng Nga Khoa Công Nghệ Điện Tử II Lập trình ngắt cơ bản (ngắt nội) 1 Ngắt RB0 (ngắt ngoài) a Điều kiện xảy ra.
HƯỚNG DẪN LẬP TRÌNH NGẮT GV: Vũ Thị Hồng Nga Khoa Cơng Nghệ Điện Tử II Lập trình ngắt (ngắt nội) Ngắt RB0 (ngắt ngoài): a Điều kiện xảy ngắt ngồi: có thay đổi xung cạnh lên xung cạnh xuống chân RB0 vi điều khiển b Các bit liên quan: - Cho phép ngắt: + cho phép ngắt ngoài: INTIE = + cho phép ngắt toàn cục: GIE = - Chọn xung tác động theo cạnh lên/xuống: INTEDG = 1/0 - Cờ ngắt: INTIF tự động set lên có kiện ngắt ngồi xảy Cờ INTIF phải xóa chương để vi điều khiển quản lý xác lần ngắt Ghi chú: INTEDG = 1/0 ( bit ghi OPTION_REG); INTIE (bit ghi INTCON); GIE (bit ghi INTCON); INTIF (bit ghi INTCON) Ví dụ 1: Sử dụng ngắt ngồi lập trình điều khiển led theo yêu cầu sau Bình thường: Led đếm 07 theo mã nhị phân Ngắt: led chớp tắt lần Phân tích phần cứng : • Cấu hình PORTE: digital output • Cấu hình PORTB: digital input, kích hoạt R kéo lên chân RB0 • Kích hoạt tính ngắt ngồi • Viết chương trình • Viết chương trình ngắt • Nhấn nút RB0 để tạo kiện ngắt • mơ kiểm tra kết Lưu đồ giải thuật #include #include CONFIG (FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_OFF & IESO_OFF & FCMEN_OFF & LVP_OFF); #define _XTAL_FREQ 4000000 void main(void) { unsigned char i; void interrupt isr(void) ANSEL = 0X00; { ANSELH = 0X00; unsigned char j; TRISE = 0X00; if (INTE && INTF) TRISB0 = 1; { nRBPU = 0; INTF = 0; WPUB = 0x01; for (j=0;j