III.5 LƯU ĐỒ CỦA CHƯƠNG TRÌNH KIỂM TRA 8251 TRƯỚC KHI NHẬN KÍ TỰ THÔNG QUA CHƯƠNG TRÌNH NGẮT:

Một phần của tài liệu 20101005031458_lvcnpm22 (Trang 111 - 115)

III. CÁC LƯU ĐỒ THUẬT GIẢI CHO CHƯƠNG TRÌNH TRÊN ROM NGOẠI VI:

III.5 LƯU ĐỒ CỦA CHƯƠNG TRÌNH KIỂM TRA 8251 TRƯỚC KHI NHẬN KÍ TỰ THÔNG QUA CHƯƠNG TRÌNH NGẮT:

THÔNG QUA CHƯƠNG TRÌNH NGẮT:

Nhiệm vụ :

Trước khi nhận kí tự thông qua chương trình ngắt thì CPU sẽ ra kiểm tra trạng thái của thanh ghi từ trạng thái của 8251 xem có kí tự chờ không ( Thông qua bit D1 của thanh ghi này ) .

Nguyên tắc hoạt động:

Nếu có kí tự nằm chờ thì CPU sẽ đọc vào  so sánh mã kí tự vừa nhận với mã kết thúc chuỗi.

- Nếu giống nhau thì chương trình xử lí chuỗi kí tự sẽ được thực thi.

- Nếu khác nhau thì chương trình cất kí tự vào chuỗi STRING sau đó quay ra kiểm tra trạng thái thanh ghi từ trạng thái của 8251 tiếp tục.

Trong khi ghi kí tự vào chuỗi thì ta sử dụng biến EOF STRING để chứa @ ngay sau @ của kí tự cuối cùng để khi chương trình nhận kí tự bằng ngắt sẽ bắt đầu lưu kí tự nhận được thông qua @ này.

START

Gán @ của biến STRING vào cặp thanh ghi HL

LD HL , STRING

Đọc trạng thái của thanh ghi từ trạng thái

Kiểm tra Bit RXRDY (Xem có kí tự chờ không) Nhảy đến chương trình chính Bằng 1 Đọc kí tự từ 8251: IN A , (00H) So sánh với mã kết thúc chuỡi Đọc kí tự từ 8251: IN A , (00H) Cất mã ASCII vào ô nhớ: LD (HL) , A

Tăng @ của ô nhớ lên 1: INC HL Bằng 0

III.6 LƯU ĐỒ TỔNG QUÁT CỦA VIỆC XỬ LÍ 8 KÍ TỰ (Xuất 8 kí tự ra 8 ma trận tương ứng ).

Mỗi lần CPU sẽ xử lí xuất 8 kí tự như hình vẽ đã trình bày ,trong cách xử lí này ta dùng một biến đếm và giảm dần biến đếm xuống đến khi biến đếm bằng 0 thì 8 kí tự tiếp theo sẽ được xử lí .

Muốn lấy @ đầu của 8 kí tự ta lấy @ của kí tự cuối trong lần xử lí 8 kí tự đó trước trừ cho 7.

 lấy @ của kí tự cuối cùng trong chuỗi - @ của kí tự đầu tiên trong lần xử lí tiếp theo nếu : - Kết quả <= 0 thì chương trình sẽ quay lại xử lí từ đầu chuỗi kí tự .

START

Gán @ đầu của chuỗi STRING cho HL để tham chiếu đến kí tự thứ nhất

Cất @ trong HL vào biến BACKUP để cất @ trở về

Lấy mã ASCII của kí tự thứ nhất xử lí và xuất ra ma trận

Một phần của tài liệu 20101005031458_lvcnpm22 (Trang 111 - 115)

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

(153 trang)
w