Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (39.7 KB, 5 trang )
Chương V.
THIẾT KẾ CHƯƠNG
TRÌNH DÙNG CÁC NGẮT
Các ví dụ trong các mục trưóc đã không sử dụng các ngắt
nhưng đã có vòng lặp đợi để kiểm tra các cờ báo tràn (TF0 hoặc
TF1) hoặc các cờ thu và cờ phát Port nối tiếp (TI và RI).
Vấn đề trong phương pháp này là thời gian thực thi có gía
trò của CPU hoàn toàn không bò tiêu tốn trong việc đợi các cờ.
Điều này hoàn toàn không thích hợp với các ứng dụng
của vi điều khiển, trong đó bộ vi điều khiển phải tương tác với
nhiều thiết bò xuất nhập đồng thời.
Trong phần này ta sẽ khảo sát cách phát triển chương
trình dùng vi điều khiển.
Khung đề nghò cho một chương trình phục vụ ngắt như
sau:
ORS 0000H ; điểm vào Reset.
Ljmp main; các điểm vào ISR.
Org 0030H; điểm vào chương trình chính.
Main: chương trình chính bắt đầu.
Lệnh thứ nhất nhảy tới đòa chỉ 0030H, vừa trên các vò trí
mà các ISR bắt đầu. Như được vẽ hình sau, chương trình chính
bắt đầu ở đòa chỉ 0030H.
1.Chương trình phục vụ ngắt có kích thước nhỏ:
Các chương trình phục vụ ngắt phải bắt đầu ở gần phần
đầu của bộ nhớ chương trình ở các đòa chỉ trong bảng các vectơr
ngắt. Mặt dù có 8 byte ở các điểm vào ngắt, thường đủ bộ nhớ
để thực hiện các hoạt động mong muốn và quay về chương trình
chính từ IRS.
Nếu chỉ có một nguồn ngắt được sử dụng, ví dụ timer 0,
thì có thể sử dụng khung sau:
Chương trình chính