Stap 5: SOFTWARE
Parallax de fabrikant van de Stamp micro-controllers biedt een zeer goede en gratis windows-editor. Gewoon naar beneden laden de editor en met de volgende tekst knippen en geplakte erin. U zult met een eenvoudige RS232 of USB-4 pin kabel (constructie van de machine zelf of koop van Parallax site) communiceren met vreemdelingen snel.
Een tekstbestand met deze basic-programma (S.BS2) is ook opgenomen.
-----------------------------------------------------------------------------------------------------------------------------------
'
' Vlag-FLIKKERING, hart-kloppen, EYE-OPEN / links / rechts-slot & M-J-T
'
' Scant van links naar rechts
'
' 1 2 3 4 5 6 7
' .---------------.
' 1 | o o o o o o o |
' 2 | o o o o o o o |
' 3 | o o o o o o o |
' 4 | o o o o o o o |
' 5 | o o o o o o o |
' `---------------@
IK VAR NIB
RODE VAR NIB
BLU VAR NIB
PTR-VAR NIB
HANGOOR VAR NIB
DAT VAR NIB(15)
TABEL1 GEGEVENS (1)
VET VAR BYTE
TIJD VAR WORD
DIRS =-1 ' alle uitgangen
HANGOOR = 3 ' DOEN ALLE VIER
0, LEES IK: TAK I, [VLAG, HART, OGEN, MJT, FINI]
'========================= FLAG ==============================
VLAG
SCHRIJVEN 0,1 ' EEPROM = 0 VOLGENDE = 1
TIJD = 9000
' 12345 12345 Toon LED
' BBBBBgggggRRRRR tijdens
VOOR VET = 0 TOT 80 ' RED/WHT/BLU
OUTS = % 1111111111011111: PAUZE 4
OUTS = % 1011110111111111: PAUZE 4
OUTS = % 1011111111111111: PAUZE 4
OUTS = % 1101111111111111: PAUZE 4
VOLGENDE
GOTO LOOP_F
LOOP_F
VOOR I = 1 TOT EN MET 4
' 12345 12345 RIJDEN 15 LEDS
' BBBBBgggggRRRRR WIJNBOUWER door WIJNBOUWER
OUTS = % 0001111111111111
OUTS = % 0011111111111110: GOSUB P
OUTS = % 1001111111111110: GOSUB P
OUTS = % 0101111111111110: GOSUB P
OUTS = % 1110111101111110: GOSUB P
OUTS = % 1110111111111100: GOSUB P
VOLGENDE
VOOR I = 1 TOT EN MET 3
' 12345 12345 RIJDEN 15 LEDS
' BBBBBgggggRRRRR WIJNBOUWER door WIJNBOUWER
OUTS = % 1010111111111101
OUTS = % 1010111111111110: GOSUB P
OUTS = % 1111110101111110: GOSUB P
OUTS = % 1111111111010100: GOSUB P
VOLGENDE
TIJD = tijd-1:IF tijd > 1 dan LOOP_F
HANGOOR = HANGOOR-1:IF HANGOOR = 0 DAN FINI
'========================= HEART ==============================
HART
SCHRIJVEN 0,2 ' EEPROM = 1 VOLGENDE = 2
TIJD = 9000
'~~~~~~~~~~~~~~~~~~~~Clock
' :
' 12345 12345: Toon LED
' BBBBBgggggRRRRR: tijdens
OUTS = % 1001111111100111' wacht
PAUZE 900 ' Reset Scanner naar wijnbouwer 1
OUTS = % 1111111111111110
DAT(0) = 0 ' BLAUWE KLOPPEN VOLGORDE
DAT(1) = 0
DAT(2) = 1
DAT(3) = 1
DAT(4) = 2
DAT(5) = 3
DAT(6) = 4
DAT(7) = 5
DAT(8) = 5
DAT(9) = 5
DAT (10) = 4
DAT (11) = 3
DAT (11) = 2
DAT (12) = 1
DAT (13) = 1
DAT (14) = 0
DAT (15) = 0
LOOP_H
PTR = PTR + 1:BLU = DAT (PTR): ROOD = 5-BLU
VOOR I = 0 ROOD ' 12345 12345
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS = % 1111111111100110: OUTS = OUTS: OUTS = % 1111111111100111
OUTS = % 1111111111000010: OUTS = OUTS: OUTS = % 1111111111000011
OUTS = % 1111111111000000: OUTS = OUTS: OUTS = % 1111111111100001
OUTS = % 1111111111100000: OUTS = OUTS: OUTS = % 1111111111100001
OUTS = % 1111111111000000: OUTS = OUTS: OUTS = % 1111111111000011
OUTS = % 1111111111000010: OUTS = OUTS: OUTS = % 1111111111100111
OUTS = % 1111111111100110: OUTS = OUTS: OUTS = % 1111111111111111
VOLGENDE
TIJD = TIJD-1
VOOR I = 0 TOT BLU ' 12345 12345
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS = % 1001111111111110: OUTS = OUTS: OUTS = % 1001111111111111
OUTS = % 0000111111111110: OUTS = OUTS: OUTS = % 0000111111111111
OUTS = % 0000011111111110: OUTS = OUTS: OUTS = % 1000011111111111
OUTS = % 1000011111111110: OUTS = OUTS: OUTS = % 1000011111111111
OUTS = % 0000011111111110: OUTS = OUTS: OUTS = % 0000111111111111
OUTS = % 0000111111111110: OUTS = OUTS: OUTS = % 1001111111111111
OUTS = % 1001111111111110: OUTS = OUTS: OUTS = % 1111111111111111
VOLGENDE
Als tijd > 1 dan LOOP_H
HANGOOR = HANGOOR-1:IF HANGOOR = 0 DAN FINI
'========================= EYE ==============================
OOG
SCHRIJVEN 0,3 ' EEPROM = 2 VOLGENDE = 3
TIJD = 9000
' Oog kijkt links & rechts
'
'~~~~~~~~~~~~~~~~~~~~Clock
' :
' 12345 12345: Toon LED
' BBBBBgggggRRRRR: tijdens
OUTS = % 1111111011110111' wacht
PAUZE 900 ' Reset Scanner naar wijnbouwer 1
PTR = 0 ' SPCLCRCPS 0123456789
VET = 200
LOOP_E
FAT = vet-1:IF vet > 0 dan E_BALL
VET = 35:PTR = PTR + 1:IF PTR < 9 dan E_BALL
PTR = 0
E_BALL
TIJD = tijd-1:IF tijd < 2 dan EYE_TEST
BRANCH PTR [SHUT PEEK, CENTER, LINKS, CENTER, RECHTS, CENTER, PEEK, SHUT]
CENTRUM ' 12345 12345 12345
' BBBBBgggggRRRRR BBBBBgggggRRRRR
GOSUB DSPL ' leider
GOSUB DSPM ' midden
GOSUB DSPE ' Ender
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS = % 1111111111111111: OUTS = % 1111111111111110
HOGE 0:LOW 0
GOSUB LEERLING
OUTS = % 1111111111111111: OUTS = % 1111111111111110
HOGE 0:LOW 0:GOTO LOOP_E
RECHTS ' BBBBgggggRRRRR BBBBBgggggRRRRR
GOSUB DSPL ' leider
GOSUB DSPM ' midden
OUTS = % 1111101110011101: PAUZE 1:LOW 0
OUTS = % 1111110001100011: PAUZE 1:LOW 0
' BBBBBgggggRRRRR BBBBBgggggRRRRR
GOSUB DARK3
GOSUB LEERLING
OUTS = % 1111111111111111: OUTS = % 1111111111111110
GOTO LOOP_E
LINKS ' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS = % 1111110001100011: PAUZE 1:LOW 0
OUTS = % 1111101110011101: PAUZE 1:LOW 0
GOSUB DSPM ' midden
GOSUB DSPE ' Ender
' OUTS = % 1111111111111110
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS = % 1111111111111111: OUTS = % 1111111111111110
GOSUB LEERLING
GOSUB DARK3
GOTO LOOP_E
DSPL
OUTS = % 1111111011110111: PAUZE 1:LOW 0
OUTS = % 1111110101101011: PAUZE 1:LOW 0
TERUGKEER
DSPM
OUTS = % 1111101110011101: PAUZE 1:LOW 0
OUTS = % 1111101110011101: PAUZE 1:LOW 0
OUTS = % 1111101110011101: PAUZE 1:LOW 0
TERUGKEER
DSPE
OUTS = % 1111110101101011: PAUZE 1:LOW 0
OUTS = % 1111111011110111: PAUZE 1:LOW 0
TERUGKEER
LEERLING
OUTS = % 1000111111111111: PAUZE 0:OUTS = % 1101111111111110: PAUSE 1
OUTS = % 1000111011111111: PAUZE 0:OUTS = % 1000111111111110: PAUSE 1
OUTS = % 1000111111111111: PAUZE 0:OUTS = % 1101111111111110: PAUSE 1
TERUGKEER
DARK3
OUTS = % 1111111111111111: LAAG 0
HOGE 0:LOW 0
HOGE 0:LOW 0
TERUGKEER
PEEK
OUTS = % 1111111011110111: PAUZE 1:LOW 0
OUTS = % 1111111011110111: PAUZE 1:LOW 0
OUTS = % 1111110101101011: PAUZE 1:LOW 0
OUTS = % 1111110101101011: PAUZE 1:LOW 0
OUTS = % 1111110101101011: PAUZE 1:LOW 0
OUTS = % 1111111011110111: PAUZE 1:LOW 0
OUTS = % 1111111011110111: PAUZE 1:LOW 0
OUTS = % 1111111111111111: PAUZE 1:LOW 0
OUTS = % 1111111111111111: PAUZE 1:LOW 0
OUTS = % 1101111111111111: PAUZE 0:OUTS = % 1101111111111110: PAUSE 1
OUTS = % 1101111111111111: PAUZE 0:OUTS = % 1101111011111110: PAUSE 1
OUTS = % 1101111111111111: PAUZE 0:OUTS = % 1101111111111110: PAUSE 1
OUTS = % 1111111111111111: PAUZE 1:LOW 0
OUTS = % 1111111111111111: PAUZE 1:LOW 0
GOTO LOOP_E
SLUITEN
OUTS = % 1111111011110111: PAUZE 1:LOW 0
OUTS = % 1111111011110111: PAUZE 1:LOW 0
OUTS = % 1111111011110111: PAUZE 1:LOW 0
OUTS = % 1111111011110111: PAUZE 1:LOW 0
OUTS = % 1111111011110111: PAUZE 1:LOW 0
OUTS = % 1111111011110111: PAUZE 1:LOW 0
OUTS = % 1111111011110111: PAUZE 1:OUTS = % 1111111111111110
GOTO LOOP_E
EYE_TEST
HANGOOR = HANGOOR-1:IF HANGOOR = 0 DAN FINI
' === Mannen Sieraden & speelgoed ===
MJT
SCHRIJVEN 0,4 ' EEPROM = 3 VOLGENDE = 4
VOOR VET = 0 TOT 80
OUTS = % 1110111101111111: PAUZE 4
OUTS = % 1110111111111111: PAUZE 4
OUTS = % 1111111110111101: PAUZE 4
OUTS = % 1111111111110111: PAUZE 4
VOLGENDE
TIJD = 2
LOOP_T
VOOR VET = 1 TOE AAN TIJD BEN
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS = % 1111111111111111: OUTS = % 1111111111111110
OUTS = % 1111111111000111: 1:OUTS onderbreken = % 1111111111111000:1 onderbreken
OUTS = % 1111111111101111: 1:OUTS onderbreken = % 1111111111111110
OUTS = % 1111111111110111: 1:OUTS onderbreken = % 1111111111111110
OUTS = % 1111111111101111: 1:OUTS onderbreken = % 1111111111111110
OUTS = % 1111111111000111: 1:OUTS onderbreken = % 1111111111111000:1 onderbreken
OUTS = % 1111111111111111: OUTS = % 1111111111111110
onderbreken van 1:NEXT
FOR VET = 1 TO TIME ' J
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS = % 1111111111111111: OUTS = % 1111111111111110
OUTS = % 1100111001111111: 1:OUTS onderbreken = % 1100111111111110:1 onderbreken
OUTS = % 0111001110111111: 1:OUTS onderbreken = % 0111011111111110:1 onderbreken
OUTS = % 0111001110111111: 1:OUTS onderbreken = % 0111011111111110:1 onderbreken
OUTS = % 0111101111111111: 1:OUTS onderbreken = % 1011110111111110:1 onderbreken
OUTS = % 1101111011111110: 1:OUTS onderbreken = % 1110111101111110:1 onderbreken
OUTS = % 0011111111111110: 1:OUTS onderbreken = % 1100111111111110:1 onderbreken
OUTS = % 0111101111111111: 1:OUTS onderbreken = % 0111111111111110:1 onderbreken
OUTS = % 1111111111111111: OUTS = % 1111111111111110
onderbreken van 1:NEXT
' goto JJ
FOR VET = 1 TO TIME ' T
' BBBBBgggggRRRRR BBBBBgggggRRRRR
OUTS = % 1111111111111111: OUTS = % 1111111111111110
OUTS = % 1111101111111111: 1:OUTS onderbreken = % 1111111111011110:1 onderbreken
OUTS = % 1111101111111111: 1:OUTS onderbreken = % 1111111111011110:1 onderbreken
OUTS = % 1111101111111111: 1:OUTS onderbreken = % 1111111111011110:1 onderbreken
OUTS = % 1111110011111110: 1:OUTS onderbreken = % 1111111111100110:1 onderbreken
OUTS = % 1111111100111110: 1:OUTS onderbreken = % 1111111111111000:1 onderbreken
OUTS = % 1111101111111111: 1:OUTS onderbreken = % 1111111111011110:1 onderbreken
OUTS = % 1111101111111111: 1:OUTS onderbreken = % 1111111111011110:1 onderbreken
OUTS = % 1111111111111111: OUTS = % 1111111111111110
VOLGENDE
VOOR VET = 1 NAAR TIJD
PAUZE 14:NEXT
TIJD = tijd + 2:IF tijd < 80 dan LOOP_T
HANGOOR = HANGOOR-1:IF HANGOOR = 0 DAN FINI
GOTO VLAG
P:RETURN
'==================== FINISHED ==============
FINI
OUTS = % 1111111111111111
SCHRIJVEN 0,0 ' EEPROM = 3 VOLGENDE = 1
EINDE