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 ấ
ị
2
3
0
1
D0
4
7
6
5
D1
B
A
9
8
D2
D
C
E
F
Vcc
D3
D3 D2 D1 D0
Cæng B ( Vµo )
Cæng A ( Ra )
Nè i ghÐp ma trËn bµn phÝm víi c ¸c cæ ng
N i đ t các hàng và đ c các c t ộ
ố ấ
ọ
1
B¾t ®Çu
Nèi ®Êt hµng tiÕp theo
Nèi ®Êt tÊt c¶ c¸c hµng
§äc tÊt c¶ c¸c hµng
TÊt c¶ c¸c phÝm ® îc më
S
PhÝm hµng nµy ® îc nhÊn
§
S
§
§äc tÊt c¶ c¸c cét
§äc tÊt c¶ c¸c cét
T×m phÝm ® îc nhÊn
S
§
Cã phÝm nhÊn ?
X¸c ®Þnh m∙ quÐt Chê phÝm nhÊn xong
§äc tÊt c¶ c¸c cét
Trë vÒ
S
§
Cã phÝm nhÊn ?
1 Lîc ®å ch¬ng tr×nh
ậ
ệ
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 Hex Hex Hex Key
ả Key
Key Key
Esc 01 15 Y and y ~ and , 29 3D F3
! and 1 02 16 U and u LeftShift 2A 3E F4
@ and 2 03 17 I and i | and \ 2B 3F F5
# and 3 04 18 O and o Z and z 2C 40 F6
$ and 4 05 19 P and p X and x 2D 41 F7
% and 5 06 1A { and [ C and c 2E 42 F8
^ and 6 07 1B } and ] V and v 2F 43 F9
& and 7 08 1C Enter B and b 30 44 F10
* and 8 09 1D Ctrl N and n 31 45 Numlock
( and 9 0A 1E A and a M and m 32 46 ScrollLock
) and 0 0B 1F S and s < and , 33 47 7 and home
_ and 0C 20 D and d > and . 34 48 8 and UpArrow
+ and = 0D 21 F and f ? and / 35 49 9 and PgUp
Backspace 0E 22 G and g RightShift 36 4A (gray)
Tab 0F 23 H and h PrtSc and* 37 4B 4 and LeftArrow
Q and q 10 24 J and j Alt 38 4C 5 (keypad)
W and w 11 25 K and k Spacebar 39 4D 4 and RightArrow
E and e 12 26 L and l Capslock 3A 4E + (gray)
2 and DownArrow
R and r 13 27 : and ; F1 3B 4F I and End
T and t 14 28 “ and ‘ F2 3C 50
51 3 and PgDn
52 0 and Ins
53 . and Del
Byte tr ng thái c a bàn phím
ủ
ạ
d7 d6 d5 d4 d3 d2 d1 d0
NhÊn RightShift
NhÊn nh¶ Insert
NhÊn LeftShift
NhÊn nh¶ CapsLock
NhÊns Ctrl
NhÊn nh¶ Numlock
NhÊn All
NhÊn nh¶ ScrollLock
ắ
ậ
(Khi phím ch c năng đ
c n AL=0)
ượ ấ
ứ ứ
ứ
ủ
ký tù)
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 ự INT 16H, AH = 1 (tìm n u cóế
ệ
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.
AH = 3B lµ m· quÐt cña F1 vµ AL
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 iả : Gi (a) AX = 2C7A. AH = 2C lµ m· quÐt vµ AL = 7A lµ m· ASCII cña "Z". (b) AX = 3B00. = 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.
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µ lu ®î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 IBMPC
Ở
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 ầ ố
ấ
c đánh s ố ng tín ườ ễ
ủ
ằ
ộ
h 80x86 c a Intel. Ghép n i này có 36 chân đ ọ ượ 1-36 trong đó có nhi u chân đ t cho phép các đ t ề ừ hi u có đ t riêng nh m đ tránh tác đ ng c a nhi u qua ể ệ đ ườ
•
ng d li u - Đ chuy n d li u t
máy tính
ể ữ ệ ừ
ữ ệ
ể
ồ ườ
ấ ng ngu n. Các đ đ 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
ạ
ộ
ờ
ể
ấ
•
Các tín hi u đi u khi n máy in – Dùng đ đi u khi n
i m t th i đi m b t kỳ. ề
ể ề
ệ
ể
ể
máy in.
•
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. ề
Các đ ệ ữ ệ
ấ ể
ừ ạ
ệ
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 không s d ng các đ ử ụ cho các chân d li u và đi u khi n. ữ ệ
ố ư ch chu n DB-25P ẩ ở ỗ ng tín hi u đ t v ấ ề ệ ườ ể
ề
ậ
B¶ng 10-7. § Þa chØ c¬ së I/O cña c¸ c cæng LPT
ượ ử ụ
ỉ ổ
ị ơ ở ủ ừ
§ Þa chØ c¬ së I/O 00 40: 0 00 8 - 0040 : 0 00 9 00 40: 0 00 A- 0040 : 0 00 B 00 40: 0 00 C- 0040 : 0 00 D 00 40: 0 00 E- 0040 : 0 00 F
LPT LPT1 LPT2 LPT3 LPT4
máy tính IBM PC, ch ng ươ Ở trình b t ngu n - t ki m tra ự ể ồ POST (Power - on - Self test) c s d ng đ c a BIOS đ ể ủ c n i ki m tra các máy in đ ể ượ ố i các c ng song song. Nh t ư ổ ớ tr c đây đã nêu, đ a ch c ng ướ vào/ra c s c a t ng máy in đ c ghi vào vùng d li u c a ữ ệ ủ ượ BIOS 0040:0008- 0040:000FH
M¸ y in dßng
LPT1 LPT2 LPT3
Cæng d÷ liÖu (R/W) 03BCH 0378H 0278H
Cæng tr¹ ng th¸ i (ChØ ®äc) 03BDH 0379H 0279H
Cæng ®iÒu khiÓn (R/W) 03BEH 037AH 037AH