Chương trình với bàn phím qua các cổng:

Một phần của tài liệu Chương trình máy tính (Trang 100)

- Thế hệ sử dụng dòng phân cực spin cảm ứng (Spin Polarized Current Induced Switching CIS)

c. Nhóm dữ liệu nối tiếp SDU vàn ối tiếp hóa

4.4.3.4. Chương trình với bàn phím qua các cổng:

Bàn phím cũng là một thiết bị ngoại vi nên về nguyên tắc có thể truy xuất nó qua các cổng vào ra.

Các thanh ghi và các port:

Sử dụng 2 địa chỉ port 60h và 64h có thể truy xuất bộ đệm vào, bộ đệm ra và thanh ghi điều khiển của bàn phím.

Thanh ghi trạng thái xác định trạng thái hiện tại của bộ điều khiển bàn phím.

Thanh ghi này chỉ đọc (read only). Có thể đọc nó bằng lệnh IN tại port 64h.

PARE: Lỗi chẵn lẻ của byte cuối cùng được vào từ bàn phím; 1 = có lỗi chẵn lẻ, 0 = không có.

TIM: Lỗi quá thời gian (time-out); 1 = có lỗi, 0 = không có.

AUXB: Đệm ra cho thiết bị phụ (chỉ có ở máy PS/2); 1 = giữ số liệu cho thiết

bị, 0 = giữ số liệu cho bàn phím.

KEYL: Trạng thái khóa bàn phím; 1 = không khóa, 0 = khóa. C/D: Lệnh/số liệu; 1 = Ghi qua port 64h, 0 = Ghi qua port 60h.

INPB: Trạng thái đệm vào; 1 = số liệu CPU trong bộ đệm vào, 0 = đệm vào rỗng.

OUTB: Trạng thái đệm ra; 1 = số liệu bộ điều khiển bàn phím trong bộ đệm ra, 0 = đệm ra rỗng.

Thanh ghi điều khiển (64h)

Các lệnh cho bộ điều khiển bàn phím:

Mã Lệnh

A7h Cấm thiết bị phụ, A8h Cho phép thiết bị phụ, A9h Kiểm tra ghép nối tới thiết bị phụ

AAh Tự kiểm tra, ABh Kiểm tra ghép nối bàn phím, ADh Cấm bàn phím, AEh Cho phép bàn phím

C0h Đọc cổng vào

C1h Đọc cổng vào ra (byte thấp) C2h Đọc cổng vào ra (byte cao) D0h Đọc cổng ra

D1h Ghi cổng ra

D2h Ghi đệm ra bàn phím D3h Ghi đệm ra thiết bị phụ D4h Ghi thiết bị phụ

F0h Gửi 1 xung tới lối ra FFh Cổng

Khóa bàn phím: Start:

IN AL, 64h ; đọc byte trạng thái

TEST AL, 02h ; kiểm tra bộ đệm có đầy hay không JNZ start ; một vài byte vẫn còn trong bộ đệm vào OUT 64h, 0ADh ; khóa bàn phím

Các lnh cho bàn phím:

Tóm tắt các lệnh bàn phím:

Thí dụ: lệnh bật đèn led cho phím NUMCLOCK, tắt tất cả các đèn khác. OUT 60H, EDH ; ra lệnh cho bật tắt các đèn led

WAIT:

IN AL, 64H ; đọc thanh ghi trạng thái JNZ WAIT ; bộ đệm vào đầy

OUT 60H, 02H ; bật đèn cho numclock Cấu trúc của byte chỉ thị như sau:

Một phần của tài liệu Chương trình máy tính (Trang 100)

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

(129 trang)