Następny dzień i następne problemy do rozwiązania.

Męczyłem się bardzo z tą klawiaturą, ale dzisiaj udało mi się ją częściowo zmuscić do współpracy.

Opisze mój program:

Poprzez funkcje getkbd, pobieramy informacje z jakiego przycisku skorzystaliśmy dzięki temu możemy wyswietlić tę liczbe na wyświetlaczu LED’owym czy LCD. I właśnie to zrobiłem.

Miałem problem z wyświetlaczem LED co widać na filmiku, jeden z kabelków nie działał tak jak powinien przez co nie miałem jednej kratki po prawej stronie. Postaram się to poprawić, póki co chciałem pochwalić się drobnym osiągnieciem.

Film z akcji:

Dość chaotycznie to wygląda przy aktualnym połączeniu kabelków, no ale co zrobić 🙂

Kod źródłowy programu:

$regfile "m16def.dat"
$crystal = 16000000
 
' konfiguracja portów wyswietlacza
 
              Config Lcdpin = Pin , Rs = Porta.0 , E = Porta.1 , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7
              Config Lcdbus = 4
              Config Lcd = 16 * 2
 
 
 
 
Dim Klawisz As Byte
Dim Kod(17) As Byte
 
Kod(1) = &B11111001
Kod(2) = &B10100100
Kod(3) = &B10110000
Kod(4) = &B10001000
Kod(5) = &B10011001
Kod(6) = &B10010010
Kod(7) = &B10000010
Kod(8) = &B10000011
Kod(9) = &B11111000
Kod(10) = &B10000000
Kod(11) = &B10010000
Kod(12) = &B11000110
Kod(13) = &B10001111
Kod(14) = &B11000000
Kod(15) = &B10001001
Kod(16) = &B10100001
Kod(17) = &B01111111                                        'reprezentacja zera
 
Config Portb = Output
Config Portc = Output
 
Portc = 1
 
Config Kbd = Portd
 
Do
Klawisz = Getkbd()                                          ' inicjacja klawisza, getkbd
 
 
Klawisz = Klawisz + 1
 
Portb = Kod(klawisz)
Porta = Kod(klawisz)
Cls
Cursor Off                                                  ' wylaczenie kursora
 
Lcd "Wybrana liczba:"
 
Home Lower
 
Lcd Klawisz                                                 ' w linijce nizej pokaze nam sie numer przycisku
Waitms 250
 
Loop