Giao tiếp với bàn phớm và chuột

Một phần của tài liệu KĨ THUẬT GHÉP NỐI MÁY TÍNH (Trang 112)

Cấu trỳc và chức năng:

Hỡnh 7.8 - Sơđồ nguyờn lý và cỏc ghộp nối của bàn phớm

Chip xử lý bàn phớm liờn tục kiểm tra trạng thỏi của ma trận quột (scan matrix) để xỏc định cụng tắc tại cỏc tọa độ X,Y đang được đúng hay mở và ghi một mó tương ứng vào bộđệm bờn trong bàn phớm. Sau đú mó này sẽ được truyền nối tiếp tới mạch ghộp nối bàn phớm trong PC. Cấu trỳc của SDU cho việc truyền số liệu này và cỏc chõn cắm của đầu nối bàn phớm.

SDU

0 10

STRT DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 PAR STOP STRT: bit start (luụn bằng 0)

DB0 - DB7: bit số liệu từ 0 đến 7. PAR: bit parity (luụn lẻ) STOP: bit stop (luụn bằng 1).

Tớn hiệu xung nhịp dựng cho việc trao đổi dữ liệu thụng tin nối tiếp đồng bộ với mạch ghộp nối bàn phớm (keyboard interface) trờn main board được truyền qua chõn số 1.

Một bộ điều khiển bàn phớm đó được lắp đặt trờn cơ sở cỏc chớp 8042, hoặc 8742,8741. Nú cú thể được chương trỡnh húa (thớ dụ khúa bàn phớm) hơn nữa số liệu cú thể truyền theo 2 hướng từ bàn phớm và mạch ghộp nối, do vậy vi mó của chớp bàn phớm cú thể giỳp cho việc nhận lệnh điều khiển từ PC, thớ dụ như đặt tốc độ lặp lại của nhấn bàn phớm,….

Chương 7. Giao tiếp vi cỏc thiết b ngoi vi cơ bn

Hỡnh 7.9 – Đầu cắm bàn phớm AT

Hỡnh 7.10 – Đầu cắm bàn phớm PS/2 • Mó quột bàn phớm:

Mỗi phớm nhấn sẽ được gỏn cho 1 mó quột (scan code) gồm 1 bytẹ Nếu 1 phớm được nhấn thỡ bàn phớm phỏt ra 1 mó make code tương ứng với mó quột truyền tới mạch ghộp nối bàn phớm của PC. Ngắt cứng INT 09h được phỏt ra qua IRQ1.

Chương trỡnh xử lý ngắt sẽ xử lý mó này tuỳ theo phớm SHIFT cú được nhấn hay khụng. Vớ dụ: nhấn phớm SHIFT trước, khụng rời tay và sau đú nhấn ‘C’: make code được truyền - 42 (SHIFT) - 46 (‘C’).

Nếu rời tay nhấn phớm SHIFT thỡ bàn phớm sẽ phỏt ra break code và mó này được truyền như make codẹ Mó này giống như mó quột nhưng bit 7 được đặt lờn 1, do vậy nú tương đương với make code cụng với 128. Tuỳ theo break code, chương trỡnh con xử lý ngắt sẽ xỏc định trạng thỏi nhấn hay rời của cỏc phớm. Thớ dụ, phớm SHIFT và ‘C’ được rời theo thứ tự ngược lại với thớ dụ trờn: break code được truyền 174 ( bằng 46 cộng 128 tương ứng với ‘C’) và 170 (bằng 42 cộng 128 tương ứng với SHIFT).

Phần cứng và phần mềm xử lý bàn phớm cũn giải quyết cỏc vấn đề vật lý sau: Nhấn và nhả phớm nhưng khụng được phỏt hiện.

Khử nhiễu rung cơ khớ và phõn biệt 1 phớm được nhấn nhiều lần hay được nhấn chỉ 1 lần nhưng được giữ trong một khoảng thời gian dàị

Truy xuất bàn phớm qua BIOS

BIOS ghi cỏc ký tự do việc nhấn cỏc phớm vào bộ đệm tạm thời được gọi là bộ đệm bàn phớm (keyboard buffer), cú địa chỉ 40:1E, gồm 32 byte và do vậy kết thỳc ở địa chỉ 40:3D. Mỗi ký tựđược lưu trữ bằng 2 bytes, byte cao là mó quột, và byte thấp là mó ASCIỊ Như vậy, bộ đệm cú thể lưu trữ tạm thời 16 ký tự. Chương trỡnh xử lý ngắt sẽ xỏc định mó ASCII từ mó quột bằng bảng biến đổi và ghi cả 2 mó vào bộđệm bàn phớm. Bộ đệm bàn phớm được tổ chức như bộ đệm vũng (ring buffer) và được quản lý bởi 2 con trỏ. Cỏc giỏ trị con trỏđược lưu trữ trong vựng số liệu của BIOS ở địa chỉ 40:1A và 40:1C.

