Viết chương trình xuất dữ liệu.
Mục đích - yêu cầu:
- Làm quen với chức năng các lệnh nhảy, lệnh xuất dữ liệu.
- Hiểu cách đưa dữ liệu vào điều khiển đèn giao thông từ đó sinh viên có thể thiết kế điều khiển đèn giao thông trong thực tế.
Kiến thức nền :
1/ Chương trình sử dụng các lệnh : CLO, MOV, OUT, JMP và END
Hệ thống đèn giao thông trong chương trình mô phỏng được điều khiển bằng cách gởi dữ liệu xuất ra port 1.
Có sáu đèn được điều khiển chia làm hai hệ thống. Màu đỏ, vàng, xanh là màu mỗi hệ thống đèn. Ðể điều khiển 2 hệ thống đèn ta có thể thực hiện bằng cách gởi 1 byte dữ liệu nhưng 2 bit thấp của byte dữ liệu đó không dùng đến. Một đèn chỉ sáng khi chân nối đến lên bit 1, do đó muốn điều khiển tín hiệu đèn giao thông bạn chỉ cần thay đổi dữ liệu truyền đến Port 1.
Ở đây có chương trình ví dụ : baitap02.asm. Ta có thể chép chương trình từ trang giúp đỡ và dán vào trong trình đang soạn thảo. Ðể chạy chương trình, ta click vào biểu tượng Step lập lại nhiều lần để chạy từng bước hay nhấn vào Run để chạy trọn vẹn chương trình. Ðể ngừng chương trình ta click vào stop. Khi chương trình đang chạy, click vào RAM - Source hay RAM - Hex hay RAM - ASCII . Ở đó ta sẽ thấy được sự thay đổi luân phiên các nội dung của việc truy xuất bộ nhớ RAM. Nhấn vào tab List - file để thấy mã máy được biên dịch bởi chương trình mô phỏng .
2/ Các nhãn và lệnh JMP:
Nhãn đánh dấu các vị trí thì được sử dụng bởi các lệnh nhảy. Tất cả các lệnh trong chương trình này được lập lại liên tục cho đến khi nhấn Stop. Tên nhãn phải bắt đầu với 1 chữ cái hay 1 ký tự. Tên nhãn không được bắt đầu bằng 1 ký số.
JMP Start làm cho chương trình nhảy về và làm lại các lệnh từ lúc đầu. Cuối nhãn phải có dấu 2 chấm . Ví dụ: Start :
3/ Ðiều khiển các đèn giao thông:
Nếu bạn quan sát kỹ các đèn giao thông được hiển thị, bạn có thể thấy được mỗi bóng đèn được điều khiển bởi một bit tương ứng. Ta có thể tìm ra các bit 0 hay 1 để thiết lập trạng thái của bóng đèn. Sử dụng bảng số Hex và số nhị phân để tìm ra số Hex tương ứng . Ðưa số Hex này vào thanh ghi AL.
4/ Lệnh OUT 01 (xuất ra P.01) :
Lệnh này dùng để chuyển nội dung của thanh ghi AL ra Port 1. Vì hệ thống đèn giao thông được nối với port 1, nên ta có thể điều khiển các bóng đèn giao thông theo nội dung trên thanh ghi AL. Số 1 làm cho bóng đèn sáng, số 0 làm cho bóng đèn tắt.
Chương trình:
; chương trình điều khiển đèn giao thông --------------------------------------
CLO ; đóng tất cả các cửa sổ không cần đến
Start: ; tắt tất cả đèn giao thông
MOV AL,0 ; chuyển 00h vào thanh ghi AL
OUT 01 ; sáng tất cả đèn giao thông
MOV AL, FC ; chuyển 11111100 (hay FCh) vào thanh ghi AL
OUT 01 ; gửi dữ liệu trong AL ra port 1
JMP Start ; nhảy về nhãn start để thực hiện lại chương trình
END ; kết thúc chương trình .
;-----------------------------------------------------------------------------------
Tải file phim về ở đây.
2.1/ Tìm ra những số Hex xuất ra trên port 01, sẽ làm hoạt động của đèn thay đổi theo từng bóng đèn (xanh, đỏ, vàng). Từ đó hãy sửa đổi chương trình của đèn giao thông để hoạt động theo trình tự trong thực tế.