LẬP TRÌNH GIAO TIẾP SERIAL PORT VÀ INTERRUPT CLR T

Một phần của tài liệu báo cáo thí nghiệm VXL (Trang 64 - 67)

CLR TI

OUT: RETI

LẬP TRÌNH GIAO TIẾP SERIAL PORT VÀ INTERRUPT

THÍ NGHIỆM 5

Mục tiêu: Nắm được cách sử dụng ngắt timer.

Yêu cầu:

Viết chương trình hiển thị lên 4 LED 7 đoạn một số có 4 chữ số, 4 ký số này chứa trong các ô nhớ 20H, 21H, 22H và 23H. Ô nhớ 20H chứa số hàng nghìn.

Hướng dẫn:

 Ở Lab 1 ta đã viết chương trình con DisplayLED hiển thị giá trị chứa trong R0, với số thứ tự LED chứa trong R1. Đồng thời, ta đã nắm được cách quét LED bằng cách cho 4 LED lần lượt sáng sau mỗi khoảng thời gian trễ.

 Ở thí nghiệm này, các LED 7 đoạn được quét sử dụng ngắt timer. Để đạt được tần số quét 25 Hz, mỗi LED sẽ được sáng trong thời gian 10 ms.

 Các bước tiến hành:

- Cấu hình timer 0 ở chế độ 1, thời gian tràn là 10 ms. - Cho phép ngắt timer 0, và cho timer chạy.

- Sử dụng thanh ghi R1 để xác định LED nào cần được bật. Ban đầu R1 bằng 0, R1 tăng lên 1 sau mỗi lần bật LED để chuyển sang LED tiếp theo. Khi R1 bằng 3, R3 sẽ quay lại bằng 0.

- Chương trình con DisplayLED chứa giá trị hiển thị trong R0. Giá trị này là 1 trong các byte ô nhớ 20H, 21H, 22H và 23H, tương ứng giá trị R1 (0-3).

- Khi timer tràn, trong chương trình phục vụ ngắt ta cấu hình lại timer, hiển thị giá trị led 7 đoạn tương ứng, và cập nhật giá trị R1 để chỉ đến LED tiếp theo.

(Lưu đồ giải thuật được thể hiện trong trang kế)

START

Dừng timer, xóa cờ ngắt, đặt lại giá trị timer, cho phép timer chạyDừng timer, xóa cờ ngắt, đặt lại giá trị timer, cho phép timer chạyLấy giá trị hiển thị LED vào R0 Hiển thị ra LED tương ứng

Cập nhật giá trị R1 END

Một phần của tài liệu báo cáo thí nghiệm VXL (Trang 64 - 67)

Tải bản đầy đủ (DOCX)

(80 trang)
w