'Zamek Mikroprocesorowy
'procesor 89C2051
'*******************************
$crystal = 12000000
Dim Klawisz As Byte , Adm As Byte , Wynik As Byte
Dim Licznik As Byte , Licznik1 As Byte
Dim Kod1 As String * 10 , Kod0 As String * 10
P1 = 255
P3 = 255
Licznik = 0
Licznik1 = 0
Kod0 = "[\]"
Kod1 = Left(0) ????TU mi wywala błąd ???? .......pomocy ...dlaczego[/b]
Wynik = 0
Adm = 0
'*******************************
'petla glowna
'*******************************
Do
Reset P1.6
Klawisz = 60
Gosub Kolumna
Reset P1.5
Klawisz = 70
Gosub Kolumna
Reset P1.3
Klawisz = 80
Gosub Kolumna
Reset P1.1
Klawisz = 90
Gosub Kolumna
Loop
'*******************************
'podprogram kolumna
'*******************************
Kolumna:
If P1.4 = 0 Then
P3.3 = 0
Klawisz = Klawisz + 1
Waitms 20
Bitwait P1.7 , Set
Waitms 100
P3.3 = 1
Gosub Kod
End If
If P1.7 = 0 Then
P3.3 = 0
Klawisz = Klawisz + 2
Waitms 20
Bitwait P1.7 , Set
Waitms 100
P3.3 = 1
Gosub Kod
End If
If P1.2 = 0 Then
P3.3 = 0
Klawisz = Klawisz + 3
Waitms 20
Bitwait P1.2 , Set
Waitms 100
P3.3 = 1
Gosub Kod
End If
P1 = 255
Return
'*******************************
'podprogram kod
'*******************************
Kod:
If Adm = 1 Then
If Klawisz = 61 Then
Adm = 0
Wynik = 0
Licznik1 = 0
Gosub Kasuj
Return
End If
Kod0 = Kod0 + Chr(klawisz)
INC LICZNIK1
If Licznik = 10 Then
Adm = 0
Kod0 = Left(0)
Licznik1 = 0
Gosub Kasuj
End If
Return
End If
If Klawisz = 61 Then
Gosub Porownaj
If Wynik = 1 Then
Gosub Przekaznik
End If
Gosub Kasuj
Return
End If
If Klawisz = 63 Then
Gosub Porownaj
End If
If Klawisz = 63 Then
If Wynik = 1 Then
Adm = 1
Kod0 = Left(0)
Liczni1 = 0
End If
Return
End If
Kod1 = Kod1 + Chr(klawisz)
INC LICZNIK
If Licznik = 10 Then
Gosub Kasuj
End If
Return
'*********************************
'podprogram porownaj
'*********************************
Porownaj:
If Kod0 = Kod1 Then
Wynik = 1
End If
Return
'*********************************
'podprogram kasuj
'*********************************
Kasuj:
Kod1 = Left(0)
Licznik = 0
Wynik = 0
Return
'*********************************
'podprogram przekaznik
'*********************************
Przekaznik:
If P3.2 = 0 Then
P3.4 = Not P3.4
P3.5 = Not P3.5
Return
End If
P3.4 = 0
P3.5 = 0
Wait 4
P3.4 = 1
P3.5 = 1
Return
'procesor 89C2051
'*******************************
$crystal = 12000000
Dim Klawisz As Byte , Adm As Byte , Wynik As Byte
Dim Licznik As Byte , Licznik1 As Byte
Dim Kod1 As String * 10 , Kod0 As String * 10
P1 = 255
P3 = 255
Licznik = 0
Licznik1 = 0
Kod0 = "[\]"
Kod1 = Left(0) ????TU mi wywala błąd ???? .......pomocy ...dlaczego[/b]
Wynik = 0
Adm = 0
'*******************************
'petla glowna
'*******************************
Do
Reset P1.6
Klawisz = 60
Gosub Kolumna
Reset P1.5
Klawisz = 70
Gosub Kolumna
Reset P1.3
Klawisz = 80
Gosub Kolumna
Reset P1.1
Klawisz = 90
Gosub Kolumna
Loop
'*******************************
'podprogram kolumna
'*******************************
Kolumna:
If P1.4 = 0 Then
P3.3 = 0
Klawisz = Klawisz + 1
Waitms 20
Bitwait P1.7 , Set
Waitms 100
P3.3 = 1
Gosub Kod
End If
If P1.7 = 0 Then
P3.3 = 0
Klawisz = Klawisz + 2
Waitms 20
Bitwait P1.7 , Set
Waitms 100
P3.3 = 1
Gosub Kod
End If
If P1.2 = 0 Then
P3.3 = 0
Klawisz = Klawisz + 3
Waitms 20
Bitwait P1.2 , Set
Waitms 100
P3.3 = 1
Gosub Kod
End If
P1 = 255
Return
'*******************************
'podprogram kod
'*******************************
Kod:
If Adm = 1 Then
If Klawisz = 61 Then
Adm = 0
Wynik = 0
Licznik1 = 0
Gosub Kasuj
Return
End If
Kod0 = Kod0 + Chr(klawisz)
INC LICZNIK1
If Licznik = 10 Then
Adm = 0
Kod0 = Left(0)
Licznik1 = 0
Gosub Kasuj
End If
Return
End If
If Klawisz = 61 Then
Gosub Porownaj
If Wynik = 1 Then
Gosub Przekaznik
End If
Gosub Kasuj
Return
End If
If Klawisz = 63 Then
Gosub Porownaj
End If
If Klawisz = 63 Then
If Wynik = 1 Then
Adm = 1
Kod0 = Left(0)
Liczni1 = 0
End If
Return
End If
Kod1 = Kod1 + Chr(klawisz)
INC LICZNIK
If Licznik = 10 Then
Gosub Kasuj
End If
Return
'*********************************
'podprogram porownaj
'*********************************
Porownaj:
If Kod0 = Kod1 Then
Wynik = 1
End If
Return
'*********************************
'podprogram kasuj
'*********************************
Kasuj:
Kod1 = Left(0)
Licznik = 0
Wynik = 0
Return
'*********************************
'podprogram przekaznik
'*********************************
Przekaznik:
If P3.2 = 0 Then
P3.4 = Not P3.4
P3.5 = Not P3.5
Return
End If
P3.4 = 0
P3.5 = 0
Wait 4
P3.4 = 1
P3.5 = 1
Return