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ę

Matryca klawiatury na PCF-ach 8574 (AVT-2503)

elemid
-
-
Posty: 318
Rejestracja: 22 mar 2003, o 17:49
Lokalizacja: Polanica Zdrój
Kontaktowanie:

Matryca klawiatury na PCF-ach 8574 (AVT-2503)

Postautor: elemid » 8 wrz 2004, o 18:28

Mam pytanie.

Klawiatura szesnastkowa do systemów uP AVT-2503 opracowana jest na dwóch ośmiobitowych portach PCF8574 i2c. Klawiatura ma szesnaście klawiszy.

Zastanawiam się dlaczego na dwóch PCF-ach??? Przecież można zrobić matrycę klawiatury 4x4 na jednym PCF-ie, prawda? A może się nie da? Może jest coś, o czym powinienem wiedzieć???

Czy ktoś mógłby podesłać procedurkę odczytu matrycy klawiatury 4x4 dla
Bascom, zrealizowanej na PCF8574?

radzio
Moderator
Moderator
Posty: 965
Rejestracja: 13 maja 2003, o 10:33
Lokalizacja: Sosnowiec
Kontaktowanie:

Postautor: radzio » 8 wrz 2004, o 21:19

Wydaję mi się, ze gdybyś zastosował jednego PCF-a (klawiatura matrycowa) to cały czas procesor zajmowałby się sprawdzaniem, czy jakiś klawisz nie został naciśnięty. Nie miałby czasu na nic innego (tym bardziej, że I2C jest stowunkowo wolna). Gdy klawiatura pracuje w układzie jak w AVT2503 (dwa PCF-y), to procesor nie musi sprawdzać czy klawisz zostanie naciśnięty, gdyż po naciśnięciu przycisku zostaje zgłoszone przerwanie.

sablik
-
-
Posty: 101
Rejestracja: 7 lip 2004, o 06:18
Lokalizacja: Czaniec
Kontaktowanie:

Postautor: sablik » 9 wrz 2004, o 07:39

Uzycie dwóch PCF prawdopodobnie było spowodowane tym że nie była tam matryca 4x4 ale odczyt klawiatury następował w przerwaniu.
Jest to bardzo wygodne poniważ PCF ma wyjście ktore generuje przerwanie po zmianie sygnału na wejsciu i procesor przełacz się tylko na moment dla odczytu i wraca do swoich zadań.

Poniżej jest procedurka która czytała u mnie cztery zadajniki BCD, z 1 PCF ale była wykonywana w sciśle określonym czasie i później z niej nie korzystalem.


'odczyt klawiatury z i2c

Kod: Zaznacz cały

I2csend 64 , &B11101111 I2creceive 65 , Key 'odczyt np: 11101101 Key = Not Key 'neguje na: 00010010 Key = Key - 16 ' odejmuje 00010000 i powstaje 00000010 =2 Temp = Key * 1000 L = Temp I2csend 64 , &B11011111 I2creceive 65 , Key Key = Not Key Key = Key - 32 Temp = Key * 100 L = L + Temp I2csend 64 , &B10111111 I2creceive 65 , Key Key = Not Key Key = Key - 64 Temp = Key * 10 L = L + Temp I2csend 64 , &B01111111 I2creceive 65 , Key Key = Not Key Key = Key - 128 L = L + Key
[/code]

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

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