Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $large
- $sim
- $eeprom
- Deflcdchar 0 , 12 , 4 , 6 , 12 , 4 , 4 , 14 , 32 'ł
- Deflcdchar 1 , 2 , 4 , 14 , 16 , 14 , 1 , 30 , 32 'ś
- Deflcdchar 2 , 2 , 4 , 14 , 16 , 16 , 17 , 14 , 32 'ć
- Deflcdchar 3 , 32 , 32 , 14 , 17 , 31 , 16 , 14 , 4 'ę
- Deflcdchar 4 , 32 , 32 , 15 , 17 , 17 , 15 , 1 , 14 'g
- Deflcdchar 5 , 2 , 4 , 31 , 2 , 4 , 8 , 31 , 32 'ź
- Deflcdchar 6 , 2 , 4 , 14 , 17 , 17 , 17 , 14 , 32 'ó
- Deflcdchar 7 , 4 , 32 , 31 , 2 , 4 , 8 , 31 , 32 'ż
- 'Deflcdchar ? , 32 , 32 , 14 , 1 , 15 , 17 , 15 , 2 'ą
- Config Porta = Input
- 'Set Porta
- Dim Dlugosc As Byte
- Dim Stan As Byte
- Dim Flaga As Bit
- Dim I As Byte
- Dim J As Byte
- Dim Tajnyszyfriterator As Byte
- Dim Szyfr(9) As Byte
- Dim Szyfruser(9) As Byte
- Dim Tajnyszyfr(16) As Byte
- Dim Tajnyszyfruser(16) As Byte
- '-------------------------------------------
- Const Wsk_flaga = &H00
- Const Wsk_1 = &H01
- Const Wsk_2 = &H02
- Const Wsk_3 = &H03
- Const Wsk_4 = &H04
- Const Wsk_5 = &H05
- Const Wsk_6 = &H06
- Const Wsk_7 = &H07
- Const Wsk_8 = &H08
- Const Wsk_9 = &H09
- Dim Szyfr_pamiec(9) As Byte
- Szyfr_pamiec(1) = Wsk_1
- Szyfr_pamiec(2) = Wsk_2
- Szyfr_pamiec(3) = Wsk_3
- Szyfr_pamiec(4) = Wsk_4
- Szyfr_pamiec(5) = Wsk_5
- Szyfr_pamiec(6) = Wsk_6
- Szyfr_pamiec(7) = Wsk_7
- Szyfr_pamiec(8) = Wsk_8
- Szyfr_pamiec(9) = Wsk_9
- Dim Flaga_eprom As Byte
- Flaga_eprom = 1
- '--------------------------------------------
- Tajnyszyfr(1) = 1
- Tajnyszyfr(2) = 2
- Tajnyszyfr(3) = 3
- Tajnyszyfr(4) = 4
- Tajnyszyfr(5) = 5
- Tajnyszyfr(6) = 6
- Tajnyszyfr(7) = 7
- Tajnyszyfr(8) = 8
- Tajnyszyfr(9) = 1
- Tajnyszyfr(10) = 2
- Tajnyszyfr(11) = 3
- Tajnyszyfr(12) = 4
- Tajnyszyfr(13) = 5
- Tajnyszyfr(14) = 6
- Tajnyszyfr(15) = 7
- Tajnyszyfr(16) = 8
- Stan = 0
- Dlugosc = 0
- Flaga = 0
- ' tablice w bascomie zaczynają się od 1 xDDD
- I = 1
- Tajnyszyfriterator = 1
- Declare Sub Wprowadz_dlugosc
- Declare Sub Wprowadz_szyfr1
- Declare Sub Wprowadz_szyfr2
- Declare Sub Sprawdz_szyfr
- Declare Sub Wprowadz_szyfr_otwieranie
- Declare Sub Sprawdz_szyfr_otwieranie
- Declare Sub Zmiana_szyfru
- Dim Pom As Byte
- Dim Pom2 As Byte
- Pom2 = 16
- '-----------------------------------------------------
- ' STAS if eprom == 0 to stan = 0
- ' jezeli w epromie cos jest to stan = 3 i uzupelniamy tablice "szyfr" zawartoscia epromu
- 'zapisane_halo to flaga z adresu pamieci w ktorym trzymam info o tym czy haslojest zapisane w pamieci,
- ' jesli 1 to zapisane
- Dim Zapisane_haslo As Byte
- Readeeprom Zapisane_haslo , Wsk_flaga
- If Zapisane_haslo = 1 Then
- Stan = 3
- For I = 1 To 9
- Readeeprom Szyfr(i) , Szyfr_pamiec(i)
- Next
- Else
- Stan = 0
- End If
- '-------------------------------------------------------
- ' aby zmienic haslo nalezy najpierw podac poprawny szyfr, a nastepnie podac tajny szyfr
- ' main
- Do
- Main:
- Pom = Dlugosc + 1
- If Tajnyszyfriterator = 17 Then Call Zmiana_szyfru
- If Stan = 0 Then Call Wprowadz_dlugosc
- If Stan = 1 Then Call Wprowadz_szyfr1
- If Stan = 2 Then Call Wprowadz_szyfr2
- If Stan = 3 Then Call Wprowadz_szyfr_otwieranie
- 'Print "dlugosc=" ; Dlugosc ; " i=" ; I ; " TajnySzyfrIterator=" ; Tajnyszyfriterator
- Loop
- End
- ' wprowadzanie dlugosci
- Sub Wprowadz_dlugosc
- If Flaga = 0 Then
- Cls
- Lcd "Jak d" ; Chr(0) ; "u" ; Chr(4) ; "i szyfr?"
- Lowerline
- Lcd " D" ; Chr(0) ; "u" ; Chr(4) ; "o" ; Chr(1) ; Chr(2) ; ": "
- Flaga = 1
- End If
- If Porta.0 = 1 Then
- Bitwait Porta.0 , Reset
- Cls
- Lcd " D" ; Chr(0) ; "u" ; Chr(4) ; "o" ; Chr(1) ; Chr(2) ; " szyfru "
- Lowerline
- Lcd " Pomi" ; Chr(3) ; "dzy 4 a 8 "
- Wait 5
- Flaga = 0
- Goto Main
- End If
- If Porta.1 = 1 Then
- Bitwait Porta.1 , Reset
- Cls
- Lcd " D" ; Chr(0) ; "u" ; Chr(4) ; "o" ; Chr(1) ; Chr(2) ; " szyfru "
- Lowerline
- Lcd " Pomi" ; Chr(3) ; "dzy 4 a 8 "
- Wait 5
- Flaga = 0
- Goto Main
- End If
- If Porta.2 = 1 Then
- Bitwait Porta.2 , Reset
- Cls
- Lcd " D" ; Chr(0) ; "u" ; Chr(4) ; "o" ; Chr(1) ; Chr(2) ; " szyfru "
- Lowerline
- Lcd " Pomi" ; Chr(3) ; "dzy 4 a 8 "
- Wait 5
- Flaga = 0
- Goto Main
- End If
- If Porta.3 = 1 Then
- Bitwait Porta.3 , Reset
- Lcd "4"
- Dlugosc = 5
- Stan = 1
- Flaga = 0
- End If
- If Porta.4 = 1 Then
- Bitwait Porta.4 , Reset
- Lcd "5"
- Dlugosc = 6
- Stan = 1
- Flaga = 0
- End If
- If Porta.5 = 1 Then
- Bitwait Porta.5 , Reset
- Lcd "6"
- Dlugosc = 7
- Stan = 1
- Flaga = 0
- End If
- If Porta.6 = 1 Then
- Bitwait Porta.6 , Reset
- Lcd "7"
- Dlugosc = 8
- Stan = 1
- Flaga = 0
- End If
- If Porta.7 = 1 Then
- Bitwait Porta.7 , Reset
- Lcd "8"
- Dlugosc = 9
- Stan = 1
- Flaga = 0
- End If
- End Sub
- ' wprowadzanie szyfru
- Sub Wprowadz_szyfr1
- If Flaga = 0 Then
- Cls
- Lcd " Podaj szyfr"
- Lowerline
- Lcd "Szyfr: "
- Flaga = 1
- End If
- If I = Dlugosc Then
- Stan = 2
- Flaga = 0
- I = 1
- Goto Main
- End If
- If Porta.0 = 1 Then
- Bitwait Porta.0 , Reset
- Lcd "#"
- Szyfr(i) = 1
- Incr I
- End If
- If Porta.1 = 1 Then
- Bitwait Porta.1 , Reset
- Lcd "#"
- Szyfr(i) = 2
- Incr I
- End If
- If Porta.2 = 1 Then
- Bitwait Porta.2 , Reset
- Lcd "#"
- Szyfr(i) = 3
- Incr I
- End If
- If Porta.3 = 1 Then
- Bitwait Porta.3 , Reset
- Lcd "#"
- Szyfr(i) = 4
- Incr I
- End If
- If Porta.4 = 1 Then
- Bitwait Porta.4 , Reset
- Lcd "#"
- Szyfr(i) = 5
- Incr I
- End If
- If Porta.5 = 1 Then
- Bitwait Porta.5 , Reset
- Lcd "#"
- Szyfr(i) = 6
- Incr I
- End If
- If Porta.6 = 1 Then
- Bitwait Porta.6 , Reset
- Lcd "#"
- Szyfr(i) = 7
- Incr I
- End If
- If Porta.7 = 1 Then
- Bitwait Porta.7 , Reset
- Lcd "#"
- Szyfr(i) = 8
- Incr I
- End If
- End Sub
- ' potwierdzanie szyfru
- Sub Wprowadz_szyfr2
- If Flaga = 0 Then
- Flaga = 1
- Cls
- Lcd " Potwierd" ; Chr(5) ; " szyfr"
- Lowerline
- Lcd "Szyfr: "
- Flaga = 1
- End If
- If I = Dlugosc Then
- Stan = 2
- Flaga = 0
- I = 1
- Call Sprawdz_szyfr
- End If
- If Porta.0 = 1 Then
- Bitwait Porta.0 , Reset
- Lcd "#"
- Szyfruser(i) = 1
- Incr I
- End If
- If Porta.1 = 1 Then
- Bitwait Porta.1 , Reset
- Lcd "#"
- Szyfruser(i) = 2
- Incr I
- End If
- If Porta.2 = 1 Then
- Bitwait Porta.2 , Reset
- Lcd "#"
- Szyfruser(i) = 3
- Incr I
- End If
- If Porta.3 = 1 Then
- Bitwait Porta.3 , Reset
- Lcd "#"
- Szyfruser(i) = 4
- Incr I
- End If
- If Porta.4 = 1 Then
- Bitwait Porta.4 , Reset
- Lcd "#"
- Szyfruser(i) = 5
- Incr I
- End If
- If Porta.5 = 1 Then
- Bitwait Porta.5 , Reset
- Lcd "#"
- Szyfruser(i) = 6
- Incr I
- End If
- If Porta.6 = 1 Then
- Bitwait Porta.6 , Reset
- Lcd "#"
- Szyfruser(i) = 7
- Incr I
- End If
- If Porta.7 = 1 Then
- Bitwait Porta.7 , Reset
- Lcd "#"
- Szyfruser(i) = 8
- Incr I
- End If
- End Sub
- ' sprawdzanie czy podany szyfr zgadza sie z jego potwierdzeniem
- Sub Sprawdz_szyfr
- Flaga = 0
- For J = 1 To Dlugosc
- If Szyfr(j) <> Szyfruser(j) Then
- Flaga = 0
- Exit For
- Else
- Flaga = 1
- End If
- 'Print "J=" ; J ; " " ; Szyfr(j) ; " " ; Szyfruser(j) ; " flaga= " ; Flaga
- Next J
- 'Print "flaga=" ; Flaga
- If Flaga = 0 Then
- Cls
- Lcd " Podano r" ; Chr(6) ; Chr(7) ; "ne "
- Lowerline
- Lcd " szyfry! "
- Wait 5
- Stan = 0
- Flaga = 0
- I = 1
- Else
- Cls
- Lcd " Szyfr zosta" ; Chr(0) ; " "
- Lowerline
- Lcd " ustawiony! "
- '------------------------------------------------------------------
- ' STAS: Tutaj zrobić zapis tablicy "Szyfr" do EPROM!!!'
- For I = 1 To 9 'od 1 bo 0 to flaga
- Writeeeprom Szyfr(i) , Szyfr_pamiec(i)
- Next
- Writeeeprom Flaga_eprom , Wsk_flaga
- '-----------------------------------------------------------------
- Wait 5
- Stan = 3
- Flaga = 0
- I = 1
- End If
- End Sub
- ' domyslny tryb pracy (otwieranie sejfu jezeli szyfr jest poprawny)
- Sub Wprowadz_szyfr_otwieranie
- If Flaga = 0 Then
- Cls
- Lcd " Podaj szyfr"
- Lowerline
- Lcd "Szyfr: "
- Flaga = 1
- End If
- If I = Dlugosc Then
- Stan = 2
- Flaga = 0
- I = 1
- Call Sprawdz_szyfr_otwieranie
- End If
- If Porta.0 = 1 Then
- Bitwait Porta.0 , Reset
- Lcd "#"
- Szyfruser(i) = 1
- Incr I
- Tajnyszyfruser(tajnyszyfriterator) = 1
- Incr Tajnyszyfriterator
- End If
- If Porta.1 = 1 Then
- Bitwait Porta.1 , Reset
- Lcd "#"
- Szyfruser(i) = 2
- Incr I
- Tajnyszyfruser(tajnyszyfriterator) = 2
- Incr Tajnyszyfriterator
- End If
- If Porta.2 = 1 Then
- Bitwait Porta.2 , Reset
- Lcd "#"
- Szyfruser(i) = 3
- Incr I
- Tajnyszyfruser(tajnyszyfriterator) = 3
- Incr Tajnyszyfriterator
- End If
- If Porta.3 = 1 Then
- Bitwait Porta.3 , Reset
- Lcd "#"
- Szyfruser(i) = 4
- Incr I
- Tajnyszyfruser(tajnyszyfriterator) = 4
- Incr Tajnyszyfriterator
- End If
- If Porta.4 = 1 Then
- Bitwait Porta.4 , Reset
- Lcd "#"
- Szyfruser(i) = 5
- Incr I
- Tajnyszyfruser(tajnyszyfriterator) = 5
- Incr Tajnyszyfriterator
- End If
- If Porta.5 = 1 Then
- Bitwait Porta.5 , Reset
- Lcd "#"
- Szyfruser(i) = 6
- Incr I
- Tajnyszyfruser(tajnyszyfriterator) = 6
- Incr Tajnyszyfriterator
- End If
- If Porta.6 = 1 Then
- Bitwait Porta.6 , Reset
- Lcd "#"
- Szyfruser(i) = 7
- Incr I
- Tajnyszyfruser(tajnyszyfriterator) = 7
- Incr Tajnyszyfriterator
- End If
- If Porta.7 = 1 Then
- Bitwait Porta.7 , Reset
- Lcd "#"
- Szyfruser(i) = 8
- Incr I
- Tajnyszyfruser(tajnyszyfriterator) = 8
- Incr Tajnyszyfriterator
- End If
- End Sub
- ' sprawdzanie czy podany przez uzytkownika szyfr jest poprawny
- Sub Sprawdz_szyfr_otwieranie
- Flaga = 0
- For J = 1 To Dlugosc
- If Szyfr(j) <> Szyfruser(j) Then
- Flaga = 0
- Exit For
- Else
- Flaga = 1
- End If
- Next J
- If Flaga = 1 Then
- Cls
- Lcd " Otwarte :) "
- Wait 60
- Stan = 3
- Flaga = 0
- I = 1
- Tajnyszyfriterator = 1
- Else
- Cls
- Lcd " Podano b" ; Chr(0) ; Chr(3) ; "dny "
- Lowerline
- Lcd " szyfr! "
- Wait 5
- Stan = 3
- Flaga = 0
- I = 1
- End If
- End Sub
- ' sprawdzanie czy ukryty szyfr jest poprawny
- Sub Zmiana_szyfru
- Tajnyszyfriterator = 1
- Flaga = 0
- 'Break
- For J = 1 To Pom2
- If Tajnyszyfr(j) <> Tajnyszyfruser(j) Then
- Flaga = 0
- Exit For
- Else
- Flaga = 1
- End If
- 'Print Tajnyszyfr(j) ; " " ; Tajnyszyfruser(j)
- Next J
- For J = 1 To Pom2
- 'Print "TajnySzyfr= " ; Tajnyszyfr(j) ; " " ; "TajnySzyfrUser= " ; Tajnyszyfruser(j)
- Next J
- If Flaga = 1 Then
- Cls
- Lcd " wprowadzono "
- Lowerline
- Lcd " tajny szyfr "
- Wait 4
- Flaga = 0
- I = 1
- Stan = 0
- Goto Main
- End If
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement