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

[Bascom][atmega8] obsługa wyświetlacza lcd

15 Lut 2010 15:59 2568 2
  • Poziom 15  
    wITAM.
    Napisałem program bo pomiaru temp. Problem mam taki, że na wyświetlaczu pojawia się więcej tekstów coś w tej formie: Temp = 21,1C Temp = 21,1C Temp = 21,1C Temp = 21,1C i tak przez cały wyswietlacz i przesuwa się w prawo.

    kod:
    $regfile = "m8def.dat"
    $crystal = 16000000

    Config 1wire = Portb.1 'port do którego podpięty jest termetr

    Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
    Config Lcd = 16 * 2


    Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaki stopnia
    Deflcdchar 2 , 4 , 10 , 10 , 10 , 10 , 17 , 17 , 14 ' znak fiolki
    Dim Address As Byte , Command As Byte , Odczyt(2) As Byte , A As Byte , B As Byte , Licznik As Byte ,
    T As Integer , T1 As Single , Napis As String * 5 , D1 As Integer
    D1 = 350
    Enable Interrupts


    Cursor Off 'kusor off
    Cls 'czyszczenie wyświetlacza
    Do
    1wreset 'reset
    1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM
    1wwrite &H44 'dokonaju konwersji
    Waitms 750 'przeczekaj czas konwersji
    1wreset 'reset
    1wwrite &HCC 'rozkaz adresowy SKIP ROM
    1wwrite &HBE 'rozkaz funkcyjny - polecenie odczytu DS18x20
    Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty
    T = Odczyt(2) 'przepisz starszy bajt do zmiennej typu Integer
    Shift T , Left , 8 'przesuń ten bajt w lewo na wyższe pozycje
    T = T + Odczyt(1) 'przepisz - dodaj młodszy bajt

    T1 = T * 0.0625

    Napis = Fusing(t1 , "#.#") 'określenie miejsca po przecinku

    Lcd Chr(2) ; "=" ; Napis ; " " ; Chr(1) ; "C" 'wynik
    Loop
  • Pomocny post
    Poziom 27  
    przed linia Lcd Chr(2) ; "=" ; Napis ; " " ; Chr(1) ; "C" 'wynik
    dopisz : locate 1,1

    pozdrawiam
  • Poziom 15  
    Tema do zamknięcia.