at89S52 problem z P0.0

To forum jest dla wszystkich pasjonatów wiecznie młodych mikrokontrolerów '51. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
Awatar użytkownika
karlos79
-
Posty: 23
Rejestracja: 14 lip 2005, 22:16
Lokalizacja: z nienacka

at89S52 problem z P0.0

Post autor: karlos79 » 29 paź 2007, 12:22

Witam
Mam problem ze sterowaniem pinem p0.0.
Jeśli włączę globalny system przerwań, to ten pin ustawia się w stan wysoki i nie mogę nim sterować jako wyjściem
Używam TIMER0 i z tego, co wyczytałem, to ten pin nie ma nic wspólnego z tym timerem.
Mój problem polega na tym że nie mam pojęcia jak przywrócić normalną prace tego pinu, czyli jako wejście/ wyjście.
Pozdrawiam

Awatar użytkownika
Sagittarius
Użytkownik
Posty: 130
Rejestracja: 29 maja 2007, 9:29
Lokalizacja: Kujawsko-pomorskie
Kontakt:

Post autor: Sagittarius » 29 paź 2007, 13:15

Nie bardzo wiem, co chcesz sterować i jaki jest obwód podłączony do wyjścia, ale problem będzie inny. Port P0 wykorzystywany jest jako port komunikacji z zewnętrzną pamięcią danych lub programu. Na porcie tym wystawiane są na przemian adres oraz dane (dane mogą być również odczytywane). Port ten ma nieco inną budowę od pozostałych. Nie posiada on "podciągnięcia" do dodatniej szyny zasilającej. W Twoim układzie prawdopodobnie wystarczy, że podłączysz to wyprowadzenie przez rezystor o wartości 47k do "plusa" zasilania (przed dalszą częścią Twoich elementów). Obecny stan z pewnością jest stanem wysokiej impedancji, a nie stanem wysokim. W takiej konfiguracji nie można wymusic stanu niskiego na wyprowadzeniu. To samo dotyczy pozostałych linii portu P0. Podłącz wyprowadzenie tak, jak wspomniałem lub użyj do sterowania innego portu.

Awatar użytkownika
karlos79
-
Posty: 23
Rejestracja: 14 lip 2005, 22:16
Lokalizacja: z nienacka

Post autor: karlos79 » 29 paź 2007, 13:23

Witam
Dziękuję za odzew:)
No tak wszystko fajnie, ale popełniłem błąd mi chodzi o P1.0.
Co do działania portu P0. to już to dawno rozgryzłem :)
No i kolejne czary...
P0.1 działa już normalnie, nawet jeśli mam uruchomiony system przerwań.
Znając życie, to gdzieś coś sknociłem, albo mój procek coś sobie ubzdurał.
Ogólnie, to czeski film.
Na tym porcie (p1.0 do p1.3) mam włączony CD4543, pinów nie podciągam zewnętrznymi rezystorami.
Pozdrawiam
Ostatnio zmieniony 30 paź 2007, 0:01 przez karlos79, łącznie zmieniany 1 raz.

Awatar użytkownika
Sagittarius
Użytkownik
Posty: 130
Rejestracja: 29 maja 2007, 9:29
Lokalizacja: Kujawsko-pomorskie
Kontakt:

Post autor: Sagittarius » 29 paź 2007, 13:29

Myślę, że bez schematu i ewentualnie kawałka kodu nie uda mi się powiedzieć więcej. Ewentualnie możesz podesłać dane na PW.

Pozdrawiam

Awatar użytkownika
karlos79
-
Posty: 23
Rejestracja: 14 lip 2005, 22:16
Lokalizacja: z nienacka

Post autor: karlos79 » 30 paź 2007, 0:03

Witam
Dziękuję za odzew.
Problem już został rozwiązany.
Dokładniej sprawdziłem sprzęt i okazało się że miałem zimny lut na tym pinie.
Pozdrawiam i dziękuję za zainteresowanie :)

ODPOWIEDZ