
Hai điểm khác nhau cơ bản trong ngắt của PIC và 8051
—
1. PIC chỉ có một mức ngắt, trong khi 8051 có hai mức ngắt (ngắt trong ngắt). Nghĩa là trong vi điều khiển PIC16F887, khi một ngắt được phục vụ, bit GIE tự động xóa do vậy sẽ không có cơ hội cho ngắt khác xảy ra trong lúc đang thực thi chương trình của ngắt hiện tại (khác với họ 8051 thì có ngắt xảy ra trong ngắt nếu ngắt mới có mức ưu tiên cao hơn, nếu hai ngắt cùng xảy ra đồng thời thì chuỗi vòng cố định sẽ xác định ngắt nào được phục vụ trước theo thứ tự: ngắt ngoài 0, timer 0, ngắt ngoài 1, timer 1, uart, timer 2).

—
2. PIC chỉ có một vector ngắt, trong khi 8051 có 7 vector ngắt. Điều này có nghĩa là, trong PIC có nhiều nguồn ngắt nhưng chỉ có mỗi 1 vector ngắt tại địa chỉ 0004H, tức là cho dù ngắt nào xảy ra đi nữa, PC cũng chỉ sẽ nhảy đến địa chỉ 0004H để thực hiện câu lệnh tiếp theo. Do vậy để thực hiện đúng chương trình phục vụ ngắt của ngắt đang gọi thì cần phải có vòng quét (polling) kiểm tra các cờ trạng thái ngắt (interrupt flag), cờ nào đang bằng 1 thì nghĩa là ngắt đó đang xảy ra, và nhớ là cờ này phải xóa bằng phần mềm trước khi một yêu cầu ngắt tiếp theo được gọi.