Sejf 4x4 PILNE!

Pytania, kody i porady dotyczące nie tylko Bascom.
ODPOWIEDZ
Aisza
Posty: 1
Rejestracja: 05 lut 2021, 10:26

Sejf 4x4 PILNE!

Post autor: Aisza » 05 lut 2021, 11:03

Witam, mam ogromny problem ponieważ nie mam jak sprawdzić tego kodu :/ dzisiaj muszę projekt oddać, gdzie Wykładowca będzie uruchamiał kod poniżej u siebie i będzie go wyświetlał na płytce ( ja takowej nie posiadam).
Efekt jaki chciałem uzyskać to żeby ten program:

Zamek szyfrowy z klawiaturą 4x4 dołączoną do portu A.
Kod czterocyfrowy z możliwością zwiększenie liczby znaków do ośmiu.
Możliwość pojedynczego kasowania błędnie wprowadzonych znaków.
Wyświetlacz LCD 16x2- wyrównanie lewostronne- "Podaj kod:"
wprowadzenie kodu np 1234 ( kazde nacisniecie klawisza- wyswietla na LCD-, po wprowadzeniu kodu na LCD-,, ***** " ) potwiera zamek na 3 sekundy. Wyświetlacz LCD- (środkowany tekst),, otwarte ",
włączona dioda LED dołączona do PORTC.0 Następie zamek zaminięty ( dioda LED wyłączona) napis
na LCD( środkowy tekst wyświetlany na 3 sekundy ) " zamknięte" i powrót do początku programu (możliwość ponownenego wprowadzenia kodu)
dodatkowo możliwość zmiany kodu na inny

Takie otrzymałem polecenie, czy mógłby ktoś sprawdzić ten kod czy działa tak jak w instrukcji powyżej i ewentualnie poprawić? Jest to dla mnie bardzo ważne bo jak już mówiłem termin mam na dziś a nie będę ukrywał pisanie w BASCOMIE to nie jest mój konik ;/
  1. $regfile = "m32def.dat"
  2. $Crystal=16000000
  3. $hwstack=40
  4. $swstack=16
  5. $framesize=32
  6.  
  7. Dim Klaw As Byte
  8. Dim Dlug As Byte
  9. Dim Wynik As Byte
  10. Dim Zliczenie As Byte
  11.  
  12.  
  13.  
  14. Dim Gwiazdki As String * 4
  15. Dim Kod As String * 4
  16. Dim Znak As String * 1
  17. Dim Znaki As String * 4
  18.  
  19. Kod = "1234"
  20.  
  21. Config Lcd = 16 * 2
  22. Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.3
  23. Config PortC = Output
  24. PORTC = 0
  25. Config PortA = Input
  26.  
  27. Config Kbd = Porta , Debounce = 50 , Delay = 150
  28. Porta = 255
  29.  
  30. Cursor Off
  31. Cursor Blink
  32.  
  33. Gosub Wys
  34.  
  35. '********podprogram ****
  36. Do
  37.    Klaw = Getkbd()
  38.    If Klaw <> 16 Then Gosub Klawisze
  39. Loop
  40. End
  41. ' usuwanie znakow'
  42.  
  43. Klawisze:
  44. Cursor Noblink
  45.    If Klaw = 0 Then Znak = "1"
  46.    If Klaw = 1 Then Znak = "2"
  47.    If Klaw = 2 Then Znak = "3"
  48.    If Klaw = 4 Then Znak = "4"
  49.    If Klaw = 5 Then Znak = "5"
  50.    If Klaw = 6 Then Znak = "6"
  51.    If Klaw = 8 Then Znak = "7"
  52.    If Klaw = 9 Then Znak = "8"
  53.    If Klaw = 10 Then Znak = "9"
  54.    If Klaw = 13 Then Znak = "0"
  55.    If Klaw = 12 Then Znak = "."
  56.  
  57. 'If Klaw = 14 Then Znak = "#"
  58. 'If Klaw = 11 Then Znak = "C"
  59.  
  60.    If Klaw = 11 Then
  61.       Dlug = Len(znaki)
  62.       Dlug = Dlug - 1
  63.       Znaki = Left(znaki , Dlug)
  64.       If Dlug = 0 Then Znaki = ""
  65.    End If
  66.  
  67.    If Klaw = 14 Then                              'enter zatwerdzenie'
  68.       Gosub Wys
  69.       Wait 2
  70.       Znaki = ""
  71.       Cursor Blink
  72.    Elseif Klaw <> 11 And Klaw <> 14 Then
  73.        Znaki = Znaki + Znak
  74.    End If
  75.  
  76.    Gosub Wys
  77. Return
  78.  
  79.  
  80.  
  81. Wys:
  82. Cls
  83. Lcd "Podaj kod:"
  84.  
  85. Dlug = Len(znaki)
  86. If Dlug = 1 Then Gwiazdki = "*"
  87. If Dlug = 2 Then Gwiazdki = "**"
  88. If Dlug = 3 Then Gwiazdki = "*"
  89. If Dlug = 4 Then Gwiazdki = "**"
  90. Locate 2 , 7
  91. Lcd Gwiazdki
  92.  
  93. If Dlug = 4 Then
  94.    Waitms 500
  95.    If Kod = Znaki Then
  96.        Cls
  97.        Lcd " Otwarte"
  98.        config Portc = 1
  99.        Wait 3
  100.        'miejsce na wpisanie zmiany kodu
  101.        config PORTC = 0
  102.  
  103.        Cls
  104.        Lcd " Zamkniete"
  105.        Wait 1
  106.  
  107.        Cls
  108.        Lcd "Podaj kod:"
  109.        Znaki = ""
  110.  
  111.   ' End If      '
  112.  
  113.    ' BLOKADA ZAMKA '
  114.  
  115.  
  116.               if zliczenie = 3 then
  117.               cls
  118.               lcd " Zamek zablokoawny na 3h"
  119.               wait 3
  120.  
  121.               zliczenie = 0
  122.               end if
  123.  
  124.  
  125. Cls
  126. Lcd " Zamkniete"
  127. Wait 1
  128. Incr zliczenie = zliczenie +1
  129.  
  130. Cls
  131. Lcd "Podaj kod:"
  132. Znaki = ""
  133. End If
  134. Return
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Sejf 4x4 PILNE!

Post autor: niveasoft » 06 lut 2021, 1:49

Let me think about it
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Sejf 4x4 PILNE!

Post autor: niveasoft » 06 lut 2021, 2:49

Możesz zdradzić co jest Twoim konikiem..lub w jakim języku lubisz programować?
A może nie lubisz w ogóle :P
ODPOWIEDZ