Tải bản đầy đủ (.ppt) (17 trang)

Cấu trúc máy tính pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (600.67 KB, 17 trang )

IO Devices 1
CẤU TRÚC MÁY TÍNH

Các thiết bị xuất nhập

Bàn phím

Màn hình

Chuột

Các giao tiếp ngoại vi

Giao tiếp song song

Giao tiếp nối tiếp

USB
IO Devices 2
BÀN PHÍM _ KEYBOARD

Các kiểu bàn phím: các máy tính IBM và tương
thích sử dụng các kiểu bàn phím sau:
Bàn phím XT chuẩn
83 phím:

5 đầu nối DIN

truyền nối tiếp 1
chiều


không hỗ trợ từ
host đến bàn phím

sử dụng scan code
set 1
Bàn phím AT chuẩn
84-101 phím:

6 đầu nối DIN

truyền nối tiếp 2
chiều

sử dụng scan code
set 2
IO Devices 3
Các kiểu bàn phím
Bàn phím tăng cường 101 hoặc 102 phím
Bàn phím Window 104 phím
Bàn phím PS/2:

84-102 phím

6 đầu nối mini DIN

truyền nối tiếp 2 chiều

hỗ trợ sử dụng scan code set 3

có 17 lệnh host to keyboard

IO Devices 4
Cấu trúc và giao tiếp bàn phím

Mỗi phím là 1 chuyển mạch
switch, tạo ra một tiếp xúc điện
khi ấn phím

Các loại nút phổ biến:

Pure mechanical

Foam element

Rubber dome

Membrane

Cáp bàn phím được nối đến chip
ngoại vi 8255A

Bộ điều khiển bàn phím thường
là chip 8042, 8048, 8049, 8741,
8742, 6868, 6805.

Khi chip điều khiển nhận được
yêu cầu từ bàn phím, chip này
gửi tín hiệu ngắt IRQ1 và truyền
dữ liệu vào CPU
IO Devices 5
Kết nối bàn phím

DIN 5 pin
1. Clock
2. Data
3. N/C
4. GND
5. +5V (VCC)
PS/2
1. Clock
2. GND
3. Data
4. N/C
5. +5V (VCC)
6. N/C
IO Devices 6
Mã quét bàn phím (Scan code)

Khi nhấn 1 phím, bộ xử lý bàn phím gửi đến
PC mã quét (scan-code) của phím được nhấn

Khi phím được nhấn, mã này gọi là make-
code

Khi phím được nhả, mã này gọi là break-
code

Break-code gồm 2 byte: byte đầu là F0 (đối với
bàn phím mở rộng), byte kế là mã make-code

Scan code có 3 tiêu chuẩn: set 1, set 2, set 3.
Bàn phím hiện nay mặc nhiên sử dụng set 2


Ví dụ:

nhấn SHIFT: make-code = 12

Nhấn A: make-code = 1C

Nhả A: break-code = F0, 1C

Nhả SHIFT: break-code = F0, 12

Mã được truyền nối tiếp từng byte, với khung
truyền 11bit
IO Devices 7
Bảng scan-code
Scan code bàn phím loại 83 phím
Scan-code bàn phím loại 102 phím
IO Devices 8
Giao tiếp bàn phím

Bàn phím PS2 giao tiếp bằng giao thức nối
tiếp bất đồng bộ 2 chiều

Xung clock được phát bởi bàn phím, tần số
khoảng 10-16.7kHz

Các trạng thái hoạt động:

Data=high, clock=high: trạng thái rảnh


Data=high, clock=low: trạng thái cấm giao
tiếp

Data=low, clock=high: trạng thái máy chủ
được yêu cầu truyền dữ liệu

Nếu máy chủ muốn truyền dữ liệu, nó phải
cấm giao tiếp từ bàn phím bằng cách kéo
clock xuống thấp, sau đó kéo Data xuống
mức thấp và giải phóng cho clock.

Data được truyền theo khung dữ liệu gồm
11-12bit như sau:

1 start bit = 0

8 data bit (LSB truyền trước)

1 parity bit

1 stop bit = 1

