Wyprowadzanie znaków z klawiatury poprzez interfejs PS/2 na
Transkrypt
Wyprowadzanie znaków z klawiatury poprzez interfejs PS/2 na
Wyprowadzanie znaków z klawiatury poprzez interfejs PS/2 na wyświetlacz LCD Literatura: K. Świentek, „Projekt laboratoryjny z mikroprocesorem PicoBlaze”, http://orion.fis.agh.edu.pl/~swientek/asm/projekt_lab_picoblaze‐notes.pdf Xilinx, „Spartan‐3A/3AN FPGA Starter Kit Board User Guide”, http://fatcat ftj agh edu pl/~skoczen/asm/pdf2/ug334 http://fatcat.ftj.agh.edu.pl/ skoczen/asm/pdf2/ug334.pdf pdf AVR313: Interfacing the PC AT Keyboard, http://www.atmel.com/images/DOC1235.PDF Laboratorium Asemblerów, WZEW, AGH WFiIS 2013‐04‐18 PS/2 1 Napisz program w asemblerze kontrolera picoBlaze wykorzystujący możliwości płyty testowej ze Spartanem‐3AN do zbudowania Układ pobierającego znaki z klawiatury i wyświetlającego je na wyświetlaczu LCD. Program powinien wykorzystywać przerwania generowane na opadającym zboczu sygnału zegara interfejsu PS/2. Układ powinien umieć zdekodować wszystkie kody klawaiturowe. 2013‐04‐18 PS/2 2 Wyprowadzanie znaków z klawiatury na wyświetlacz LCD Port 70, 71, 72, 73 ps2_clk Zegar transmisji ps2_data Kod klawisza clk_1 – bit 0 Dołączone do wejścia przerwania. Przerwanie powinno być generowane na opadającym zboczu sygnału zegarowego. zegarowego data_1 – bit 1 Najmniej znaczący bit portu wejściowego ps2_clk Str 1 RAM Kody klawaiaturowe UART LCD KCPSM3 R RS‐232 ps2_data Układ przerw wań kklawiatu ura Odbiornik klawiatury 2013‐04‐18 PS/2 3 Przebiegi czasowe Opis Min Max TCK Połowa okresu zegara PS/2 30µs 50µs TSU Czas przygotowania od danychdo zegara 5µs 25µs THLD Czas trzymania od zegara do danych 5µs 25µs TCK PS2_CLK PS2_DATAK TSU THLD Zegar i dane są sterowane tylko w czasie transmisji. Poza czasem transmisji linie sygnałowe łącza PS2 są nieaktywne i pozostają w stanie wysokim. wysokim Klawiatura pisze bit informacji na linii danych kiedy sygnał zegara jest w stanie wysokim. Urządzenie odbierające ten bit czyta linię danych gdy zegar jest w stanie niskim. 2013‐04‐18 PS/2 ‐ LCD 4