Khuụn mẫu đề nghị cho một chương trỡnh được thực thi độc lập cú ngắt như sau:
ORG 0000H ; Điểm nhập sau khi reset LJMP MAIN
. ; Cỏc điểm nhập của ISR
.
.
ORG 0030H ; Điểm nhập của chương trỡnh chớnh MAIN: . ; Chương trỡnh chớnh bắt đầu
. .
.
Lệnh đầu tiờn nhảy đến địa chỉ 0030H ngay trờn cỏc vectơ ngắt nơi cỏc ISR bắt đầu, như được cho ở bảng trờn.
Với cỏc trỡnh phục vụ ngắt kớch thước nhỏ thỡ cỏc trỡnh phục vụ ngắt phải được bắt đầu ở gần đỏy của bộ nhớ chương trỡnh. Mặc dự chỉ cú 8 byte giữa cỏc điểm nhập của cỏc trỡnh phục vụ ngắt, dung lượng này đủ để thực hiện cỏc cụng việc được yờu cầu và quay trở về chương trỡnh chớnh từ một trỡnh phục vụ ngắt. Điều này cú nghĩa là trỡnh phục vụ ngắt cho cỏc ngắt tương ứng thường khụng dài quỏ 8 byte. Nếu cú một nguyờn nhõn ngắt được dựng, thớ dụ do bộ định thời 0, thỡ khuụn mẫu dưới đõy cú thể được sử dụng:
ORG 000BH ; Reset
LJMP MAIN
ORG 000BH ; Điểm nhập của ngắt do bộ định thời 0
T0ISR: . ; Bắt đầu ISR cho bộ định thời 0 . . RETI ; Trở về chương trỡnh chớnh MAIN: . ; Chương trỡnh chớnh . .
Nếu cú nhiều ngắt được sử dụng, ta phải cẩn thận để đảm bảo cỏc ISR được bắt đầu đỳng vị trớ và khụng tràn sang ISR kế. Vỡ chỉ cú một ngắt được sử dụng trong thớ dụ trờn, chương trỡnh chớnh cú thể bắt đầu ngay sau lệnh RETI.
Với cỏc trỡnh phục vụ ngắt kớch thước lớn dài hơn 8 byte, ta phải di chuyển chương trỡnh này đến một nơi khỏc trong bộ nhớ chương trỡnh hoặc ta cú thể lấn qua điểm nhập của ISR kế. Điển hỡnh là ISR bắt đầu với một lệnh nhảy đến một vựng khỏc của bộ nhớ chương trỡnh, ở đú ISR được trải rộng nếu cần. Nếu chỉ khảo sỏt bộ định thời 0, khuụn mẫu sau đõy cú thể được sử dụng:
ORG 0000H ; Điểm nhập reset
LJMP MAIN
ORG 000BH ; Điểm nhập của bộ định thời 0
LJMP T0ISR
ORG 0030H ; Phớa trờn cỏc vectơ ngắt
MAIN: .
.
T0ISR: . ; ISR của bộ định thời 0
. .
RETI ; Quay trở về chương trỡnh chớnh
Để đơn giản, cỏc chương trỡnh của chỳng ta sẽ chỉ làm một việc ở thời điểm bắt đầu. Chương trỡnh chớnh khởi động bộ định thời, port nối tiếp và cỏc thanh ghi ngắt sao cho thớch hợp và rồi khụng làm gỡ cả. Cụng việc hoàn toàn được thực hiện bờn trong ISR. Khi cú một ngắt xuất hiện, chương trỡnh chớnh tạm thời bị ngắt trong khi ISR được thực thi. Lệnh RETI ở cuối ISR trả điều khiển về chương trỡnh chớnh.
Chương 2:khai thỏc Sử dụng chip vi điều khiển AT89C52