Den fantastiska Plasma binär klocka, Steampunk stil. (6 / 6 steg)
Steg 6: Programmet
Här kan du hitta små basic-program som driver klockan.Mottagning av tidssignalen kommer att ske automatiskt i bakgrunden av en firmware rutin.
'********************************************************************
'
"C-Control/BASIC BinUhr.BAS
'
"Systemkrav:
'
'-Tillämpning styrelsen ansluten till elnätet förare ombord
'
"Användning:
'
"-Produktion av binära konverterade tid till NEON-lampor
'
'********************************************************************
"*** Definiera data ***
"variabler i timmar
definiera Stunde08 byte
definiera Stunde04 byte
definiera Stunde02 byte
definiera Stunde01 byte
"variabler i minuter
definiera Minute32 byte
definiera Minute16 byte
definiera Minute08 byte
definiera Minute04 byte
definiera Minute02 byte
definiera Minute01 byte
"Hamnar timmar
definiera s8 port [1]
definiera s4 port [2]
definiera s2 port [3]
definiera s1 porten [4]
"Hamnar minuter
definiera m32 port [5]
definiera m16-porten [6]
definiera m8 port [7]
definiera m4 port [8]
definiera m2 port [9]
definiera m1 port [10]
"Port sekunder
definiera sg1 port [11]
definiera sg2 port [12]
"Port Tick Tack (tickande ljud med relä)
definiera tt port [13]
"särskilda variabler
definiera temp byte
definiera tempTime byte
definiera LastSecond byte
' ange seriell port2400 n 8 1
BAUD R2400
"ställa in sekunder och Ticktack
SG1 = 0
SG2 = 1
tt = 0
"Main program
#loop
vänta med andra <> LastSecond
"växla andra lampor och reläer
tog sg2
tog sg1
tog tt
LastSecond = andra
GOSUB BuildBinTime
GOSUB WriteTime
GOSUB serout
goto LOOP
#BuildBinTime
'
"timmar
"Konvertera timmar till binärt format kommandot mod, omvandla 24-timmarstid till 12-timmarstid
om timme > 12 då tempTime = timme - 12 annat tempTime = timme
Stunde08 = tempTime / 8
Temp = tempTime mod 8
Stunde04 = temp / 4
Temp = temp mod 4
stunde02 = temp / 2
Temp = temp mod 2
Stunde01 = temp
'
"Minuter"
"Konvertera minuter till binärt format kommandot mod
Minute32 = minuter / 32
Temp = minut mod 32
Minute16 = temp / 16
Temp = temp mod 16
Minute08 = temp / 8
Temp = temp mod 8
Minute04 = temp / 4
Temp = temp mod 4
Minute02 = temp / 2
Temp = temp mod 2
Minute01 = temp
Returnera
"Skriva konverterade tid till lökar
#WRITETIME
"Stunden
S8 = stunde08
S4 = stunde04
S2 = stunde02
S1 = stunde01
' Minuten
M32 = Minute32
M16 = Minute16
M8 = Minute08
M4 = Minute04
m2 = Minute02
M1 = Minute01
returnera
"Skriva konverterade och faktiska tid till serout
#SerOut
Skriva ut "8", "4", "2", "1", "", "32", "16", "8", "4", "2", "1"
Skriv ut Stunde08, Stunde04, Stunde02, Stunde01,"", Minute32, Minute16, Minute08, Minute04, Minute02, Minute01
Skriv ut timme och minuter
återgå