; Source created with Parsic Version 3.x
; at : 26/03/03
01:54:43 p.m.
; Project File :
C:\VIEIRA\PARSIC\PERSIANA.PIC
; Project Version : 1.1.15
; Created : 06/03/03
05:23:00 p.m.
; Last change : 26/03/03
01:41:08 p.m.
PROCESSOR 16C84
INCLUDE P16C84.INC
RADIX DEC
__IDLOCS H'0101'
__CONFIG _CP_OFF &
_PWRTE_ON & _WDT_ON & _XT_OSC
; Diverses
ZERO EQU Z ; ZERO-Flag
CARRY EQU C ; CARRY-Flag
; Variable
SYS_WSAV = 12 ; located in Bank 0, 1
SYS_SSAV = 13 ; located in Bank 0, 1
TR1 = 14 ; located in Bank 0, 1
TR1_HI = 15 ; located in Bank 0, 1
S0 = 16 ; located in Bank 0, 1
TR2 = 17 ; located in Bank 0, 1
TR2_HI = 18 ; located in Bank 0, 1
S1 = 19 ; located in Bank 0, 1
OS1_FD = 20 ; located in Bank 0, 1
RB0 = 21 ; located in Bank 0, 1
S2 = 22 ; located in Bank 0, 1
S3 = 23 ; located in Bank 0, 1
S4 = 24 ; located in Bank 0, 1
S5 = 25 ; located in Bank 0, 1
MF1 = 26 ; located in Bank 0, 1
MF1_HI = 27 ; located in Bank 0, 1
MF1_FD = 28 ; located in Bank 0, 1
RAM = 29 ; located in Bank 0, 1
ERRORLEVEL -302 ; disable warning (Bankswitching)
ERRORLEVEL -306 ; disable warning (Pageswitching)
;****************************************
;Programmanfang
;****************************************
ORG 0
CLRF STATUS ; switch to RAM-Bank 0
GOTO SYS_INIT
NOP
NOP
;****************************************
;Interrupt-Adress
;****************************************
MOVWF SYS_WSAV ; save register
SWAPF STATUS,W
CLRF STATUS ; bank 0
MOVWF SYS_SSAV
BCF INTCON,T0IF ; Interrupt quitieren
INCFSZ TR1,F
GOTO SYS_INT_LABEL_0
INCF TR1_HI,F
SYS_INT_LABEL_0
INCFSZ TR2,F
GOTO SYS_INT_LABEL_1
INCF TR2_HI,F
SYS_INT_LABEL_1
INCFSZ MF1,F
GOTO SYS_INT_LABEL_2
INCF MF1_HI,F
SYS_INT_LABEL_2
EXITINT
SWAPF SYS_SSAV,W ; Register zurück
MOVWF STATUS
SWAPF SYS_WSAV,F
SWAPF SYS_WSAV,W
RETFIE ; RETurn From Interrupt and Enable GIE
;****************************************
; Subroutines
;****************************************
;****************************************
;Initialisierung
;****************************************
SYS_INIT
MOVLW B'00100000'
MOVWF INTCON
; Ausgangs-Pegel setzen, bevor die Richtung gesetzt wird
BCF STATUS,RP0 ; Bank 0
MOVLW B'00000000'
MOVWF PORTA
MOVLW B'00000000'
MOVWF PORTB
MOVLW 143
BSF STATUS,RP0 ; Bank 1
MOVWF OPTION_REG
; Richtung setzen
MOVLW B'11111111'
MOVWF TRISA
MOVLW B'11110010'
MOVWF TRISB
; init vars
; Clear RAM
MOVLW 12
MOVWF FSR
CR1
CLRF INDF
INCF FSR,F
MOVFW FSR
SUBLW 48
BTFSS STATUS,ZERO
GOTO CR1
MOVLW B'00111000'
MOVWF S1
MOVLW B'00001101'
MOVWF S2
BCF STATUS,RP0 ; Bank 0
CLRF TMR0
BCF INTCON,T0IF
BSF INTCON,GIE ; Interrupt freigeben
;**********************************
;******* Haupt-Programm ***********
;**********************************
MAIN
CLRWDT
;***************************************************
; Timer -> TR1
;***************************************************
MOVLW 5 ; Test auf >=
SUBWF TR1_HI,W ;F-W -> W
BTFSS STATUS,ZERO
GOTO LABEL_TR1_CHECK
MOVLW 87
SUBWF TR1,W ;F-W -> W
LABEL_TR1_CHECK
BTFSS STATUS,CARRY
GOTO LABEL_TR1_ENDE
LABEL_TR1_RESET
MOVLW 5 ; Test auf >=
SUBWF TR1_HI,F ;F-W -> F
MOVLW 87
SUBWF TR1,F ;F-W -> F
BTFSS STATUS,CARRY
DECF TR1_HI,F
LABEL_TR1_SET ; toggel output
BTFSC S0,0
GOTO LABEL_TR1_CLR
BSF S0,0
GOTO LABEL_TR1_ENDE
LABEL_TR1_CLR
BCF S0,0
LABEL_TR1_ENDE
;***************************************************
; UND - Gatter -> LG1
;***************************************************
LABEL_LG1_1
BCF STATUS,RP0 ; Bank 0
BTFSC PORTA,0
GOTO LABEL_LG1_FALSE
LABEL_LG1_2
BTFSS S0,0
GOTO LABEL_LG1_FALSE
LABEL_LG1_TRUE
BSF PORTB,0
GOTO LABEL_LG1_ENDE
LABEL_LG1_FALSE
BCF STATUS,RP0 ; Bank 0
BCF PORTB,0
LABEL_LG1_ENDE
;***************************************************
; Timer -> TR2
;***************************************************
MOVLW 0 ; Test auf >=
SUBWF TR2_HI,W ;F-W -> W
BTFSS STATUS,ZERO
GOTO LABEL_TR2_CHECK
MOVLW 117
SUBWF TR2,W ;F-W -> W
LABEL_TR2_CHECK
BTFSS STATUS,CARRY
GOTO LABEL_TR2_ENDE
LABEL_TR2_RESET
MOVLW 0 ; Test auf >=
SUBWF TR2_HI,F ;F-W -> F
MOVLW 117
SUBWF TR2,F ;F-W -> F
BTFSS STATUS,CARRY
DECF TR2_HI,F
LABEL_TR2_SET ; toggel output
BTFSC S1,6
GOTO LABEL_TR2_CLR
BSF S1,6
GOTO LABEL_TR2_ENDE
LABEL_TR2_CLR
BCF S1,6
LABEL_TR2_ENDE
;***************************************************
; One Shot -> OS1
;***************************************************
BTFSS S1,6
GOTO LABEL_OS1_1
BTFSC OS1_FD,0
GOTO LABEL_OS1_1
BSF OS1_FD,0
BSF S1,7
GOTO LABEL_OS1_2
LABEL_OS1_1
BCF S1,7
BTFSC S1,6
GOTO LABEL_OS1_2
BCF OS1_FD,0
LABEL_OS1_2
;***************************************************
; UND - Gatter -> LG2
;***************************************************
LABEL_LG2_1
BCF STATUS,RP0 ; Bank 0
BTFSS PORTA,1
GOTO LABEL_LG2_FALSE
LABEL_LG2_2
BTFSS S1,7
GOTO LABEL_LG2_FALSE
LABEL_LG2_TRUE
BSF S1,2
GOTO LABEL_LG2_ENDE
LABEL_LG2_FALSE
BCF S1,2
LABEL_LG2_ENDE
;***************************************************
; UND - Gatter -> LG3
;***************************************************
LABEL_LG3_1
BTFSS S1,2
GOTO LABEL_LG3_FALSE
LABEL_LG3_2
BCF STATUS,RP0 ; Bank 0
BTFSS PORTA,2
GOTO LABEL_LG3_FALSE
LABEL_LG3_TRUE
BSF S1,1
GOTO LABEL_LG3_ENDE
LABEL_LG3_FALSE
BCF S1,1
LABEL_LG3_ENDE
;***************************************************
; UND - Gatter -> LG4
;***************************************************
LABEL_LG4_1
BTFSS S0,1
GOTO LABEL_LG4_FALSE
LABEL_LG4_2
BCF STATUS,RP0 ; Bank 0
BTFSC PORTA,2
GOTO LABEL_LG4_FALSE
LABEL_LG4_3
BTFSS S1,2
GOTO LABEL_LG4_FALSE
LABEL_LG4_TRUE
BSF S0,6
GOTO LABEL_LG4_ENDE
LABEL_LG4_FALSE
BCF S0,6
LABEL_LG4_ENDE
;***************************************************
; RS-FLIP-FLOP -> RS1
;***************************************************
BTFSC S0,6
GOTO LABEL_RS1_RESET
BTFSS S1,1
GOTO LABEL_RS1_ENDE
BSF S0,1 ; Ausgang setzen
GOTO LABEL_RS1_ENDE
LABEL_RS1_RESET
BCF S0,1 ; Ausgang zurücksetzen
LABEL_RS1_ENDE
;***************************************************
; UND - Gatter -> LG5
;***************************************************
LABEL_LG5_1
BTFSS S1,2
GOTO LABEL_LG5_FALSE
LABEL_LG5_2
BCF STATUS,RP0 ; Bank 0
BTFSS PORTA,3
GOTO LABEL_LG5_FALSE
LABEL_LG5_TRUE
BSF S1,0
GOTO LABEL_LG5_ENDE
LABEL_LG5_FALSE
BCF S1,0
LABEL_LG5_ENDE
;***************************************************
; RS-FLIP-FLOP -> RS2
;***************************************************
BTFSC S0,5
GOTO LABEL_RS2_RESET
BTFSS S1,0
GOTO LABEL_RS2_ENDE
BSF S0,2 ; Ausgang setzen
GOTO LABEL_RS2_ENDE
LABEL_RS2_RESET
BCF S0,2 ; Ausgang zurücksetzen
LABEL_RS2_ENDE
;***************************************************
; UND - Gatter -> LG6
;***************************************************
LABEL_LG6_1
BTFSS S0,2
GOTO LABEL_LG6_FALSE
LABEL_LG6_2
BCF STATUS,RP0 ; Bank 0
BTFSC PORTA,3
GOTO LABEL_LG6_FALSE
LABEL_LG6_3
BTFSS S1,2
GOTO LABEL_LG6_FALSE
LABEL_LG6_TRUE
BSF S0,5
GOTO LABEL_LG6_ENDE
LABEL_LG6_FALSE
BCF S0,5
LABEL_LG6_ENDE
;***************************************************
; UND - Gatter -> LG7
;***************************************************
LABEL_LG7_1
BTFSS S1,2
GOTO LABEL_LG7_FALSE
LABEL_LG7_2
BCF STATUS,RP0 ; Bank 0
BTFSS PORTA,4
GOTO LABEL_LG7_FALSE
LABEL_LG7_TRUE
BSF S0,7
GOTO LABEL_LG7_ENDE
LABEL_LG7_FALSE
BCF S0,7
LABEL_LG7_ENDE
;***************************************************
; RS-FLIP-FLOP -> RS3
;***************************************************
BTFSC S0,4
GOTO LABEL_RS3_RESET
BTFSS S0,7
GOTO LABEL_RS3_ENDE
BSF S0,3 ; Ausgang setzen
GOTO LABEL_RS3_ENDE
LABEL_RS3_RESET
BCF S0,3 ; Ausgang zurücksetzen
LABEL_RS3_ENDE
;***************************************************
; UND - Gatter -> LG8
;***************************************************
LABEL_LG8_1
BTFSS S0,3
GOTO LABEL_LG8_FALSE
LABEL_LG8_2
BCF STATUS,RP0 ; Bank 0
BTFSC PORTA,4
GOTO LABEL_LG8_FALSE
LABEL_LG8_3
BTFSS S1,2
GOTO LABEL_LG8_FALSE
LABEL_LG8_TRUE
BSF S0,4
GOTO LABEL_LG8_ENDE
LABEL_LG8_FALSE
BCF S0,4
LABEL_LG8_ENDE
;***************************************************
; UND - Gatter -> LG9
;***************************************************
LABEL_LG9_1
BTFSS S0,1
GOTO LABEL_LG9_FALSE
LABEL_LG9_TRUE
BCF S1,3
GOTO LABEL_LG9_ENDE
LABEL_LG9_FALSE
BSF S1,3
LABEL_LG9_ENDE
;***************************************************
; UND - Gatter -> LG10
;***************************************************
LABEL_LG10_1
BTFSS S0,2
GOTO LABEL_LG10_FALSE
LABEL_LG10_TRUE
BCF S1,4
GOTO LABEL_LG10_ENDE
LABEL_LG10_FALSE
BSF S1,4
LABEL_LG10_ENDE
;***************************************************
; UND - Gatter -> LG11
;***************************************************
LABEL_LG11_1
BTFSS S0,3
GOTO LABEL_LG11_FALSE
LABEL_LG11_TRUE
BCF S1,5
GOTO LABEL_LG11_ENDE
LABEL_LG11_FALSE
BSF S1,5
LABEL_LG11_ENDE
;***************************************************
; UND - Gatter -> LG12
;***************************************************
LABEL_LG12_1
BCF STATUS,RP0 ; Bank 0
BTFSS PORTA,1
GOTO LABEL_LG12_FALSE
LABEL_LG12_TRUE
BSF RB0,1
GOTO LABEL_LG12_ENDE
LABEL_LG12_FALSE
BCF RB0,1
LABEL_LG12_ENDE
;***************************************************
; UND - Gatter -> LG13
;***************************************************
LABEL_LG13_1
BTFSS S2,5
GOTO LABEL_LG13_FALSE
LABEL_LG13_TRUE
BCF S2,0
GOTO LABEL_LG13_ENDE
LABEL_LG13_FALSE
BSF S2,0
LABEL_LG13_ENDE
;***************************************************
; UND - Gatter -> LG14
;***************************************************
LABEL_LG14_1
BTFSS S2,4
GOTO LABEL_LG14_FALSE
LABEL_LG14_TRUE
BCF S2,3
GOTO LABEL_LG14_ENDE
LABEL_LG14_FALSE
BSF S2,3
LABEL_LG14_ENDE
;***************************************************
; UND - Gatter -> LG15
;***************************************************
LABEL_LG15_1
BTFSS S2,1
GOTO LABEL_LG15_FALSE
LABEL_LG15_TRUE
BCF S2,2
GOTO LABEL_LG15_ENDE
LABEL_LG15_FALSE
BSF S2,2
LABEL_LG15_ENDE
;***************************************************
; UND - Gatter
-> LG16
;***************************************************
LABEL_LG16_1
BTFSS S2,5
GOTO LABEL_LG16_FALSE
LABEL_LG16_2
BTFSS S2,4
GOTO LABEL_LG16_FALSE
LABEL_LG16_TRUE
BSF S2,6
GOTO LABEL_LG16_ENDE
LABEL_LG16_FALSE
BCF S2,6
LABEL_LG16_ENDE
;***************************************************
; UND - Gatter
-> LG17
;***************************************************
LABEL_LG17_1
BTFSS S1,3
GOTO LABEL_LG17_FALSE
LABEL_LG17_2
BTFSS S1,4
GOTO LABEL_LG17_FALSE
LABEL_LG17_3
BTFSS S2,5
GOTO LABEL_LG17_FALSE
LABEL_LG17_TRUE
BSF S2,7
GOTO LABEL_LG17_ENDE
LABEL_LG17_FALSE
BCF S2,7
LABEL_LG17_ENDE
;***************************************************
; UND - Gatter
-> LG18
;***************************************************
LABEL_LG18_1
BTFSS S0,3
GOTO LABEL_LG18_FALSE
LABEL_LG18_2
BTFSS S2,5
GOTO LABEL_LG18_FALSE
LABEL_LG18_3
BTFSS S2,1
GOTO LABEL_LG18_FALSE
LABEL_LG18_TRUE
BSF S3,0
GOTO LABEL_LG18_ENDE
LABEL_LG18_FALSE
BCF S3,0
LABEL_LG18_ENDE
;***************************************************
; UND - Gatter
-> LG19
;***************************************************
LABEL_LG19_1
BTFSS S0,1
GOTO LABEL_LG19_FALSE
LABEL_LG19_2
BTFSS S0,2
GOTO LABEL_LG19_FALSE
LABEL_LG19_3
BTFSS S0,3
GOTO LABEL_LG19_FALSE
LABEL_LG19_4
BTFSS S2,5
GOTO LABEL_LG19_FALSE
LABEL_LG19_TRUE
BSF S3,1
GOTO LABEL_LG19_ENDE
LABEL_LG19_FALSE
BCF S3,1
LABEL_LG19_ENDE
;***************************************************
; ODER - Gatter -> LG20
;***************************************************
LABEL_LG20_1
BTFSC S2,6
GOTO LABEL_LG20_TRUE
LABEL_LG20_2
BTFSC S2,7
GOTO LABEL_LG20_TRUE
LABEL_LG20_3
BTFSC S3,0
GOTO LABEL_LG20_TRUE
LABEL_LG20_4
BTFSC S3,1
GOTO LABEL_LG20_TRUE
LABEL_LG20_FALSE
BCF S4,7
GOTO LABEL_LG20_ENDE
LABEL_LG20_TRUE
BSF S4,7
LABEL_LG20_ENDE
;***************************************************
; UND - Gatter
-> LG21
;***************************************************
LABEL_LG21_1
BTFSS S1,3
GOTO LABEL_LG21_FALSE
LABEL_LG21_2
BTFSS S0,2
GOTO LABEL_LG21_FALSE
LABEL_LG21_3
BTFSS S2,0
GOTO LABEL_LG21_FALSE
LABEL_LG21_4
BTFSS S2,2
GOTO LABEL_LG21_FALSE
LABEL_LG21_TRUE
BSF S3,2
GOTO LABEL_LG21_ENDE
LABEL_LG21_FALSE
BCF S3,2
LABEL_LG21_ENDE
;***************************************************
; UND - Gatter
-> LG22
;***************************************************
LABEL_LG22_1
BTFSS S2,0
GOTO LABEL_LG22_FALSE
LABEL_LG22_2
BTFSS S2,4
GOTO LABEL_LG22_FALSE
LABEL_LG22_TRUE
BSF S3,3
GOTO LABEL_LG22_ENDE
LABEL_LG22_FALSE
BCF S3,3
LABEL_LG22_ENDE
;***************************************************
; UND - Gatter
-> LG23
;***************************************************
LABEL_LG23_1
BTFSS S0,1
GOTO LABEL_LG23_FALSE
LABEL_LG23_2
BTFSS S0,2
GOTO LABEL_LG23_FALSE
LABEL_LG23_3
BTFSS S0,3
GOTO LABEL_LG23_FALSE
LABEL_LG23_4
BTFSS S2,0
GOTO LABEL_LG23_FALSE
LABEL_LG23_TRUE
BSF S3,4
GOTO LABEL_LG23_ENDE
LABEL_LG23_FALSE
BCF S3,4
LABEL_LG23_ENDE
;***************************************************
; ODER - Gatter -> LG24
;***************************************************
LABEL_LG24_1
BTFSC S3,2
GOTO LABEL_LG24_TRUE
LABEL_LG24_2
BTFSC S3,3
GOTO LABEL_LG24_TRUE
LABEL_LG24_3
BTFSC S3,4
GOTO LABEL_LG24_TRUE
LABEL_LG24_FALSE
BCF S5,0
GOTO LABEL_LG24_ENDE
LABEL_LG24_TRUE
BSF S5,0
LABEL_LG24_ENDE
;***************************************************
; UND - Gatter
-> LG25
;***************************************************
LABEL_LG25_1
BTFSS S0,1
GOTO LABEL_LG25_FALSE
LABEL_LG25_2
BTFSS S1,5
GOTO LABEL_LG25_FALSE
LABEL_LG25_3
BTFSS S2,0
GOTO LABEL_LG25_FALSE
LABEL_LG25_TRUE
BSF S3,5
GOTO LABEL_LG25_ENDE
LABEL_LG25_FALSE
BCF S3,5
LABEL_LG25_ENDE
;***************************************************
; UND - Gatter
-> LG26
;***************************************************
LABEL_LG26_1
BTFSS S0,1
GOTO LABEL_LG26_FALSE
LABEL_LG26_2
BTFSS S1,4
GOTO LABEL_LG26_FALSE
LABEL_LG26_3
BTFSS S2,2
GOTO LABEL_LG26_FALSE
LABEL_LG26_TRUE
BSF S3,6
GOTO LABEL_LG26_ENDE
LABEL_LG26_FALSE
BCF S3,6
LABEL_LG26_ENDE
;***************************************************
; ODER - Gatter -> LG27
;***************************************************
LABEL_LG27_1
BTFSC S3,5
GOTO LABEL_LG27_TRUE
LABEL_LG27_2
BTFSC S3,6
GOTO LABEL_LG27_TRUE
LABEL_LG27_FALSE
BCF S5,1
GOTO LABEL_LG27_ENDE
LABEL_LG27_TRUE
BSF S5,1
LABEL_LG27_ENDE
;***************************************************
; UND - Gatter
-> LG28
;***************************************************
LABEL_LG28_1
BTFSS S0,1
GOTO LABEL_LG28_FALSE
LABEL_LG28_2
BTFSS S1,4
GOTO LABEL_LG28_FALSE
LABEL_LG28_3
BTFSS S2,2
GOTO LABEL_LG28_FALSE
LABEL_LG28_TRUE
BSF S4,6
GOTO LABEL_LG28_ENDE
LABEL_LG28_FALSE
BCF S4,6
LABEL_LG28_ENDE
;***************************************************
; UND - Gatter
-> LG29
;***************************************************
LABEL_LG29_1
BTFSS S0,1
GOTO LABEL_LG29_FALSE
LABEL_LG29_2
BTFSS S2,5
GOTO LABEL_LG29_FALSE
LABEL_LG29_TRUE
BSF S4,4
GOTO LABEL_LG29_ENDE
LABEL_LG29_FALSE
BCF S4,4
LABEL_LG29_ENDE
;***************************************************
; UND - Gatter
-> LG30
;***************************************************
LABEL_LG30_1
BTFSS S0,3
GOTO LABEL_LG30_FALSE
LABEL_LG30_2
BTFSS S2,5
GOTO LABEL_LG30_FALSE
LABEL_LG30_TRUE
BSF S4,5
GOTO LABEL_LG30_ENDE
LABEL_LG30_FALSE
BCF S4,5
LABEL_LG30_ENDE
;***************************************************
; ODER - Gatter -> LG31
;***************************************************
LABEL_LG31_1
BTFSC S4,6
GOTO LABEL_LG31_TRUE
LABEL_LG31_2
BTFSC S4,4
GOTO LABEL_LG31_TRUE
LABEL_LG31_3
BTFSC S4,5
GOTO LABEL_LG31_TRUE
LABEL_LG31_FALSE
BCF S2,5
GOTO LABEL_LG31_ENDE
LABEL_LG31_TRUE
BSF S2,5
LABEL_LG31_ENDE
;***************************************************
; UND - Gatter
-> LG32
;***************************************************
LABEL_LG32_1
BTFSS S1,3
GOTO LABEL_LG32_FALSE
LABEL_LG32_2
BTFSS S2,1
GOTO LABEL_LG32_FALSE
LABEL_LG32_3
BTFSS S0,2
GOTO LABEL_LG32_FALSE
LABEL_LG32_TRUE
BSF S4,3
GOTO LABEL_LG32_ENDE
LABEL_LG32_FALSE
BCF S4,3
LABEL_LG32_ENDE
;***************************************************
; UND - Gatter
-> LG33
;***************************************************
LABEL_LG33_1
BTFSS S0,1
GOTO LABEL_LG33_FALSE
LABEL_LG33_2
BTFSS S1,4
GOTO LABEL_LG33_FALSE
LABEL_LG33_3
BTFSS S2,1
GOTO LABEL_LG33_FALSE
LABEL_LG33_TRUE
BSF S4,2
GOTO LABEL_LG33_ENDE
LABEL_LG33_FALSE
BCF S4,2
LABEL_LG33_ENDE
;***************************************************
; UND - Gatter
-> LG34
;***************************************************
LABEL_LG34_1
BTFSS S1,5
GOTO LABEL_LG34_FALSE
LABEL_LG34_2
BTFSS S2,5
GOTO LABEL_LG34_FALSE
LABEL_LG34_TRUE
BSF S3,7
GOTO LABEL_LG34_ENDE
LABEL_LG34_FALSE
BCF S3,7
LABEL_LG34_ENDE
;***************************************************
; UND - Gatter
-> LG35
;***************************************************
LABEL_LG35_1
BTFSS S0,1
GOTO LABEL_LG35_FALSE
LABEL_LG35_2
BTFSS S0,2
GOTO LABEL_LG35_FALSE
LABEL_LG35_3
BTFSS S0,3
GOTO LABEL_LG35_FALSE
LABEL_LG35_4
BTFSS S2,0
GOTO LABEL_LG35_FALSE
LABEL_LG35_5
BTFSS S2,3
GOTO LABEL_LG35_FALSE
LABEL_LG35_TRUE
BSF S4,0
GOTO LABEL_LG35_ENDE
LABEL_LG35_FALSE
BCF S4,0
LABEL_LG35_ENDE
;***************************************************
; UND - Gatter
-> LG36
;***************************************************
LABEL_LG36_1
BTFSS S1,3
GOTO LABEL_LG36_FALSE
LABEL_LG36_2
BTFSS S1,4
GOTO LABEL_LG36_FALSE
LABEL_LG36_3
BTFSS S2,5
GOTO LABEL_LG36_FALSE
LABEL_LG36_TRUE
BSF S4,1
GOTO LABEL_LG36_ENDE
LABEL_LG36_FALSE
BCF S4,1
LABEL_LG36_ENDE
;***************************************************
; ODER - Gatter -> LG37
;***************************************************
LABEL_LG37_1
BTFSC S4,3
GOTO LABEL_LG37_TRUE
LABEL_LG37_2
BTFSC S4,2
GOTO LABEL_LG37_TRUE
LABEL_LG37_3
BTFSC S3,7
GOTO LABEL_LG37_TRUE
LABEL_LG37_4
BTFSC S4,0
GOTO LABEL_LG37_TRUE
LABEL_LG37_5
BTFSC S4,1
GOTO LABEL_LG37_TRUE
LABEL_LG37_FALSE
BCF S2,1
GOTO LABEL_LG37_ENDE
LABEL_LG37_TRUE
BSF S2,1
LABEL_LG37_ENDE
;***************************************************
; UND - Gatter
-> LG38
;***************************************************
LABEL_LG38_1
BCF STATUS,RP0 ; Bank 0
BTFSS PORTA,0
GOTO LABEL_LG38_FALSE
LABEL_LG38_2
BTFSS S4,7
GOTO LABEL_LG38_FALSE
LABEL_LG38_TRUE
BSF PORTB,3
GOTO LABEL_LG38_ENDE
LABEL_LG38_FALSE
BCF STATUS,RP0 ; Bank 0
BCF PORTB,3
LABEL_LG38_ENDE
;***************************************************
; UND - Gatter
-> LG39
;***************************************************
LABEL_LG39_1
BTFSS PORTA,0
GOTO LABEL_LG39_FALSE
LABEL_LG39_2
BTFSS S5,0
GOTO LABEL_LG39_FALSE
LABEL_LG39_TRUE
BSF PORTB,2
GOTO LABEL_LG39_ENDE
LABEL_LG39_FALSE
BCF STATUS,RP0 ; Bank 0
BCF PORTB,2
LABEL_LG39_ENDE
;***************************************************
; UND - Gatter
-> LG40
;***************************************************
LABEL_LG40_1
BTFSS PORTA,0
GOTO LABEL_LG40_FALSE
LABEL_LG40_2
BTFSS S2,4
GOTO LABEL_LG40_FALSE
LABEL_LG40_TRUE
BSF S5,5
GOTO LABEL_LG40_ENDE
LABEL_LG40_FALSE
BCF S5,5
LABEL_LG40_ENDE
;***************************************************
; UND - Gatter
-> LG41
;***************************************************
LABEL_LG41_1
BCF STATUS,RP0 ; Bank 0
BTFSS PORTA,0
GOTO LABEL_LG41_FALSE
LABEL_LG41_2
BTFSS S2,5
GOTO LABEL_LG41_FALSE
LABEL_LG41_TRUE
BSF S5,2
GOTO LABEL_LG41_ENDE
LABEL_LG41_FALSE
BCF S5,2
LABEL_LG41_ENDE
;***************************************************
; UND - Gatter
-> LG42
;***************************************************
LABEL_LG42_1
BCF STATUS,RP0 ; Bank 0
BTFSS PORTA,0
GOTO LABEL_LG42_FALSE
LABEL_LG42_2
BTFSS S2,1
GOTO LABEL_LG42_FALSE
LABEL_LG42_TRUE
BSF S5,3
GOTO LABEL_LG42_ENDE
LABEL_LG42_FALSE
BCF S5,3
LABEL_LG42_ENDE
;***************************************************
; Mono-Flop
-> MF1
;***************************************************
; Läuft
der Impuls ?
BTFSC MF1_FD,1
GOTO LABEL_MF1_CHKTIME
; Test
auf positive Flanke
BTFSC MF1_FD,0
GOTO LABEL_MF1_SETFD
BTFSS S5,1
GOTO LABEL_MF1_SETFD
LABEL_MF1_RESET
CLRF MF1
CLRF MF1_HI
BSF MF1_FD,1
BSF S5,4
LABEL_MF1_CHKTIME
MOVLW 7
SUBWF MF1_HI,W
BTFSS STATUS,ZERO
GOTO LABEL_MF1_CHECK
MOVLW 161
SUBWF MF1,W
LABEL_MF1_CHECK
BTFSS STATUS,CARRY
GOTO LABEL_MF1_SETFD
LABEL_MF1_TO
BCF MF1_FD,1
BCF S5,4
LABEL_MF1_SETFD
BTFSS S5,1
GOTO LABEL_MF1_CLR
BSF MF1_FD,0
GOTO LABEL_MF1_ENDE
LABEL_MF1_CLR
BCF MF1_FD,0
LABEL_MF1_ENDE
;***************************************************
; UND - Gatter
-> LG43
;***************************************************
LABEL_LG43_1
BTFSS S5,1
GOTO LABEL_LG43_FALSE
LABEL_LG43_2
BTFSS S5,4
GOTO LABEL_LG43_FALSE
LABEL_LG43_TRUE
BSF S2,4
GOTO LABEL_LG43_ENDE
LABEL_LG43_FALSE
BCF S2,4
LABEL_LG43_ENDE
;****************************************
GOTO MAIN
END