ươ ế ế ơ

Ngắt INT 16h trong BIOS cung cấp 8 hàm cho bàn phớm. Thường cỏc hàm BIOS trả về một giỏ trị 0 của ASCII nếu phớm điều khiển hoặc chức năng được nhấn..

Cỏc thớ dụ:

Giả sử phớm ‘a’ đó được nhấn.

MOV AH,00h ; chạy hàm 00h, đọc ký tự INT 16h ; phỏt một interrupt

Kết quả: AH = 30 (mó quột cho phớm ‘a’); AL = 97 (ASSCII cho ‘a’)

Giả sử phớm ‘.HOME’ đó được nhấn.

MOV AH,00h ; chạy hàm 00h, đọc ký tự INT 16h ; phỏt một interrupt

Kết quả: AH = 71 ( mó quột cho phớm ‘HOME’)

AL = 00 (cỏc phớm chức năng và điều khiển khụng cú mó ASCII)

Giả sử phớm ‘HOME’ đó được nhấn.

MOV AH,10h ; chạy hàm 10h, đọc ký tự INT 16h ; phỏt một interrupt (adsbygoogle = window.adsbygoogle || []).push({});

Kết quả: AH = 71 (mó quột cho phớm ‘HOME’) AL = E0h

Chương trỡnh với bàn phớm qua cỏc cổng:

Bàn phớm cũng là một thiết bị ngoại vi nờn về nguyờn tắc cú thể truy xuất nú qua cỏc cổng vào rạ

Cỏc thanh ghi và cỏc port:

Sử dụng 2 địa chỉ port 60h và 64h cú thể truy xuất bộđệm vào, bộđệm ra và thanh ghi điều khiển của bàn phớm.

Port Thanh ghi R/W

60h Đệm ngừ ra R

60h Đệm ngừ vào W

64h Thanh ghi điều khiển W 64h Thanh ghi trạng thỏi R

Thanh ghi trạng thỏi xỏc định trạng thỏi hiện tại của bộđiều khiển bàn phớm. Thanh ghi này chỉ đọc (read only). Cú thểđọc nú bằng lệnh IN tại port 64h.

7 0

PARE TIM AUXB KEYL C/D SYSF INPB OUTB PARE Lỗi chẵn lẻ của byte cuối cựng được vào từ bàn phớm; 1 = cú lỗi chẵn

lẻ, 0 = khụng cú.

Chương 7. Giao tiếp vi cỏc thiết b ngoi vi cơ bn

AUXB Đệm ra cho thiết bị phụ (chỉ cú ở mỏy PS/2); 1 = giữ số liệu cho thiết bị, 0 = giữ số liệu cho bàn phớm.

KEYL Trạng thỏi khúa bàn phớm; 1 = khụng khúa, 0 = khúạ C/D Lệnh/số liệu; 1 = Ghi qua port 64h, 0 = Ghi qua port 60h.

INPB Trạng thỏi đệm vào; 1 = số liệu CPU trong bộđệm vào, 0 = đệm vào rỗng.

OUTB Trạng thỏi đệm ra; 1 = số liệu bộđiều khiển bàn phớm trong bộđệm ra, 0 = đệm ra rỗng.

Hỡnh 7.11 Bộđiều khiển bàn phớm

Thanh ghi điều khiển (64h)

7 0

PARE TIM AUXB KEYL C/D SYSF INPB OUTB Cỏc lệnh cho bộđiều khiển bàn phớm:

Lệnh

A7h Cấm thiết bịphụ A8h Cho phộp thiết bịphụ

ươ ế ế ơ AAh Tựkiểm tra ABh Kiểm tra ghộp nối bàn phớm ADh Cấm bàn phớm AEh Cho phộp bàn phớm C0h Đọc cổng vào C1h Đọc cổng vào ra (byte thấp) C2h Đọc cổng vào ra (byte cao) D0h Đọc cổng ra

D1h Ghi cổng ra

D2h Ghi đệm ra bàn phớm D3h Ghi đệm ra thiết bịphụ D4h Ghi thiết bịphụ

E0h Kiểm tra đọc cổng vào F0h Gửi 1 xung tới lối ra FFh Cổng

