Bàn phím và phối ghép bàn phím
1. Giao di n b n phímệ à
Quét v xác nh phím nà đị ấ
N i t các h ng v c các c tố đấ à àđọ ộ
2. L p trình v giao di n b n phímậ à ệ à
Các mã quét c u IBM PCả
L p trình b n phím b ng ng t BIOS INT 16Hậ à ằ ắ
Tr n b n phímà à
1. Giao diện bàn phím
Quét và xác định phím ấn
D
3
D
2
D
1
D
0
D
0
D
1
D
2
D
3
7
3
B
F
5
Cæng A
( Ra )
Cæng B
( Vµo )
V
cc
6
2
A
E
1
9
D
4
0
8
C
Nèi ghÐp ma trËn bµn phÝm víi c¸c cæng
Ni t cỏc hng v c cỏc ct
Đọc tất cả các cột
Đọc tất cả các cột
Chờ phím nhấn xong
Đọc tất cả các cột
S
Tất cả các
phím đ ợc mở
Có phím nhấn
?
Có phím nhấn
?
1
Bắt đầu
S
S
Đ
1
Nối đất hàng tiếp theo
Đọc tất cả các hàng
Tìm phím đ ợc nhấn
Xác định mã quét
Trở về
Phím hàng này
đ ợc nhấn
S
Đ
Đ
Đ
L ợc đồ ch ơng trình
Nối đất tất cả các hàng
2. Lập trình và giao diện bàn phím
Các mã quét của IBM PC
B ng m· quÐt bµn phÝm 83 phÝm cña m¸y tÝnh PC/XTả
Hex Key Hex Key Hex Key Hex Key
01 Esc 15 Y and y 29 ~ and
,
3D F3
02 ! and 1 16 U and u 2A LeftShift 3E F4
03 @ and 2 17 I and i 2B | and \ 3F F5
04 # and 3 18 O and o 2C Z and z 40 F6
05 $ and 4 19 P and p 2D X and x 41 F7
06 % and 5 1A { and [ 2E C and c 42 F8
07 ^ and 6 1B } and ] 2F V and v 43 F9
08 & and 7 1C Enter 30 B and b 44 F10
09 * and 8 1D Ctrl 31 N and n 45 Numlock
0A ( and 9 1E A and a 32 M and m 46 ScrollLock
0B ) and 0 1F S and s 33 < and , 47 7 and home
0C _ and - 20 D and d 34 > and . 48 8 and UpArrow
0D + and = 21 F and f 35 ? and / 49 9 and PgUp
0E Backspace 22 G and g 36 RightShift 4A - (gray)
0F Tab 23 H and h 37 PrtSc and
*
4B 4 and LeftArrow
10 Q and q 24 J and j 38 Alt 4C 5 (keypad)
11 W and w 25 K and k 39 Spacebar 4D 4 and RightArrow
12 E and e 26 L and l 3A Capslock 4E + (gray)
13 R and r 27 : and ; 3B F1 4F I and End
14 T and t 28 “ and ‘ 3C F2 50
2 and DownArrow
51 3 and PgDn
52 0 and Ins
53 . and Del
Byte tr ng thái c a b n phímạ ủ à
NhÊn RightShift
NhÊn LeftShift
NhÊns Ctrl
NhÊn All
NhÊn nh¶ Insert
NhÊn nh¶ CapsLock
NhÊn nh¶ Numlock
NhÊn nh¶ ScrollLock
d7 d6 d5 d4 d3 d2 d1 d0
L p trỡnh b n phớm b ng ng t BIOS INT 16H
INT 16H, AH = 0 (đọc 1 ký tự)
AH: Ch a mó quột b n phớm
AL: Ch a mó ASCII c a ký t (Khi phớm ch c n ng c n AL=0)
INT 16H, AH = 1 (tỡm n u cú ký tự)
Nếu có ký tự , hàm sẽ tr mã quét bàn phím vào AH còn mã
ASCII của ký tự vào AL và đặt cờ ZF = 0. Nếu không có ký tự nào ở bộ
đệm, hàm sẽ không chờ đến khi phím đ ợc nhấn mà đơn gi n đặt cờ ZF =
1 để xác nhận.
INT 16H, AH = 2 (tr v byte tr ng thỏi b n phớm hi n h nh )
Hàm này cung cấp byte trạng thái của bàn phím ở thanh ghi AL.
Byte trạng thái bàn phím (cũng t ơng ứng với byte cờ của bàn phím) đ ợc
định vị ở trong vùng d liệu BIOS tại địa chỉ 0040:0017H. ý nghĩa của
từng bít của byte trạng thái thanh ghi dịch đ ợc giới thiệu ở Hỡnh 10-3.
Vớ d : Chạy ch ơng trỡnh d ới đây trong DEBUG và biểu diễn
kết qu ứng với tr ờng hợp gõ các phím sau: (a) Z, (b) F1, (c)
ALT.
MOV AH, 0
INT 16H
INT 3
Gi i :
(a) AX = 2C7A. AH = 2C là mã quét và AL = 7A là mã
ASCII của "Z".
(b) AX = 3B00. AH = 3B là mã quét của F1 và AL = 00 vỡ
F1 không ph i là phím mã ASCII.
(c) Không x y ra chuyện g ỡ vỡ không có mã quét cho phím
ALT. Trạng thái của các phím nh ALT đ ợc tỡm thấy ở byte
trạng thái bàn phím ở BIOS ở 40:17 và 40:18.
f
Tr n b n phớm:
Mạch 8042 ở phần bàn phím thực hiện chuyển mã bàn phím
sang dạng nối tiếp và chuyển tới b ng mạch chủ gửi đi qua cáp
bàn phím. Tại b ng mạch chủ cũng có một mạch điện t ơng ứng
chịu trách nhiệm nhận các d liệu nối tiếp và tạo thành một
byte để CPU đọc. Sẽ x y ra điều g ỡ nếu CPU bận và không
đọc kịp các phím nhấn. Tỡnh huống này đ ợc gọi là tràn bàn
phím. Khi đó b ng mạch chủ sẽ kích loa kêu bip. Quá trỡnh
tạo tiếng bip ở loa thực hiện nh sau: mạch xử lý bàn phím có
bộ đệm riêng và l u đ ợc 20 phím nhấn. Khi bộ đệm bị đầy, nó
sẽ dừng nhận phím nhấn và gửi một byte đặc biệt gọi là byte
tràn (ở PC/XT có giá trị là FFH) đến b ng mạch chủ. Sau khi
có mã quét, INT09 đầu tiên kiểm tra xem nếu mã quét đ ợc
nhận là byte tràn FFH. Nếu đúng là byte tràn, loa sẽ kêu
MÁY IN VÀ GIAO DIỆN MÁY
IN Ở MÁY TÍNH IBM-PC
Nối ghép Centronic
Là chuẩn giao diện máy in đầu tiên dành cho các máy tính họ
80x86 của Intel. Ghép nối này có 36 chân được đánh số từ
1-36 trong đó có nhiều chân đất cho phép các đường tín hiệu
có đất riêng nhằm để tránh tác động của nhiễu qua đường
nguồn.
•
Các đường dữ liệu - Để chuyển dữ liệu từ máy tính đến
máy in
•
Các tín hiệu trạng thái máy in – Xác định trạng thái
máy in tại một thời điểm bất kỳ.
•
Các tín hiệu điều khiển máy in – Dùng để điều khiển
máy in.
•
Các đường đất - Để cấp đất cho từng tín hiệu tín hiệu
dữ liệu, tín hiệu điều khiển và trạng thái.
Nối ghép LPT
•
Từ máy tính AT dùng BVXL 80286 trở đi nối
ghép máy in dùng giao diện DB-25P (25 chân). Về
cơ bản giống như chuẩn Cetronic khác nhau ở chỗ
chuẩn DB-25P không sử dụng các đường tín hiệu
đất về cho các chân dữ liệu và điều khiển.
mỏy tớnh IBM PC, chng
trỡnh bt ngun - t kim tra
POST (Power - on - Self test)
ca BIOS c s dng kim
tra cỏc mỏy in c ni ti cỏc
cng song song. Nh trc õy
ó nờu, a ch cng vo/ra c s
ca tng mỏy in c ghi vo
vựng d liu ca BIOS
0040:0008- 0040:000FH
Địa chỉ cơ sở I/O LPT
0040:0008-0040:0009
0040:000A-0040:000B
0040:000C-0040:000D
0040:000E-0040:000F
LPT1
LPT2
LPT3
LPT4
Bảng 10-7. Địa chỉ cơ sở I/O của các
cổng LPT