Tải bản đầy đủ (.pdf) (0 trang)

Chuong 7 Vi điều khiển PIC 16F887 ngắt của vi điều khiển

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.02 MB, 0 trang )

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 hồn thành việc
nhận kí tự trong truyền thơng RS232 (RCIE, RCIF), ngắt hồ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 tồn cục.

8


NGẮT CỦA VI ĐIỀU KHIỂN PIC
U1


1

Ngắt ngồi
- Có 5 thanh ghi phục vụ ngắt trong
PIC là: INTCON, PIE1, PIE2, PIR1,
PIR2. Các bit của các thanh ghi này
nếu bằng 1 thì cho phép chức năng
tương ứng, bằng 0 thì cấm chức
năng đó.
- Nguồn ngắt: xung đi vào chân
RB0 của vi điều khiển PIC
- Sự kiện ngắt: sự kiện ngắt xảy ra
khi có xung đi vào chân RB0 của vi
điều khiển.
- Xung là xung sườn dương hay
sườn âm phụ thuộc bit cài đặt chọn
dạng xung, bit INTEDG trên thanh
ghi OPTION_REG là 1 hay 0.

2
3
4
5
6
U1(RB0/AN12/INT) 7
14
13
33
34

35
36
37
38
39
40

RE3/MCLR/VPP

RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RA0/AN0/ULPWU/C12IN0RC2/P1A/CCP1
RA1/AN1/C12IN1RC3/SCK/SCL
RA2/AN2/VREF-/CVREF/C2IN+ RC4/SDI/SDA
RA3/AN3/VREF+/C1IN+
RC5/SDO
RA4/T0CKI/C1OUT
RC6/TX/CK
RA5/AN4/SS/C2OUT
RC7/RX/DT
RA6/OSC2/CLKOUT
RA7/OSC1/CLKIN
RD0
RD1
RB0/AN12/INT
RD2
RB1/AN10/C12IN3RD3
RB2/AN8
RD4
RB3/AN9/PGM/C12IN2RD5/P1B

RB4/AN11
RD6/P1C
RB5/AN13/T1G
RD7/P1D
RB6/ICSPCLK
RB7/ICSPDAT
RE0/AN5
RE1/AN6
RE2/AN7

PIC16F887

9

15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30

8
9
10


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 ngồ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

11

PIR1


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




×