J
jeremy GOH
Guest
Hi guys,
ik ben momenteel met een PIC16F873A als MCU en Siemens TC35 GSM-modem voor de uitvoering van een SMS-gecontroleerde project.Kan ik een verzoek voor broncode plz?Zou waarderen ur helpen, want
ik ben al testen met de bestaande ASM code die
ik heb verkregen uit een fren die niet echt werkt.
De codes zijn als volgt:
include "P16F873a.inc"
lijst p = 16F873a, r = dec
errorlevel -302
__Config _XT_OSC & _WDT_OFF & _BODEN_OFF & _LVP_OFF & _PWRTE_ON
cblock 0x20
w_temp
p_temp
s_temp
msec
sec
min
counter
input
r0
r1
r2
fault_count
vlag
bitcnt
toevoegen
Winkel1
PIN1
PIN2
pin3
pin4
Datal
data1
data2
data3
data4
data5
data6
data7
data8
data9
data10
data11
data12
data13
data14
data15
data16
data17
data18
data19
data20
endc
XD EQU D'123 '; kristal divider (123)
org 0x2100
de "1234"
org 0x00
goto startorg 0x04; void interrupt (void)
ISR
BCF INTCON, GIE
movwf w_temp
swapf STATUS, W
movwf s_temp
movfw PCLATH
movwf p_temp
btfsc INTCON, T0IF
goto _interrupt
goto INTX
_interrupt
BCF INTCON, T0IF
incf msec, F
movf msec, W
sublw XD
btfss STATUS, Z
Goto INTX
clrf msec
incf sec, F
gesprek verhogen
movf sec, W
sublw 0x3c
btfss STATUS, Z
Goto INTX
clrf sec
incf min, F
movf min, W
sublw 0x3c
btfss STATUS, Z
Goto INTX
clrf min
Goto INTX
INTX
movlw D'4 '
movwf TMR0
movfw p_temp
movwf PCLATH
swapf s_temp, W
movwf STATUS
swapf w_temp, F
swapf w_temp, W
BSF INTCON, GIE
retfie
toenemen
incf counter, F
movlw D'5 '
xorwf counter, w
btfsc STATUS, Z
clrf counter
terug_initialize
BSF STATUS, RP0
movlw B'00000100 '
; TOCS = OSC, PSA = TMR0
movwf OPTION_REG
BCF STATUS, RP0
movlw 0xa0
movwf INTCON
terug
;------------------------------------------------- --------------------------------
start
BSF STATUS, RP0
movlw H'06 '
movwf ADCON1
movlw B'00000000 '
movwf TRISA
movlw B'11110000 '
movwf TRISB
movlw B'10000000 '
movwf TRISC
MOVLW B'00000101 '
MOVWF OPTION_REG
oproep empty_reg
movlw D'10 '
oproep vertraging
oproep RS232
oproep _initialize
oproep at_cmgf
goto belangrijkste
empty_reg
movlw 0x20
movwf FSR
empty_reg1
movlw H'7F '
xorwf FSR, W
btfsc STATUS, Z
terug
clrf INDF
incf FSR, F
goto empty_reg1
; SET BAUD RATE Om te communiceren met pc
; BOOT BAUD RATE = 9600, geen pariteit, 1 stopbit
RS232 BSF STATUS, RP0
movlw 0x19
movwf SPBRG
movlw b'00100100 '
movwf TXSTA
BCF STATUS, RP0
movlw b'10000000 '
movwf RCSTA
clrf Datal
wikkelen decfsz Datal, F
START_UP
goto vestigen
movf RCREG, W
movf RCREG, W
movf RCREG, W
terug
; RECEIVE KARAKTER VAN RS232 EN WINKEL IN W
; Deze routine NIET TERUG TOT EEN AARD IS RECEIVED
Ontvang clrf counter
clrf vlag
clrf input
BSF RCSTA, CREN
Receive1
movf counter, W
addlw D'255 '- D'2' 1
btfsc STATUS, C
goto bye
btfss PIR1, RCIF
goto Receive1
BCF RCSTA, CREN
movf RCREG, W
movwf input
terug
bye movf RCREG, W
movwf input
BSF vlag, 0
retlw ''
; VERZENDEN AARD IN W via RS232 en wacht tot EINDPRODUKT VERZENDENDE
stuur BCF INTCON, GIE
movwf TXREG
TransWt BSF STATUS, RP0
WtHere btfss TXSTA, TRMT
goto WtHere
BSF INTCON, GIE
terug
;------------------------------------------------- -------------------------------
vertraging
movwf r0
delay1 movlw D'133 '
movwf r1
delay2 movlw D'250 "
movwf r2
delay3 decfsz r2, F
goto delay3
decfsz r1, F
goto delay2
decfsz r0, F
goto vertraging
terug
;------------------------------------------------- ------------------------------
; Schrijft data naar EEPROM ROUTINETESTS aangepast voor PIC16F87X HULPMIDDELEN
; VOLGENS INFORMATIEBLAD DS30292A Page 43
; Deze routine wordt aangegaan met W HOLDING
; De EEPROM BYTE adres waar GEGEVENS
; Zal worden opgeslagen.De gegevens die moeten worden OPGESLAGEN
; Wordt gehouden in winkel1
SETPRM
BCF STATUS, RP0
movwf EEADR
BCF STATUS, RP1
movf winkel1, W
BSF STATUS, RP1
movwf EEDATA
BSF STATUS, RP0
BCF EECON1, EEPGD
BSF EECON1, Wren
MANUAL movlw H'55 '
movwf EECON2
movlw H'AA '
movwf EECON2
BSF EECON1, WR
CHKWRT
btfss PIR2, EEIF
goto CHKWRT
BCF PIR2, EEIF
terug
;..............
; Data te lezen van EEPROM ROUTINETESTS aangepast voor PIC16F87X HULPMIDDELEN
; VOLGENS INFORMATIEBLAD DS30292A Page 43
; Deze routine wordt aangegaan met W HOLDING
; De EEPROM BYTE ADRES TE LEZEN
PRMGET
movwf EEADR
BSF STATUS, RP0
BCF EECON1, EEPGD
BSF EECON1, RD
BCF STATUS, RP0
movf EEDATA, W
BCF STATUS, RP1
terug
;------------------------------------------------- -----------------------------
; Alfabetten aan GSM-modem
A_ movlw "A"
uitnodiging sturen
terug
B_ movlw 'B'
uitnodiging sturen
terug
C_ movlw 'C'
uitnodiging sturen
terug
D_ movlw 'D'
uitnodiging sturen
terug
E_ movlw "E"
uitnodiging sturen
terug
F_ movlw 'F'
uitnodiging sturen
terug
G_ movlw 'G'
uitnodiging sturen
terug
H_ movlw 'H'
uitnodiging sturen
terug
I_ movlw 'ik'
uitnodiging sturen
terug
J_ movlw 'J'
uitnodiging sturen
terug
K_ movlw 'K'
uitnodiging sturen
terug
L_ movlw "L"
uitnodiging sturen
terug
M_ movlw 'M'
uitnodiging sturen
terug
N_ movlw 'N'
uitnodiging sturen
terug
O_ movlw 'O'
uitnodiging sturen
terug
P_ movlw 'P'
uitnodiging sturen
terug
Q_ movlw 'Q'
uitnodiging sturen
terug
R_ movlw "R"
uitnodiging sturen
terug
S_ movlw 'S'
uitnodiging sturen
terug
T_ movlw 'T'
uitnodiging sturen
terug
U_ movlw 'U'
uitnodiging sturen
terug
V_ movlw 'V'
uitnodiging sturen
terug
W_ movlw 'W'
uitnodiging sturen
terug
X_ movlw 'X'
uitnodiging sturen
terug
Y_ movlw 'Y'
uitnodiging sturen
terug
Z_ movlw 'Z'
uitnodiging sturen
terug
C0 movlw'0 '
uitnodiging sturen
terug
c1 movlw'1 '
uitnodiging sturen
terug
c2 movlw'2 '
uitnodiging sturen
terug
c3 movlw'3 '
uitnodiging sturen
terug
c4 movlw'4 '
uitnodiging sturen
terug
c5 movlw'5 '
uitnodiging sturen
terug
C6 movlw'6 '
uitnodiging sturen
terug
C7 movlw'7 '
uitnodiging sturen
terug
C8 movlw'8 '
uitnodiging sturen
terug
c9 movlw'9 '
uitnodiging sturen
terug
komma
movlw ','
uitnodiging sturen
terug
plus
movlw ' '
uitnodiging sturen
terug
gelijk
movlw '='
uitnodiging sturen
terug
inv
movlw ' "'
uitnodiging sturen
terug
volgende
movlw ''
uitnodiging sturen
terug
voer
movlw D'13 '
uitnodiging sturen
terug
arrow
movlw H'1A '
uitnodiging sturen
terug
;------------------------------------------------- ------------------------------------
at_cmgf
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep F_
oproep gelijk
oproep c1
gesprek voeren
terug
at_cmgr
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep R_
oproep gelijk
oproep c1
gesprek voeren
terug
at_cmgd
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep D_
oproep gelijk
oproep c1
gesprek voeren
movlw D'5 '
oproep vertraging
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep D_
oproep gelijk
oproep c2
gesprek voeren
movlw D'5 '
oproep vertraging
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep D_
oproep gelijk
oproep c3
gesprek voeren
movlw D'5 '
oproep vertraging
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep D_
oproep gelijk
oproep c4
gesprek voeren
movlw D'5 '
oproep vertraging
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep D_
oproep gelijk
oproep c5
gesprek voeren
movlw D'5 '
oproep vertraging
terug
clr_data
clrf data1
clrf data2
clrf data3
clrf data4
clrf data5
clrf data6
clrf data7
clrf data8
clrf data9
clrf data10
clrf data11
clrf data12
clrf data13
clrf data14
clrf data15
clrf data16
clrf data17
clrf data18
clrf data19
clrf data20
terug
;------------------------------------------------- ------------------------
read_msg
movlw D'0 '
oproep PRMGET
movwf PIN1
movlw D'1 '
oproep PRMGET
movwf PIN2
movlw D'2 '
oproep PRMGET
movwf pin3
movlw D'3 '
oproep PRMGET
movwf pin4
oproep clr_data
clrf vlag
movlw data1
movwf FSR
oproep at_cmgr
read_msg1
oproep ontvangen
btfsc vlag, 0
terug
movlw 'P'
xorwf input, W
btfss STATUS, Z
goto read_msg1
movf input, W
movwf INDF
incf FSR, F
read_msg2
oproep ontvangen
btfsc vlag, 0
terug
movf input, W
movwf INDF
incf FSR, F
goto read_msg2
check_msg
BCF vlag, 1
movlw 'P'
xorwf data1, W
btfss STATUS, Z
terug
movlw 'ik'
xorwf data2, W
btfss STATUS, Z
terug
movlw 'N'
xorwf data3, W
btfss STATUS, Z
terug
movf PIN1, W
xorwf data4, W
btfss STATUS, Z
terug
movf PIN2, W
xorwf data5, W
btfss STATUS, Z
terug
movf pin3, W
xorwf data6, W
btfss STATUS, Z
terug
movf pin4, W
xorwf data7, W
btfss STATUS, Z
terug
movlw'1 '
xorwf data9, W
btfsc STATUS, Z
oproep on_relay1
movlw'0 '
xorwf data9, W
btfsc STATUS, Z
oproep off_relay1
movlw'1 '
xorwf data10, W
btfsc STATUS, Z
oproep on_relay2
movlw'0 '
xorwf data10, W
btfsc STATUS, Z
oproep off_relay2
terug
on_relay1
BSF PORTA, 0
BCF PORTA, 2
clrf fault_count
terug
off_relay1
BCF PORTA, 0
BCF PORTA, 2
clrf fault_count
terug
on_relay2
BSF PORTA, 1
BCF PORTA, 2
clrf fault_count
terug
off_relay2
BCF PORTA, 1
BCF PORTA, 2
clrf fault_count
terug
;------------------------------------------------- -------------------------
wait_msg
clrf bitcnt
clrf vlag
oproep clr_data
movlw data1
movwf FSR
wait_msg3
oproep ontvangen
movlw ' '
xorwf input, W
btfss STATUS, Z
goto wait_msg3
goto wait_msg4
wait_msg1
oproep ontvangen
movlw D'5 '
xorwf bitcnt, W
btfsc STATUS, Z
goto wait_msg2
btfsc vlag, 0
goto wait_msg
wait_msg4
movf input, W
movwf INDF
incf FSR, F
incf bitcnt, F
goto wait_msg1
wait_msg2
BCF vlag, 1
movlw ' '
xorwf data1, W
btfss STATUS, Z
terug
movlw 'C'
xorwf data2, W
btfss STATUS, Z
terug
movlw 'M'
xorwf data3, W
btfss STATUS, Z
terug
movlw 'T'
xorwf data4, W
btfss STATUS, Z
terug
movlw 'ik'
xorwf data5, W
btfss STATUS, Z
terug
BSF vlag, 1
terug
;------------------------------------------------- -----------------------------
check_change_pass
BCF vlag, 1
movlw 'P'
xorwf data1, W
btfss STATUS, Z
terug
movlw 'ik'
xorwf data2, W
btfss STATUS, Z
terug
movlw 'C'
xorwf data3, W
btfss STATUS, Z
terug
movf PIN1, W
xorwf data4, W
btfss STATUS, Z
terug
movf PIN2, W
xorwf data5, W
btfss STATUS, Z
terug
movf pin3, W
xorwf data6, W
btfss STATUS, Z
terug
movf pin4, W
xorwf data7, W
btfss STATUS, Z
terug
movf data9, W
movwf winkel1
movlw D'0 '
oproep SETPRM
movf data10, W
movwf winkel1
movlw D'1 '
oproep SETPRM
movf data11, W
movwf winkel1
movlw D'2 '
oproep SETPRM
movf data12, W
movwf winkel1
movlw D'3 '
oproep SETPRM
clrf fault_count
BCF PORTA, 2
terug
belangrijkste
movf fault_count, W
addlw D'255 '- D'3' 1
btfsc STATUS, C
BSF PORTA, 2
oproep wait_msg
btfss vlag, 1
goto belangrijkste
incf fault_count, F
oproep read_msg
oproep check_msg
oproep check_change_pass
change_pin
oproep at_cmgd
goto belangrijkste
eindigen
ik ben momenteel met een PIC16F873A als MCU en Siemens TC35 GSM-modem voor de uitvoering van een SMS-gecontroleerde project.Kan ik een verzoek voor broncode plz?Zou waarderen ur helpen, want
ik ben al testen met de bestaande ASM code die
ik heb verkregen uit een fren die niet echt werkt.
De codes zijn als volgt:
include "P16F873a.inc"
lijst p = 16F873a, r = dec
errorlevel -302
__Config _XT_OSC & _WDT_OFF & _BODEN_OFF & _LVP_OFF & _PWRTE_ON
cblock 0x20
w_temp
p_temp
s_temp
msec
sec
min
counter
input
r0
r1
r2
fault_count
vlag
bitcnt
toevoegen
Winkel1
PIN1
PIN2
pin3
pin4
Datal
data1
data2
data3
data4
data5
data6
data7
data8
data9
data10
data11
data12
data13
data14
data15
data16
data17
data18
data19
data20
endc
XD EQU D'123 '; kristal divider (123)
org 0x2100
de "1234"
org 0x00
goto startorg 0x04; void interrupt (void)
ISR
BCF INTCON, GIE
movwf w_temp
swapf STATUS, W
movwf s_temp
movfw PCLATH
movwf p_temp
btfsc INTCON, T0IF
goto _interrupt
goto INTX
_interrupt
BCF INTCON, T0IF
incf msec, F
movf msec, W
sublw XD
btfss STATUS, Z
Goto INTX
clrf msec
incf sec, F
gesprek verhogen
movf sec, W
sublw 0x3c
btfss STATUS, Z
Goto INTX
clrf sec
incf min, F
movf min, W
sublw 0x3c
btfss STATUS, Z
Goto INTX
clrf min
Goto INTX
INTX
movlw D'4 '
movwf TMR0
movfw p_temp
movwf PCLATH
swapf s_temp, W
movwf STATUS
swapf w_temp, F
swapf w_temp, W
BSF INTCON, GIE
retfie
toenemen
incf counter, F
movlw D'5 '
xorwf counter, w
btfsc STATUS, Z
clrf counter
terug_initialize
BSF STATUS, RP0
movlw B'00000100 '
; TOCS = OSC, PSA = TMR0
movwf OPTION_REG
BCF STATUS, RP0
movlw 0xa0
movwf INTCON
terug
;------------------------------------------------- --------------------------------
start
BSF STATUS, RP0
movlw H'06 '
movwf ADCON1
movlw B'00000000 '
movwf TRISA
movlw B'11110000 '
movwf TRISB
movlw B'10000000 '
movwf TRISC
MOVLW B'00000101 '
MOVWF OPTION_REG
oproep empty_reg
movlw D'10 '
oproep vertraging
oproep RS232
oproep _initialize
oproep at_cmgf
goto belangrijkste
empty_reg
movlw 0x20
movwf FSR
empty_reg1
movlw H'7F '
xorwf FSR, W
btfsc STATUS, Z
terug
clrf INDF
incf FSR, F
goto empty_reg1
; SET BAUD RATE Om te communiceren met pc
; BOOT BAUD RATE = 9600, geen pariteit, 1 stopbit
RS232 BSF STATUS, RP0
movlw 0x19
movwf SPBRG
movlw b'00100100 '
movwf TXSTA
BCF STATUS, RP0
movlw b'10000000 '
movwf RCSTA
clrf Datal
wikkelen decfsz Datal, F
START_UP
goto vestigen
movf RCREG, W
movf RCREG, W
movf RCREG, W
terug
; RECEIVE KARAKTER VAN RS232 EN WINKEL IN W
; Deze routine NIET TERUG TOT EEN AARD IS RECEIVED
Ontvang clrf counter
clrf vlag
clrf input
BSF RCSTA, CREN
Receive1
movf counter, W
addlw D'255 '- D'2' 1
btfsc STATUS, C
goto bye
btfss PIR1, RCIF
goto Receive1
BCF RCSTA, CREN
movf RCREG, W
movwf input
terug
bye movf RCREG, W
movwf input
BSF vlag, 0
retlw ''
; VERZENDEN AARD IN W via RS232 en wacht tot EINDPRODUKT VERZENDENDE
stuur BCF INTCON, GIE
movwf TXREG
TransWt BSF STATUS, RP0
WtHere btfss TXSTA, TRMT
goto WtHere
BSF INTCON, GIE
terug
;------------------------------------------------- -------------------------------
vertraging
movwf r0
delay1 movlw D'133 '
movwf r1
delay2 movlw D'250 "
movwf r2
delay3 decfsz r2, F
goto delay3
decfsz r1, F
goto delay2
decfsz r0, F
goto vertraging
terug
;------------------------------------------------- ------------------------------
; Schrijft data naar EEPROM ROUTINETESTS aangepast voor PIC16F87X HULPMIDDELEN
; VOLGENS INFORMATIEBLAD DS30292A Page 43
; Deze routine wordt aangegaan met W HOLDING
; De EEPROM BYTE adres waar GEGEVENS
; Zal worden opgeslagen.De gegevens die moeten worden OPGESLAGEN
; Wordt gehouden in winkel1
SETPRM
BCF STATUS, RP0
movwf EEADR
BCF STATUS, RP1
movf winkel1, W
BSF STATUS, RP1
movwf EEDATA
BSF STATUS, RP0
BCF EECON1, EEPGD
BSF EECON1, Wren
MANUAL movlw H'55 '
movwf EECON2
movlw H'AA '
movwf EECON2
BSF EECON1, WR
CHKWRT
btfss PIR2, EEIF
goto CHKWRT
BCF PIR2, EEIF
terug
;..............
; Data te lezen van EEPROM ROUTINETESTS aangepast voor PIC16F87X HULPMIDDELEN
; VOLGENS INFORMATIEBLAD DS30292A Page 43
; Deze routine wordt aangegaan met W HOLDING
; De EEPROM BYTE ADRES TE LEZEN
PRMGET
movwf EEADR
BSF STATUS, RP0
BCF EECON1, EEPGD
BSF EECON1, RD
BCF STATUS, RP0
movf EEDATA, W
BCF STATUS, RP1
terug
;------------------------------------------------- -----------------------------
; Alfabetten aan GSM-modem
A_ movlw "A"
uitnodiging sturen
terug
B_ movlw 'B'
uitnodiging sturen
terug
C_ movlw 'C'
uitnodiging sturen
terug
D_ movlw 'D'
uitnodiging sturen
terug
E_ movlw "E"
uitnodiging sturen
terug
F_ movlw 'F'
uitnodiging sturen
terug
G_ movlw 'G'
uitnodiging sturen
terug
H_ movlw 'H'
uitnodiging sturen
terug
I_ movlw 'ik'
uitnodiging sturen
terug
J_ movlw 'J'
uitnodiging sturen
terug
K_ movlw 'K'
uitnodiging sturen
terug
L_ movlw "L"
uitnodiging sturen
terug
M_ movlw 'M'
uitnodiging sturen
terug
N_ movlw 'N'
uitnodiging sturen
terug
O_ movlw 'O'
uitnodiging sturen
terug
P_ movlw 'P'
uitnodiging sturen
terug
Q_ movlw 'Q'
uitnodiging sturen
terug
R_ movlw "R"
uitnodiging sturen
terug
S_ movlw 'S'
uitnodiging sturen
terug
T_ movlw 'T'
uitnodiging sturen
terug
U_ movlw 'U'
uitnodiging sturen
terug
V_ movlw 'V'
uitnodiging sturen
terug
W_ movlw 'W'
uitnodiging sturen
terug
X_ movlw 'X'
uitnodiging sturen
terug
Y_ movlw 'Y'
uitnodiging sturen
terug
Z_ movlw 'Z'
uitnodiging sturen
terug
C0 movlw'0 '
uitnodiging sturen
terug
c1 movlw'1 '
uitnodiging sturen
terug
c2 movlw'2 '
uitnodiging sturen
terug
c3 movlw'3 '
uitnodiging sturen
terug
c4 movlw'4 '
uitnodiging sturen
terug
c5 movlw'5 '
uitnodiging sturen
terug
C6 movlw'6 '
uitnodiging sturen
terug
C7 movlw'7 '
uitnodiging sturen
terug
C8 movlw'8 '
uitnodiging sturen
terug
c9 movlw'9 '
uitnodiging sturen
terug
komma
movlw ','
uitnodiging sturen
terug
plus
movlw ' '
uitnodiging sturen
terug
gelijk
movlw '='
uitnodiging sturen
terug
inv
movlw ' "'
uitnodiging sturen
terug
volgende
movlw ''
uitnodiging sturen
terug
voer
movlw D'13 '
uitnodiging sturen
terug
arrow
movlw H'1A '
uitnodiging sturen
terug
;------------------------------------------------- ------------------------------------
at_cmgf
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep F_
oproep gelijk
oproep c1
gesprek voeren
terug
at_cmgr
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep R_
oproep gelijk
oproep c1
gesprek voeren
terug
at_cmgd
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep D_
oproep gelijk
oproep c1
gesprek voeren
movlw D'5 '
oproep vertraging
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep D_
oproep gelijk
oproep c2
gesprek voeren
movlw D'5 '
oproep vertraging
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep D_
oproep gelijk
oproep c3
gesprek voeren
movlw D'5 '
oproep vertraging
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep D_
oproep gelijk
oproep c4
gesprek voeren
movlw D'5 '
oproep vertraging
oproep A_
oproep T_
oproep plus
oproep C_
oproep m_
oproep G_
oproep D_
oproep gelijk
oproep c5
gesprek voeren
movlw D'5 '
oproep vertraging
terug
clr_data
clrf data1
clrf data2
clrf data3
clrf data4
clrf data5
clrf data6
clrf data7
clrf data8
clrf data9
clrf data10
clrf data11
clrf data12
clrf data13
clrf data14
clrf data15
clrf data16
clrf data17
clrf data18
clrf data19
clrf data20
terug
;------------------------------------------------- ------------------------
read_msg
movlw D'0 '
oproep PRMGET
movwf PIN1
movlw D'1 '
oproep PRMGET
movwf PIN2
movlw D'2 '
oproep PRMGET
movwf pin3
movlw D'3 '
oproep PRMGET
movwf pin4
oproep clr_data
clrf vlag
movlw data1
movwf FSR
oproep at_cmgr
read_msg1
oproep ontvangen
btfsc vlag, 0
terug
movlw 'P'
xorwf input, W
btfss STATUS, Z
goto read_msg1
movf input, W
movwf INDF
incf FSR, F
read_msg2
oproep ontvangen
btfsc vlag, 0
terug
movf input, W
movwf INDF
incf FSR, F
goto read_msg2
check_msg
BCF vlag, 1
movlw 'P'
xorwf data1, W
btfss STATUS, Z
terug
movlw 'ik'
xorwf data2, W
btfss STATUS, Z
terug
movlw 'N'
xorwf data3, W
btfss STATUS, Z
terug
movf PIN1, W
xorwf data4, W
btfss STATUS, Z
terug
movf PIN2, W
xorwf data5, W
btfss STATUS, Z
terug
movf pin3, W
xorwf data6, W
btfss STATUS, Z
terug
movf pin4, W
xorwf data7, W
btfss STATUS, Z
terug
movlw'1 '
xorwf data9, W
btfsc STATUS, Z
oproep on_relay1
movlw'0 '
xorwf data9, W
btfsc STATUS, Z
oproep off_relay1
movlw'1 '
xorwf data10, W
btfsc STATUS, Z
oproep on_relay2
movlw'0 '
xorwf data10, W
btfsc STATUS, Z
oproep off_relay2
terug
on_relay1
BSF PORTA, 0
BCF PORTA, 2
clrf fault_count
terug
off_relay1
BCF PORTA, 0
BCF PORTA, 2
clrf fault_count
terug
on_relay2
BSF PORTA, 1
BCF PORTA, 2
clrf fault_count
terug
off_relay2
BCF PORTA, 1
BCF PORTA, 2
clrf fault_count
terug
;------------------------------------------------- -------------------------
wait_msg
clrf bitcnt
clrf vlag
oproep clr_data
movlw data1
movwf FSR
wait_msg3
oproep ontvangen
movlw ' '
xorwf input, W
btfss STATUS, Z
goto wait_msg3
goto wait_msg4
wait_msg1
oproep ontvangen
movlw D'5 '
xorwf bitcnt, W
btfsc STATUS, Z
goto wait_msg2
btfsc vlag, 0
goto wait_msg
wait_msg4
movf input, W
movwf INDF
incf FSR, F
incf bitcnt, F
goto wait_msg1
wait_msg2
BCF vlag, 1
movlw ' '
xorwf data1, W
btfss STATUS, Z
terug
movlw 'C'
xorwf data2, W
btfss STATUS, Z
terug
movlw 'M'
xorwf data3, W
btfss STATUS, Z
terug
movlw 'T'
xorwf data4, W
btfss STATUS, Z
terug
movlw 'ik'
xorwf data5, W
btfss STATUS, Z
terug
BSF vlag, 1
terug
;------------------------------------------------- -----------------------------
check_change_pass
BCF vlag, 1
movlw 'P'
xorwf data1, W
btfss STATUS, Z
terug
movlw 'ik'
xorwf data2, W
btfss STATUS, Z
terug
movlw 'C'
xorwf data3, W
btfss STATUS, Z
terug
movf PIN1, W
xorwf data4, W
btfss STATUS, Z
terug
movf PIN2, W
xorwf data5, W
btfss STATUS, Z
terug
movf pin3, W
xorwf data6, W
btfss STATUS, Z
terug
movf pin4, W
xorwf data7, W
btfss STATUS, Z
terug
movf data9, W
movwf winkel1
movlw D'0 '
oproep SETPRM
movf data10, W
movwf winkel1
movlw D'1 '
oproep SETPRM
movf data11, W
movwf winkel1
movlw D'2 '
oproep SETPRM
movf data12, W
movwf winkel1
movlw D'3 '
oproep SETPRM
clrf fault_count
BCF PORTA, 2
terug
belangrijkste
movf fault_count, W
addlw D'255 '- D'3' 1
btfsc STATUS, C
BSF PORTA, 2
oproep wait_msg
btfss vlag, 1
goto belangrijkste
incf fault_count, F
oproep read_msg
oproep check_msg
oproep check_change_pass
change_pin
oproep at_cmgd
goto belangrijkste
eindigen