statementlist les 5 nst
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
Symbol nst = PORTB. 6 ; signaalgever nst verbreker
; ____O_____
; RA2-I I-RA1
; RA3-I I-RA0
; RA4-I I-RA7
; RA5-I I-RA6
; GND-I I-Vcc
; RB0-I I-RB7
; RB1-I I-RB6
; RB2-I I-RB5
; RB3-I__________I-RB4
;
; variabelen declareren
Dim stap As Byte ; geheugen 8 bits
PORTB_PULLUPS On ; interne weerstanden aan voor schakelen naar gnd
Clear ; wis ram geheugen
; start waarde geheugen
prog:
stap=5 ; geheugen
;
; Besturings formule start, A uit B uit A in B in (monostabiel)
;
While nst = AAN ; loop
If stap=5 And a0 = AAN And b0 = AAN And start =AAN Then
High cila
stap=10
EndIf
If stap=10 And a1 = AAN Then
High cilb
stap=15
EndIf
If stap=15 And b1=AAN Then
Low cila
stap=20
EndIf
If stap=20 And a0=AAN Then
Low cilb
stap=25
EndIf
If stap=25 And b0=AAN And a0=AAN Then
stap =5
EndIf
Wend
; einde loop
While nst = UIT
If a1 = AAN Then
Low cila
Else Low cilb
EndIf
DelayMS 50
If b1 = AAN Then
Low cilb
EndIf
Wend
DelayMS 50 ; dender
GoTo prog
End