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
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $regfile = "m32def.dat"
- $Crystal=16000000
- $hwstack=40
- $swstack=16
- $framesize=32
- Dim Klawiatura As Byte
- Dim Dlugosc As Byte
- Dim Wynik As Byte
- Dim Blokada As Byte
- Dim Kod As String * 4
- Dim Znak As String * 1
- Dim Znaki As String * 5
- 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
- Porta = 255
- Config Kbd = Porta , Debounce = 50 , Delay = 125
- Cursor Off
- Cursor Blink
- Gosub Wys
- Do
- Klawiatura = Getkbd()
- If Klawiatura <> 16 Then Gosub Przyciski
- Loop
- End
- Przyciski:
- Cursor Noblink
- If Klawiatura = 0 Then Znak = "1"
- If Klawiatura = 1 Then Znak = "2"
- If Klawiatura = 2 Then Znak = "3"
- If Klawiatura = 4 Then Znak = "4"
- If Klawiatura = 5 Then Znak = "5"
- If Klawiatura = 6 Then Znak = "6"
- If Klawiatura = 8 Then Znak = "7"
- If Klawiatura = 9 Then Znak = "8"
- If Klawiatura = 10 Then Znak = "9"
- If Klawiatura = 11 Then Znak = "C"
- If Klawiatura = 12 Then Znak = "."
- If Klawiatura = 13 Then Znak = "0"
- If Klawiatura = 14 Then Znak = "#"
- 'Kasowanie przez przycisk "C"
- If Klawiatura = 11 Then
- Dlugosc = Len(Znaki)
- Dlugosc = Dlugosc - 1
- Znaki = Left(Znaki , Dlugosc)
- If Dlugosc = 0 Then Znaki = ""
- End If
- 'Zatwierdzenie przez przycisk "#"
- If Klawiatura = 14 Then
- Gosub Wys
- Wait 2
- Znaki = ""
- Cursor Blink
- Elseif Klawiatura <> 11 And Klawiatura <> 14 Then
- Znaki = Znaki + Znak
- End If
- Gosub Wys
- Return
- 'Wyswietlacz'
- Wys:
- Cls
- Lcd "Podaj kod: " ; Znaki
- Locate 2 , 7
- If Dlugosc = 0 Then Lcd "*"
- If Dlugosc = 1 Then Lcd "**"
- If Dlugosc = 2 Then Lcd "***"
- If Dlugosc = 3 Then Lcd "****"
- If Dlugosc = 4 Then
- Dlugosc = 1
- Else
- Incr Dlugosc
- End If
- If Dlugosc = 4 Then
- Waitms 250
- If Kod = Znaki Then
- Cls
- Lcd "Otwarte"
- Portc.0 = 1
- Wait 3
- Portc.0 = 0
- Cls
- Lcd " Zamkniete"
- Wait 1
- Cls
- Lcd "Podaj kod:"
- Znaki = ""
- End If
- ' Blokada zamka '
- If Blokada = 3 Then
- Cls
- Lcd " Zamek zamkniety na 1h"
- Wait 1
- Blokada = 0
- End if
- Cls
- Lcd " Zamkniete"
- Wait 1
- Incr Blokada '+1'
- Cls
- Lcd "Podaj kod:"
- Znaki = ""
- End If
- Do
- Loop Until Pina.0 = 1 And Pina.1 = 1 And Pina.2 = 1 And Pina.3 = 1
- Return