IX. HOẠT ĐỘNG PORT NỐITIẾP 1 Giới thiệu
CHƯƠNG 2: HOẠT ĐỘNG CỦA BỘ NGẮT (INTERRUPT): I GIỚI THIỆU:
I. GIỚI THIỆU:
Một interrupt (ngắt) là sự xây ra một điểu kiện - một sự kiện, mà nó gây
treo tạm thời chương trình trong điều kiện có được phục vụ bởi một chương trình khác.
Các interrupt đóng vai trò quan trọng trong việc thiết kế và cài đặt các ứng
dụng vi điều khiển. Chúng cho phép hệ thống bất đồng bộ với một sự kiện và giải
quyết một sự kiện trong khi đó một chương trình khác đang thực thi.
Một hệ thống được điều khiển bằng interrupt cho ta ảo giác là làm nhiều việc đồng thời. Dĩ nhiên là CPU đồng thời không thể thực thi hơn một lệnh. Nhưng
nó có thể tạm treo việc thực thi một chương trình để thực thi một chương trình khác,
rồi quay về chương trình thứ nhất. Theo cách này, interrupt giống như một chương trình con, nhưng có một khác biệt trong hệ thống được điều khiển là sự ngắt quãng không xảy ra như kết quả của một lệnh, mà đáp ứng một sự kiện xảy ra bất đồng bộ
với chương trình chính. Người ta không biết lúc nào và ở đâu chương trình chính bị
ngắt quãng.
Chương trình giải quyết ngắt gọi là chương trình phục vụ ngắt (ISR:
Interrupt Service Routine) hoặc bộ xử lý ngắt. ISR thực thi đáp ứng ngắt và thông
thường thực hiện tác vụ nhập hay xuất với một thiết bị. Khi ngắt xảy ra, chương trình chính tạm thời bị treo và rẽ nhánh đến ISR: ISR thi hành và kết thúc bằng lệnh trở về ngắt. Chương trình tiếp tục thực thi tại chỗ mà nó tạm dừng. Thường người ta xem
chương trình chính thực thi ở mức nền (cơ sở) và các ISR thực thi ngắt (Interrupt Level). Người ta dùng thuật ngữ Foreground (phía trước) (Base —- Level) chỉ mức
nền và Background (phía sau) (Interrupt — level) chỉ mức ngắt. Hình ảnh các ngắt được mô tả trong hình sau:
CHƯƠNG TRÌNH CHÍNH
Thực thi chương trình không có ngắt
ISR ISR ISR
Y ỶỲ r Ỳ x4 C/tr chính C/tr chính C/tr chính C/tr chính - 26 -
Chương II:Hoạt động của bộ ngắt (INTERRUPT)
Thực thi chương trình có ngắt
*; gọi ngất
** : quay về từ ngắt