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ę

KLAWIATURA MATRYCOWA ??

jjanek
-
-
Posty:10
Rejestracja:18 mar 2004, o 08:50
Lokalizacja:Dąbrowa Górnicza
Kontaktowanie:
KLAWIATURA MATRYCOWA ??

Postautor: jjanek » 9 maja 2004, o 21:57

Hej
Chciałbym podłączyć do AT 90s2313 klawiaturę matrycową Napisałem taki prosty program, który ma wyswietlac na wyswietlaczu LCD wcisniętą cyfrę. Program starałem się napisać przejżyście i choć jest trochę długi to banalnie prosty. Mój problem tkwi w tym, że w żaden sposób nie mogę spowodować wyświetlenia wciśniętej cyfry na klawiaturze. Jestem pewien, że problem będzie tkwił w złej konfiguracji portów jednak mimo wielu prób nie mogę dojść do właściwych ustawień Oto mój program - Z góry dzięki za pomoc


config lcd = 16 * 2
Dim Digit As Byte
Digit = 255
'------------------------konfiguracja portow -----------
config portd = &b1111000
portd = &d11111111
config portb = &b1111111
portd = &b11111111

Rzad1 Alias Portd.0
Rzad2 Alias Portd.1
Rzad3 Alias Portd.2
Rzad4 Alias Portd.3
Kolu1 Alias Portd.4
Kolu2 Alias Portd.5
Kolu3 Alias Portd.6
'-------------------Deklaracja podprogramów ---------------
Declare Sub Keyscan
Declare Sub Wysw

'--------------------Pętla główna -------------------------
Do
Call Keyscan
Loop
'--------------------podprogram skanowania klawiszy -------
Sub Keyscan

Reset Rzad1
Set Kolu1
If Kolu1 = 0 Then
Digit = 1
Call Wysw
While Kolu1 = 0
Wend
End If

Set Kolu2
If Kolu2 = 0 Then
Digit = 2
Call Wysw
While Kolu2 = 0
Wend
End If

Set Kolu3
If Kolu3 = 0 Then
Digit = 3
Call Wyswt
While Kolu3 = 0
Wend
End If

Set Rzad1 : Reset Rzad2
Set Kolu1
If Kolu1 = 0 Then
Digit = 4
Call Wysw
While Kolu1 = 0
Wend
End If

Set Kolu2
If Kolu2 = 0 Then
Digit = 5
Call Wysw
While Kolu2 = 0
Wend
End If

Set Kolu3
If Kolu3 = 0 Then
Digit = 6
Call Wysw
While Kolu3 = 0
Wend
End If

Set Rzad2 : Reset Rzad3
Set Kolu1
If Kolu1 = 0 Then
Digit = 7
Call Wysw
While Kolu1 = 0
Wend
End If

Set Kolu2
If Kolu2 = 0 Then
Digit = 8
Call Wysw
While Kolu2 = 0
Wend
End If

Set Kolu3
If Kolu3 = 0 Then
Digit = 9
Call Wysw
While Kolu3 = 0
Wend
End If

Set Rzad3 : Reset Rzad4
Set Kolu1
If Kolu1 = 0 Then
Digit = 10
Call Wysw
While Kolu1 = 0
Wend
End If

Set Kolu2
If Kolu2 = 0 Then
Digit = 0
Call Wysw
While Kolu2 = 0
Wend
End If

Set Kolu3
If Kolu3 = 0 Then
Digit = 11
Call Wysw
While Kolu3 = 0
Wend
End If

Set Rzad4
End Sub
'----------------------------podprogram wyswietlania----------
Sub Wysw
Cls
Lcd "cyfra: " ; Digit
End Sub

Awatar użytkownika
g.matras
-
-
Posty:37
Rejestracja:11 maja 2003, o 22:33

Postautor: g.matras » 11 maja 2004, o 00:39

Czesc
Mozna prościej
Jest gotowe polecenie w Bascomie GETKBD- Zobacz w Help-ie
i tam jest schemat
pozdrawiam
GM

Awatar użytkownika
g.matras
-
-
Posty:37
Rejestracja:11 maja 2003, o 22:33

Postautor: g.matras » 11 maja 2004, o 00:42

to jeszcz raz ja
W petli głównej niedales
Gosub wysw
i to moze byc przyczyna
pozdrawiam
GM

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 11 gości