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