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.. Nối đất cỏc hàng và đọc cỏc cộtĐọ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
Trang 1Bà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
Trang 21 Giao diện bàn phím
D3 D2 D1 D0
D0
D1
D2
D3
7 3
B
F
5
Cæng A ( Ra )
Cæng B ( Vµo )
Vcc
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
Trang 3 Nối đất cỏc hàng và đọc cỏc cột
Đọ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
Trang 42 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 ảng m· quÐt bµn phÝm 83 phÝm cña m¸y tÝnh PC/XT
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
Trang 5Byte 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
Trang 6 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ã ả 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 = ả mã quét bàn phím vào AH còn mã
1 để xác nhận
INT 16H, AH = 2 (tr v byte tr ng ả mã quét bàn phím vào AH còn mã ề byte trạng ạ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 ữ 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.
Trang 7Ví 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) ả m· quÐt bµn phÝm vµo AH cßn m· 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.ả m· quÐt bµn phÝm vµo AH cßn m·
(c) Kh«ng x y ra chuyÖn gả m· quÐt bµn phÝm vµo AH cßn m· ì 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
Trang 8 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 ả mã quét bàn phím vào AH còn mã cáp bàn phím Tại b ng mạch chủ cũng có một mạch điện t ả mã quét bàn phím vào AH còn mã
ơng ứng chịu trách nhiệm nhận các d liệu nối tiếp và tạo ữ liệu BIOS tại địa chỉ 0040:0017H thành một byte để CPU đọc Sẽ x y ra điều gả mã quét bàn phím vào AH còn mã ỡ 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á ả mã quét bàn phím vào AH còn mã 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 ả mã quét bàn phím vào AH còn mã 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
Trang 9MÁY IN VÀ GIAO DIỆN MÁY
IN Ở MÁY TÍNH IBM-PC
Trang 10Nố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
Trang 11Nố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.
Trang 12Ở mỏy tớnh IBM PC, chương
trỡnh bật nguồn - tự kiểm tra
POST (Power - on - Self test)
của BIOS được sử dụng để kiểm
tra cỏc mỏy in được nối tới cỏc
cổng song song Như 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
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
Máy in dòng Cổng dữ liệu
(R/W)
Cổng trạng thái (Chỉ đọc)
Cổng điều khiển
(R/W)