logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

AT90S2313 - LCD 16x1 nie wyświetla, mimo sprawnego podłączenia i Bascom

amator 30 Maj 2005 22:00 2822 24
REKLAMA
  • #1 1537184
    amator
    Poziom 22  
    Posty: 677
    Pomógł: 29
    Ocena: 37
    Witam.
    Mam następujący problem z wyżej wymienionym mikrokontrolerem. Przed zmianą oprogramowania AVR sterował 7 diodami z portu B. Teraz podłączam do tego portu wyświetlacz LCD 16*1 (ustawiałem obie opcje 16*1 i 16*1a - przy obu to samo). Problem jest taki że nic nie zostaje wyświetlane na tym wyświetlaczu. Wyświetlacz sprawdzony na 89C4051 - wszystko działa jak należy, podłączenie wyświetlacza OK - także porty AVR'ka sprawne (sterują diodami). Myślałem że może wersja Bascoma coś nawala - po zainstalowaniu nowej i kompilacji dalej ten sam problem.
    Pozdrawiam i dziękuję za zainteresowanie
  • REKLAMA
  • #2 1537221
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    A może tak kod?

    Dawno takiego tematu na elektrodzie nie było, przejżyj trochę, przecież już chyba wszystkie możliwe rozwiązania tego tematu były podane
  • REKLAMA
  • #3 1537223
    karlos79
    Poziom 33  
    Posty: 1768
    Pomógł: 254
    Ocena: 76
    Daj kod bo bez tego raczej nic nie da się zrobić.
    Jak masz ustawione w opcjach linie ENABLE , RS , DB7 do DB4.
    Moze masz błąd na w połaczeniach.
  • #4 1537243
    amator
    Poziom 22  
    Posty: 677
    Pomógł: 29
    Ocena: 37
    Witam.
    Kod standardowy:

    $crystal=4000000
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
    Config Lcd = 16 * 1a
    CLS
    LCD "WITAM"
    END

    Połączenia sprawdzane już kilkanaście razy - wszystko OK. Nawet takiego prostego kodu nie rusza.

    Pozdrawiam.
  • #5 1537269
    karlos79
    Poziom 33  
    Posty: 1768
    Pomógł: 254
    Ocena: 76
    Witam
    Zapomniałeś o jednym poleceniu " initLCD"
    $crystal=4000000
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
    Config Lcd = 16 * 1a
    initLCD
    CLS
    LCD "WITAM"
    END
  • REKLAMA
  • #6 1537277
    amator
    Poziom 22  
    Posty: 677
    Pomógł: 29
    Ocena: 37
    Niestety nic nie pomogło.
  • #7 1537297
    karlos79
    Poziom 33  
    Posty: 1768
    Pomógł: 254
    Ocena: 76
    A jaki masz wyświetlacz?
    WC1601A0 , czy jakiś inny ?
  • #8 1537311
    amator
    Poziom 22  
    Posty: 677
    Pomógł: 29
    Ocena: 37
    Witam.
    Dokładnie nie wiem, jest tu tylko jeden układ scalony, a na wyświetlaczu są takie oto dane:
    JM5A-C1.04.5.1QC22
    JM161B
    JM5.
    Nic więcej na nim nie ma.

    Dodano po 1 [minuty]:

    A tak jeszcze dodam: może ustawienie opcji $LCD i $LCDRS pomoże? Tylko nie wiem co ustawić - próbowałem znaleźć te dane z Bascoma 8051 na którym wyświetlacz działa ale nic z tego.
  • REKLAMA
  • #9 1537347
    karlos79
    Poziom 33  
    Posty: 1768
    Pomógł: 254
    Ocena: 76
    Jeszcze w opcjach kompilatora masz takie ustawienia LCD-adress C000
    RS-adress 8000
    nie wiem do końca z czym to sie je, ale może tam trzeba troszke pokombinować.....
    Eh niezła zagwostka.....
    Pozdrawiam
  • #10 1537361
    amator
    Poziom 22  
    Posty: 677
    Pomógł: 29
    Ocena: 37
    Adresy mam takie jak podałeś. Dziwi mnie trochę to że ten AVR grzeje się a '51 nic się nie grzała. Po włączeniu mam czarne pola jakby nie było initializacji wyświetlacza.
    Pozdrawiam.
  • #11 1537369
    karlos79
    Poziom 33  
    Posty: 1768
    Pomógł: 254
    Ocena: 76
    A dodaj pętle do tego programu Do ...... loop i pokombinuj z pozycją polecenia initlcd.
    Dobrze by było zanaleźć jakąś notke tego wyświetlacza, bo u mnie ten program śmiga, tylko na innym wyświetlaczu.
    Pozdrawiam
  • #12 1537443
    marcinkwa
    Poziom 14  
    Posty: 164
    Pomógł: 5
    Spróbuj ruszyć kontrastem
  • #13 1538763
    amator
    Poziom 22  
    Posty: 677
    Pomógł: 29
    Ocena: 37
    Witam
    Kontrast nie pomaga - dawno już próbowałem ruszać. Pętla DO ... LOOP z INITLCD wstawione wszędzie (po kolei i razem) - również nic nie dało. Przełożyłem wyświetlacz pod inne piny - po skonfigurowaniu również ten sam efekt.
    Pozdrawiam.
  • #15 1539280
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 131
    troszke mnie niepokoi to że procek się grzeje... może byłoby dobrze gdybyś wrzucił schemat...
  • #16 1539317
    lukasb9
    Poziom 28  
    Posty: 1421
    Pomógł: 56
    Ocena: 70
    witam to ja coś zasugeruje, może to czysta głupota przy AVR-ach ale kiedyś się nad tym męczyłem długo... podciągnij do plusa opornikami 1k
    wejścia ENABLE i RS

    pozdrawiam Łukasz
  • #17 1539530
    amator
    Poziom 22  
    Posty: 677
    Pomógł: 29
    Ocena: 37
    Witam.
    Podciągnięcie nic nie dało. Procesor przestał się grzać już - nie wiem dlaczego :). Całość testuje na płytce testowej AVT-2500 (z kursu Bascom College) - oczywiście reset przestawiony na AVR. Dziękuję za znalezione materiały - biorę się do ich studiowania. W najbliższym czasie spróbuje podpiąć ten wyświetlacz do ATMEGA8515 i zobacze co się bedzie dziać. Może to ten 2313 coś miesza. Dodam jeszcze że jak nie daję instrukcji CLS to na wyświetlaczu pojawiają się jakieś znaki, gdy ją dam to już zupełna ciemność.
    Pozdrawiam.
  • #18 1542406
    daniel93
    Poziom 29  
    Posty: 1673
    Pomógł: 30
    Ocena: 94
    Tutaj jest obsługa wyświetlacz lcd w języku bascom '51 z kursu bascom college z edw.
    Załączniki:
    • Bascom_02.pdf (1.38 MB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #19 1542465
    karlos79
    Poziom 33  
    Posty: 1768
    Pomógł: 254
    Ocena: 76
    Kolego daniel93 po pierwsze zdzieranie punktów jest co najmniej nie na miejscu, tymbardziej ,że mamy do czunienia z procesorem AVR.
    A pomiędzy językami do programowania tych procków są spore różnice.
  • #20 1545338
    amator
    Poziom 22  
    Posty: 677
    Pomógł: 29
    Ocena: 37
    Witam.
    Przestudiowałem w/w noty ale nic mi to nie dało. Zaraz spróbuję podpiąć wyświetlacz pod ATMEGA8515 i zobacze co będzie się dziać.
    Pozdrawiam.
  • #21 1545774
    KrzysiekG
    Poziom 11  
    Posty: 62
    Pomógł: 1
    Ocena: 6
    Czołem!
    Jeżeli połączenia i program masz OK a procka programujesz przez ISP to w konfiguracji Bascoma w zakładce PROGRAMMER wpisz dodatkowe opóźnienie dla portu równoległego np 50 powinno pomóc.
    Pozdrawiam
    Krzysiek
  • #22 1545909
    amator
    Poziom 22  
    Posty: 677
    Pomógł: 29
    Ocena: 37
    Niestety. Ciągle to samo. Jutro spróbuje jeszcze na ATMEGA i zobaczę co się będzie działo.
    Pozdrawiam.
  • #23 1548039
    daniel93
    Poziom 29  
    Posty: 1673
    Pomógł: 30
    Ocena: 94
    karlos79 : Lepjej ?
  • #24 1548096
    McRancor
    VIP Zasłużony dla elektroda
    Posty: 5326
    Pomógł: 479
    Ocena: 124
    daniel93 napisał:
    karlos79 : Lepjej ?


    http://student.uci.agh.edu.pl/~meus/elit/pliki.html
    Tam jest to samo za co tutaj pobierasz punkty, nazywa się to Panie kolego złodziejstwo, bo ciekaw jestem czy masz pozwolenie AVT na umieszczanie ich artykułów na forum.
  • #25 1566647
    amator
    Poziom 22  
    Posty: 677
    Pomógł: 29
    Ocena: 37
    Witam.
    Problem rozwiązany i temat uważam za zamknięty. Kupiłem nowego AT90S2313 i okazało się że na nim nie występuje ten problem. Nie wiem dlaczego ale działa :). Tamtego wykorzystam do innej aplikacji gdzie LCD nie będzie potrzebny :). Dziękuję wszystkim za pomoc.
    Pozdrawiam.

Podsumowanie tematu

LABEL_AI_GENERATED
Problem dotyczył wyświetlacza LCD 16x1 podłączonego do mikrokontrolera AT90S2313 i programowanego w Bascom. Pomimo poprawnego podłączenia i sprawdzenia wyświetlacza na mikrokontrolerze 89C4051, LCD nie wyświetlał żadnych znaków. Użytkownik stosował standardowy kod z konfiguracją pinów i wywołaniem initLCD, próbował różnych ustawień kontrastu oraz zmieniał piny portu, jednak bez efektu. Wskazywano na możliwe błędy w połączeniach, konieczność dodania opóźnień w programatorze Bascom oraz podciągnięcie linii ENABLE i RS rezystorami 1k do plusa. Zauważono, że mikrokontroler się grzał, co mogło wskazywać na uszkodzenie. Po wymianie AT90S2313 na nowy egzemplarz problem zniknął i wyświetlacz działał poprawnie. W dyskusji pojawiły się linki do dokumentacji wyświetlacza oraz sugestie dotyczące konfiguracji i testów na innych mikrokontrolerach, np. ATMEGA8515.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA