radzio.dxp.pl

Gdy typowa klawiatura przestaje wystarczać...
...najtańszym rozwiązaniem jest wykorzystanie klawiatury od komputera PC. Za cenę kilkunastu złotych dostajemy ponad 100 klawiszy, które możemy wykorzystać w dowolny sposób w budowanym układzie.
Przyporządkowanie poszczególnych sygnałów do pinów złącza PS2 (widok od strony złącza) :

AT kbd

Dane pomiędzy klawiaturą i komputerem przesyłane są dwuprzewodowym interfejsem synchronicznym (linie CLK i DATA). Przy transmisji danych z klawiatury przebieg zegarowy na linii CLK generuje klawiatura. Jego częstotliwość zawiera się pomiędzy 20 a 30 kHz (częstotliwość nie jest ustandaryzowana). Ramka danych składa się z bitu startu, 8 bitów danych, bitu parzystości oraz bitu stopu.  Przebiegi na liniach DATA i CLK podczas transmisji danych z klawiatury :

AT kbd

Odczyt danych najprościej zrealizować w przerwaniu od opadającego zbocza na linii CLK. Schemat podłączenia klawiatury do mikrokontrolera :

AT kbd

 

Przykładowy program odczytujący kod wciśniętego klawisza przeznaczony jest dla mikrokontrolerów AVR (ATMega16). Funkcja getATkbd oczekuje na pojawienie się w buforze nowego kodu klawisza. Należy zwrócić uwagę, że odczytywany jest kod klawisza, a nie kod ASCII. W celu uzyskania kodu ASCII należy dokonać konwersji. Najprościej do tego celu wykorzystać tablicę zawierającą kody ASCII uporządkowane wg kodów klawiszy (kod klawisza jest indeksem tablicy wskazującym na odpowiadający mu kod ASCII).

Pobierz pliki :
  atkeyboard.h
  atkeyboard.c
  scancodes.h

 

 
(c) Radosław Kwiecień