les 5 cascade counter
;Besturings formule start, A uit, B uit, A in, B in (monostabiel)
; MET COUNTER
Device 16F628A ; chipke zijne naam
Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE ; alle in en uitgangen zijn digitaal
Symbol AAN = 0 ; geinverteerd aan (aan gnd)
Symbol UIT = 1 ; geinverteerd uit (aan gnd)
Symbol timer = 3000 ; 3 seconden
; uitgangen
Symbol cila = PORTA. 0 ; cilinder a monostabiel
Symbol cilb = PORTA. 1 ; cilinder b monostabiel
;ingangen
Symbol start= PORTB. 0 ; start
Symbol a0 = PORTB. 1 ; signaalgever a0
Symbol a1 = PORTB. 2 ; signaalgever a1
Symbol b0 = PORTB. 3 ; signaalgever b0
Symbol b1 = PORTB. 4 ; signaalgever b1
; variabelen declareren
Dim flag1 As Bit
Dim flag2 As Bit
Dim counter0 As Byte ;Maak variabele met de naam 'counter' aan
PORTB_PULLUPS On ; interne weerstanden aan voor schakelen naar gnd
Clear ; wis ram geheugen
; start waarde geheugens
prog: ; begin prog
flag1=0
flag2=0
counter0 = 0 ; set counter waarde 0
While counter0 < 2 ; counter loopt 2 x
If start = AAN And flag2=0 And flag1=0 Then
flag1=1
EndIf
If flag1=1 And a0 = AAN And b0 = AAN Then
High cila
EndIf
If flag1=1 And a1 = AAN Then
High cilb
EndIf
If flag1=1 And b1=AAN Then
flag1=0
flag2=1
EndIf
If flag2=1 Then
Low cila
EndIf
If flag2=1 And a0=AAN Then
Low cilb
EndIf
If flag2=1 And b0=AAN Then
flag2=0
counter0 = counter0 + 1 ; inc oftewel optellen
EndIf
Wend ; einde loop
While PORTB.7=UIT :Wend ; als portb.7 aan is reset hij de counter
GoTo prog ; ga naar prog zie boven
End