Witam,
Mam dwa pytania odnośnie ekspandera PCF8574.
- Czy w jakiś sposób konfiguruje się które piny są wejściowe, a które wyjściowe.
- Czy można odczytywać stan portów (podejrzewam, że tak, to czy w takim przypadku odczytuje się stan wszystkich portów jednocześnie, czy też każdego z osobna?)
Za słaby jeszcze jestem aby to wyciągnąć z datasheeta.
Pozdrawiam
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ęPCF8574 - konfiguracja? i odczyt stanu
Moderatorzy:Jacek Bogusz, Moderatorzy
Porty D0...D7 są zarówno wejściami i wyjściami.
Ja mam PCF8574A.
Pcf-a trzeba adresować do zapisu lub odczytu.
Adres i2c dla zapisu mam 112,a odczytu stanu portów 113(masz napewno inne adresy).
Przykładowy program a BascomAvr (dioda led na D7 Pcf8574A powinna migać)
'tutaj odczytuje stan portu,a jednoczesnie każdego pinu
Odczytaj adresy pcf-a dla zapisu i odczytu.Pozdrawiam.
Ja mam PCF8574A.
Pcf-a trzeba adresować do zapisu lub odczytu.
Adres i2c dla zapisu mam 112,a odczytu stanu portów 113(masz napewno inne adresy).
Przykładowy program a BascomAvr (dioda led na D7 Pcf8574A powinna migać)
Kod: Zaznacz cały
do
i2csend 112,128
waitms 500
i2csend 112,0
waitms 500
loop
Kod: Zaznacz cały
dim X as byte
cls
do
i2csend 112,255
waitms 100
i2creceive 113,X
lcd X
wait 1
cls
loop
Ostatnio zmieniony 27 lip 2008, o 07:19 przez torres, łącznie zmieniany 2 razy.
Z tym układem jest zupełnie jak z portem '51. Jeśli wyprowadzenie ustawione jest w stan wysoki to jest wejściem, zwieranie do masy na pewno nie uszkodzi układu ze względu na małą wydajność prądową. Dużą wydajność ma wyjście w stanie niskim i może wprost sterować LED przy prądzie 10mA (łączny prąd nie powinien przekraczać 100mA).
Dokładnie tak jak piszesz.
Ja zwieram piny do masy i jeszcze nic nie uszkodziłem.
WINDMAN gdybyś chciał jednak odczytać adresy to tu masz prościutki programik w bascomie(dopasuj go do swoich wymagań):
Ostatnia cyfra adresu parzysta(adres do zapisu) to port pcf-a = wyjście
Ostatnia cyfra adresu nieparzysta(adres do odczytu) to port pcf-a=wejscie
Ja zwieram piny do masy i jeszcze nic nie uszkodziłem.
WINDMAN gdybyś chciał jednak odczytać adresy to tu masz prościutki programik w bascomie(dopasuj go do swoich wymagań):
Kod: Zaznacz cały
$regfile ="m32def.dat"
$crystal = 800000000
Config Lcd = 16*1a
Dim Adresik As Byte
Cls
Lcd "Zaczynam"
Waitms 200
Cls
For Adresik = 100 To 130 'szukamy wsrod 30 adresow
I2cstart 'start magistrali I2c
I2cwbyte Adresik 'pytanie o kolejny adres
I2cstop 'zatrzymaj transmisje
If Err = 0 'jesli jest odpowiedz
Cls 'wyczysc lcd
Lcd "Scalak pod ";Adresik 'wyslij komunikat na lcd
else 'jak nie ma odpowiedzi to:
Cls 'czysc lcd
Lcd "Nie ma pod ";Adresik 'daj komunikat,ze nie ma ukladu pod tym adresem
end if
Wait 1 'poczekaj sekundę
Next Adresik
Cls
Lcd "Zrobione"
End 'Koniec przeszukiwania
Ostatnia cyfra adresu nieparzysta(adres do odczytu) to port pcf-a=wejscie
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 48 gości