Dzisiaj napisałem program który obsługuje wyświetlacz LCD oraz wyświetlacz LED’owy.

Na LCD wyświetla się napis, dwu-linjkowy, natomiast na LED’owym wyswietlają sie liczby 1-4 4-1 ( z kropką )

Film z akcji:

Kod programu, wraz z opisem:

$regfile "m16def.dat"
$crystal = 16000000
 
' konfiguracja portów wyswietlacza
 
              Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7
              Config Lcdbus = 4
              Config Lcd = 16 * 2
 
' znaki specjalne lcd designer
 
           Deflcdchar 1 , 4 , 14 , 4 , 31 , 4 , 4 , 14 , 4
           Deflcdchar 2 , 31 , 17 , 17 , 31 , 4 , 4 , 4 , 4
 
            Cls                                             ' potrzebne czyszczenie, nalezy o tym pamietac!
 
           Lcd "Witaj Dawidzie" ; Chr(2)
 
           Cursor Off
           Home Lower                                       'linijka nizej
 
           Lcd "    BASCOM " ; Chr(1)
 
      ' ##################Funkcja wyswietlacz LED
Wyswietlacz2:
           Dim E As Byte
           Dim Liczba_led(10) As Byte
 
             Liczba_led(1) = &B11000000
             Liczba_led(2) = &B11111001
             Liczba_led(3) = &B10100100
             Liczba_led(4) = &B10110000
             Liczba_led(5) = &B10011001
             Liczba_led(6) = &B10010010
             Liczba_led(7) = &B10000010
             Liczba_led(8) = &B11111000
             Liczba_led(9) = &B10000000
             Liczba_led(10) = &B1001000
 
       Config Portb = &HFF
       Config Porta = &HFF
       Config Portc = &HFF
       Porta = &H01
 
Do
            For E = 1 To 5
            Porta = Liczba_led(e)
            Waitms 350
            Next E
 
            For E = 5 To 1 Step -1
            Porta = Liczba_led(e)
            Porta.7 = 0
            Waitms 350
            Next E
            Goto Wyswietlacz
Loop
 
' ####### Funkcja wyswietlacza LCD
Wyswietlacz:
 
                                   Dim I As Byte
' petla przesuwajaca tekst w prawo i lewo
Do
                     For I = 1 To 2
                     Shiftlcd Right
                     Waitms 300
                     Next I
 
                     For I = 1 To 2
                     Shiftlcd Left
                     Waitms 300
                     Next I
                     Goto Wyswietlacz2
 
Loop

Nadal mam jednak problemy z tą klawiaturą, czy to naprawdę musi być takie trudne?!

Pozdrawiam.