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

ATMEGA 8. Brak wyświetlania LCD

holgan22 06 Wrz 2010 13:44 2568 11
  • #1 8481504
    holgan22
    Poziom 10  
    Witam.
    Jestem początkujący w bascomie,więc proszę o zrozumienie.
    Napisałem program,który ma wyświetlać na LCD tekst.Podczas kompilacji nie ma żadnych błędów,na emulatorze wszystko działa.Po podłączeniu LCD w realu nic się nie wyświetla.Podejrzewam, że mam źle przewody podłączone więc proszę o pomoc.

    Oto program:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    Do
    Cls
    Upperline
    Lcd "Test    "
    
    Lowerline
    Lcd "Wyswietlacza LCD"
    
    Wait 1
    Loop
    End
    


    Schemat ideowy wygląda tak:
    ATMEGA 8. Brak wyświetlania LCD

    A ustawienia jakie mam w kompilatorze są takie:
    ATMEGA 8. Brak wyświetlania LCD

    Dodam tylko,że programuję przez ISP Cable|| i program ProProgRs 1.1m.Wgrywam pliki z rozszerzeniem .hex (kompilator je generuje) i cały proces programowania przebiega bez problemu.
  • #2 8481571
    sp3ots
    Poziom 38  
    Witam !
    Zła konfiguracja LCD !
    Popraw konfigurację LCD tak jak na schemacie.
    Pozdrawiam. Stefan
    Możesz też wstawić taką linię do programu:
    Config Lcdpin = Pin , Db7 = Pb.7 , Db6 = Pb.6 , Db5 = Pb.5 , Db4 = Pb.4 , E = Pb.3 , Rs = Pb.2
  • #3 8481828
    holgan22
    Poziom 10  
    Faktycznie konfiguracja była zła.Jednak teraz po poprawie kodu na:

    $regfile = "m8def.dat"
    $crystal = 8000000
    Config Lcdpin = Pin , Db7 = Pb.0 , Db6 = Pd.7 , Db5 = Pd.6 , Db4 = Pd.5 , E = Pb.7 , Rs = Pb.6
    Do
    Cls
    Upperline
    Lcd "Test    "
    
    Lowerline
    Lcd "Wyswietlacza LCD"
    
    Wait 1
    Loop
    End


    Wyświetlacz zaczął wykazywać zmiany.Nie wyświetla jeszcze tekstu ale wygląda tak:
    ATMEGA 8. Brak wyświetlania LCD

    Dodam,że wyświetlacz co 5 sekund wyraźnie "mrugnie" . Co jeszcze jest nie tak??
  • #4 8481895
    sp3ots
    Poziom 38  
    zmień, przenieś CLS
    cls
    do
    .....
    loop
    end
    Pokręć potencjometrem od kontrastu.

    Widzę że linię konfiguracyjną LCD zmieniłeś ! Ale ta konfiguracja nie pasuje do schematu jaki dołączyłeś !!!
  • #5 8481930
    holgan22
    Poziom 10  
    A jeśli można wiedzieć to co jest jeszcze źle w tych liniach??
  • Pomocny post
    #6 8481965
    sp3ots
    Poziom 38  
    Schemat jaki załączyłeś nie pasuje do Twojej konfiguracji !
    Czy schemat jaki załączyłeś jest prawidłowy, chodzi o piny LCD podłączone do ATmega8 ? Odpowiedz na to pytanie.
    Jeśli Twój schemat jest taki:
    ATMEGA 8. Brak wyświetlania LCD
    to konfiguracja LCD musi być taka:
    
    Config Lcdpin = Pin , Db7 = Pb.7 , Db6 = Pb.6 , Db5 = Pb.5 , Db4 = Pb.4 , E = Pb.3 , Rs = Pb.2
    
  • #7 8482018
    holgan22
    Poziom 10  
    Mam dokładnie takie połączenie:

    ATMEGA 8. Brak wyświetlania LCD

    Bardzo przepraszam za roztargnienie. Cały czas zmieniałem konfiguracje i się walnąłem
  • Pomocny post
    #8 8482047
    sp3ots
    Poziom 38  
    Twoja konfiguracja jest dobra.
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    Config Lcdpin = Pin , Db7 = Pb.0 , Db6 = Pd.7 , Db5 = Pd.6 , Db4 = Pd.5 , E = Pb.7 , Rs = Pb.6
    cls
    Do
    locate 1,1
    Lcd "      Test    "
    Loop
    End
    

    Wgraj ten program i pokręć potencjometrem od kontrastu.
  • #10 8482065
    sp3ots
    Poziom 38  
    locate przepraszam
  • #11 8482070
    landy13
    Poziom 31  
    Cytat:
    Dodam,że wyświetlacz co 5 sekund wyraźnie "mrugnie" . Co jeszcze jest nie tak??

    Cytat:
    Wait 1

    Cytat:
    $crystal = 8000000


    Biorąc powyższe pod uwagę, procesor chodzi pradwopodobnie na 1MHz.
  • #12 8559563
    holgan22
    Poziom 10  
    Witam po dłuższej nieobecności.
    Problem został zażegnany. Zmieniłem wyświetlacz na 1*16,poprawiłem kod i wszystko ruszyło za pierwszym razem. Mankamentem jest tylko fakt,iż wyświetlacz wyświetla 8 znaków a nie 16. Miał Ktoś może taką przypadłość??


    Pomógł temat:

    https://www.elektroda.pl/rtvforum/topic1532346.html#7486221

    (wystarczyło zmienić LCD z "16*1" na "16*1a"
    Dzięki wszystkim za pomoc.
REKLAMA