Ngắt ngồi (External Interrupt):

Một phần của tài liệu Lập trình PIC16F877A điều khiển tốc độ động cơ DC (Trang 25 - 26)

- bit 1 T2CKPS1:T2CKPS0 chọn hệ chia đầu vào 00 = 1:

a/Ngắt ngồi (External Interrupt):

- Ngắt này dựa trên sự thay đổi trạng thái của pin RB0/INT. Cạnh tác động gây ra ngắt cĩ thể là cạnh lên hay cạnh xuống và được điều khiển bởi bit INTEDG (thanh ghi OPTION_ REG <6>). Khi cĩ cạnh tác động thích hợp xuất hiện tại pin RB0/INT, cờ ngắt INTF được set bất chấp trạng thái các bit điều khiển GIE và PEIE. Ngắt này cĩ khả năng đánh thức vi điều khiển từ chế độ sleep nếu bit cho phép ngắt được set trước khi lệnh SLEEP được thực thi.

- Thanh ghi OPTION_REG: địa chỉ 81h, 181h

Thanh ghi này cho phép điều khiển chức năng pull-up của các pin trong PORTB, xác lập các tham số về xung tác động, cạnh tác động của ngắt ngoại vi RB0 (External Interrupt) và bộ đếm Timer0.

 Bit 7 PORTB pull-up enable bit

= 1 khơng cho phép chức năng pull-up của PORTB = 0 cho phép chức năng pull-up của PORTB

 Bit 6 INTEDG Interrupt Edge Select bit

INTEDG = 1 ngắt xảy ra khi cạnh dương chân RB0/INT xuất hiện. INTEDG = 0 ngắt xảy ra khi cạnh âm chân BR0/INT xuất hiện.

Hình 14: Cấu trúc thanh ghi OPTION_REG cho phép ngắt ngoại và ngắt timer0

 Bit 5 TOCS Timer0 Clock Source select bit TOSC = 1 clock lấy từ chân RA4/TOCK1.

TOSC = 0 dùng xung clock bên trong (xung clock này bằng với xung clock dùng để thực thi lệnh).

 Bit 4 TOSE Timer0 Source Edge Select bit TOSE = 1 tác động cạnh lên.

TOSE = 0 tác động cạnh xuống.

 Bit 3 PSA Prescaler Assignment Select bit

PSA = 1 bộ chia tần số (prescaler) được dùng cho WDT PSA = 0 bộ chia tần số được dùng cho Timer0

 Bit 2:0 PS2:PS0 Prescaler Rate Select bit

Các bit này cho phép thiết lập tỉ số chia tần số của Prescaler.

Một phần của tài liệu Lập trình PIC16F877A điều khiển tốc độ động cơ DC (Trang 25 - 26)