Ngắt là sự xảy ra một điều kiện – một sự kiện làm cho chương trình hiện hành bị tạm dừng để thực thi các nhiệm vụ do ngắt xảy ra. Các ngắt đóng vai trò quan trọng trong việc thiết kế và hiện thực các ứng dụng của bộ vi điều khiờn. Cỏc ngắt cho phép
hệ thông đáp ứng một sự kiện theo cách không đồng bộ và xử lý sự kiện khi một chương trình khác đang thực thi. Một hệ thống được điều khiển bởi ngắt cho ta ảo tưởng là hệ thống làm nhiều công việc đồng thời. Vi điều khiển 8051 có 5 nguyên nhân tạo ra ngắt: hai ngắt do bên ngoài, hai ngắt do bộ định thời, một
ngắt do port nối tiếp( ở 89C52 cú thờm nguyên nhân tạo ra ngắt nữa là do bộ định thời 2). Ban đầu các ngắt đều bị vô hiệu hóa sau đó chúng được cho phép riêng rẽ bằng phần mềm.
Mỗi nguyên nhân ngắt được cho phép hoặc không cho phép thông qua thanh ghi chức năng đặc biệt định địa chỉ bít, đó là thanh ghi cho phép ngắt IE ( Interrupt Enable ) có địa chỉ 0A8H trên RAM. Mỗi bít của thanh ghi này cho phép hoặc không cho phép từng nguyên nhân ngắt riêng rẻ, thanh ghi IE đồng thời cũn cú một bít toàn cục cho phép hoặc không cho phép tất cả các ngắt.
Bảng 3.5: Bảng thanh ghi cho phép ngắt IE.
Bit Kí hiệu
Địa chỉ Bit
Mô tả
(0 không cho phép,1 cho phép) IE.7 EA AFH Cho phép/ không cho phép toàn cục IE.6 - AEH Không sử dụng
IE.5 ET2 ADH Cho phép ngắt do bộ định thời 2 IE.4 ES ACH Cho phép ngắt do port nối tiếp IE.3 ET1 ABH Cho phép ngắt do bộ định thời 1 IE.2 EX1 AAH Cho phép ngắt từ bên ngoài 1 IE.0 EX0 A8H Cho phép ngắt từ bên ngoài 0 IE.1 ET0 A9H Cho phép ngắt do bộ định thời 0
Ưu tiên ngắt:Mỗi một nguyên nhân ngắt được lập trình riêng rẽ để có một trong hai mức ưu tiên thông qua thanh ghi chức năng đặc biệt được định địa chỉ bít đó là thanh ghi ưu tiên ngắt IP ( Interrupt Priority), thanh ghi này có địa chỉ là 0B8H.
Bảng 3.6: Bảng thanh ghi ưu tiên ngắt IP Bit Kí hiệu Địa chỉ Mô tả ( 1 mức cao; 0 mức thấp )
IP.7 - Không sử dụng
IP.6 - Không sử dụng
IP.5 PT2 0BDH Ưu tiên cho ngắt do bộ định thời 2 IP.4 PS 0BCH Ưu tiên cho ngắt do port nối tiếp IP.3 PT1 0BBH Ưu tiên cho ngắt do bộ định thời 1
IP.2 PX1 0BAH Ưu tiên cho ngắt do bên ngoài ( ngắt ngoài 1) IP.1 PT0 0B9H Ưu tiên cho ngắt do bộ định thời 0
Khi hệ thống được thiết lập lại trạng thái ban đàu, thanh ghi IP sẽ mặc định đặt tất cả các ngắt ở mức ưu tiên thấp. Ý tưởng các mức ưu tiên cho phép một trình phục vụ ngắt được tạm dừng bởi một ngắt khác nếu ngắt mới có mức ưu tiên cao hơn ngắt hiện thời. Chương trình chính do được thực thi ở mức nền và không được kết hợp với một ngắt nào nên luôn luôn bị ngắt bởi các ngắt cho dù các ngắt này có mức ưu tiên cao hay thấp. Nếu có hai ngắt cùng xuất hiện và có mức ưu tiên khác nhau thì ngắt có mức ưu tiên cao sẽ được phục vụ trước.
Cỏc vộctơ ngắt :Khi một ngắt được chấp nhận, giá trị được nạp cho bộ đếm chương trình PC được gọi là vộctơ ngắt. Vộctơ ngắt là địa chỉ bắt đầu của trình phục vụ ngắt (ISR)
Của nguyên nhân ngắt tương ứng. Cỏc vộctơ ngắt được cho trong bảng sau:
Bảng 3.7: Bảng vector ngắt của AT89C52
Ngắt Cờ Địa chỉ ROM (Hexa) Chân
RESET hệ thống RST 0000H 9
Ngắt phần cứng ngoài IE0 0003H 12 (P3.2)
Ngắt bộ TIMER 0 TF0 000BH
Ngắt phần cứng ngoài IE1 0013H 13 (P3.3)
Ngắt bộ TIMER 1 TF1 001BH
Ngắt COM nối tiếp RI hoặc TI 0023H Ngắt bộ TIMER 2 TF2 hoặc EXF2 002BH
Cỏc bít cờ này phải được kiểm tra trong ISR( vector ngắt ) đề xác định nguyên nhân ngắt và sau đó cờ gây ra ngắt được xóa bởi phần mềm. Thông thường sẽ có một rẽ nhánh chương trình đến công việc tương ứng tùy thuộc vào nguyên nhân ngắt. Vỡ cỏc vộctơ ngắt ở đáy bộ nhớ chương trình nên lệnh đầu tiên của chương trình thường là lệnh nhảy qua khỏi vùng nhớ chứa vộctơ ngắt.