intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Minh Anh | Ngày: | Loại File: PDF | Số trang:14

82
lượt xem
7
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Vi sử lý - Chương 7: Ngắt quãng" giới thiệu tới người học khái niệm về ngắt quãng, các loại ngắt quãng và cánh thức hoạt động, thiết kế chương trình sử dụng ngắt quãng, khởi tạo ngắt quãng, cấu trúc chương trình sử dụng ngắt quãng. Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

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

  1. dce 2009 Ngắt quãng BK TP.HCM ©2009, CE Department
  2. dce 2009 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, CE Department 2
  3. dce 2009 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, CE Department 3
  4. dce 2009 Giới thiệu (tt) ©2009, CE Department 4
  5. dce 2009 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, CE Department 5
  6. dce 2009 Cách thức hoạt động ©2009, CE Department 6
  7. dce 2009 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, CE Department 7
  8. dce 2009 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, CE Department 8
  9. dce 2009 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, CE Department 9
  10. dce 2009 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, CE Department 10
  11. dce 2009 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, CE Department 11
  12. dce 2009 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, CE Department 12
  13. dce 2009 Các thanh ghi điều khiển interrupt • RCON • INTCON • INTCON2 • INTCON3 • PIR1, PIR2 • PIE1, PIE2 • IPR1, IPR2 ©2009, CE Department 13
  14. dce 2009 Cấu trúc chương trình sử dụng ngắt quãng ORG 00h EXTERNAL_INTERUPT_ROUTINE GOTO MAIN BCF INTCON,INT0IF ORG 08H RETURN GOTO ISR_HIGH TIMER0_INTERRUPT_ROUTINE ORG 18H BCF INTCON,TMR0IF GOTO ISR_LOW RETURN MAIN ISR_HIGH CALL INIT_INTERRUPT CALL EXTERNAL_INTERUPT_ROUTINE GOTO $ RETFIE ISR_LOW INIT_INTERRUPT RETURN 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 ©2009, CE Department 14
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2