-- name : duka_tim.txt -- author : Stefan Müller -- date : 05 Aug 2000 -- purpose : Duka Timer mit PIC16F84 4MHZ -- version : V1.0 -- target configuration: 16f84 with 4 Mhz Xtal include 16f84_4 -- standard library include jlib -- configure port a as input port_a_direction = all_input -- BCD Schalter -- configure pin_b0, pin_b1, pin_b2, pin_b3 as output pin_b0_direction = output -- select Dekade 0 pin_b1_direction = output -- select Dekade 1 pin_b2_direction = output -- select Dekade 2 pin_b3_direction = output -- Power on (Solid - State relais) -- configure pin_b4, pin_b5, pin_b6, pin_b7 as input pin_b4_direction = input -- Start pin_b5_direction = input -- reserve pin_b6_direction = input -- reserve pin_b7_direction = input -- reserve const byte diode = 1 -- Verzögerung Schaltzeit für Dioden var byte dek_0 = 0 -- Variable für Dekade 0 var byte dek_1 = 0 -- Variable für Dekade 1 var byte dek_2 = 0 -- Variable für Dekade 2 var bit start = false -- Start flag var bit merker = false -- merker -- Alle Ausgänge auf 0 setzen pin_b0 = off pin_b1 = off pin_b2 = off pin_b3 = off forever loop -- Start Flanke bilden if pin_b4 == false then merker = true end if if (merker == true) & (pin_b4 == true) then start = true merker = false end if if start == false then -- nur bearbeiten wenn keine Belichtung -- Dekade 0 einlesen pin_b0 = on -- select Dekade 0 delay_10ms(diode) -- Verzögerung Schaltzeit für Dioden dek_0 = port_a pin_b0 = off -- Dekade 1 einlesen pin_b1 = on -- select Dekade 1 delay_10ms(diode) -- Verzögerung Schaltzeit für Dioden dek_1 = port_a pin_b1 = off -- Dekade 2 einlesen pin_b2 = on -- select Dekade 2 delay_10ms(diode) -- Verzögerung Schaltzeit für Dioden dek_2 = port_a dek_2 = dek_2 * 2 -- JAL kann nur delay_5s pin_b2 = off end if -- Belichtung starten if start == true then -- Starttaste betätigt pin_b3 = on -- Relais einschalten if dek_0 >= 1 then -- Bei Variablen Inhalt von 0 funktioniert delay -- nicht delay_100ms(dek_0) -- Verz. der Dekade 0 end if if dek_1 >= 1 then -- Bei Variablen Inhalt von 0 funktioniert delay -- nicht delay_1S(dek_1) -- Verz. der Dekade 1 end if if dek_2 >= 1 then -- Bei Variablen Inhalt von 0 funktioniert delay -- nicht delay_5s(dek_2) -- Verz. der Dekade 2 end if start = false -- Start zurücksetzen pin_b3 = off -- Relais ausschalten end if end loop