DB 50 ;vectơ tại địa chỉ 02 chỉ tới địa chỉ 50 Start:

Một phần của tài liệu Mô phỏng vi điều khiển (Trang 56)

Start:

STI ;set cờ I

MOV AL,11

Rep:

OUT 05 ;điều khiển động cơ bước ROR AL ;xoay bit trong AL sang phải

JMP Rep

JMP Start

;---

ORG 50

PUSH AL ;lưu AL vào ngăn xếp PUSH BL ;lưu BL vào ngăn xếp PUSHF ;lưu các cờ vào ngăn xếp JMP Pastdata

DB 84 ;đỏ 1 + xanh 2

DB C8 ;đỏ 1 + vàng 1 + vàng 2 DB 30 ;xanh 1 + đỏ 2

DB 58 ;vàng 1 + đỏ 2 + vàng 2

DB 57 ;sử dụng kiểm tra tiến trình qua bảng Pastdata:

MOV BL,[5B] ;BL chỉ đến bảng dữ liệu MOV AL,[BL] ;dữ liệu từ bảng đến AL OUT 01 ; điều khiển đèn giao thông

;Gửi dữ liệu trong AL ra đèn CMP AL,58 ;địa chỉ cuối trong bảng

JZ Reset ;nếu địa chỉ cuối được chỉ đến thì nhảy đến Reset INC BL ;tăng BL lên 1, BL chỉ đến địa chỉ kế tiếp trong bảng

MOV [5B],BL ;lưu con trỏ vào trong Ram JMP Stop ;nhảy về nhãn Stop

Reset:

MOV BL,57 ;chỉ đến địa chỉ bắt đầu bảng dữ ;liệu MOV [5B],BL ;lưu con trỏ vào trong Ram

Stop:

POPF ;khôi phục các cờ tới vị trí liền ;trước POP BL ;khôi phục BL tới giá trị liền ;trước POP AL ;khôi phục AL tới giá trị liền ;trước IRET

END

; Lưu ý : để dễ quan sát kết quả, nên kết hợp chỉnh tần số xung Ck của CPU với tần số xuất hiện lệnh ngắt.

;---

Bài tập 11. Nhấn nút Play để xem.

Một phần của tài liệu Mô phỏng vi điều khiển (Trang 56)