Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Podłączenie klawiatury/myszy od PC do 8051

Awatar użytkownika
Sova
-
-
Posty: 510
Rejestracja: 10 lis 2003, o 21:43
Lokalizacja: Ostrołęka
Kontaktowanie:

Podłączenie klawiatury/myszy od PC do 8051

Postautor: Sova » 8 maja 2007, o 21:07

Witam,

szukałem po forum, ale niestety tematy głównie dotyczną klawiatur matrycowcyh. Czy ktoś próbował może podłączać klawiatury ps/2 do uC rodziny 8051. Protokuł jest opisany dobrze na stronie http://www.computer-engineering.org/ind ... d_Protocol. Chodzi mi o rozwiązanie sprzętowe, co z zegarem, jak go stworzyć.

Bardzo prosze o jakies porady

[ Dodano: 08-05-2007, 22:26 ]
może nie sprecyzowałem, chodzi mi o komunikacje pomiedzy klawkiaturą/myszą za pomoca wbudowanego UARTA w 8051 - czy to możliwe

trryt
-
-
Posty: 119
Rejestracja: 3 maja 2004, o 15:08

Postautor: trryt » 8 maja 2007, o 21:36

U nas na projekcie z FPGA ludzie obsługiwali klawiaturę. Podłączone to było do Spartana 2. W instrukcji do projektu mam schemat (strasznie nie czytelny, więc nie ma co wklejać), ale linie data i clk są po prostu podłączone do układu i podciągnięte do plusa przez rezystory 470 ohm. Cytuję "Linie te o nazwach DATA i CLOCK sterowane są w układzie open collector co onacza konieczność użycia oporników podciągających o małej wartości. Wewnętrzne rezystory typu pull-up mają zbyt dużą wartość dla tego zastosowania." Ogólnie ludzie mówili że obsługa tego była prosta. Jak to pisałem to dodałeś o uarcie. Teraz wiem skąd to pytanie o zegar;) A nie lepiej normalnie podłączyć do lini I/O data i clk i generować wszystko softwerowo?

Awatar użytkownika
Sova
-
-
Posty: 510
Rejestracja: 10 lis 2003, o 21:43
Lokalizacja: Ostrołęka
Kontaktowanie:

Postautor: Sova » 8 maja 2007, o 21:42

Chyba tak własnie zrobie, poprtu podłącze do portów I/O. Wysyłanie da radę zrobić, a odbiór z myszki zrobie na zasadzie przerwań. Dziękuję za informację o tyhc rezystorach 470ohm - pewnie bez tego bym szukał po necie jak głupi i nic bym nie znalazł. Podłączenie Otwartego kolektora też jest na stronie.

Pozdrawiam

trryt
-
-
Posty: 119
Rejestracja: 3 maja 2004, o 15:08

Postautor: trryt » 8 maja 2007, o 21:49

Drobiazg.
No właśnie nie pod byle jakie I/O tylko pod przerwanie zewnętrzne.
Na zachętę;) jeszcze jeden cytat "Odbiór danych z klawiatury IBM PC jest prosty i wymaga jedynie rejestru przesuwnego. Obsługa myszy komputerowej jest bardzo trudnym zadaniem dla studentów. Dzieje się tak dlatego że działanie myszy wymaga sekwencji inicjującej bez której układ myszy nie produkuje sekwencji informującej o zmianach pozycji."
No ale to się dotyczy FPGA czyli rzeźbienia w VHDLu, na procku to nie powinno być wcale trudne. Powodzenia!

MDz
-
-
Posty: 365
Rejestracja: 29 mar 2003, o 13:35
Lokalizacja: Warszawa
Kontaktowanie:

Postautor: MDz » 8 maja 2007, o 23:48

Czy ktoś próbował może podłączać klawiatury ps/2 do uC rodziny 8051.
"AVR313: Interfacing the PCAT Keyboard (13 pages, revision B, updated 5/02)
Most microcontrollers requires some kind of human interface. This Application Note describes one way of doing this using a standard PC AT Keyboard."

http://www.atmel.com/dyn/resources/prod ... oc1235.pdf
http://www.atmel.com/dyn/resources/prod ... AVR313.zip

Wprawdzie nie '51 a AVR, ale przykładowy kod i tak jest napisany w C więc nie powinno być problemów z adaptacją.

--
MDz

Awatar użytkownika
bis
-
-
Posty: 134
Rejestracja: 12 maja 2005, o 08:11
Lokalizacja: Warszawa

Postautor: bis » 9 maja 2007, o 00:44

A co do zegara to jego źródłem jest klawiatura. Od strony procka sterujesz tą linią (ustawiasz w 0) tylko w kilku wyjątkowych sytuacjach, a przez resztę czasy to tę linię ustawiasz jako wejscie (w 51 wystarczy wpisac na wyjście 1) i podglądasz/podczytujesz (przydatne moż być jej podłaczenie na wejście przewania, wtedy łatwiej jest zorganizować program)
Z tego tez powodu (transmisja synchroniczna) UART'em tego nie odbierzesz.
bis

Awatar użytkownika
Sova
-
-
Posty: 510
Rejestracja: 10 lis 2003, o 21:43
Lokalizacja: Ostrołęka
Kontaktowanie:

Postautor: Sova » 9 maja 2007, o 11:48

MDz - dzięki za te kody w języku C na AVRy - planuję się przestawić na AVRy, kupiłem już książkę, ale to po maturach będe miał dużo czasu :).

Co do samego zegara w interfejsie SP/2 to już doczytałem i rozumiem - fajnie to wymyślił ktoś :), chciałbym tylko abyście mi trochę jeszcze pomogli, jesli chodzi o przerwania w 8051. Czy macie może informacje o rejestrach IP i IE - bo nigdzie nie mogę znaleść tego. Czy da sie ustawić na jakie sygnały reagują nóżki INT0 i INT1 czy musi to zawsze być stan niski?

[ Dodano: 12-05-2007, 20:46 ]
Kolega już mi pomógł z informacjami o IE i IP. Zamieszczam kod ASM. Nie wiem dlaczego nie chce mi działać przerwawnie pochodzace z INT0, ustawiłem IE na 10000001B, a i tak w emulatorze proc nie reaguje na przerwanie z tej nóżki. Może mieliście podobne problemy?
IP jest nieruszony.

Chciałbym jeszcze się zapytać, czy jak stan niski na nóżce P3.2(INT0) wyzwoli procedurę przerwania, to czy w tej procedurze mogę sprawdzać jaki stan obecnie ma nóżka P3.2? Nie wiem może głupie pytanie, ale poważnie nie wiem czy mogę tak robić.

Proszę o jakąkolwiek pomoc :)
Załączniki
mysz.zip
(1.67 KiB) Pobrany 549 razy

Wróć do „8051”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 26 gości