Bascom: Wyświetlacz LCD + Wyswietlacz LED.

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.