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 ;/
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "m32def.dat"
- $Crystal=16000000
- $hwstack=40
- $swstack=16
- $framesize=32
- Dim Klaw As Byte
- Dim Dlug As Byte
- Dim Wynik As Byte
- Dim Zliczenie As Byte
- Dim Gwiazdki As String * 4
- Dim Kod As String * 4
- Dim Znak As String * 1
- Dim Znaki As String * 4
- Kod = "1234"
- Config Lcd = 16 * 2
- Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.3
- Config PortC = Output
- PORTC = 0
- Config PortA = Input
- Config Kbd = Porta , Debounce = 50 , Delay = 150
- Porta = 255
- Cursor Off
- Cursor Blink
- Gosub Wys
- '********podprogram ****
- Do
- Klaw = Getkbd()
- If Klaw <> 16 Then Gosub Klawisze
- Loop
- End
- ' usuwanie znakow'
- Klawisze:
- Cursor Noblink
- If Klaw = 0 Then Znak = "1"
- If Klaw = 1 Then Znak = "2"
- If Klaw = 2 Then Znak = "3"
- If Klaw = 4 Then Znak = "4"
- If Klaw = 5 Then Znak = "5"
- If Klaw = 6 Then Znak = "6"
- If Klaw = 8 Then Znak = "7"
- If Klaw = 9 Then Znak = "8"
- If Klaw = 10 Then Znak = "9"
- If Klaw = 13 Then Znak = "0"
- If Klaw = 12 Then Znak = "."
- 'If Klaw = 14 Then Znak = "#"
- 'If Klaw = 11 Then Znak = "C"
- If Klaw = 11 Then
- Dlug = Len(znaki)
- Dlug = Dlug - 1
- Znaki = Left(znaki , Dlug)
- If Dlug = 0 Then Znaki = ""
- End If
- If Klaw = 14 Then 'enter zatwerdzenie'
- Gosub Wys
- Wait 2
- Znaki = ""
- Cursor Blink
- Elseif Klaw <> 11 And Klaw <> 14 Then
- Znaki = Znaki + Znak
- End If
- Gosub Wys
- Return
- Wys:
- Cls
- Lcd "Podaj kod:"
- Dlug = Len(znaki)
- If Dlug = 1 Then Gwiazdki = "*"
- If Dlug = 2 Then Gwiazdki = "**"
- If Dlug = 3 Then Gwiazdki = "*"
- If Dlug = 4 Then Gwiazdki = "**"
- Locate 2 , 7
- Lcd Gwiazdki
- If Dlug = 4 Then
- Waitms 500
- If Kod = Znaki Then
- Cls
- Lcd " Otwarte"
- config Portc = 1
- Wait 3
- 'miejsce na wpisanie zmiany kodu
- config PORTC = 0
- Cls
- Lcd " Zamkniete"
- Wait 1
- Cls
- Lcd "Podaj kod:"
- Znaki = ""
- ' End If '
- ' BLOKADA ZAMKA '
- if zliczenie = 3 then
- cls
- lcd " Zamek zablokoawny na 3h"
- wait 3
- zliczenie = 0
- end if
- Cls
- Lcd " Zamkniete"
- Wait 1
- Incr zliczenie = zliczenie +1
- Cls
- Lcd "Podaj kod:"
- Znaki = ""
- End If
- Return