You are on page 1of 17

TRƯỜNG ĐẠI HỌC PHENIKAA

KHOA ĐIỆN ĐIỆN TỬ

KỸ THUẬT VI XỬ LÝ VÀ VI
ĐIỀU KHIỂN

Chương 7: Vi điều khiển PIC 16F887 ngắt


của vi điều khiển

GIẢNG VIÊN: ThS. ĐÀO TÔ HIỆU

Hà Nội, 1/2022
NỘI DUNG

✓Giới thiệu.
✓Ngắt của vi điều khiển PIC
✓Tập lệnh ngắt trong CCS
✓Ứng dụng ngắt

2
GIỚI THIỆU
Nguồn ngắt trên PIC16F887:
- INT_EXT: ngắt ngoài
- INT_TIMER0: ngắt timer 0
- INT_TIMER1: ngắt timer 1
- INT_TIMER2: ngắt timer 2
- INT_RDA: ngắt nhận đủ kí tự trong truyền thông máy tính
- INT_RB: ngắt thay đổi trạng thái các chân RB7-RB4

3
GIỚI THIỆU
1. Khi ngắt xảy ra, chương trình thực hiện nốt câu lệnh hiẹn tại rồi
chương trình bị tạm dừng.
2. Lưu ngữ cảnh gồm lưu địa chỉ câu lệnh tiếp theo sẽ thực hiện (Địa chỉ
thanh ghi, địa chỉ vùng nhớ chương trình…)
3. Nhảy tới địa chỉ (0x04) chứa chương trình thực hiện khi ngắt xảy ra
trong bộ nhớ chương trình.
5. Sau khi thực hiện xong chương trình con phục vụ ngắt, vi điều khiển
lấy lại địa chỉ của lệnh kế tiếp đã được lưu và tiếp tục thực hiện chương
trình đã tạm dừng.

4
GIỚI THIỆU

❑ Nguồn ngắt: nguồn ngắt là nguyên nhân gây ra ngắt.


❑ Sự kiện ngắt: khi nguồn ngắt xảy ra
❑ Chương trình con phục vụ ngắt: là chương trình vi điều khiển
xử lý khi có sự kiện ngắt xảy ra do người lập trình lập trình ra

5
NGẮT CỦA VI ĐIỀU KHIỂN PIC
- PIC thược hiện chương trình chính ở 0x00 và chuyển đến
chương trình ngắt ở 0x04.
- Khi lập trình bằng ngôn ngữ Asembler, bạn phải chỉ ra điều này
(ví dụ: ORG 0x0000) nhưng với CCS thì không cần quan tâm.
- Thứ tự kích hoạt ngắt ngắt: Ngoại vi -> phổ thông -> ngắt CPU

6
NGẮT CỦA VI ĐIỀU KHIỂN PIC
Ngắt ngoại vi: ngắt tràn timer 1, timer2, ngắt hoàn thành ADC
của các chân PortB (ADCIE, ADCIF), ngắt hoàn thành việc
nhận kí tự trong truyền thông RS232 (RCIE, RCIF), ngắt hoàn
thành việc truyền kí tự trong truyền thông RS232 (TXIE, TXIF).
Bit GIE và PEIE phải được kích hoạt để ngắt xảy ra.

7
NGẮT CỦA VI ĐIỀU KHIỂN PIC
Ngắt phổ thông: ngắt tràn timer 0 (TMR0IE,TMR0IF), ngắt
ngoài (INTE, INTF), ngắt hoàn thành ADC của các chân PortB
RB4-RB7 (RBIE và RBIF). Bit GIE phải được kích hoạt cho
phép ngắt toàn cục.

8
NGẮT CỦA VI ĐIỀU KHIỂN PIC
U1
1 15
Ngắt ngoài RE3/MCLR/VPP RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
- Có 5 thanh ghi phục vụ ngắt trong 2
RA0/AN0/ULPWU/C12IN0- RC2/P1A/CCP1
17
3 18
PIC là: INTCON, PIE1, PIE2, PIR1, 4
RA1/AN1/C12IN1- RC3/SCK/SCL
23
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
PIR2. Các bit của các thanh ghi này 5
RA3/AN3/VREF+/C1IN+ RC5/SDO
24
6 25
nếu bằng 1 thì cho phép chức năng U1(RB0/AN12/INT) 7
RA4/T0CKI/C1OUT RC6/TX/CK
26
RA5/AN4/SS/C2OUT RC7/RX/DT
tương ứng, bằng 0 thì cấm chức 14
RA6/OSC2/CLKOUT
13 19
năng đó. RA7/OSC1/CLKIN RD0
20
RD1
- Nguồn ngắt: xung đi vào chân 33
RB0/AN12/INT RD2
21
34 22
RB0 của vi điều khiển PIC 35
RB1/AN10/C12IN3- RD3
27
RB2/AN8 RD4
- Sự kiện ngắt: sự kiện ngắt xảy ra 36
RB3/AN9/PGM/C12IN2- RD5/P1B
28
37 29
khi có xung đi vào chân RB0 của vi 38
RB4/AN11 RD6/P1C
30
RB5/AN13/T1G RD7/P1D
điều khiển. 39
RB6/ICSPCLK
40 8
- Xung là xung sườn dương hay RB7/ICSPDAT RE0/AN5
9
RE1/AN6
sườn âm phụ thuộc bit cài đặt chọn RE2/AN7
10
dạng xung, bit INTEDG trên thanh PIC16F887
ghi OPTION_REG là 1 hay 0.
9
NGẮT CỦA VI ĐIỀU KHIỂN PIC
Ngắt ngoài: Thanh ghi INTCON
- Bit cho phép ngắt: Bit INTIE trên thanh ghi INTCON và bit GIE trên
thanh ghi ICON phải được set lên 1
- Cờ ngắt: bit cờ ngắt ngoài là bit .
- INTIF trên thanh ghi INTCON được tự động set lên 1 khi có sự kiện
ngắt ngoài xảy ra. INTIF cần được xóa về 0 để kích hoạt ngắt cho lần
sau

10
NGẮT CỦA VI ĐIỀU KHIỂN PIC
Ngắt ngoài: Thanh ghi PIE1 và PIR1
- PIE1 (0x8c) : đây là thanh ghi cho phép ngắt.
- PIR1 (0x0c): thanh ghi chứa cờ báo ngắt.

PIE1 PIR1
11
TẬP LỆNH NGẮT TRONG CCS
- ENABLE_INTERRUPTS(LEVEL) : CHỨC NĂNG CHO PHÉP NGẮT
- DISABLE_INTERRUPTS(LEVEL) : CẤM NGẮT

12
TẬP LỆNH NGẮT TRONG CCS
- ENABLE_INTERRUPTS(LEVEL) : CHỨC NĂNG CHO PHÉP NGẮT
- DISABLE_INTERRUPTS(LEVEL) : CẤM NGẮT

13
ỨNG DỤNG NGẮT
Sử dụng ngắt ngoài, nối nút bấm chân đọc ngắt ngoài của PIC. Mỗi
khi nhấn nút (đọc sườn âm), giá trị số đếm sẽ tăng lên 5 đơn vị và
hiển thị lên led 7 thanh đôi.

14
ỨNG DỤNG NGẮT
Lập trình
Khai báo

Hàm ngắt Hiển thj led 7 thanh

15
ỨNG DỤNG NGẮT
Lập trình
Hàm main()

16

You might also like