Khúa bàn phớm: Start:

IN AL, 64h ; đọc byte trạng thỏi (adsbygoogle = window.adsbygoogle || []).push({});

TEST AL, 02h ; kiểm tra bộđệm cú đầy hay khụng JNZ start ; một vài byte vẫn cũn trong bộđệm vào OUT 64h, 0ADh ; khúa bàn phớm

Cỏc lệnh cho bàn phớm:

Túm tắt cỏc lệnh bàn phớm:

Lệnh Mụ tả

EDh Bật ON/OFF LED Bật/tắt cỏc đốn led của bàn phớm EEh Echo Trả về byte eeh

F0h Đặt/nhận diện Đặt 1 trong 3 mó quột và nhận diện cỏc mó quột tập mó quột hiện tạị

F2h Nhận diện bàn phớm Nhận diện ACK = AT, ACK+abh+41h=MF IỊ F3h Đặt tốc độ lặp lại/trễ Đặt tốc độ lặp lại và thời gian trễ của bàn phớm F4h Enable Cho phộp bàn phớm hoạt động

F5h Chuẩn/khụng cho phộp Đặt giỏ trị chuẩn và cấm bàn phớm. F6h Chuẩn/cho phộp Đặt giỏ trị chuẩn và cho phộp bàn phớm.

FEh Resend Bàn phớm truyền ký tựcuối cựng một lần nữa tới bộ điều khiển bàn phớm

FFh Reset Chạy reset bờn trong bàn phớm

Thớ dụ: lệnh bật đốn led cho phớm NUMCLOCK, tắt tất cả cỏc đốn khỏc. OUT 60H, EDH ; ra lệnh cho bật tắt cỏc đốn led

WAIT:

Chương 7. Giao tiếp vi cỏc thiết b ngoi vi cơ bn

JNZ WAIT ; bộđệm vào đầy

OUT 60H, 02H ; bật đốn cho numclock Cấu trỳc của byte chỉ thị như sau:

0 0 0 0 0 CPL NUM SCR CPL: 1 = bật đốn Caps Lock; 0 = tắt NUM: 1 = bật đốn Num Lock; 0 = tắt SCR: 1 = bật đốn Scr Lock; 0 = tắt

7.1.2 Chuột

Cấu tạo

Cấu tạo của chuột rất đơn giản, phần trung tõm là 1 viờn bi thộp được phủ keo hoặc nhựa được quay khi dịch chuyển chuột. Chuyển động này được truyền tới 2 thanh nhỏ được đặt vuụng gúc với nhaụ Cỏc thanh này sẽ biến chuyển động của chuột theo 2 hướng X,Y thành sự quay tưong ứng của 2 đĩa gắn với chỳng. Trờn 2 đĩa cú những lỗ nhỏ liờn tục đúng và ngắt 2 chựm sỏng tới cỏc sensor nhạy sỏng để tạo ra cỏc xung điện. Số cỏc xung điện tỷ lệ với lượng chuyển động của chuột theo cỏc hướng X,Y và số xung trờn 1 sec biểu hiện tốc độ của chuyển động chuột. Kốm theo đú cú 2 hay 3 phớm bấm.

Hỡnh 7.12 Sơđồ cấu tạo của chuột • Mạch ghộp nối và chương trỡnh điều khiển chuột

Hầu hết chuột được nối với PC qua cổng nối tiếp, qua đú chuột cũng được cấp nguồn nuụi từ PC. Khi dịch chuyển hoặc nhấn, nhả cỏc phớm chuột, nú sẽ phỏt ra một gúi cỏc số liệu tới mạch giao tiếp và mạch sẽ phỏt ra 1 ngắt. Phần mềm điều khiển chuột làm cỏc nhiệm vụ: chuyển ngắt tới mạch giao tiếp nối tiếp xỏc định, đọc gúi số liệu và cập nhật cỏc giỏ trị bờn trong liờn quan tới trạng thỏi của bàn phớm cũng như vị trớ của chuột.

ươ ế ế ơ

Hơn nữa, nú cũn cung cấp 1 giao tiếp mềm qua ngắt của chuột là 33h để định cỏc giỏ trị bờn trong này cũng như làm dịch chuyển con trỏ chuột trờn màn hỡnh tương ứng với vị trớ của chuột.

Cú thể chọn kiểu con trỏ chuột cứng hoặc mềm trong chế độ văn bản hay con trỏ chuột đồ hoạ trong chếđộ đồ họạ Cỏc hàm 09h và 0Ah trong ngắt 33h cho phộp định nghĩa loại và dạng con trỏ chuột.

