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

Bài giảng Chương 5: Hoạt động ngắt

Chia sẻ: Nguyễn Nguyễn | Ngày: | Loại File: PDF | Số trang:15

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

Bài giảng Chương 5: Hoạt động ngắt cung cấp cho các bạn những kiến thức về các thanh ghi ngắt; thời gian trễ thực thi ngắt; cấu trúc của một chương trình có ngắt. Đây là tài liệu hữu ích với những bạn chuyên ngành Công nghệ thông tin. Mời các bạn tham khảo bài giảng để nắm bắt nội dung chi tiết.

 

Chủ đề:
Lưu

Nội dung Text: Bài giảng Chương 5: Hoạt động ngắt

  1. CHƯƠNG 5 NG NGẮT
  2. CHƯƠNG 5: HOẠT ĐỘNG NGẮT 1. Giới thiệu - Vi điều khiển PIC có rất nhiều nguồn Ngắt. Bao gồm các Ngắt trong và các Ngắt ngoại vi:  Ngắt tại chân INT  Ngắt tràn TIMER0  Ngắt tràn TIMER1  Ngắt tràn TIMER2  Ngắt khi có sự thay đổi trên các chân PORTB
  3. CHƯƠNG 5: HOẠT ĐỘNG NGẮT  Ngắt NHẬN dữ liệu  Ngắt TRUYỀN dữ liệu  Ngắt chuyển đổi A/D  Ngắt khi hoàn tất Ghi EEPROM  Ngắt Module CCP  Ngắt Module SSP  Ngắt so sánh điện thế  Ngắt USART, ……..
  4. CHƯƠNG 5: HOẠT ĐỘNG NGẮT 2. Các thanh ghi NGẮT  Thanh ghi INTCON: Bao gồm các Bit cho phép Ngắt và cờ Ngắt của TIMER0, ngắt INT, ngắt PORTB.  Thanh ghi PIE1: chứa các Bit cho phép Ngắt ngoại vi.  Thanh ghi PIR1: chứa các Cờ Ngắt ngoại vi.  Thanh ghi PIE2  Thanh ghi PIR2
  5. NG NGẮT TMR0IE TMR0IF Interrupt INTE INTF RBIE RBIF TMR2IE GIE TMR2IF ADIE ADIF Other peripherals PEIE Hình 1: Sơ đồ các tác nhân Ngắt
  6. CHƯƠNG 5: HOẠT ĐỘNG NGẮT a. Thanh ghi INTCON: Bao gồm các Bit cho phép Ngắt và cờ Ngắt của TIMER0, ngắt ngoài INT, ngắt PORTB Enable Bits Description GIE Global Interrupt Enable Must be set to use any Interrupts PEIE Peripheral Interrupt Enable TMRIE Timer0 Interrupt Enable Must be set to use any Peripheral INTE External Interrupt Enable Interrupts RBIE PORTB change Interrupt Enable GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF
  7. NG NGẮT b. Thanh ghi PIE1 và PIR1: (Peripheral Interrupts) PIE1 ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE PIR1 ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF Enable Flag Condition ADIE ADIF ADC conversion complete RCIE RCIF AUSART receive buffer is full TXIE TXIF AUSART transmit buffer is full SSPIE SSPIF I2C or SPI Interrupt CCP1IE CCP1IF Timer1 register capture or compare match TMR2IE TMR2IF Timer2 value and PR2 period value match TMR1IE TMR1IF Timer1 register has overflowed
  8. NG NGẮT b. Thanh ghi PIE1 và PIR1: (Peripheral Interrupts) PIE2 OSCFIE C2IE C1IE EEIE BCLIE ULPWUIE CCP2IE PIR2 OSCFIF C2IF C1IF EEIF BCLIF ULPWUIF CCP2IF Enable Flag Condition OSCFIE OSCFIF System Oscillator Failed C2IE C2IF Comparator2 output changed C1IE C1IF Comparator1 output changed EEIE EEIF Write operation completed BCLIE BCLIF Bus collision occurred in MSSP I2C mode ULPWUIE ULPWUIF Wake-up condition occurred CCP2IE CCP2IF Timer1 Capture or Compare match occurred
  9. CHƯƠNG 4: HOẠT ĐỘNG NGẮT 3. Thời gian trễ thực thi Ngắt Là khoảng thời gian bắt đầu xuất hiện Ngắt tới dòng Lệnh thực hiện tại địa chỉ bắt đầu chương trình Ngắt : 0004h (Khi có Ngắt thì thanh ghi PC sẽ nhảy tới địa chỉ 0004h)  Đối với các Ngắt đồng bộ (Typically Internal): 3Tcy  Đối với các Ngắt không đồng bộ (Typically External): 3 – 3.75 Tcy  Chọn thời gian giữa 2 chương trình Ngắt: 3 - 4 Tcy
  10. CHƯƠNG 5: HOẠT ĐỘNG NGẮT 4. Sao lưu dữ liệu trong quá trình Ngắt - Trong quá trình xảy ra Ngắt, chỉ có duy nhất thanh ghi PC được lưu vào STACK tự động. - Vì vậy, ta cần phải lưu data của thanh ghi W và STATUS khi bắt đầu thực hiện chương trình Ngắt, và phục hồi data sau khi thoát chương trình Ngắt. - Lu ý: 2 thanh ghi W_TEMP và STATUS_TEMP phải được lưu ở vùng RAM dùng chung của 4 Bank thanh ghi. ( 70h – 7Fh trong Bank 0 )
  11. CHƯƠNG 5: HOẠT ĐỘNG NGẮT Chương trình Sao lưu dữ liệu của 2 thanh ghi STATUS và W vào STATUS_TEMP và W_TEMP : MOVWF W_TEMP ;lưu W SWAPF STATUS, W ;Đảo và lưu STATUS vào W, thay cho lệnh MOVF vì sẽ ảnh hưởng đến bit Z. MOVWF Status_TEMP ……. Nội dung của chương trình Ngắt …… SWAPF Status_TEMP, W MOVWF STATUS ;phục hồi STATUS MOVF W_TEMP, W ;phục hồi W
  12. CHƯƠNG 5: HOẠT ĐỘNG NGẮT 5. Cấu trúc của 1 chương trình có Ngắt ORG 0000H GOTO MAIN ORG 0004H GOTO INTERRUPT ORG 0005H MAIN …… Chương trình chính …… INTERRUPT …… Kiem tra cac Chương trình Ngắt ……. GOTO MAIN END
  13. NG NGẮT a. Chương trình Khởi tạo Ngắt PIE1 PIE1_MASK1 EQU B’01101010’ ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE CLRF STATUS ;chọn Bank0 CLRF INTCON ;cấm các ngắt và xóa cờ ngắt CLRF PIR1 ;xóa cờ các ngắt ngoại vi BSF STATUS, RP0 ;chọn Bank1 MOVWF PIE1_MASK1;khởi tạo các ngắt Ngoại vi MOVF PIE1 BCF STATUS, RP0 ;chọn Bank0 BSF INTCON, GIE;cho phép ngắt toàn cục
  14. CHƯƠNG 5: HOẠT ĐỘNG NGẮT b. Chương trình phục vụ Ngắt INTERRUPT CALL PUSH ;gọi CT lưu thanh ghi W+STATUS CLRF STATUS ;chọn Bank0 BTFSC PIR1, TMR1IF ;kiểm tra có ngắt TIMER1? GOTO T1_INT ;nếu CÓ, goi CT Ngắt T1 BTFSC PIR1, ADIF ;Kiểm tra có ngắt ADC ? GOTO AD_INT ;CÓ =gọi CT con ngắt ADC BTFSC INTCON, RBIF ; GOTO PORTB_INT ; ……. GOTO END_ISR ;Nếu không có Cờ nào thì thoát
  15. CHƯƠNG 5: HOẠT ĐỘNG NGẮT T1_INT …… nội dung chương trình Ngat TIMER1 …… BCF PIR1, TMR1IF ;xóa cờ ngắt TIMER1? GOTO END_ISR ;Thoát chương trình ngắt AD_INT …… nội dung chương trình Ngat ADC …… BCF PIR1, ADIF GOTO END_ISR ……………………………… END_ISR CALL POP ;gọi CT phục hồi W + STATUS RETFIE ;thoát CT phục vụ Ngắt
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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