Datorstyrd låg spänning dc xmas ljus. (3 / 10 steg)
Steg 3: Gör vissa koder.
[code]
Rem slå på stift 1 i vanliga standard skrivarporten (aka lpt1 på mswindows/dos-system).
ut 888, 1
rem tidsfördröjning att tillåta ledde bo upplysta.
för x = 1 till 1000
Nästa x
rem Stäng indikatorn
ut 888,0
[/code]
-------------------------------------------------------------------------
Testa krets och koden för att aktivera stift 2-9 med lamporna för kul: http://www.youtube.com/watch?v=EjZmrw9JkrM
Använda qbasic eller freebasic på linux eller mswindows att detta ska fungera.
888 = hex 0378 för skrivarporten 1 (LPT1: 378h, LPT2: 278h) se manualen för säker.
D0 = pin 2 -2 eller 0 (2 ^ 0) = 1 2 för att noll kraft finns alltid 1
D1 = pin 3 -2 eller 1 (2 ^ 1) = 2 2 först makt är alltid 2
D2 = pin 4 -2 eller 2 (2 ^ 2) = 4 2 kvadrat = 4
D3 = pin 5 -2 eller 3 (2 ^ 3) = 8 2 kubik = 8
D4 = pin 6 -2 eller 4 (2 ^ 4) = 16 etc etc.
D5 = pin 7 -2 eller 5 (2 ^ 5) = 32
D6 = pin 8 -2 eller 6 (2 ^ 6) = 64
D7 = pin 9 -2 eller 7 (2 ^ 7) = 128
rem släcks alla stift men #3
pin_number = 3
ut 888, 2 ^(pin_number-2)
ut 888,255 att slå alla lampor på
ut 888,0 att inaktivera alla stift
Stift 2 (2-2) och stift 5 (5-2) på uteslutande skulle vara:
(2 ^ 0) + (2 ^ 3) eller (1 + 8)
ut 888, 9
eller
ut 888 (& b00001001)
rem pin---98765432
rem D (0-7)---76543210
rem ut 888 (& b00001001) << mig den enklaste, bara ändra en nolla till 1 för som ledde.
--------------------1
--------------------2631
---84268421
(8) (1)
Bättre kod att inte ändra andra stift status
På
rem levererar din egen pin-kod
pin_number =
z = inp(888)
ut 888, (2 ^(pin_number-2)) + z
Utanför
rem levererar din egen pin-kod
pin_number =
z = inp(888)
ut 888, z-(2 ^(pin_number-2))
Mer information om programmering och gränssnitt:
---------------------------------------------
Exempel på några pseudocode;
Dim längd som dubbel
Dim tim som dubbel
Dim x som heltal
Tim = TIMER
Längd = 1.
ut 888,0
för x = 1 till 20
rem 00000001
Tim = TIMER
ut 888,1
göra
LOOP tills (efter ett tag) > varaktighet
rem 0000011
Tim = TIMER
ut 888,3
göra
LOOP tills (efter ett tag) > varaktighet
rem 00000111
Tim = TIMER
ut 888,7
göra
LOOP tills (efter ett tag) > varaktighet
rem 00001111
Tim = TIMER
ut 888,15
göra
LOOP tills (efter ett tag) > varaktighet
rem 00011111
Tim = TIMER
ut 888,31
göra
LOOP tills (efter ett tag) > varaktighet
rem 00111111
Tim = TIMER
ut 888,63
göra
LOOP tills (efter ett tag) > varaktighet
rem 01111111
Tim = TIMER
ut 888,127
göra
LOOP tills (efter ett tag) > varaktighet
rem 11111111
Tim = TIMER
ut 888,255
göra
LOOP tills (efter ett tag) > varaktighet
rem ---------------------------------------------------------
rem 10000001
rem tim = TIMER
rem ut 888,129
rem gör
rem LOOP tills (efter ett tag) > varaktighet
rem 11111111
Tim = TIMER
ut 888,255
göra
LOOP tills (efter ett tag) > varaktighet
rem 01111111
Tim = TIMER
ut 888,127
göra
LOOP tills (efter ett tag) > varaktighet
rem 00111111
Tim = TIMER
ut 888,63
göra
LOOP tills (efter ett tag) > varaktighet
rem 00011111
Tim = TIMER
ut 888,31
göra
LOOP tills (efter ett tag) > varaktighet
rem 00001111
Tim = TIMER
ut 888,15
göra
LOOP tills (efter ett tag) > varaktighet
rem 00000111
Tim = TIMER
ut 888,7
göra
LOOP tills (efter ett tag) > varaktighet
rem 00000011
Tim = TIMER
ut 888,3
göra
LOOP tills (efter ett tag) > varaktighet
rem 00000001
Tim = TIMER
ut 888,1
göra
LOOP tills (efter ett tag) > varaktighet
rem ---------------------------------------------------------
rem 00000000
Tim = TIMER
ut 888,0
göra
LOOP tills (efter ett tag) > varaktighet
Nästa x
ut 888,0
slutet