Chương trỡnh với con trỏ

Ngắt 33h cho phộp xỏc định vị trớ, số lần bấm nhỏy (click) phớm con trỏ và hỡnh dạng con trỏ. Để hiện con trỏ trờn màn hỡnh phải dựng hàm 01h. Hàm 09h định nghĩa con trỏ chuột trong chế độ đồ họa . Hỡnh bờn dưới là thớ dụ của mặt nạ con trỏ hỡnh mũi tờn trong trong kiểu hiện VGA phõn dải cao 256 màụ Ở đõy một điểm ảnh (pixel) được biểu diễn bằng 1 bytẹ

Đoạn chương trỡnh sau cho phộp hiện con trỏ mềm với màu số 3 và sỏng nhấp nhỏy: f . . . f f . . . f x f . . . f x x f . . . f x x x f . . . f x x x x f . . . f x x x x x f . . . f x x x x x x f . . . f x x x x f f f f . . . . .f . f f x f . . . f f x f x f . . . f . . f x x f . . . f . . . f x f . . . . . . f x x f . . . . . . f x f . . . . . . f . . . Hỡnh 7.13 Mặt nạ con trỏ chuột MOV AX, 0AH ; chọn hàm

MOV BX, 00H ; con trỏ chuột mềm MOV CX, 00H ; xoỏ ký tự trờn màn hỡnh

MOV DX, 8B02H ;BLNK=1b,BAK = 000b, INT = 1b, CHRx = 00000010b INT 33H ; gọi ngắt.

7.2. Giao tiếp PC Game (adsbygoogle = window.adsbygoogle || []).push({});

Cấu trỳc và chức năng của board ghộp nối trũ chơi (PC game) như hỡnh bờn dướị Bằng lệnh IN và OUT cú thể truy xuất qua địa chỉ 201h.

Chương 7. Giao tiếp vi cỏc thiết b ngoi vi cơ bn

Hỡnh 7.6 - Cấu trỳc và chức năng của board ghộp nối trũ chơi

Hỡnh 7.7 - Cấu tạo của đầu nối 15 chõn và 2 joystick A và B

Chõn của đầu nối 15 chõn Sửdụng cho

2 Phớm 1 của Joystick A (BA1) 3 Biến trở X của Joystick A 6 Biến trở Y của Joystick A 7 Phớm 2 của Joystick A (BA2) 10 Phớm 1 của Joystick A (BB1) 11 Biến trở X của Joystick B 13 Biến trở Y của Joystick B 14 Phớm 2 của Joystick A (BB2) 1, 8, 9, 15 Vcc (+5V) 4, 5, 12 GND (0V)

Board mạch được nối với bus hệ thống của PC chỉ qua 8 bits thấp của bus dữ liệu, 10 bits thấp của bus địa chỉ và cỏc đường điều khiển IOR và IOW. Một đầu nối 15 chõn được nối với board mạch cho phộp nối cực đại hai thiết bị cho PC game gọi là joystick.

Chương 7. Giao tiếp vi cỏc thiết b ngoi vi cơ bn

Mỗi joystick cú 2 biến trở cú giỏ trị biến đổi từ 0 đến 100kΩ được đặt vuụng gúc với nhau đại diện cho vị trớ x và y của joystick. Thờm nữa chỳng cú 2 phớm bấm, thường là cỏc cụng tắc thường hở phự hợp với cỏc mức logic cao của cỏc dõy trờn mạch.

Cú thể xỏc định được trạng thỏi nhấn hoặc nhả phớm một cỏch dễ dàng bằng lệnh IN tới địa chỉ 201h. Nibble cao chỉ thị trạng thỏi của phớm. Vỡ board khụng dựng đường IRQ do đú khụng cú khả năng phỏt ra 1 ngắt, do vậy board chỉ hoạt động trong chếđộ hỏi vũng (polling). Byte trạng thỏi của board game như sau:

D7 D6 D5 D4 D3 D2 D1 D0 BB2 BB1 BA2 BA1 BY BX AY AX

BB2, BB1, BA2, BA1: Trạng thỏi của cỏc phớm B2, B1, A2, A1; 1 = nhả; 0 = nhấn

BY, BX, AY, AX: Trạng thỏi của mạch đa hài tuỳ thuộc vào biến trở tương ứng.

7.3. Monitor và card giao din đồ ho7.3.1 Nguyờn lý hiện ảnh trờn monitor 7.3.1 Nguyờn lý hiện ảnh trờn monitor

