logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Zamek szyfrowy na Attiny2313

CR7777 28 Gru 2009 21:00 2584 9
  • #1 7449342
    CR7777
    Poziom 10  
    Witam Na początku pragnę nadmienić iż dopiero dzisiaj poznałem język BASCOM więc mam w nim duże a nawet bardzo duże braki tak więc gdybym napisał coś żle to nie miejcie mi tego za złe :wink:

    Napisałem prościutki programik na procka który po wciśnięciu odpowiednich przycisków (wpisaniu kodu) np. zapali diodę na 2 sekundy po czym ją zgasi.

    Załóżmy że przycisków jest 6 (pind.0 - pind.5, pind.6 to wyjście) a kod to 245 (pind.1, pind.3, pind.4).
    Po wpisaniu kodu przez dwie sekundy na pind.6 jest stan "1" po czym powraca do pierwotnego stanu, przyciski także wracają do stanu "0".

    $regfile = "attiny2313.dat"                 
    $crystal = 1000000           
    
    config pind.0=input   
    config pind.1=input   
    config pind.2=input   
    config pind.3=input   
    config pind.4=input   
    config pind.5=input   
    config pind.6=output
    
    portd.0=0
    portd.1=0
    portd.2=0
    portd.3=0
    portd.4=0
    portd.5=0
    portd.6=0               
    
      do
    
          if pinb.0=0 and pind.1=1 and pind.2=0 and pind.3=1 and pind.4=1 and pind.5=0 then
          pind.6=1
          wait 2
          pind.1=0
          pind.3=0
          pind.4=0
          pind.6=0
          endif
    
      loop
    
    end 


    Wszystko ładnie (przynajmniej mam taką nadzieje) ale na przykład przychodzi ktoś kto nie zna kodu i naciska wszystkie przyciski byle jak, następnie przychodzę ja i nie wiem na których przyciskach jest jaki stan :roll:
    Więc może macie na to jakiś pomysł :wink:

    I tak w ogóle to SZCZĘŚLIWEGO NOWEGO ROKU!!!
  • Pomocny post
    #2 7450136
    gothye
    Poziom 33  
    użyj getkb (pobieranie wartosci z klawiatury),znajdziesz w konfiguracji bascom

    potem ustalasz w programie kod i porównujesz go za pomoca warunków If itp...
  • #3 7450982
    CR7777
    Poziom 10  
    A co gdy nie mam klawiatury tylko same przyciski ??
  • #4 7451155
    gothye
    Poziom 33  
    ustaw warunki ...

    if pind.0 = 0 then liczba = 0
    if pind.1 = 0 then liczba = 1

    itd ...
  • #5 7452665
    CR7777
    Poziom 10  
    A jak rozwiązać ten problem że ktoś naciska wszystkie przyciski i potem nie wiem gdzie jest jaki stan ??
  • #6 7452691
    gothye
    Poziom 33  
    niewiem czy zrobiłeś już pcb pod układ ,ale w tym co przedstawiłeś możesz maks. 6 liczb kodu uzyskać a gdybyś zmienił na klawiature matrycową ,miałbyś pełną klawiature 0-9 + 2 przyciski funkcyjne np zatwierdz i anuluj , a wszystko to za pomocą tej samej ilości pinów uC

    stosując dalej projekt bez zmiany na klawiaturę matrycową ,powiekszasz sobie ilośc problemów z tym związanych
  • #7 8082641
    maciej1994
    Poziom 10  
    mam pytanie jestem narazie zielony i chcialbym wiedziec czy kod z pierwszego linku jest dobry czy moze trzeba w nim cos przerobic

    Proszę poprawić pisownię.
    Robak
  • #8 8082792
    sp3ots
    Poziom 38  
    Witam !
    Tą część kodu
    portd.0=0
    portd.1=0
    portd.2=0
    portd.3=0
    portd.4=0
    portd.5=0
    zmień na
    portd.0=1
    portd.1=1
    portd.2=1
    portd.3=1
    portd.4=1
    portd.5=1
    Pozdrawiam. Stefan GG6293398
  • #9 8085065
    maciej1994
    Poziom 10  
    Bardzo dziekuje za odpowiedz i mam jeszcze jedno pytanie czy dalo by rade zrobic by kod wyswietlal sie na ekranie
REKLAMA