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

[ATMEGA8][BASCOM] LCD 16*1 nie działa.

MacFis 14 Mar 2009 11:36 4645 9
REKLAMA
  • #1 6279683
    MacFis
    Poziom 17  
    Witam!

    Niedawno zamówiłem LCD http://www.sklep.avt.pl/p/pl/481203/lcd+alfanumeryczny+16x1.html i nie wiem ja go uruchomić, napisać choć
    "TEST". Ciągle widzę tylko niebieski ekranik. Wzorowałem się na tym połączeniu https://obrazki.elektroda.pl/45_1225033824.jpg . A to program:
    Cls : Cursor Off
    Lcd "TEST"
    Do
    Loop
    End


    Nie wiem gdzie tkwi problem...
  • REKLAMA
  • Pomocny post
    #2 6279983
    klops_mops
    Poziom 17  
    A gdzie masz deklarację procesora, częstotliwości, konfigurację pinów do LCD?

    Co do programu, to proponuje:
    
    ' naglowki programu
    Do
    Locate 1 , 1
    Lcd "Witaj!"
    Wait 3
    Locate 1 , 1
    Lcd "Czy dziala?"
    Wait 4
    Locate 1 , 1
    Lcd "!!! TAK !!!"
    Wait 5
    Cls
    Loop
    
    


    Gdzie nagłówkami programu muszą/mogą być:

    - deklaracja procesora np. m32def.dat (Atmega32), m8def.dat (Atmega8)
    - częstotliwość pracy procesora, np. 1000000 (Dla fabrycznie ustawionej Atmegi), 8000000 (Dla 8MHz), 16000000 (Dla kwarcu 16MHz)
    - konfiguracja pinów wejścia/wyjścia procesora
    - konfiguracja różnych szyn danych
    - konfiguracja szybkości pracy RS232
    - konfiguracja pinów wyświetlacza
    - konfiguracja wielkości wyświetlacza
    - i inne...

    np. Dla Atmegi8, pracującej z częstotliwością 1Mhz (cz. fabryczna), z podpiętym wyświetlaczem:
    Pin wyświetlacza RW należy podpiąć do masy.

    
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    Config Lcd = 16 * 1
    Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
    ' tutaj zmien piny procesora na te jak Ty masz podlaczone
    
    


    EDIT:
    Nie zauważyłem screena, może lepiej jak sam dodasz do programu kod, a nie gotowe menu bascom'a? Poza tym nie wiem czy zdeklarowałeś procesor i częstotliwość ?

    Masz wyżej wszystko napisane...
  • #3 6281608
    MacFis
    Poziom 17  
    Napisałem taki program:



    $regfile = "m8def.dat"
    $crystal = 1000000
    $lcd = &HC000
    $lcdrs = &H8000
    
    
    Config Lcd = 16 * 1
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4
    Config Portb = Output
    
    
    Do
    Locate 1 , 1
    Lcd "123ABC"
    Wait 3
    
    
    Loop
    


    I dalej nie działa... Coś jest źle?
    Zrobiłem to samo na atmega32 i też nie działa.
  • REKLAMA
  • Pomocny post
    #4 6282083
    sp3ots
    Poziom 38  
    Witam !
    Czy kręciłeś potencjometrem od kontrastu ?
  • #6 6282298
    sp3ots
    Poziom 38  
    Znaków nie ma na ekranie, a pojawiają się ciemne prostokąty jak regulujesz kontrast ?
    Schemat by się przydał.
    Jesteś pewny że program wchodzi do procesora ?
    Jaki programator ? Czy dopiero zaczynasz z programowaniem ?
    GG6293398
  • REKLAMA
  • #7 6282775
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #8 6283345
    MacFis
    Poziom 17  
    Zrobiłem tak jak mówisz. Usunąłem te dwie linie. Wszystko odłączyłem i podłączyłem jeszcze raz pokręciłem potencjometrem w lewo i w prawo, max w prawo pojawiają się prostokąty białe najpierw po lewej stronie, a później po prawej... tak z pięć razy. I nic!
    Nie wiem w czym problem... Program się wgrywa na 100% bo sprawdzałem. Programator to stk200.

    Wcześniej programowałem już robocika omijającego przeszkody i podążającego po linii i wszystko działało.
  • Pomocny post
    #9 6283438
    sp3ots
    Poziom 38  
    Witam !
    Ponawiam prośbę o schemat.
    Pozdrawiam. Stefan
    Może trzeba dodać przy konfiguracji LCD literkę "a"
    
    Config Lcd = 16 * 1a
    zaremuj te linie:
    $lcd = &HC000
    $lcdrs = &H8000
    Config Portb = Output
    


    Kod umieszczamy w znacznikach [code] i proszę o tym pamiętać.
    [zumek]
REKLAMA