Phương phỏp hiện ảnh trờn màn hỡnh của monitor mỏy tớnh cũng giống như trong mỏy thu hỡnh thụng thường. Hỡnh bờn dưới minh họa việc hiện ảnh trờn màn hỡnh kiểu ống phúng tia õm cực CRT (cathode ray tube).

Hỡnh 7.14 – Cấu tạo ống hỡnh CRT

Cỏc điện tử phỏt xạ từ cathode trong ống được hội tụ thành 1 chựm tia, sau đú được tăng tốc và được làm lệch hướng chuyển động bởi cỏc bộ phận lỏi tiạ Tia này sẽ đập vào màn hỡnh cú phủ chất huỳnh quang để tạo thành 1 điểm sỏng gọi là 1 điểm ảnh.

Do hiện tượng lưu ảnh trong vừng mạc của mắt người nờn khi tia điện tử được quột rất nhanh theo chiều ngang từ trỏi sang phải sẽ tạo nờn 1 vệt sỏng ngang được gọi là dũng quột. Đến cuối 1 dũng, nú được quột ngược trở về bờn trỏi để quột tiếp dũng

Chương 7. Giao tiếp vi cỏc thiết b ngoi vi cơ bn

thứ 2 bờn dưới ..v..v.. Quỏ trỡnh quột cỏc dũng được dịch dần từ trờn xuống dưới cho suốt chiều dọc của màn hỡnh được gọi là quột dọc.

Độ chúi (sỏng tối) được quyết định bởi cường độ chựm tia đập vào màn hỡnh huỳnh quang và 1 điểm màu tự nhiờn được hiện nhờ sự trộn lẫn của 3 màu: đỏ, xanh dương, xanh lỏ cõy theo 1 tỉ lệ nào đú. Ba màu này được hiện nhờ 3 tia điện tử cựng bắn vào 3 điểm trờn màn hỡnh kề cận nhau, mỗi điểm được phủ chất huỳnh quang phỏt ra cỏc màu tương ứng. 3 chựm tia điện tửđú được phỏt ra bởi 3 sỳng điện tử là 3 cathode được xếp đặt bờn trong CRT một cỏch cẩn thận. Cú 2 kiểu quột tia điện tử:

Quột xen kẽ (interlaced): cỏc dũng lẻ được quột trước cho đến hết màn hỡnh theo chiều dọc, gọi là mành lẻ; sau đú cỏc dũng chẵn tạo nờn mành chẵn được quột saụ Phương phỏp này cú ưu điểm là thu hẹp được dải tần số làm việc của thiết bị nhưng cú nhược điểm là hỡnh ảnh bị nhấp nhỏỵ

Quột khụng xen kẽ (non-interlaced): cỏc dũng quột được thực hiện tuần tự. Ưu điểm là hỡnh ảnh được điều chỉnh chớnh xỏc và ổn định nhưng thiết kế mạch điện sẽ khú hơn vỡ phải giải quyết vấn đề tăng dải tần làm việc.

Hiện nay cũn cú cỏc monitor dựng màn hỡnh tinh thể lỏng LCD hoặc ống chứa khớ được hoạt động theo nguyờn lý tương tự như trờn nhưng khụng cú tia điện tử quột nờn thay vỡ cỏc điểm ảnh riờng biệt là cỏc phần tử phỏt sỏng được định địa chỉ một cỏch tuần tự. Do vậy, trờn cỏc monitor này hỡnh ảnh cũng được phỏt ra từng dũng một. Quỏ trỡnh quột ngược cũng khụng cũn nữa vỡ ở đõy đơn giản chỉ việc thay đổi địa chỉ về phần tửđầu dũng tiếp ọ

7.3.2 Card giao tiếp đồ họa

Để hiện cỏc hỡnh ảnh, ký tự, hay hỡnh vẽ trờn màn hỡnh, PC phải thụng qua mạch ghộp nối màn hỡnh (graphics adapter). Board mạch này thường được cắm trờn khe cắm mở rộng của PC. Sơđồ khối như hỡnh sau:

Hỡnh 7.15 Sơđồ khối của bản mạch ghộp nối màn hỡnh Bus Interface: ghộp nối bus;

Video Ram: Ram Video

Signal generator: mỏy phỏt tớn hiệu; Character code: mó ký tự (adsbygoogle = window.adsbygoogle || []).push({});

Attribute information: thụng tin thuộc tớnh; Character rom: rom ký tự

Một phần của tài liệu KĨ THUẬT GHÉP NỐI MÁY TÍNH (Trang 112)