Sparrow-Pincode-Speicher                

von Michael Gaus                                
      
Elektronik-Labor  Projekte  AVR  Sparrow  Contest          




Beim Geldautomaten meiner Bank benötigt man einen 4-stelligen Pincode mit Ziffern von 0-9. Als Merkhilfe für diesen Pincode kann ein Sparrow verwendet werden.Wenn beim Einschalten der Spannungsversorgung der Taster S1 bereits gedrückt ist, dann ist der Pin-Eingabe-Mode aktiv. Dies wird durch Leuchten der roten LED angezeigt. Nun wird per SoundUart eine 4-stellige Pin erwartet, die am einfachsten über das Hex-Keyboard des Sparrow Online-Assemblers eingegeben werden kann: http://tiny.systems/article/sparrowASMCompiler.html Nach jeder empfangenen Ziffer wird diese im EEPROM des ATtiny13 abgespeichert und die grüne LED blitzt als Bestätigung kurz auf. Nachdem 4 Ziffern empfangen wurden, wird der Pin-Eingabe-Mode beendet und die rote LED geht aus.

Um die im EEPROM gespeicherte Pin anzuzeigen, muss kurz Taste S1 betätigt werden. Nun werden die 4 Ziffern durch entsprechende Anzahl an LED-Impulsen dargestellt. Die erste und die dritte Ziffer werden über die grüne LED und die zweite und die vierte Ziffer über die rote LED "geblinkt" dargestellt. Somit ist optisch direkt erkennbar, wenn die Ausgabe einer Ziffer beendet und die nächste Ziffer angezeigt wird. Eine Null wird durch 10 Blinkimpulse dargestellt, eine Eins durch 1 Blinkimpuls, eine Zwei durch 2 Blinkimpulse usw. Durch erneutes Betätigen von S1 kann die Pin jederzeit erneut angezeigt werden. Die Firmware wurde mit BascomAVR erstellt. Die Taktfrequenz beträgt 1,2 MHz (Clock prescaler = 8).

Download: Sparrow_Pincode.zip
Direkt laden:
http://tiny.systems/categorie/cheepit/PincodeSpeicher.html

$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4

Ledred Alias Portb.3
Ledgreen Alias Portb.1
S1 Alias Pinb.0
Config Pinb.1 = Output                                      'grüne LED
Config Pinb.3 = Output                                      'rote LED
Config Pinb.0 = Input                                       'S1

Dim R As Byte
Dim I As Byte
Dim J As Byte
Dim Cnt As Byte
Dim Pincode(4) As Eram Byte                                 'store in EEPROM
Open "comb.2:300,8,n,1" For Input As #1

If S1 = 0 Then                                              ' wenn S1 beim PowerOn gedrückt ==> 4-stelliger Pincode per Hex-Keyboard empfangen und im EEPROM aufzeichnen
  Ledred = 1
  For I = 1 To 4
  Get #1 , R
  R = R And 15
  Ledgreen = 1
  Pincode(i) = R
  Waitms 100
  Ledgreen = 0
  Next I
  Ledred = 0
End If

Do

  Do
  Loop Until S1 = 0                                         ' warte bis S1 gedrückt wird

  For I = 1 To 4                                            ' 4-stelligen Pincode aus EEPROM abspielen
    Cnt = Pincode(i)
    If Cnt = 0 Then
       Cnt = 10
    End If
    For J = 1 To Cnt
      If I = 1 Or I = 3 Then
        Ledgreen = 1
      Else
        Ledred = 1
      End If
      Waitms 250
      Ledgreen = 0
      Ledred = 0
      Waitms 250
    Next J
    Waitms 500
  Next I

Loop

End



Elektronik-Labor  Projekte  AVR  Sparrow Contest