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

ATMega32 + LCD 20*4 nie wyświetla napisów?

genius86 26 Cze 2010 14:20 1915 21
  • #1 8233814
    genius86
    Poziom 10  
    Witam!
    Mam kontroler ATMega32 i LCD 20*4 na układzie hd44780.
    Próbowałem zainicjować w asemblerze ten wyświetlacz ale bez sukcesu.
    Zrobiłem to w Bascome i widać kursor, mogę go nawet przesuwać w prawo/lewo, ale nie pokazują się napisy na wyświetlaczu. Funkcja LED i PRINT nic nie wyświetlają.

    O co tu chodzi?
    Ten program mam aktualnie na procku:

    $regfile = "m8def.dat"
    Config Lcd = 20 * 4
    
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
     Wait 1
    Cls
    Do
    Lcd "hello world."
    Waitms 300
    Loop
    End
    

    kursor świeci na zerowej pozycji i co 300ms pojawia sie "1" na Enable LCD.

    Dlaczego nic nie wyświetla?
    Co zrobić, żeby coś wyświetlił?
    Proszę o pomoc.
  • #2 8233896
    Logan
    Poziom 30  
    Led ? Print ?
  • #3 8233910
    genius86
    Poziom 10  
    sory LCD i PRINT
  • #4 8233917
    Logan
    Poziom 30  
    Print wysyła dane przez UART, a nie LCD.
  • #5 8233921
    genius86
    Poziom 10  
    co w związku z tym?? jak wyświetlić coś na tym wyświetlaczu??

    Dodano po 1 [minuty]:

    bascom używa transmisji szeregowej do wyświetlacza...
  • #6 8233938
    Logan
    Poziom 30  
    Ale Print nie ma z tym nic wspólnego! Sprawdź, czy masz wszystko podłączone zgodnie z linijką:
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2 


    Kręciłeś poterkiem od kontrastu ?

    Czemu nie masz $crystal ?
  • #7 8233946
    genius86
    Poziom 10  
    kontrast jest ok
    Napisałem wyżej że witać kursor jak sie przsuwa po ekranie
    Funkcje dotyczące cursora działają więc wnioskuje że podłaczony jest dobrze.

    $regfile = "m8def.dat"
    Config Lcd = 20 * 4
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2
     'Wait 1
    Cls
    Locate 3 , 10
    Do
    Print "hello world."
    Waitms 100
    Shiftcursor Right
    Loop
    End
  • #8 8233963
    Logan
    Poziom 30  
    Skoro kursor normalnie przesuwa sie po ekranie to jedyne co mi przychodzi do głowy to fusy.
  • #9 8233981
    genius86
    Poziom 10  
    jak je poustawiać?? program przez który wysyłem hex na cpu ma jakieś opcje do tego ale nie wiem jak to ustawić??
  • #10 8234028
    janbernat
    Poziom 38  
    Nie ustawiać na razie.
    Wpisać na poczatku programu
    $crystal=1000000
  • #11 8234038
    genius86
    Poziom 10  
    nadal to samo tylko szybciej kursor sie przemieszcza

    Dodano po 9 [minuty]:

    mam podpięty zewnetrzy oscylator 12MHz

    Dodano po 1 [godziny] 43 [minuty]:

    nadal nie działa :((
  • #12 8234429
    janbernat
    Poziom 38  
    No to "ab ovo' jak mawiali starożytni Rzymianie.
    Teraz to młodzi mówią "bez jaj"- ale to stare było lepsze.
    Jak jest podpięty zewnętrzny oscylator XTAL1 na PB.6 a XTAL2 na Pb.7 i na te same końcówki podpięty jest wyświetlacz to cos się nie zgadza.
    Wyjmij kwarc i kondensatory.
    Na poczatek.
    P.S.
    I jak Ci się tak udało- to co za płytka?
  • #13 8234445
    genius86
    Poziom 10  
    oscylator jest na 12 i 13 nóżce nie mam żdnej płydki sam CPU i LCD i kilka kabli na płytce stykowej :)
  • #14 8234491
    janbernat
    Poziom 38  
    Przepraszam- to jest 32 a nie 8.
    Daj na portD- tam nie ma programatora.
  • #15 8234645
    genius86
    Poziom 10  
    podpiołem na port d i widać kursor ale juz sie nie przesuwa..
    ;/

    zastanawiam sie czy ten LCD jest sprawny, niby nowy ale nie wiadomo nigdy ;/

    Proszę poprawić pisownię w swoich postach - regulamin p.15
    [zumek]
  • #16 8234713
    landy13
    Poziom 31  
    genius86 napisał:
    Witam!
    Mam kontroler ATMega32 i LCD 20*4 na układzie
    .............
    Ten program mam aktualnie na procku:

    $regfile = "m8def.dat"
    Config Lcd = 20 * 4
    .............

    To jaki masz właściwie procesor?
  • #17 8234757
    genius86
    Poziom 10  
    Procesor to ATMEGA32

    Działa przesuwanie kursora, lcd podpięty na porcie D
    napisów nie wyświetla
    
    $crystal = 1000000
    Config Lcd = 20 * 4
    Wait 1
    Cls
    Locate 2 , 10
    
    Do
    Lcd "hello world."
    Waitms 200
    Shiftcursor Right
    Set Portd.0
    Waitms 200
    Reset Portd.0
    Loop
    End


    Kod proszę umieszczać w znacznikach [code] - poprawiłem.
    [zumek]
  • #18 8234814
    landy13
    Poziom 31  
    Czyżbyś nie widział sprzeczności w wyrażeniach które podkreśliłem kolorem zielonym?
    W takim razie nick wybrałeś sobie chyba trochę na wyrost.
  • #19 8235449
    genius86
    Poziom 10  
    ???? HELP ????

    Dodano po 5 [minuty]:

    nik to przydomek a nie poziom mojej wiedzy na temat kontrolerów
    w kompilatorze ustawiłem m323def.dat bo on parametrami przypomina ATmege i na tej nastawie cokolwiek działa a nie mam pojecia jaki "dat" powinienem wybrać dla mojego procka bo nie ma tam na liście żadnej nazwy AT....

    Dodano po 32 [minuty]:

    wujek google powiedział żebym ustawił m32def.dat i tak zrobiłem ale i tak napisów nie wyświetla
    teraz szukam biblioteki do obsłui mojego wyświetlacza????

    Dodano po 19 [minuty]:

    podobno to jet biblioteka opisująca mój LCD ale nie kompiluje tego bascom
    $lib "lcd4e2.lbx"
    kod błędu: 5 i 320 ;/ bez sensu "brak miejsca na zmienne typu bit"
  • #20 8236803
    genius86
    Poziom 10  
    wiem już że biblioteka dla mojedo wświetlacza to lcd4.lbx ale to mi nic nie daje bo w niej jest tylko zapisane gdzie jest wyświetlacz podłączony.. ja to ustawiam w BASCOME.
    Nadal napisów nie wyścietla :(

    Dodano po 3 [godziny] 1 [minuty]:

    problem rozwiązałem sam :) dzięki za chęci
  • #21 8238000
    Logan
    Poziom 30  
    To może jeszcze napisz jak go rozwiązałeś, bo ktoś może mieć taki sam problem w przyszłości. :)
  • #22 8238602
    genius86
    Poziom 10  
    źle podłączony LCD do CPU zamienion kabel RS z R/W :) hehe
REKLAMA