1 acknowledge bit (host only)
IO Devices 9
Giao tiếp bàn phím (tt)
1. Truyền dữ liệu từ bàn phím về máy
chủ:

Các bước thực hiện:


Kiểm tra bus đang ở trạng thái rảnh

Clock ở mức cao ít nhất 50us trước khi bàn
phím gửi data

Bàn phím gửi data từng khung dữ liệu
11bit

Dữ liệu được đọc tại cạnh xuống của clock

Máy chủ có thể cấm giao tiếp bằng cách
kéo clock xuống thấp

Khi clock được giải phóng, bàn phím lại
truyền tiếp dữ liệu chưa hoàn chỉnh
Dữ liệu từ keyboard đến PC
IO Devices 10
2. Truyền dữ liệu từ máy chủ đến bàn
phím:

Các bước thực hiện:

máy chủ cấm truyền từ bàn phím đến
bằng cách kéo clock xuống thấp

máy chủ kéo data xuống thấp và giải
phóng clock báo hiệu bàn phím phát xung
clock bắt đầu truyền dữ liệu

Dữ liệu được đọc tại cạnh lên của clock


Sau khi bàn phím nhận stop bit nó sẽ
truyền tín hiệu ACK đến máy chủ kết thúc
quá trình truyền dữ liệu
Dữ liệu từ PC đến keyboard
IO Devices 11
Chức năng Typematic

Khi một phím được nhấn liên tục, nó
trở thành typematic

Bàn phím gửi mã nhấn phím đến PC
lặp đi lặp lại

Tốc độ typematic có thể điều chỉnh
bằng cách gửi lệnh đến bộ điều khiển
bàn phím

Lệnh điều khiển bàn phím trong DOS

MODE CON: RATE=r DELAY=d

RATE: tốc độ typematic, r = ký tự trên
giây (cps)

DELAY: khoảng thời gian trước khi
typematic xảy ra. Số DELAY:

1 -> 0.25s


2 -> 0.50s

3 -> 0.75s

4 -> 1.00s

Ví dụ: lệnh sau được đặt trong
Autoexec.bat

MODE CON: RATE=32 DELAY=1
IO Devices 12
Truy xuất bàn phím qua DOS

Có thể truy xuất bàn phím qua một số
hàm của DOS với ngắt INT 21h: 01h,
06h, 07h, 08h, 0ah, 0bh, 3fh.

Chương trình ví dụ: đọc 80 ký tự vào
buffer
char *ch_input(void)
{ char *buffer, *string;
union REGS inregs, outregs;
buffer = (char*) malloc(82);/* tạo buffer */
*buffer = 80; /* byte đầu chỉ số lượng ký tự */
Inregs.h.ah = 0x0ah;
inregs.x.dx = FP_OFF(buffer);
int86(0x21,&inregs,&outregs);
string = buffer+2;
return(string)
}

IO Devices 13
Lập trình bàn phím trực tiếp
qua Port

Các thanh ghi:

Port 60h: output buffer (R)

Port 60h: input buffer (W)

Port 64h: control register (W)

Port 64h: status register (R)

Status register:

Bit 7 (PARE): 1- last byte with parity error;
0- last byte without parity error

Bit 6 (TIM): 1-error; 0-no time-out error

Bit 5 (AUXP): 1-holds data for auxiliary
device

Bit 4 (KEYL): 1-keyboard free; 0-keyboard
locked

Bit 3 (C/D): 1-command byte written via
port 64h; 0-command byte written via port
60h


Bit 2 (SYSF): 1-self test successful; 0-power
on reset

Bit 1 (INPB): 1-CPU data in input buffer;0-
input buffer empty

Bit 0 (OUTB): 1-keyboard controller data in
output buffer; 0-output buffer empty
IO Devices 14
Lập trình bàn phím trực tiếp
qua Port (tt)

Control register (8 bit): gồm 17 lệnh
theo bảng lệnh sau
Code Command
a7h
a8h
a9h
aah
abh
adh
aeh
c0h
c1h
c2h
d0h
d1h
d2h
d3h

d4h
e0h
f0h-ffh
disable auxiliary device
enable auxiliary device
check interface to auxiliary device
self-test
check keyboard interface
disable keyboard
enable keyboard
read input port
read out input port (low)
read out input port (high)
read output port
write output port
write keyboard output buffer
write output buffer of auxiliary device
write auxiliary device
read test input port
send pulses to output port
IO Devices 15
Lập trình bàn phím trực tiếp
qua Port (tt)

Ví dụ: disable keyboard
start:
IN al, 64h ;read status byte
TEST al, 02h ;check whether input buffer is full
JNZ start ;some byte still in input buffer
OUT 64h, adh ;disable keyboard


Ví dụ: ghi byte 01h vào output port
OUT 64h, d1h ;pass code for the controller command
;write output port
wait:
IN al, 64h ;read status register
TEST al, 02h ;check whether input buffer is full
JNZ wait ;input buffer full thus wait
OUT 60h,01h ;pass data byte 01h for the controller
;command
IO Devices 16
Thiết kế giao tiếp bàn phím
L C D - H D 4 4 7 8 0
D B 0
D B 1
D B 2
D B 3
D B 4
D B 5
D B 6
V D D
V S S
E N
R S
R / W
V E E
D B 7
1 2 M H z
V C C
5 V

1 0 u F
3 0 p F
5 V
K e y b o a r d
6
4
2 1
3
5
3 0 p F
R 1
R
R 3
1 0 k
1 0 0
A T 8 9 C 5 1
9
1 8
1 9
2 0
2 9
3 0
3 1
4 0
1
2
3
4
5
6

7
8
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
1 3
1 1
1 2
1 0
1 4
3 6
3 5
3 4
3 9
3 8
3 7
1 7
1 6
1 5
3 3
3 2
R S T
X T A L 2
X T A L 1
G N D

P S E N
A L E / P R O G
E A / V P P
V C C
P 1 . 0
P 1 . 1
P 1 . 2
P 1 . 3
P 1 . 4
P 1 . 5
P 1 . 6
P 1 . 7
P 2 . 0 / A 8
P 2 . 1 / A 9
P 2 . 2 / A 1 0
P 2 . 3 / A 1 1
P 2 . 4 / A 1 2
P 2 . 5 / A 1 3
P 2 . 6 / A 1 4
P 2 . 7 / A 1 5
P 3 . 3
P 3 . 1 / T X D
P 3 . 2 / I N T O
P 3 . 0
P 3 . 4 / T O
P 0 . 3
P 0 . 4
P 0 . 5
P 0 . 0 / A D 0
P 0 . 1 / A D 1

P 0 . 2 / A D 2
P 3 . 7
P 3 . 6
P 3 . 5
P 0 . 6 / A D 6
P 0 . 7 / A D 7
R e s e t
5 V
1. N/C
2. Data
3. +5V (VCC)
4. GND
5. N/C
6. Clock
Thiết kế minh hoạ: giao tiếp bàn phím với AT89C51

Chân Data nối P3.4

Chân Clock nối P3.2

Dữ liệu thu được từ bàn phím sẽ hiển thị trên LCD điều
khiển ở P1
IO Devices 17
Câu hỏi ôn tập
1. Nêu đặc điểm các thế hệ bàn phím
2. Trình bày giao thức truyền giữa bàn
phím và PC
3. Mã scan-code là gì? Nếu bấm phím sau
thì bàn phím sẽ truyền mã gì đến PC:
1. Nhấn và nhả Delete

2. Nhấn Ctrl + z, sau đó nhả phím
3. Nhấn và nhả phím ->
4. Có bao nhiêu lệnh hỗ trợ từ host đến
keyboard. Kể tên.
5. Trình bày hoạt động của chế độ typmatic
6. Hãy cài đặt để chế độ typematic có thời
gian trễ là 0.5s và tốc độ là 20 ký
tự/giây
7. Viết chương trình điều khiển keyboard
thực hiện selftest
8. Viết chương trình ghi giá trị 0fh ra
output port của keyboard
9. Viết chương trình ASM cho AT89C51 để
nhận mã scan-code từ bàn phím
10. Tìm hiểu các bộ mã scan-code của bàn
phím

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×