Bàn phím
0 Là một TBNV dùng để đưa tin(lệnh hay dữ liệu)vào MVT cơ bản nhất dưới dạng mã lệnh chuẩn ASCII(American Standard Codefor Infomation Interchange) Cấu tạo và nguyên tắc ...
Là một TBNV dùng để đưa tin(lệnh hay dữ liệu)vào MVT cơ bản nhất dưới dạng mã lệnh chuẩn ASCII(American Standard Codefor Infomation Interchange)
Cấu tạo và nguyên tắc hoạt động
1/ Cấu tạo các phím trên bàn phím có thể cấu theo các loại sau:
a) Loại tiếp xúc bằng tiếp điểm trực tiếp
Ưu điểm :đơn giản dễ chế tạo
Nhược điểm: độ nhạy kém, tiếp điểm chóng mòn (vì hay bị đánh tia lửa địên)
b) Phím điện cảm
Dựa trên nguyên lí thay dổi điện trường
Khi phím được nhấn khoảng cách ba má sít lại gần nhau làm thay đổi cường độ điện trường
Ưu điểm: độ nhạy cao
Nhược điểm cần một thiết bị điện tử để đảm nhận dạng phím nhấn nên giá thành cao
c/ phím điện cảm:
Khi phím được nhấn, lõi thép cọ sát vào nhau tạo ra một xuất điện động cảm ứng và sinh ra dòng điện cảm ứng.
Khi có dòng điện cảm ứng,mã tín hiệu thay đổi vì vậy biết phím nào được nhấn
Ưu điểm độ nhạy cao
Nhược điểm chế tạo phức tạp
d/ Phím màng mỏng:
Mạch in được chế tạo tích hợp ngay trên một tấm mika hoặc pherit.
ưu điểm đơn giản độ nhạy cao
![]() |
![]() |
![]() |
a/tiếp xúc | d/ điện dung | c/điện cảm |
Hình 3-1: Ccác kiểu cấu tạo của bàn phím
2/ Mã quét (Scan) của bàn phím:
Các lối ra của sơ đồ cấu tạo mã quét cho các bàn phím phải được đưa vào máy tính để nhận biết là phím đã được nhấn hay nhả
Để rút ngắn số lượng đường dây nối vào máy vi tính và đặc biệt khi số phím lớn hơn 16 hoặc 32,người ta phải mã hoá thứ tự các phím nhấn (0,1,2,...,n) từ dạng thập phân thành dạng nhị phân 0000,0001,00010,...,1111hay dạng thập lục phân.
Ở một sơ đồ đếm quét khi có một phím được tiếp xúc,việc đếm dừng tại số tự của phím đã được nhấn và sau khi nhả. Muốn tạo mã ASCII cho một bàn phím người ta dùng một vi mạch để xử lí
Hình 3-2: Sơ đồ cấu tạo mã quét phím + phát hiện và ghi lần lượt các tín hiệu 1 của các cột khác nhau của ma trận (qua bộ giải mã 3 - 8)
+ Đọc các giá trị hàng của ma trận rồi biến đổi song song thành nối tiếp để truyền vào máy vi tính
3/ Bộ đệm bàn phím
Bộ đệm bàn phím là một vùng nhớ chứachứa các phím đã được nhấn nhưng chưa được chơưng trình sử dụng. Một phím được nhấn chứa trong một từ vói byte cao chứa mã Scan,byte thấp chứa mã ASCII (nếu phím đó là mã ASCII).trong bộ đệm không lưu các phím dịch nhưng có thể lưu lại tổ hợp phím
4/ sơ đồ nguyên lý hoạt động của bàn phím được trình bày như trong hình 28 bao gồm các phần sau: (A) bộ toạ dao động cho bàn phím
(B) Các bít điều khiển đếm số nhị phân : (C) mạch giải mã nhận các tín hiệu điều khiển và nạp dữ liẹu vào máy : (D) Mạch logic OR : (E) Mạch dồn kênh : (F) Bộ giải mã cột : (G) Phần tử chống dung
Hình 3-3: Sơ đồ nguyên lí hoạt động của bàn phím 5/ Sơ đồ ghép nối bàn phím và máy vi tính
Sơ đồ gồm ba phần
- Phần nối với máy tính có 8042 Bộ giải mã bàn phím và bộ nguồn nuôi với địên áp +5V
- các đường dây nối Bao gồm các đừơng dây nguồn các đường trạng thái,các đường dữ liệu
bàn phím bao gồm
chíp 8048 là trung tâm điều khiển của bàn phím,tạo ra mã quét nhận dạng các phím được bấm và gửi sang cho mạch giải mã các tín hiệu đèn: kiểm tra trạng thái sẵn sàng của bàn phím
Hình 3-4: Sơ đồ ghép nối bàn phím với máy tính ma trận phím Tổ hợp các phím theo hàng và cột
Phương pháp tác động
a/ Tác động bằng lệnh của DOS
Trong MS_DOS có thể sử dụng các lệnh để thay đổi độ trễ khi nhấn phím,thay đổi mã ASCII của phím (ví dụ thay dổi chữ S thành chữ K...) và có các tệp.sys cho phép cài đặt chương trình điều khiển bàn phím..
d/ Tác động bằng lập trình ngắt:
Để viết một chương trình ngắt cho bàn phím,ta có thể tác động đến các hàm của ngắt 21h (DOS) hoặc là ngắt 16h (BIOS)
Ngắt 21h
Hàm 01h:đọc một kí tự từ bàn phím và hiển thị kí tự ra màn hình
Hàm 06h vào ra trực tiếp bàn phím và màn hình
Vào AH=06h
DL=kí tự Mã ASCII (DL=ffh thì AL sẵn sàng nhận kí tự,ngược lại đa ra màn hình)
Ra: AL=kí tự bàn phím khi FZ =0;
Hàm 07h vào từ bàn phím không hiện ra màn hình
vào AH =07h
ra AL=ký tự (Al=0) đọc mã quét
Hàm 08 chức năng tương tự hàm 07nhưng chịu sự tác động của Ctrl +B
Hàm 0Ah Nhập chuỗi kí tự vào phần đệm của,kết thúc nhấn phím ENTER
vào AH=0Ah
DS:DX trỏ tới địa chỉ vùng đệm
ra không
Hàm 0Bh
vào AH=0Bh
ra AL =FFh sẵn sàng
AL =00h chưa sẵn sàng
Hàm 0Ch xoá bàn phím gọi 1 trong 5 hàm 1,6,7,8,A
vào AH=0Ch
AL= tên hàm
Ra không
Hàm 33hKhiểm tra trạng thái Ctrl +B
vào AH=33h
AL=00h (để xác định trạng thái Ctrl+B)
=01h (để thiết lập trạng thái Ctrl+B)
DL =00h (Ctrl+B là OFF)
=01h (Ctrl+B là ON)
ra DL= trạng thái hiện tại
DL =00h (Ctrl+B là OFF)
=01h (Ctrl+B là ON)
* Ngắt 16h: Ngắt bàn phím
Hàm 00h Đọc một kí tự
vào AH =00h
Ra AL = mã ASCII kí tự được nhấn
với các phím chức năng AL=00h
AH = mã quét của các phím nhấn
Hàm 01h kiểm tra trạng thái sẵn sàng của bàn phím
vào ah=01h
Ra ZF =1 (không có kí tự nào trong vùng đệm)
=0 (có kí tự)khi đó:
phím mở rộng:
AL =0 mã bàn phím mở rộng
AH = Mã Scan phím
mã phím thường
AL = mã ASCII của phím (bàn phím thường)
AH =mã Scan phím
Hàm 02h Kiểm tra trạng thái của bàn phím (nhận biết phím điều kiển)
vào AH=02h
ra AL= trạng thái phím
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Insert | Caps Lock | Num lock | Scrool lock | Alt | Ctrl | Shift right | Shift left |
Các bít có thể bằng 0 hoặc 1 phím được nhấn
Hàm 03h đặt thời gian trì hoãn bàn phím
vào AH=03h
AL=05h
BH=mã thời gian trì hoãn (0=250ms,1=500ms,2=750ms,3=1s)
BL=mã thời gian lập phím(00h1fh)
ra không
Hàm 05 Ghi kí tự lên vùng đệm bàn phím
vào AH =05h
CH =mã quét(=0;không dùng)
CL = Mã ASCII
Ra AH=0 thành công
=1 thất bại
Hàm 10h Đọc kí tự từ bàn phím (101 phím)
vào AH=10h
ra AL=mã ASCII
AH= mã quét
Hàm 11h báo kí tực sẵn sàng hay chưa (101 phím)
vào AH=11h
Ra AL=0 chưa sẵn sàng
=1 sẵn sàng
Ví dụ: Nhập vào hoặc là tổ hợp phím từ bàn phím
- kiểm tra tổ hợp phím nhập vào.Nếu là Ctrl + kí tự thì thônng báo có phím Ctrl và kí tự tương ứng
Program vd;
Uses dos,crt;
Var
r:REGISTERS; c:byte;
Begin
with r do
Begin
ah:=0;
intr($16,r);
c:=al;
ah:=2;
intr($16,r);
if((al and 4) =4) then
if((Al and 64)=4) then
Write(‘Nhan Ctrl +’,shr(c+64))
else Write(‘Nhan Ctrl +’,chr(c+96))
else Write(‘Nhan Ctrl +’,chr(c));
End;
readln;
End.