Bài giảng Vi xử lý - Chương 7 Ngắt quãng

Ví dụ khởi tạo ngắt timer 0 ; cho phép ngắt xảy ra với độ ưu tiên cao. BSF INTCON2,TMR0IP ; xoá cờ ngắt BCF INTCON,TMR0IF ; cho phép ngắt timer0 xảy ra BSF INTCON,TMR0IE

pdf14 trang | Chia sẻ: truongthinh92 | Ngày: 26/07/2016 | Lượt xem: 689 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Bài giảng Vi xử lý - Chương 7 Ngắt quãng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
BK TP.HCM 2009 dce ©2009, CE Department Ngắt quãng 2009 dce ©2009, CE Department 2 Giới thiệu • Ngắt quãng là gì? – An interrupt is the occurrence of a condition-- an event -- that cause a temporary suspension of a program while the event is serviced by another program (Interrupt Service Routine ISR or Interrupt Handler). 2009 dce ©2009, CE Department 3 Giới thiệu (tt) • 18F2220 có nhiều nguồn ngắt và có độ ưu tiên (priority) khác nhau. – Ngắt có độ ưu tiên cao : 0008h – Ngắt có độ ưu tiên thấp : 0018h Khi một nguồn ngắt có độ ưu tiên cao xảy ra thì nó ngắt bất kì nguồn ngắt có độ ưu tiên thấp, dù cho nguồn ngắt đó đang thực hiện 2009 dce ©2009, CE Department 4 Giới thiệu (tt) 2009 dce ©2009, CE Department 5 Các loại ngắt quãng • Ngắt ngoài (3 kênh). • Timer 0, 1, 2. • PortB interrupt change. • Capture/Compare/PWM interrupt • USART • ADC • Comparator 2009 dce ©2009, CE Department 6 Cách thức hoạt động 2009 dce ©2009, CE Department 7 Thiết kế chương trình sử dụng ngắt quãng • Polling: chương trình chính kiểm tra các cờ, đợi cho có sự kiện xảy ra (không hiệu quả trong một số trường hợp). • Interrupt driven: CPU có thể thực hiện những công việc khác, không cần chờ các sự kiện xảy ra ( hiệu quả trong các ứng dụng điều khiển). • I/O processor: các processor chuyên dụng xử lý các sự kiện I/O, không can thiệp vào hoạt động của CPU. (tốt nhất nhưng chi phí cao). 2009 dce ©2009, CE Department 8 Xử lý ngắt • Khi một nguồn ngắt xảy ra và được chấp nhận bởi CPU thì chương trình chính sẽ bị ngắt. Sau đó CPU sẽ thực hiện các thao tác sau: – Thực thi xong lệnh hiện tại. – PC được lưu lại trên stack. – Các trạng thái hiện tại được lưu lại bên trong. – PC nhận giá trị địa chỉ vector tương ứng với nguồn ngắt. – Thực thi ISR. • ISR hoàn thành khi gặp lệnh RETFIE, sau đó phục hồi trạng thái của CPU rồi lấy lại giá trị PC từ stack. 2009 dce ©2009, CE Department 9 Khởi tạo ngắt quãng • IPEN (RCON) : cho/không cho phép xảy ra ngắt với độ ưu tiên khác nhau. • IPEN: enable – GIEH (INTCON) : cho/không cho phép các ngắt có độ ưu tiên cao. – GIEL (INTCON) : cho/không cho phép các ngắt có độ ưu tiên thấp. • IPEN: disable – GIEH (INTCON) : cho/không cho phép tất cả các nguồn ngắt xảy ra. – PEIE (INTCON) : cho/không phép tất cả các nguồn ngắt ngoại vi. 2009 dce ©2009, CE Department 10 Khởi tạo ngắt quãng (tt) • Có 3 bit điều khiển hoạt động của mỗi nguồn ngắt. – Flag bit – Enable interrupt bit – Priority bit Khi flag bit, enable bit và global enable bit được set thì chương trình sẽ nhảy tới địa chỉ 08h nếu là nguồn ngắt có độ ưu tiên cao, và tới địa chỉ 18h nếu là nguồn ngắt có độ ưu tiên thấp. 2009 dce ©2009, CE Department 11 Ví dụ khởi tạo ngắt timer 0 ; cho phép ngắt xảy ra với độ ưu tiên cao. BSF INTCON2,TMR0IP ; xoá cờ ngắt BCF INTCON,TMR0IF ; cho phép ngắt timer0 xảy ra BSF INTCON,TMR0IE 2009 dce ©2009, CE Department 12 Khởi tạo ngắt timer 0 INIT_TIMER0 BSF RCON,IPEN ;enable priority interrupts. BCF INTCON2,TMR0IP BSF INTCON,TMR0IF BSF INTCON,TMR0IE BSF INTCON,GIEH ;set the global interrupt enable bits BSF INTCON,GIEL CLRF T0CON MOVLW 0x3c MOVWF TMR0H MOVLW 0xAF MOVWF TMR0L BSF T0CON,TMR0ON RETURN 2009 dce ©2009, CE Department 13 Các thanh ghi điều khiển interrupt • RCON • INTCON • INTCON2 • INTCON3 • PIR1, PIR2 • PIE1, PIE2 • IPR1, IPR2 2009 dce ©2009, CE Department 14 Cấu trúc chương trình sử dụng ngắt quãng ORG 00h GOTO MAIN ORG 08H GOTO ISR_HIGH ORG 18H GOTO ISR_LOW MAIN CALL INIT_INTERRUPT GOTO $ INIT_INTERRUPT RETURN EXTERNAL_INTERUPT_ROUTINE BCF INTCON,INT0IF RETURN TIMER0_INTERRUPT_ROUTINE BCF INTCON,TMR0IF RETURN ISR_HIGH CALL EXTERNAL_INTERUPT_ROUTINE RETFIE ISR_LOW CALL TIMER0_INTERRUPT_ROUTINE RETFIE Flag bit phải được xoá bằng software trước khi cho phép ngắt xảy ra tiếp tục, tránh trường hợp gọi đệ quị ISR

Các file đính kèm theo tài liệu này:

  • pdfslide_vi_xu_li_chuong_7_8558.pdf