Quá trình truyền dữ liệu từ bàn phím cho CPU

Một phần của tài liệu Giáo trình Kỹ thuật vi xử lý pps (Trang 167 - 168)

Mạch μP8048 luôn phải kiểm tra trạng thái truyền tin qua hai dây ―DATA‖ và ―CLOCK‖ trước khi phát đi mã phím . Khi KC 8042 đặt ―DATA‖ = 0 và ―CLOCK‖=1 thì 8048 phải nhận các chỉ lệnh từ KC 8042. Khi KC 8042 đặt ―DATA ‖ = 1 và ―CLOCK‖ = 1 thì μP8048 được quyền truyền mã phím cho máy tính. Quá trình truyền dữ liệu được đồng bộ bằng dãy xung đồng bộ do μP8048 phát ra trên dây ―CLOCK‖.

Khi KC 8042 nhận được mã phím dạng nối tiếp, nó loại bỏ các bit tạo khung dữ liệu truyền, chuyển mã phím vào thanh ghi tạm và phát ra yêu cầu ngắt IRQ1 cho hệ thống ngắt cứng. Hệ thống ngắt cứng sẽ kích hoạt chương trình phục vụ bàn phím 09H (chương trình phục vụ ngắt 09H) nằm ở BIOS. Chương trình phục vụ bàn phím 09H có chức năng dịch mã phím thành mã hai byte và chứa vào vùng đệm bàn phím.

Chương trình phục vụ bàn phím 09H trước hết kiểm tra (mã) các phím trượt (Shift, Alt, Ctrl) và các phím đặc biệt (ScrollLock, NumLock , CapsLock, Insert) trước khi dịch mã phím sang mã hai byte.

Mã hai byte được chương trình phục vụ bàn phím 09H tạo ra có cấu trúc tuỳ thuộc mã phím hoặc tổ hợp mã phím nhận được. Nếu nhận được mã của phím ký tự thì byte thấp của mã hai byte chứa mã ASCII của ký tự tương ứng, byte cao chứa mã phím (mã quét phím). Khi chương trình phục vụ bàn phím 09H nhận được mã các phím không phải là ký tự thì byte thấp của mã hai byte có giá trị 0, byte cao chứa mã phím mở rộng.

Vùng đệm bàn phím có kích thước 32 byte nằm trên bộ nhớ chính tại địa chỉ 0000H:041EH . Trạng thái của các phím trượt và các phím đặc biệt được chứa ở hai ô nhớ 0000H:0417H và 0000H:0418H . Có thể truy nhập vùng đệm bàn phím để đọc thông tin về bàn phím nhờ chương trình ngắt 16H của BIOS.

Chương trình phục vụ bàn phím 09H cũng xử lý các trường hợp đặc biệt như:

- Khi phím được nhấn quá lâu (ví dụ quá 0.5 giây) và KC 8042 không nhận được mã phím nhả, nó sẽ gửi ra cho đơn vị xử lý trung tâm mã của phím được nhấn.

- Khi nhận được tổ hợp các phím Ctrl+Alt+Del nó sẽ khởi động lại máy tính.

- Khi nhận được mã phím PrintScreen nó sẽ kích hoạt ngắt 05H của BIOS.

- Khi nhận được mã phím Ctrl+Break nó sẽ kích hoạt ngắt 1BH của BIOS.

Một phần của tài liệu Giáo trình Kỹ thuật vi xử lý pps (Trang 167 - 168)