Sparrow-Pincode-Speicher
von Michael Gaus
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