Advertisement
Guest User

Untitled

a guest
May 17th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $sim 'usuwac podczas symulacji!!!
  2. $large
  3.  
  4. 'tajny szyfr (do zmiany hasla):
  5. Dim Tajnyszyfr(16) As Byte
  6. ' tajny szyfr od uzytkownika:
  7. Dim Tajnyszyfruser(16) As Byte
  8. ' dlugosc szyfru:
  9. Dim Dlugosc As Byte
  10. ' szyfr (rozmiar to 8, albowiem maksymalna dlugosc szyfru to 8):
  11. Dim Szyfr(8) As Byte
  12. ' szyfr wprowadzany przez uzytkownika:
  13. Dim Szyfruser(8) As Byte
  14. ' iterator:
  15. Dim I As Byte
  16. ' pomocniczy iterator:
  17. Dim J As Byte
  18. ' iterator tajnego szyfru:
  19. Dim Tajnyszyfriterator As Byte
  20. ' stan:
  21. ' 0 - podawanie dlugosci szyfru - pierwsze uruchomienie (gdy eprom jest pusty)
  22. ' 1 - podawanie dlugosci szyfru
  23. ' 2 - podawanie szyfru
  24. ' 3 - zatwierdzanie szyfru
  25. ' 4 - wprowadzanie szyfru przez uzytkownika
  26. ' 5 - zly szyfr
  27. ' 6 - dobry szyfr
  28. Dim Stan As Byte
  29. Dim Flaga As Bit
  30.  
  31.  
  32. ' aby zmienic haslo nalezy najpierw podac poprawny szyfr
  33. ' a nastepnie wpisac TAJNY SZYFR
  34. Tajnyszyfr(0) = 1
  35. Tajnyszyfr(1) = 2
  36. Tajnyszyfr(2) = 3
  37. Tajnyszyfr(3) = 4
  38. Tajnyszyfr(4) = 5
  39. Tajnyszyfr(5) = 6
  40. Tajnyszyfr(6) = 7
  41. Tajnyszyfr(7) = 8
  42. Tajnyszyfr(8) = 1
  43. Tajnyszyfr(9) = 2
  44. Tajnyszyfr(10) = 3
  45. Tajnyszyfr(11) = 4
  46. Tajnyszyfr(12) = 5
  47. Tajnyszyfr(13) = 6
  48. Tajnyszyfr(14) = 7
  49. Tajnyszyfr(15) = 8
  50.  
  51. ' STAS if EPROM jest pusty:
  52. Stan = 0
  53. ' STAS jeżeli coś w nim jest to należy tym czymś uzupełnić tablicę "Szyfr" i zmienić stan na 4
  54.  
  55. G1 Alias P3.0
  56. G2 Alias P3.1
  57. G3 Alias P3.2
  58. G4 Alias P3.3
  59. G5 Alias P3.4
  60. G6 Alias P3.5
  61. G7 Alias P3.6
  62. G8 Alias P3.7
  63.  
  64. Declare Sub Sprawdztajnyszyfr
  65.  
  66. Declare Sub Wprowadz_dlugosc_szyfru
  67. Declare Sub Wypisz_wprowadz_dlugosc_szyfru
  68. Declare Sub Klawiszevent_dlugosc
  69.  
  70. Declare Sub Wprowadz_szyfr1
  71. Declare Sub Wypisz_szyfr1
  72. Declare Sub Klawiszevent_szyfr1
  73.  
  74. Declare Sub Wprowadz_szyfr2
  75. Declare Sub Wypisz_szyfr2
  76. Declare Sub Klawiszevent_szyfr2
  77.  
  78. Declare Sub Sprawdz_szyfr
  79.  
  80. Declare Sub Wprowadz_szyfr_user
  81. Declare Sub Wypisz_szyfr_user
  82. Declare Sub Klawiszevent_szyfr_user
  83.  
  84. Declare Sub Sprawdz_szyfr_user
  85.  
  86.  
  87. ' main:
  88. Do
  89.  
  90.    If Tajnyszyfriterator = 16 Then
  91.       Call Sprawdztajnyszyfr
  92.    End If
  93.  
  94.    If Stan = 0 Then Stan = 1
  95.  
  96.    If Stan = 1 Then
  97.       Call Wprowadz_dlugosc_szyfru
  98.    End If
  99.  
  100.    If Stan = 2 Then
  101.       If I = Dlugosc Then
  102.          Flaga = 0
  103.          Stan = 3
  104.          I = 0
  105.       Else
  106.          Call Wprowadz_szyfr1
  107.       End If
  108.    End If
  109.  
  110.    If Stan = 3 Then
  111.       If I = Dlugosc Then
  112.          Flaga = 0
  113.          I = 0
  114.          Call Sprawdz_szyfr
  115.       Else
  116.          Call Wprowadz_szyfr2
  117.       End If
  118.    End If
  119.  
  120.    If Stan = 4 Then
  121.       If I = Dlugosc Then
  122.          Flaga = 0
  123.          I = 0
  124.          Call Sprawdz_szyfr_user
  125.       Else
  126.          Call Wprowadz_szyfr_user
  127.       End If
  128.    End If
  129.  
  130.  
  131. Loop
  132. End
  133.  
  134.  
  135.  
  136. Sub Wprowadz_dlugosc_szyfru
  137.  
  138.    If Flaga = 0 Then Call Wypisz_wprowadz_dlugosc_szyfru
  139.    Call Klawiszevent_dlugosc
  140.  
  141. End Sub
  142.  
  143. Sub Wypisz_wprowadz_dlugosc_szyfru
  144.  
  145.    Cls
  146.    Lcd "Jak dlugi szyfr?"
  147.    Lowerline
  148.    Lcd "  Dlugosc: "
  149.    Flaga = 1
  150.  
  151. End Sub
  152.  
  153. ' wprowadzanie dlugosci
  154. Sub Klawiszevent_dlugosc
  155.  
  156.    If G1 = 0 Then
  157.       Bitwait G1 , Set
  158.       Cls
  159.       Lcd " Dlugosc szyfru "
  160.       Lowerline
  161.       Lcd " Pomiedzy 4 a 8 "
  162.       Wait 5
  163.       Stan = 1
  164.       Flaga = 0
  165.  
  166.    Elseif G2 = 0 Then
  167.       Bitwait G2 , Set
  168.       Cls
  169.       Lcd " Dlugosc szyfru "
  170.       Lowerline
  171.       Lcd " Pomiedzy 4 a 8 "
  172.       Wait 5
  173.       Stan = 1
  174.       Flaga = 0
  175.  
  176.    Elseif G3 = 0 Then
  177.       Bitwait G3 , Set
  178.       Cls
  179.       Lcd " Dlugosc szyfru "
  180.       Lowerline
  181.       Lcd " pomiedzy 4 a 8 "
  182.       Wait 5
  183.       Stan = 1
  184.       Flaga = 0
  185.  
  186.    Elseif G4 = 0 Then
  187.       Bitwait G4 , Set
  188.       Lcd "4"
  189.       I = 0
  190.       dlugosc = 4
  191.       Wait 5
  192.       Stan = 2
  193.       Flaga = 0
  194.  
  195.    Elseif G5 = 0 Then
  196.       Bitwait G5 , Set
  197.       Lcd "5"
  198.       I = 0
  199.       Dlugosc = 5
  200.       Wait 5
  201.       Stan = 2
  202.       Flaga = 0
  203.  
  204.    Elseif G6 = 0 Then
  205.       Bitwait G6 , Set
  206.       Lcd "6"
  207.       I = 0
  208.       Dlugosc = 6
  209.       Wait 5
  210.       Stan = 2
  211.       Flaga = 0
  212.  
  213.    Elseif G7 = 0 Then
  214.       Bitwait G7 , Set
  215.       Lcd "7"
  216.       I = 0
  217.       Dlugosc = 7
  218.       Wait 5
  219.       Stan = 2
  220.       Flaga = 0
  221.  
  222.    Elseif G8 = 0 Then
  223.       Bitwait G8 , Set
  224.       Lcd "8"
  225.       I = 0
  226.       Dlugosc = 8
  227.       Wait 5
  228.       Stan = 2
  229.       Flaga = 0
  230.  
  231.    End If
  232.  
  233. End Sub
  234.  
  235. ' wprowadzanie szyfru:
  236. Sub Wprowadz_szyfr1
  237.  
  238.    If Flaga = 0 Then Call Wypisz_szyfr1
  239.    Call Klawiszevent_szyfr1
  240.  
  241. End Sub
  242.  
  243. Sub Wypisz_szyfr1
  244.  
  245.    Cls
  246.    Lcd "   Podaj szyfr"
  247.    Lowerline
  248.    Lcd "Szyfr: "
  249.    Flaga = 1
  250.  
  251. End Sub
  252.  
  253. ' podawanie szyfru
  254. Sub Klawiszevent_szyfr1
  255.  
  256.    If G1 = 0 Then
  257.       Bitwait G1 , Set
  258.       Lcd "#"
  259.       Szyfr(i) = 1
  260.       I = I + 1
  261.  
  262.    Elseif G2 = 0 Then
  263.       Bitwait G2 , Set
  264.       Lcd "#"
  265.       Szyfr(i) = 2
  266.       I = I + 1
  267.  
  268.    Elseif G3 = 0 Then
  269.       Bitwait G3 , Set
  270.       Lcd "#"
  271.       Szyfr(i) = 3
  272.       I = I + 1
  273.  
  274.    Elseif G4 = 0 Then
  275.       Bitwait G4 , Set
  276.       Lcd "#"
  277.       Szyfr(i) = 4
  278.       I = I + 1
  279.  
  280.    Elseif G5 = 0 Then
  281.       Bitwait G5 , Set
  282.       Lcd "#"
  283.       Szyfr(i) = 5
  284.       I = I + 1
  285.  
  286.    Elseif G6 = 0 Then
  287.       Bitwait G6 , Set
  288.       Lcd "#"
  289.       Szyfr(i) = 6
  290.       I = I + 1
  291.  
  292.    Elseif G7 = 0 Then
  293.       Bitwait G7 , Set
  294.       Lcd "#"
  295.       Szyfr(i) = 7
  296.       I = I + 1
  297.  
  298.    Elseif G8 = 0 Then
  299.       Bitwait G8 , Set
  300.       Lcd "#"
  301.       Szyfr(i) = 8
  302.       I = I + 1
  303.  
  304.    End If
  305.  
  306. End Sub
  307.  
  308. ' potwierdzanie szyfru:
  309. Sub Wprowadz_szyfr2
  310.    If Flaga = 0 Then Call Wypisz_szyfr2
  311.    Call Klawiszevent_szyfr2
  312.  
  313. End Sub
  314.  
  315. Sub Wypisz_szyfr2
  316.  
  317.    Flaga = 1
  318.    Cls
  319.    Lcd " Potwierdz szyfr"
  320.    Lowerline
  321.    Lcd "Szyfr: "
  322.  
  323. End Sub
  324.  
  325. Sub Klawiszevent_szyfr2
  326.  
  327.    If G1 = 0 Then
  328.       Bitwait G1 , Set
  329.       Lcd "#"
  330.       Szyfruser(i) = 1
  331.       I = I + 1
  332.  
  333.    Elseif G2 = 0 Then
  334.       Bitwait G2 , Set
  335.       Lcd "#"
  336.       Szyfruser(i) = 2
  337.       I = I + 1
  338.  
  339.    Elseif G3 = 0 Then
  340.       Bitwait G3 , Set
  341.       Lcd "#"
  342.       Szyfruser(i) = 3
  343.       I = I + 1
  344.  
  345.    Elseif G4 = 0 Then
  346.       Bitwait G4 , Set
  347.       Lcd "#"
  348.       Szyfruser(i) = 4
  349.       I = I + 1
  350.  
  351.    Elseif G5 = 0 Then
  352.       Bitwait G5 , Set
  353.       Lcd "#"
  354.       Szyfruser(i) = 5
  355.       I = I + 1
  356.  
  357.    Elseif G6 = 0 Then
  358.       Bitwait G6 , Set
  359.       Lcd "#"
  360.       Szyfruser(i) = 6
  361.       I = I + 1
  362.  
  363.    Elseif G7 = 0 Then
  364.       Bitwait G7 , Set
  365.       Lcd "#"
  366.       Szyfruser(i) = 7
  367.       I = I + 1
  368.  
  369.    Elseif G8 = 0 Then
  370.       Bitwait G8 , Set
  371.       Lcd "#"
  372.       Szyfruser(i) = 8
  373.       I = I + 1
  374.  
  375.    End If
  376.  
  377. End Sub
  378.  
  379. ' sprawdzanie czy podany szyfr jest zgodny z jego potwierdzeniem
  380. Sub Sprawdz_szyfr
  381.  
  382.    Flaga = 0
  383.    For J = 0 To Dlugosc
  384.       If Szyfr(j) <> Szyfruser(j) Then
  385.          Flaga = 0
  386.          Exit For
  387.       Else
  388.          Flaga = 1
  389.       End If
  390.    Next J
  391.  
  392.    If Flaga = 0 Then
  393.       Cls
  394.       Lcd " Podane szyfry "
  395.       Lowerline
  396.       Lcd "   sa rozne!   "
  397.       Wait 5
  398.       Stan = 1
  399.       Flaga = 0
  400.    Else
  401.       Cls
  402.       Lcd "  Szyfr zostal  "
  403.       Lowerline
  404.       Lcd "   ustawiony!   "
  405.  
  406.       ' STAS: Tutaj zrobić zapis tablicy "Szyfr" do EPROM!!!'
  407.  
  408.       Wait 5
  409.       Stan = 4
  410.       Flaga = 0
  411.    End If
  412.  
  413. End Sub
  414.  
  415. ' wprowadzanie szyfru przez uzytkownika (do otwierania sejfu)
  416. Sub Wprowadz_szyfr_user
  417.    If Flaga = 0 Then Call Wypisz_szyfr_user
  418.    Call Klawiszevent_szyfr_user
  419.  
  420. End Sub
  421.  
  422. Sub Wypisz_szyfr_user
  423.  
  424.    Cls
  425.    Lcd "   Podaj szyfr"
  426.    Lowerline
  427.    Lcd "Szyfr: "
  428.    Flaga = 1
  429.  
  430. End Sub
  431.  
  432. Sub Klawiszevent_szyfr_user
  433.  
  434.    If G1 = 0 Then
  435.       Bitwait G1 , Set
  436.       Lcd "#"
  437.       Szyfruser(i) = 1
  438.       I = I + 1
  439.       Tajnyszyfruser(tajnyszyfriterator) = 1
  440.       Tajnyszyfriterator = Tajnyszyfriterator + 1
  441.  
  442.    Elseif G2 = 0 Then
  443.       Bitwait G2 , Set
  444.       Lcd "#"
  445.       Szyfruser(i) = 2
  446.       I = I + 1
  447.       Tajnyszyfruser(tajnyszyfriterator) = 2
  448.       Tajnyszyfriterator = Tajnyszyfriterator + 1
  449.  
  450.    Elseif G3 = 0 Then
  451.       Bitwait G3 , Set
  452.       Lcd "#"
  453.       Szyfruser(i) = 3
  454.       I = I + 1
  455.       Tajnyszyfruser(tajnyszyfriterator) = 3
  456.       Tajnyszyfriterator = Tajnyszyfriterator + 1
  457.  
  458.    Elseif G4 = 0 Then
  459.       Bitwait G4 , Set
  460.       Lcd "#"
  461.       Szyfruser(i) = 4
  462.       I = I + 1
  463.       Tajnyszyfruser(tajnyszyfriterator) = 4
  464.       Tajnyszyfriterator = Tajnyszyfriterator + 1
  465.  
  466.    Elseif G5 = 0 Then
  467.       Bitwait G5 , Set
  468.       Lcd "#"
  469.       Szyfruser(i) = 5
  470.       I = I + 1
  471.       Tajnyszyfruser(tajnyszyfriterator) = 5
  472.       Tajnyszyfriterator = Tajnyszyfriterator + 1
  473.  
  474.    Elseif G6 = 0 Then
  475.       Bitwait G6 , Set
  476.       Lcd "#"
  477.       Szyfruser(i) = 6
  478.       I = I + 1
  479.       Tajnyszyfruser(tajnyszyfriterator) = 6
  480.       Tajnyszyfriterator = Tajnyszyfriterator + 1
  481.  
  482.    Elseif G7 = 0 Then
  483.       Bitwait G7 , Set
  484.       Lcd "#"
  485.       Szyfruser(i) = 7
  486.       I = I + 1
  487.       Tajnyszyfruser(tajnyszyfriterator) = 7
  488.       Tajnyszyfriterator = Tajnyszyfriterator + 1
  489.  
  490.    Elseif G8 = 0 Then
  491.       Bitwait G8 , Set
  492.       Lcd "#"
  493.       Szyfruser(i) = 8
  494.       I = I + 1
  495.       Tajnyszyfruser(tajnyszyfriterator) = 8
  496.       Tajnyszyfriterator = Tajnyszyfriterator + 1
  497.  
  498.    End If
  499.  
  500. End Sub
  501.  
  502. ' sprawdzanie czy szyfr jest poprawny
  503. Sub Sprawdz_szyfr_user
  504.  
  505.    Flaga = 0
  506.    For J = 0 To Dlugosc
  507.       If Szyfr(j) <> Szyfruser(j) Then
  508.          Flaga = 0
  509.          Exit For
  510.       Else
  511.          Flaga = 1
  512.       End If
  513.    Next J
  514.  
  515.    If Flaga = 0 Then
  516.       Cls
  517.       Lcd " Podano bledny "
  518.       Lowerline
  519.       Lcd "     szyfr!    "
  520.       Wait 5
  521.       Stan = 4
  522.       Flaga = 0
  523.    Else
  524.       Cls
  525.       Lcd "   Otwarte :)   "
  526.       Tajnyszyfriterator = 0
  527.       Wait 60
  528.       Stan = 4
  529.       Flaga = 0
  530.    End If
  531.  
  532. End Sub
  533.  
  534.  
  535. ' sprawdzanie tajnego szyfru
  536. Sub Sprawdztajnyszyfr
  537.  
  538.    Flaga = 0
  539.    For J = 0 To 16
  540.       If Tajnyszyfr(j) <> Tajnyszyfruser(j) Then
  541.          Flaga = 0
  542.          Exit For
  543.       Else
  544.          Flaga = 1
  545.       End If
  546.    Next J
  547.  
  548.    If Flaga = 1 Then
  549.       Cls
  550.       Lcd "  wprowadzono  "
  551.       Lowerline
  552.       Lcd "  tajny szyfr! "
  553.       Wait 5
  554.       Stan = 1
  555.       I = 0
  556.    End If
  557.  
  558.    Tajnyszyfriterator = 0
  559.  
  560. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement