Tải bản đầy đủ (.pdf) (5 trang)

đồ án thiết kế chế tạo và điều khiển tay máy, chương 11 ppsx

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 (134.38 KB, 5 trang )

Thiết kế, chế tạo và điều khiển tay máy Trang 85


11
GIAO TIẾP VỚI
BÀN PHÍM AT
11.1 KHÁI QUÁT VỀ LÝ THUYẾT CỦA BÀN PHÍM GIAO TIẾP VỚI PC
Chương này sẽ giới thiệu về việc giao tiếp với bàn phím AT. Bàn phím AT
là một thiết bò nhập thông dụng phổ biến mà ta thường gặp ở các máy vi tính.
Với giá thành khá rẻ, chúng ta có thể có được một thiết bò nhập với nhiều phím
lệnh (101 phím tương đương với 101 phím lệnh) mà chỉ cần hai chân tín hiệu để
điều khiển. Đó là ưu điểm của việc dùng bàn phím AT để làm thết bò nhập.

Về nguyên tắc mỗi khi ta nhấn một phím trên bàn phím thì bàn phím sẽ gởi
cho máy tính một mã quét (scan code). Mã này sẽ được máy vi tính xử lý và
chuyển đổi thành mã ASCII mà ta đã biết. Ví dụ như khi ta nhấn phím chữ “A”,
thì bàn phím sẽ gửi đi một mã quét là 1Ch, và nếu ta cứ giữ phím thì mã quét sẽ
được gửi đi liên tục cho đến khi phím “A” được nhả ra.
Bên cạnh đó khi ta thả một phím ra thì bàn phím cũng gửi đi một mã quét
khác (F0h) để báo cho máy tính biết phím nhấn được nhả ra, sau đó lại gủi tiếp
mã của phím nhấn được nhả. Và dựa vào điều này ta có thể biết được phím nào
được nhấn. Ứng với mỗi phím ta sẽ có một mã quét khác nhau, và các mã này là
duy nhất cho dù phím đó có được nhấn kèm với phím Shift hay Capslock, … hay
không. Ngay cả việc làm sáng các đèn Num, Caps, Scroll lock không phải là do
ta nhấn phím trên bàn phím, mà do máy tính giải mã và sẽ gửi những mã ngược
về cho bàn phím điều khiển việc bật sáng đèn.
GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

Thiết kế, chế tạo và điều khiển tay máy Trang 86



Như vậy khi một phím được nhấn thì bàn phím sẽ gửi đi mã quét của phím
đó rồi gửi đi mã F0h, đối với các phím mở rộng thì mã quét của phím đó được
gửi đi trước, sau đó là mã E0h (để báo cho máy vi tính biết đó là phím mở rộng)
rồi mới tới mã F0h.
11.2 CÁC MÃ LỆNH ĐỂ GIAO TIẾP VỚI BÀN PHÍM
11.2.1 Các mã lệnh được gửi tới bàn phím
Những mã lệnh này được gửi đi từ bộ phận điều khiển bàn phím (máy tính
hoặc trong luận văn này là từ chip AT89C2051). Các lệnh này chủ yếu như là
các lệnh bật tắt đèn, reset bàn phím, … Sau đây là một số mã lệnh thông dụng:
 Mã EDh: Thiết lập trạng thái của đèn LED. Sau khi gửi mã lệnh này đi,
bàn phím sẽ gởi lại mã ACK (FAh). Và chờ byte sau sẽ quyết đònh trang
thái của đèn. Bit 0 cho đèn Scroll Lock, bit 1 cho đèn Num Lock, bit 2 cho
đèn Caps Lock, các bit còn lại không quan tâm.
 Mã EEh: Được gọi là mã Echo, vì khi gửi mã này đi thì bàn phím cũng sẽ
gửi ngược trở lại mã này.
 Mã F0h: Thiết lập bộ mã quét. Khi gửi mã này đi, bàn phím sẽ gửi trở lại
mã ACK và chờ nhận byte kế tiếp, 01-03 sẽ qui đònh bộ mã quét được sử
dụng. Nếu gửi 00 thì bàn phím sẽ cho ta biết bộ mã quét đang được sử
dụng.
 Mã F3h: Thiết lập thời gian lặp lại của phím.
 Mã F4h: Cho phép bàn phím hoạt động, lệnh này sẽ xóa bộ đệm của bàn
phím.
 Mã F5h: Khóa bàn phím.
 Mã FEh: Lệnh này sẽ yêu cầu bàn phím gửi lại byte cuối cùng mà bàn
phím vừa gửi.
 Mã FFh: Reset bàn phím.

11.2.2 Các mã lệnh được gửi đi từ bàn phím
 Mã FAh:Mã tín hiệu ACK.
 Mã AAh: Mã bàn phím báo là đã khởi động xong.

 Mã EEh: Tương tự như trên.
 Mã FEh: Mã bàn phím yêu cầu gửi cho bàn phím byte vừa gửi.
 Mã 00h hoặc FFh: Mã báo lỗi hoặc bộ đệm bò tràn.
11.3 CÁC MÃ QUÉT CỦA BÀN PHÍM AT
GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

Thiết kế, chế tạo và điều khiển tay máy Trang 87


Hình 11.1 cho biết mã quét của từng phím. Do mã quét của từng phím
không theo thứ tự như thứ tự bảng chữ cái. Nên khi lập trình để chuyển sang mã
ASCII, ta cần phải lập một bảng tra.


Hình 11.1 Mã quét của từng phím của bàn phím AT


Hình 11.2 Mã quét của các phím mở rộng của bàn phím AT

11.4 CỔNG NỐI CỦA BÀN PHÍM
Bàn phím AT có bốn dây ra, trong đó có hai dây nguồn, hai dây tín hiệu.
Bốn dây này được nối với hai loại cổng, cổng PS/2 hoặc cổng 5 Pin DIN với việc
bố trí chân như sau:

GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

Thiết kế, chế tạo và điều khiển tay máy Trang 88




1. KBD Clock
2. KBD Data
3. N/C
4. GND
5. +5V (VCC)
1. KBD Clock
2. GND
3. KBD Data
4. N/C
5. +5V (VCC)
6. N/C






5 Pin DIN
PS/2

Hình 11.3 Sơ đồ chân ra của đầu nối bàn phím
11.5 LẬP TRÌNH GIAO TIẾP VỚI BÀN PHÍM
11.5.1 Lập trình gửi lệnh từ bàn phím đến bộ điều khiển
Do bàn phím sử dụng hai dây tín hiệu để điều khiển, dữ liệu (lệnh, mã
quét) truyền từ bộ điều khiển cũng như từ bàn phím đều dùng chung đường
truyền, nhưng đường truyền từ bộ điều khiển tới bàn phím được ưu tiên hơn.
Khi hai chân KBD Clock và KBD Data ở mức cao (rãnh-Idle), thì bàn phím
sẽ tự do gửi dữ liệu. Nếu chân KBD Clock xuống mức thấp thì bàn phím sẽ
chuẩn bò đưa dữ liệu vào bộ đệm gửi (tín hiệu chẩn bò gửi – Clear to Send). Và
khi chân KBD Clock lên lại mức cao thì bộ đệm này được gửi ra chân KBD

Data.
Khung truyền gồm 11-bit dữ liệu. Bit đầu tiên là Start-bit (logic 0), tiếp
theo là 8-bit dữ liệu (bit LSB được gửi đi trước), tiếp theo là bit parity kiểm tra lẻ
và cuối cùng là Stop-bit (logic 1). Mỗi bit được lấy mẫu khi có cạnh xuống của
KBD Clock.

Hình 11.4 Khung truyền dữ liệu từ bàn phím tới bộ điều khiển
Xung trên chân KBD Clock là do bàn phím tự tạo ra, xung này có tần số
khoảng 20-30KHz.
11.5.2 Lập trình gửi lệnh từ bộ điều khiển đến bàn phím
Khi bộ điều khiển muốn gửi lệnh đến bàn phím, thì trước hết ta sẽ cho chân
KBD Data xuống mức thấp (Request to Send). Tuy nhiên để tránh trường hợp
lúc đó bàn phím cũng gửi dữ liệu trên chân KBD Data, ta sẽ giữ chân KBD
GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

Thiết kế, chế tạo và điều khiển tay máy Trang 89


Clock ở mức thấp trong hơn 600µs, rồi mới cho chân KBD Data xuống mức thấp
đồng thời cho chân KBD Clock lên mức cao.
Lúc này bàn phím sẽ tạo xung clock trên chân KBD Clock và ta sẽ đợi
cạnh xuống đầu tiên trên chân KBD Clock, sau đó ta sẽ đưa từng bit dữ liệu lên
chân KBD Data. Bit này sẽ được bàn phím đọc khi có cạnh xuống tiếp theo của
xung clock. Ta sẽ truyền 8-bit dữ liệu cùng với bit parity kiểm tra lẻ.

Hình 11.5 Khung truyền dữ liệu từ bộ điều khiển tới bàn phím
Khi bit parity được bàn phím đọc thì chân KBD Data sẽ được bàn phím đưa
lên mức cao và bàn phím sẽ gởi về tín hiệu ACK thông báo đã nhận dữ liệu.
11.6 KẾT LUẬN
Có thể thấy bàn phím AT là một thiết bò nhập khá tiện lợi, chỉ với hai dây

tín hiệu, ta có thể có hơn 101 phím lệnh khác nhau. Với chương này ta thể lập
trình giao tiếp với bất kỳ một bàn phím AT nào để có một thiết bò nhập tiện ích.
Ngày nay vấn đề lưu trữ dữ liệu cũng khá được quan tâm, nhất là vấn đề lưu trữ
một khối lương lớn thông tin mà ROM, hay RAM không thể đáp ứng nổi.
Chương tiếp theo chúng ta sẽ tìm hiểu khái quát việc lập trình giao tiếp với đóa
cứng (HDD).
GVHD: TS. NGUYỄN VĂN GIÁP SVTH: Nguyễn Nhật Tân-Nguyễn Lê Tùng

×