Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

AT89C2051 - Sterowanie LED - tragedia

16 Lut 2005 12:43 5015 41
  • Poziom 29  
    Witam. Mam problem i ni jak nie moge sobie z nim poradzic. Dostaje powoli szlu :[ Zbudowalem sobie plytke testowa do AT89C2051 czyli na port 1 dolozylem diody z opornikami a na port 3 przelaczniki ktore zwieraja do masy lub daja jedynke bo wejscia sa podciagniete do zasilania poprzez 10k. Probowalem wiele prostych programow i nic nie dziala.

    Nastepnie zrobilem drugi uklad jak na schemacie (schemat i listing programu w linku ponizej) i takze ten sam efekt. Nic nie dziala, nic sie nie swieci. Nieraz zaswieca sie wszystkie segm. przy wlaczeniu a przewaznie nic :/ Uklad na nic nie reaguje. Co mnie dziwi na wszystkich portach oprocz P1.7 jest wg. masy stan wysoki. I takze nie reaguje na zaden impuls z przycisku.

    Co robie zle. Czy te uklady wymagaja jakis specyficznych warunkow ??

    Oto link http://www.mikromax.netlook.pl/modules.php?name=News&file=article&sid=18
  • VIP Zasłużony dla elektroda
    fantasta napisał:

    Nastepnie zrobilem drugi uklad jak na schemacie (schemat i listing programu w linku ponizej) i takze ten sam efekt. Nic nie dziala, nic się nie swieci. Nieraz zaswieca się wszystkie segm. przy wlaczeniu a przewaznie nic :/ Uklad na nic nie reaguje. Co mnie dziwi na wszystkich portach oprocz P1.7 jest wg. masy stan wysoki. I takze nie reaguje na zaden impuls z przycisku.

    Co robie zle. Czy te uklady wymagaja jakis specyficznych warunkow ??

    Oto link http://www.mikromax.netlook.pl/modules.php?name=News&file=article&sid=18


    no coz jak masz stan wysoki to na pewno nie zaswieci... aby segmenty zaswiecily na porcie musi byc stan niski (taki jak zaraz po wlaczeniu procesora).... program jest oki wiec moze masz blad w montazu... Pozdrawiam
  • Poziom 29  
    Montarz jest napewno dobry. Mam dwie plytki, i na dwoch jest tak samo. Sprawdzalem je chyba przez dwa dni i juz nie ma sily. A stan wyskoki jest zaraz po wlaczeniu ukladu. Raz na ruski rok trafi sie ze wlaczy sie niski ale wtedy pala sie wszystkie segmenty :/
  • VIP Zasłużony dla elektroda
    Procesor jest ok?? uruchamiales na nim juz inne uklady??
  • Poziom 29  
    Zadne moje nie dzialaja. Procek jest z kitu Jabel (licznik bodajze) i zostal skasowany i zaladowalem do niego moj program. Probowalem 2 prockow z calkiem nowych nie otwieranych kitow.
  • Poziom 29  
    Układ powinien działać.
    Jeśli jest to nowy układ który jeszcze nigdy dobrze nie działał sprawdź obwód na płytce, może jest jakiś błąd lub zwarcie.
    Być może masz uszkodzony procesor lub programator.
    W sprawnym procesorze zaraz po włączeniu wszystkie piny na portach przyjmują domyślnie stan wysoki (oczywiście o ile działający program ich nie zmieni)
    W odróżnieniu do portu P1 piny portu P3 nie muszą być podpinane do zasilania.
  • Poziom 29  
    A po co piny P1 podpinac do zasilania ?? A jak sobie podpiolem wyswietlacz albo diody przez rezystory do do zasilania anody to zle ??
  • VIP Zasłużony dla elektroda
    a jakie masz uklady w programatorze pcf8574 , pcf8574A ??? i jak masz ustawione w programie?? program dziala w symulatorze??


    fantasta napisał:
    A po co piny P1 podpinac do zasilania ?? A jak sobie podpiolem wyswietlacz albo diody przez rezystory do do zasilania anody to zle ??


    bo p1.0 ,p1.1 to wejscia komparatora i nie sa wewnetrznie podciagniete do vcc
  • Poziom 32  
    Jak podwieszasz diody przez opornik do +5V to musisz pamiętać żeby dioda zaświciła to musisz do portu wpisać '0'
    A jak wygląda napięcie na nóżce RESET procka ?
  • Poziom 29  
    Na reset wg. Vcc jest stan niski. Nie uzywam jakis programatorow pod Bascoma. Mam Willema PCB3. W Bascomie kompiluje i tworze HEX`a lub BIN`a. Ale to nie ma roznicy bo program napisany w Turbo Asdemblerze tez nie chce dzialac. Moze mi ktos napisac jakis prosty program za pomoca ktorego mogbym sprawdzic prosto dzialanie plytki ?? Cos w stylu ze jak zwieram np. P3.2 do masy to na P1.5 swieci mi sie dioda czyli pojawia stan niski. Ja juz nie mam sil do napisania takiego trywialnego programu :/
  • Poziom 23  
    fantasta, jakbyś zapisał zawartość twojego układu do pliku *.bin i przysłał go mi? Akurat mam pod ręką 89C2051. Podaj także wartość Twojego R1.

    www.
    Marek Jaglarz
  • Poziom 29  
    Jakbys mogl podac maila byloby latwiej. Na tej stronie ciezko sie polapac i dorwac kontakt :)

    crazy_phisic twoj program takze nie dziala :(
    Sprawdzilem na dwoch ukladach i na dwoch plytkach wyczyszczone do zera procki i napewno sa czyste. Po podlaczeniu do plytki na wszystkich portach od razu usytawiaja sie stany wysokie wg. masy. Mowiliscie ze powinny byc od razu niskie wiec cos jest nie tak. Ale co ?? Moze ten kwarc powinien byc jakis inny. Mam 12Mhz i c1 i c2 po 33 pF
  • VIP Zasłużony dla elektroda
    $Crystal = 12000000
    Dim A As Byte
    Do
    P1 = A
    Incr A
    Wait 1
    loop

    To chyba najprostrze co mozna napisac... mam nadzieje ze nie zrobilem bledu ;)

    Dodano po 2 [godziny] 11 [minuty]:

    1.Programowales juz willemem inne atmele ktore pozniej dzialaly??

    2. Czy program dziala w symulacji programowej??

    3. Czy probowales na innym programatorze ??
  • Poziom 29  
    Mam działający układ licznika zbudowany z użyciem tego procka i dzięki niemu wiem, że mój programator działa bo chyba ze sto razy już kasowałem go i ćwiczyłem różne niedziałające kombinacje ale zawsze na koniec jak wpisałem mu oryginalnego BIN-a to układ startował i liczył.
  • VIP Zasłużony dla elektroda
    no to pozostaje tylko schemat.... podeslij schemat i podumamy dalej ;)
    Pozdrawiam
  • Poziom 29  
    Oki schemat mojej plytki testowej wyglada tak.

    Przycikami zwieram do masy i podaje niski stan w gdy sa otwarte jest wysoki bo sa pociagniete do zasilania przez rezystory.
    Diody powinny sie swiecic gdy podam na nie niski stan.
    Czyli jednym slowem port 3 to przyciski i jakby zadajnik a port 1 to diody i wizualizacja stanow na nim.

    Nie wiem co z resetem ale gdzies widzialem ze jest polaczony kondensatorem do zasilanie wiec tez tak zrobilem i dalem te 4.7u

    Moim zdanie plytka jest ok i taki schemat jest jak najbardziej dobry
  • Poziom 29  
    fantasta
    Podepnij pin (10) procka do masy bo jak widzę na Twoim schemacie scalak jej niema i powinno działać.
  • Poziom 27  
    no i nie zostawiaj resetu wiszącego w powietrzu.
  • Poziom 29  
    h-doc napisał:
    no i nie zostawiaj resetu wiszącego w powietrzu.

    A jeszcze lepiej reset przez 1µF do +5V i 10kΩ do masy.
    Zapewni to autoreset przy włączaniu (1µF) i odporność na zakłócenia (10kΩ) podczas pracy.
    Rezystory 1K na pinach P3 nie przeszkadzają, ale nie są potrzebne.
  • Poziom 29  
    Cytat:
    fantasta
    Podepnij pin (10) procka do masy bo jak widzę na Twoim schemacie układ scalony jej niema i powinno działać


    Niedopatrzenie w schemacie poprostu. Wiadomo ze masa jest dopieta :)

    Cytat:
    A jeszcze lepiej reset przez 1µF do +5V i 10kΩ do masy


    Tak jak pisalem jest podpiety do Vcc poprzez 4,7uF ale moge sprobowac jeszcze z rezystorem do masy

    Cytat:
    Rezystory 1K na pinach P3 nie przeszkadzają, ale nie są potrzebne.


    Wiem ze nie porzebne ale w celu plytki testowo - edukacyjnej zapewniaja one stan wysoki na pinach portu 3 a po wcisnieciu przyciku jest stan niski

    Wszystkie te problemy niestety nie sa rozwiazaniem mojego problemu :( Nie wiem co jest grane. Moim zdaniem kazdy program napisany pod taka plytke czyli jakis odczyt na porcie 3 i wywsietlanie na porcie 1 powinien dobrze dzialac.
    Zastanawia mnie tez to ze czysty uklad po wlaczeniu ustawia na wszystkich portach stan wysoki wzgledem masy a jak wiekszosc twierdzi powninien byc niski :? Nie wiem co moze to powodowac ...
  • Poziom 16  
    Napisz coś więcej, np. jakiego kompilatora używasz i z jakimi ustawieniami?
    Czy plik, który wprowadzasz do proca jest napewno kompilowany pod ten typ układu? Może tu tkwi problem... bo skoro proc jest sprawny to nic innego się nie nasuwa. :wink:
  • Poziom 25  
    fantasta napisał: Zastanawia mnie tez to ze czysty uklad po wlaczeniu ustawia na wszystkich portach stan wysoki wzgledem masy a jak wiekszosc twierdzi powninien byc niski Nie wiem co moze to powodowac ...

    Nie wiem co twierdzi wiekszość ale w chwili resetu na pinach portów tego procka zawsze pojawia sie stan wysoki.
  • Poziom 29  
    Cytat:
    Napisz coś więcej, np. jakiego kompilatora używasz i z jakimi ustawieniami?
    Czy plik, który wprowadzasz do proca jest napewno kompilowany pod ten typ układu?


    Wiec tak:
    1 sytuacja to otwieram BASCOM wpisuje program, kompiluje i utworzone po kompilacji pliki *.BIN lub *.HEX laduje do procka.
    2 sytuacja to otwieram Turbo Asembler wpisuje program i kompiluje, reszta jw.
    Zawsze uzywam ustawien do AT89C2051

    Cytat:
    Nie wiem co twierdzi wiekszość ale w chwili resetu na pinach portów tego procka zawsze pojawia się stan wysoki


    No to ja juz teraz nic nie wiem. Czysty procek laduje na plytke i na wszystkich portach mam stan wysoki. Jedni mowia ze zle a drudzy ze dobrze.
    Ogolnie po zaprogramowaniu ukladu program nie dziala :( Ani jeden ani drugi :/ Moze programy trzeba jakos wystartowac, uruchomic, no nie wiem juz co myslec.
  • Poziom 23  
    olekewaagata dobrze pisze, po restarcie wszystkie porty są w stanie wysokim.
    fantasta czy to co przysłałeś to Twój program?
    Przepraszam, ale muszę go skrytykować.
    Po co używać instrukcji powrotu z przerwań skoro przerwania nie są używane?
    Po co ładować do rejestru liczbę 7F, skoro zaraz po tym do tegoż samego rejestru jest wpisywane 0?
    Z pętli na początku
    clr A
    mov R0<-A
    djnz, R0, #FD
    procesor nigdy nie wyjdzie!
    Na schemacie podanym przez Ciebie w pierwszym poście kondensator przy resecie jest wpięty odwrotnie. Ma być plusem do zasilania.

    Napisz dokładnie co to ma robić, a możnaby taki program napisać.
    Moja sugestia: napisać nowy program.

    www.
    Marek Jaglarz
  • Poziom 27  
    fantasta - obawiam się, że na resecie sam kondensator 4,7uF do Vcc nie wystarczy. Reset jest realizowany stanem wysokim, więc przy normalnej pracy musi być na tej nóżce stan niski. Daj rezystor 100 Ohm do masy.
  • Poziom 23  
    h-doc - nigdy nie stosuję przy resecie rezystora,a zawsze działa.


    www.
    Marek Jaglarz
  • Poziom 29  
    Cytat:
    fantasta - obawiam się, że na resecie sam kondensator 4,7uF do Vcc nie wystarczy. Reset jest realizowany stanem wysokim, więc przy normalnej pracy musi być na tej nóżce stan niski. Daj rezystor 100 Ohm do masy.


    Ehhhhhhhhh...wczesniej ktos pisal ze dac do masy 10k.
    Wiec tak zmiany w schemacie to takie ze do resetu podlaczony jest kondensator 1uF (plusem do nozki 1 czyli reset) i rezystor 10k do masy.

    Cytat:
    fantasta czy to co przysłałeś to Twój program?
    Przepraszam, ale muszę go skrytykować.


    Niestety ale nie, jestem narazie na etapie nauki i stwierdzilem ze musze sobie kupic jakas ksiazke...
    Program ten jest ze strony do ktorej link dalem w pierwszym poscie.
    Jezeli chodzi co program to odpowiem ze byle co. Zaczynam zabawe z uC i poprostu chcialem sprawdzic plytke ktora sam wykonalem. Jak widac ze schematu to na wyjsciach portu 1 sa diody a portu 3 przelaczniki ktorymi zmieniam stany z 1 na 0. Jezeli ktos moze mi napisac lub podac jakis programik ktory napewno dziala i wtedy bede pewny ze wina lezy po stronie sprzetu. Doslownie byle jaki ktory zbiera info z portu 3 a wyswietla jakis wynik na porcie 1. Zamiast diod moge podlaczyc LED 7-segm, nie ma problemu. No juz sam nie wiem. Jakis sumator 2 bitowego kodu BCD odczytywanego z P3.0 i P3.1 pierwsza liczba i P3.2 i P3.3 druga liczba, natomiast wyswietla wynik dziesietny na LCD 7-segm.

    Wszystkie opcje ktore dzialaja na tej plytce dozwolone.
  • Poziom 23  
    Cytat:
    Wiec tak zmiany w schemacie to takie ze do resetu podlaczony jest kondensator 1uF (plusem do nozki 1 czyli reset)

    fantasta - nie przeczytałeś dokładnie mojego postu. Kondensator przy resecie plusem do zasilania!!

    www.
    Marek Jaglarz

    Zaraz będzie program.
  • Poziom 29  
    Oki, nie ma problemu. Zmienie polaryzacja ale wg. mnie i tam nie ma to znaczenia ;)
  • Poziom 23  
    Program pobiera dane z portu P3 i wysyła je na P1.
    Od adresu 000

    85 B0 90
    80 FB

    Gdybyś niedał rady tego wpisać,wyślę plik *.BIN

    Jeśli to nie zadziała, to masz błąd montażowy albo uszkodzony układ (mało prawdopodobne).

    www.jaglarz.com
    Marek Jaglarz