chce zrobić klawiature matrycową taką jak w bascom koledz na pcf8574
tylko że tam jest na 8051 ja chce zrobić na
avr 90s8515 jak to zmienić
$regfile = "8515def.dat"
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Config Sda = Porta.1
Config Scl = Porta.0
I2cinit
Dim Value1 As Byte
Dim Valuehex As String * 2
Declare Sub Sekcja1
Declare Sub Sekcja2
Config Lcd = 24 * 2
Do
I2csend 112 , 255
I2csend 114 , 255
I2creceive 64 , Value1
If Value1 <> 255 Then
Call Sekcja1
Valuehex = Hex(value1)
Cls
Lcd "DEC:" ; Value1 ; " HEX:" ; Valuehex
Print "DEC:" ; Value1 ; " HEX:" ; Valuehex
Wait 1
End If
I2creceive 66 , Value1
If Value1 <> 255 Then
Call Sekcja2
Valuehex = Hex(value1)
Cls
Lcd "DEC:" ; Value1 ; " HEX:" ; Valuehex
Print "DEC:" ; Value1 ; " HEX:" ; Valuehex
Wait 1
End If
Loop
Sub Sekcja1
If Value1 = 254 Then
Value1 = 0
End If
If Value1 = 253 Then
Value1 = 1
End If
If Value1 = 251 Then
Value1 = 2
End If
If Value1 = 247 Then
Value1 = 3
End If
If Value1 = 239 Then
Value1 = 4
End If
If Value1 = 223 Then
Value1 = 5
End If
If Value1 = 191 Then
Value1 = 6
End If
If Value1 = 127 Then
Value1 = 7
End If
End Sub
Sub Sekcja2:
If Value1 = 254 Then
Value1 = 8
End If
If Value1 = 253 Then
Value1 = 9
End If
If Value1 = 251 Then
Value1 = 10
End If
If Value1 = 247 Then
Value1 = 11
End If
If Value1 = 239 Then
Value1 = 12
End If
If Value1 = 223 Then
Value1 = 13
End If
If Value1 = 191 Then
Value1 = 14
End If
If Value1 = 127 Then
Value1 = 15
End If
End Sub
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięProśba klawiatura matrycowa avr
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
ten program działa na 8051 i avr - sam przetestowałem
jarecki16@xl.wp.pl
$regfile = "8515def.dat"
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Config Sda = Porta.1
Config Scl = Porta.0
Dim Key As Byte
Declare Sub Key_scan
Do
Call Key_scan
Loop
Sub Key_scan 'podprogram skanowania klawiatury
I2csend 124 , &B11111110
I2creceive 125 , Key
Select Case Key
Case 126 : Key = 6
Case 190 : Key = 10
Case 222 : Key = 4
Case 238 : Key = 5
End Select
If Key > 15 Then
I2csend 124 , &B11111101
I2creceive 125 , Key
Select Case Key
Case 125 : Key = 3
Case 189 : Key = 0
Case 221 : Key = 1
Case 237 : Key = 2
End Select
End If
If Key > 15 Then
I2csend 124 , &B11111011
I2creceive 125 , Key
Select Case Key
Case 124 : Key = 4
Case 188 : Key = 5
Case 220 : Key = 6
Case 236 : Key = 14
End Select
End If
If Key > 15 Then
I2csend 124 , &B11110111
I2creceive 125 , Key
Select Case Key
Case 215 : Key = 7
Case 231 : Key = 8
Case 119 : Key = 9
Case 183 : Key = 15
End Select
End If
End Sub
jarecki16@xl.wp.pl
$regfile = "8515def.dat"
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6
Config Sda = Porta.1
Config Scl = Porta.0
Dim Key As Byte
Declare Sub Key_scan
Do
Call Key_scan
Loop
Sub Key_scan 'podprogram skanowania klawiatury
I2csend 124 , &B11111110
I2creceive 125 , Key
Select Case Key
Case 126 : Key = 6
Case 190 : Key = 10
Case 222 : Key = 4
Case 238 : Key = 5
End Select
If Key > 15 Then
I2csend 124 , &B11111101
I2creceive 125 , Key
Select Case Key
Case 125 : Key = 3
Case 189 : Key = 0
Case 221 : Key = 1
Case 237 : Key = 2
End Select
End If
If Key > 15 Then
I2csend 124 , &B11111011
I2creceive 125 , Key
Select Case Key
Case 124 : Key = 4
Case 188 : Key = 5
Case 220 : Key = 6
Case 236 : Key = 14
End Select
End If
If Key > 15 Then
I2csend 124 , &B11110111
I2creceive 125 , Key
Select Case Key
Case 215 : Key = 7
Case 231 : Key = 8
Case 119 : Key = 9
Case 183 : Key = 15
End Select
End If
End Sub
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości