FAQ | Points | Add... | Recent posts | Search | Register | Log in


zamek elektroniczny cyfrowy kodowy BASCOM AVR


Post new topic  Reply to topic      Main Page -> Forum Index -> Electronic Circuits DIY ideas, problems -> zamek elektroniczny cyfrowy kodowy BASCOM AVR
Author
Message
wojlej
Poziom 13
Poziom 13


Joined: 09 May 2006
Posts: 114
Location: Lębork

Post#1 Post from the author of the topic 31 Mar 2009 18:47   

zamek elektroniczny cyfrowy kodowy BASCOM AVR


Witam.
Wpadłem na pomysł zrobienia zamka cyfrowego na uP. Jako, że to mój pierwszy tego typu projekt to pojawiło się kilka problemów. Głównie z programem. Kupiłem sobie książkę "Programowanie mikrokontrolerów AVR w języku BASCOM". Zaprojektowałem układ i napisałem jakiś tam
program. Umieszczam to tutaj:


A) Schemat:
zamek elektroniczny cyfrowy kodowy BASCOM AVR

Pytanie nr1. Czy to w ogóle ma prawo działać i czy jest sens stosowania EEPROMu dla przechowywania PINu? Zworka JP3 służy do awaryjnego otwarcia rygla poprzez zwarcie przekaźnika do masy (jakby coś nawaliło).
Mikroprocesor ATMEGA-8 DIP28. Klawiaturę postanowiłem, że zrobię z 12 microjumperków.

B) Program (Pisany w BASCOM-AVR)

Code:
$regfile = "m8def.dat"                                     

$crystal = 8000000                                         

Config Portc = Input                                       

Config Portb = Input                                       

Config Portd = Input                                       

Const Pin = 1234                                           

Zero Alias Pinc.0
Jeden Alias Pinc.1
Dwa Alias Pinc.2
Trzy Alias Pinc.3
Cztery Alias Pinc.4
Piec Alias Pinc.5

Szesc Alias Pinb.0
Siedem Alias Pinb.1
Osiem Alias Pinb.2
Dziewiec Alias Pinb.3
Gwiazdka Alias Pinb.4
Kratka Alias Pinb.5

Config Portc = &B000000                                     'deklaracja wartości
Config Portb = &B000000                                     'początkowej portów


Dim Liczba_1 As Integer                                     'liczba tysięczna
Dim Liczba_2 As Integer                                     'liczba setna
Dim Liczba_3 As Byte                                        'liczba dziesiętna
Dim Liczba_4 As Byte                                        'liczba jedności

Dim Haslo As Integer                                       


Do
     If Zero = 1 Then
      Liczba_1 = 0 * 1000

     If Jeden = 1 Then
      Liczba_1 = 1 * 1000

     If Dwa = 1 Then
      Liczba_1 = 2 * 1000

     If Trzy = 1 Then
      Liczba_1 = 3 * 1000

     If Cztery = 1 Then
      Liczba_1 = 4 * 1000

     If Piec = 1 Then
      Liczba_1 = 5 * 1000

     If Szesc = 1 Then
      Liczba_1 = 6 * 1000

     If Siedem = 1 Then
      Liczba_1 = 7 * 1000

     If Osiem = 1 Then
      Liczba_1 = 8 * 1000

     If Dziewiec = 1 Then
      Liczba_1 = 9 * 1000

      Waitms 500

     If Zero = 1 Then
      Liczba_2 = 0 * 100

     If Jeden = 1 Then
      Liczba_2 = 1 * 100

     If Dwa = 1 Then
      Liczba_2 = 2 * 100

     If Trzy = 1 Then
      Liczba_2 = 3 * 100

     If Cztery = 1 Then
      Liczba_2 = 4 * 100

     If Piec = 1 Then
      Liczba_2 = 5 * 100

     If Szesc = 1 Then
      Liczba_2 = 6 * 100

     If Siedem = 1 Then
      Liczba_2 = 7 * 100

     If Osiem = 1 Then
      Liczba_2 = 8 * 100

     If Dziewiec = 1 Then
      Liczba_2 = 9 * 100

      Waitms 500

     If Zero = 1 Then
      Liczba_3 = 0 * 10

     If Jeden = 1 Then
      Liczba_3 = 1 * 10

     If Dwa = 1 Then
      Liczba_3 = 2 * 10

     If Trzy = 1 Then
      Liczba_3 = 3 * 10

     If Cztery = 1 Then
      Liczba_3 = 4 * 10

     If Piec = 1 Then
      Liczba_3 = 5 * 10

     If Szesc = 1 Then
      Liczba_3 = 6 * 10

     If Siedem = 1 Then
      Liczba_3 = 7 * 10

     If Osiem = 1 Then
      Liczba_3 = 8 * 10

     If Dziewiec = 1 Then
      Liczba_3 = 9 * 10

      Waitms 500

     If Zero = 1 Then
      Liczba_4 = 0

     If Jeden = 1 Then
      Liczba_4 = 1

     If Dwa = 1 Then
      Liczba_4 = 2

     If Trzy = 1 Then
      Liczba_4 = 3

     If Cztery = 1 Then
      Liczba_4 = 4

     If Piec = 1 Then
      Liczba_4 = 5

     If Szesc = 1 Then
      Liczba_4 = 6

     If Siedem = 1 Then
      Liczba_4 = 7

     If Osiem = 1 Then
      Liczba_4 = 8

     If Dziewiec = 1 Then
      Liczba_4 = 9

      Waitms 100

      Haslo = Liczba_1 + Liczba_2 + Liczba_3 + Liczba_4

      If Haslo = Pin Then
        Pind.5 = 1
        Waitms 10000                                        'czekaj 10s

      Else
        Pind.5 = 0
        Pind.6 = 1
        Pind.7 = 1
        Waitms 2000                                         'czekaj 2s

      End If








Loop
End


Nie miałem pojęcia jak wpisać liczbę za pomocą jumperków więc postanowiłem tak:

Liczba 5467 to inaczej 5*1000 + 4*100 + 6*10 + 7

Kompletnie nie wiem czy ma to prawo działać. No i pozostaje wprowadzenie do programu deklaracji o zmianie pinu.

Proszę o podpowiedź. Pozdrawiam.
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 31 Mar 2009 18:47   





Back to top
   
gothye
Poziom 22
Poziom 22


Joined: 12 Dec 2003
Posts: 2400

Post#2 14 Apr 2009 08:18   

Re: zamek elektroniczny cyfrowy kodowy BASCOM AVR


A nie prościej użyć gotowej funkcji "GETKBD" ?

Ściągnij sobie tegoPDF-a i zobacz CONFIG KBD (s. 147) i GETKBD (s. 230).
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Electronic Circuits DIY ideas, problems -> zamek elektroniczny cyfrowy kodowy BASCOM AVR
Page 1 of 1
Similar topics
[AVR][Bascom AVR] Transmisja znakow w tym liter po RC5 (2)
progr. w avr studio 4, ladowanie flash przez bascom avr? (5)
Bascom AVR vs Bascom 51 - czy mają podobne polecenia? (10)
[atmega8][bascom] Omomierz cyfrowy AVR (1)
Zamek kodowy jak przerobić?? (8)
zamek kodowy (7)
Bascom AVR [wszystkie wersje] + AVR problem z? [kompilator] (10)
[bascom] BASCOM AVR a rozpoznanie kodu DTMF (6)
[AVR][bascom] rs-232 problem z transmisją do avr (2)

Page generation time: 0.142 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed