Egy autórádió előlapját szeretném használni.
A kijelző meghajtása megy is, de a benne lévő IC (Sanyo LC75854E)kezeli a gombokat is, és azt sehogy se sikerül kiolvasnom. Bármit nyomok csak 1-esek jönnek.
Valaki tudna segíteni, hogy milyen metódussal kell lekérdezni a gombokat? Nekem angol tudásom sajnos elég korlátozott és itt elakadtam.
Gondoltam rá, hogy hagyom a fenébe és közvetlen használom fel a gombokat, de most kicsit attól is megriadtam, sok portláb, kesze kusza kapcsolás...
A kapcsolás a KI1-4 és KS2-6-ig használja a gombokat
S3-S40-ig LCD
P1 háttérvilágítás
Beszúrok egyet az egyszerübbek közül amivel próbálkoztam
Kód: Egész kijelölése
$crystal = 12000000 'Sebesseg
$regfile = "M16def.dat" 'Chip
$baud = 57600
'$sim
Config Spi = Soft , Din = Pina.2 , Dout = Porta.3 , Ss = None , Clock = Porta.0
'Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes , Polarity = High , Phase = 0 , Clockrate = 128 , Noss = 1
Spiinit
'Config Pina.0 = Output
'Config Pina.1 = Output
'Config Pina.2 = Input
'Config Pina.3 = Output
Clk Alias Porta.0
Ce Alias Porta.1
Din Alias Pina.2
Dout Alias Porta.3
Dim Radio(32) As Byte At &H60
Dim Adat(28) As Byte At &H80
Dim Lcd_cim As Byte
Dim Gomb_cim As Byte
Dim A As Byte 'Általános változó
Dim Be_gomb(4) As Byte
Declare Sub Kuld_lcd
Declare Sub Fogad_gomb
Lcd_cim = &H42
Gomb_cim = &B11000010 'ez &H43 tükrözve (lehetne &HC2 is)
Adat(7) = &B11010000 'config és DD bitek 1.sor
Adat(14) = &B00000001 'DD bitek 2.sor
Adat(21) = &B00000010 'DD bitek 3.sor
Adat(28) = &B00000011 'DD bitek 4.sor
Print "Start..."
Do
Input "Melyik pin? " , A
If A = 1 Then
Toggle Adat(1).7
Call Kuld_lcd
Elseif A = 200 Then
Call Fogad_gomb
Else
End If
Loop
Sub Kuld_lcd
Spiout Lcd_cim , 1
Set Ce
Spiout Adat(1) , 7
Reset Ce
Spiout Lcd_cim , 1
Set Ce
Spiout Adat(8) , 7
Reset Ce
Spiout Lcd_cim , 1
Set Ce
Spiout Adat(15) , 7
Reset Ce
Spiout Lcd_cim , 1
Set Ce
Spiout Adat(22) , 7
Reset Ce
End Sub
Sub Fogad_gomb
Reset Din
Waitms 10
Spiout Gomb_cim , 1
Set Ce
Ddra = &B11111011
Set Din
Spiin Be_gomb(1) , 4
Print Be_gomb(1)
Print Be_gomb(2)
Print Be_gomb(3)
Print Be_gomb(4)
Reset Ce
End Sub