J
Jeremy goh
Guest
Hei folkens,
jeg er for øyeblikket en PIC16F873A som MCU og Siemens TC35 GSM-modem for å gjennomføre en SMS kontrollerte prosjektet.Kan jeg be om for kildekoden plz?Vil sette pris ur hjelp fordi
jeg har
testet med de eksisterende ASM kode som
jeg har fått fra en fren som egentlig ikke fungerer.
Kodene er som følger:
include "P16F873a.inc"
listen 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
skriving
r0
R1
R2
fault_count
flagg
bitcnt
legge til
Butikk1
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 '; krystall Skillelinje (123)
org 0x2100
de "1234"
org 0x00
goto startorg 0x04; void avbruddsordrelinje (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
samtale øke
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
økning
incf counter, F
movlw D'5 '
xorwf counter, w
btfsc STATUS, Z
clrf counter
tilbake_initialize
bsf status, RP0
movlw B'00000100 '
; TOCS = OSC, PSA = TMR0
movwf OPTION_REG
BCF status RP0
movlw 0xa0
movwf INTCON
tilbake
;------------------------------------------------- --------------------------------
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
samtale empty_reg
movlw D'10 '
samtale forsinkelse
samtale RS232
samtale _initialize
samtale at_cmgf
goto hovedinnhold
empty_reg
movlw 0x20
movwf FSR fortsetter
empty_reg1
movlw H'7F '
xorwf FSR fortsetter, W
btfsc STATUS, Z
tilbake
clrf INDF
incf FSR fortsetter, F
goto empty_reg1
; SET baudhastighet å kommunisere med PC
; BOOT baudhastighet = 9600, NO paritet, 1 stoppbit
RS232 bsf status, RP0
movlw 0x19
movwf SPBRG
movlw b'00100100 '
movwf TXSTA
BCF status RP0
movlw b'10000000 '
movwf RCSTA
clrf dataL
bosette decfsz dataL, F
START_UP
goto bosette
movf RCREG, W
movf RCREG, W
movf RCREG, W
tilbake
; RECEIVE tegn fra RS232 OG STORE PÅ W
; DETTE rutinen ikke vender tilbake til en CHARACTER mottas
Motta clrf counter
clrf flagg
clrf skriving
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 skriving
tilbake
bye movf RCREG, W
movwf skriving
bsf flagg, 0
retlw ''
; SEND karakter i W VIA RS232 og vente til FERDIG SENDEGRENSE
send BCF INTCON, GIE
movwf TXREG
TransWt bsf status, RP0
WtHere btfss TXSTA, TRMT
goto WtHere
bsf INTCON, GIE
tilbake
;------------------------------------------------- -------------------------------
utsettelse
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 forsinkelse
tilbake
;------------------------------------------------- ------------------------------
; Skrive data til EEPROM rutine ENDRES FOR PIC16F87X ENHETER
; IFØLGE DATABLAD DS30292A Page 43
; DETTE rutine oppgis MED W EIERANDEL
; THE EEPROM BYTE postadressen som har data
; Skal lagres.Dataene som lagres
; Holdes i butikk1
SETPRM
BCF status RP0
movwf EEADR
BCF status RP1
movf butikk1, W
bsf status, RP1
movwf EEDATA
bsf status, RP0
BCF EECON1, EEPGD
bsf EECON1, gjerdesmutt
MANUAL movlw H'55 '
movwf EECON2
movlw H'AA '
movwf EECON2
bsf EECON1, WR
CHKWRT
btfss PIR2, EEIF
goto CHKWRT
BCF PIR2, EEIF
tilbake
;..............
; LEST data fra EEPROM rutine ENDRES FOR PIC16F87X ENHETER
; IFØLGE DATABLAD DS30292A Page 43
; DETTE rutine oppgis MED W EIERANDEL
; THE EEPROM BYTE adresse for å bli lest
PRMGET
movwf EEADR
bsf status, RP0
BCF EECON1, EEPGD
bsf EECON1, RD
BCF status RP0
movf EEDATA, W
BCF status RP1
tilbake
;------------------------------------------------- -----------------------------
; Alfabeter til GSM-modem
A_ movlw 'A'
samtale sende
tilbake
B_ movlw 'B'
samtale sende
tilbake
C_ movlw 'C'
samtale sende
tilbake
D_ movlw D
samtale sende
tilbake
E_ movlw 'E'
samtale sende
tilbake
F_ movlw "F"
samtale sende
tilbake
G_ movlw "G"
samtale sende
tilbake
H_ movlw 'H'
samtale sende
tilbake
I_ movlw 'I'
samtale sende
tilbake
J_ movlw 'J'
samtale sende
tilbake
K_ movlw 'K'
samtale sende
tilbake
L_ movlw 'L'
samtale sende
tilbake
M_ movlw 'M'
samtale sende
tilbake
N_ movlw 'N'
samtale sende
tilbake
O_ movlw "O"
samtale sende
tilbake
P_ movlw "P"
samtale sende
tilbake
Q_ movlw 'Q'
samtale sende
tilbake
R_ movlw 'R'
samtale sende
tilbake
S_ movlw 'S'
samtale sende
tilbake
T_ movlw 'T'
samtale sende
tilbake
U_ movlw 'U'
samtale sende
tilbake
V_ movlw "V"
samtale sende
tilbake
W_ movlw "W"
samtale sende
tilbake
X_ movlw "X"
samtale sende
tilbake
Y_ movlw 'Y'
samtale sende
tilbake
Z_ movlw "Z"
samtale sende
tilbake
c0 movlw'0 '
samtale sende
tilbake
c1 movlw'1 '
samtale sende
tilbake
c2 movlw'2 '
samtale sende
tilbake
C3 movlw'3 '
samtale sende
tilbake
c4 movlw'4 '
samtale sende
tilbake
C5 movlw "5."
samtale sende
tilbake
C6 movlw'6 '
samtale sende
tilbake
C7 movlw'7 '
samtale sende
tilbake
c8 movlw'8 '
samtale sende
tilbake
C9 movlw'9 '
samtale sende
tilbake
komma
movlw ','
samtale sende
tilbake
pluss
movlw ' '
samtale sende
tilbake
lik
movlw '='
samtale sende
tilbake
INV
movlw ' "'
samtale sende
tilbake
neste
movlw ''
samtale sende
tilbake
angir
movlw D'13 '
samtale sende
tilbake
arrow
movlw H'1A '
samtale sende
tilbake
;------------------------------------------------- ------------------------------------
at_cmgf
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale F_
ring lik
samtale c1
ring angir
tilbake
at_cmgr
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale R_
ring lik
samtale c1
ring angir
tilbake
at_cmgd
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale D_
ring lik
samtale c1
ring angir
movlw D'5 '
samtale forsinkelse
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale D_
ring lik
samtale c2
ring angir
movlw D'5 '
samtale forsinkelse
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale D_
ring lik
samtale C3
ring angir
movlw D'5 '
samtale forsinkelse
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale D_
ring lik
samtale c4
ring angir
movlw D'5 '
samtale forsinkelse
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale D_
ring lik
samtale C5
ring angir
movlw D'5 '
samtale forsinkelse
tilbake
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
tilbake
;------------------------------------------------- ------------------------
read_msg
movlw D'0 '
samtale PRMGET
movwf pin1
movlw D'1 '
samtale PRMGET
movwf PIN2
movlw D'2 '
samtale PRMGET
movwf pin3
movlw D'3 '
samtale PRMGET
movwf pin4
samtale clr_data
clrf flagg
movlw data1
movwf FSR fortsetter
samtale at_cmgr
read_msg1
samtale Motta
btfsc flagg, 0
tilbake
movlw "P"
xorwf skriving, W
btfss STATUS, Z
goto read_msg1
movf skriving, W
movwf INDF
incf FSR fortsetter, F
read_msg2
samtale Motta
btfsc flagg, 0
tilbake
movf skriving, W
movwf INDF
incf FSR fortsetter, F
goto read_msg2
check_msg
BCF flagg, 1
movlw "P"
xorwf data1, W
btfss STATUS, Z
tilbake
movlw 'I'
xorwf data2, W
btfss STATUS, Z
tilbake
movlw 'N'
xorwf data3, W
btfss STATUS, Z
tilbake
movf pin1, W
xorwf data4, W
btfss STATUS, Z
tilbake
movf PIN2, W
xorwf data5, W
btfss STATUS, Z
tilbake
movf pin3, W
xorwf data6, W
btfss STATUS, Z
tilbake
movf pin4, W
xorwf data7, W
btfss STATUS, Z
tilbake
movlw'1 '
xorwf data9, W
btfsc STATUS, Z
samtale on_relay1
movlw'0 '
xorwf data9, W
btfsc STATUS, Z
samtale off_relay1
movlw'1 '
xorwf data10, W
btfsc STATUS, Z
samtale on_relay2
movlw'0 '
xorwf data10, W
btfsc STATUS, Z
samtale off_relay2
tilbake
on_relay1
bsf Porta, 0
BCF Porta, 2
clrf fault_count
tilbake
off_relay1
BCF Porta, 0
BCF Porta, 2
clrf fault_count
tilbake
on_relay2
bsf Porta, 1
BCF Porta, 2
clrf fault_count
tilbake
off_relay2
BCF Porta, 1
BCF Porta, 2
clrf fault_count
tilbake
;------------------------------------------------- -------------------------
wait_msg
clrf bitcnt
clrf flagg
samtale clr_data
movlw data1
movwf FSR fortsetter
wait_msg3
samtale Motta
movlw ' '
xorwf skriving, W
btfss STATUS, Z
goto wait_msg3
goto wait_msg4
wait_msg1
samtale Motta
movlw D'5 '
xorwf bitcnt, W
btfsc STATUS, Z
goto wait_msg2
btfsc flagg, 0
goto wait_msg
wait_msg4
movf skriving, W
movwf INDF
incf FSR fortsetter, F
incf bitcnt, F
goto wait_msg1
wait_msg2
BCF flagg, 1
movlw ' '
xorwf data1, W
btfss STATUS, Z
tilbake
movlw 'C'
xorwf data2, W
btfss STATUS, Z
tilbake
movlw 'M'
xorwf data3, W
btfss STATUS, Z
tilbake
movlw 'T'
xorwf data4, W
btfss STATUS, Z
tilbake
movlw 'I'
xorwf data5, W
btfss STATUS, Z
tilbake
bsf flagg, 1
tilbake
;------------------------------------------------- -----------------------------
check_change_pass
BCF flagg, 1
movlw "P"
xorwf data1, W
btfss STATUS, Z
tilbake
movlw 'I'
xorwf data2, W
btfss STATUS, Z
tilbake
movlw 'C'
xorwf data3, W
btfss STATUS, Z
tilbake
movf pin1, W
xorwf data4, W
btfss STATUS, Z
tilbake
movf PIN2, W
xorwf data5, W
btfss STATUS, Z
tilbake
movf pin3, W
xorwf data6, W
btfss STATUS, Z
tilbake
movf pin4, W
xorwf data7, W
btfss STATUS, Z
tilbake
movf data9, W
movwf butikk1
movlw D'0 '
samtale SETPRM
movf data10, W
movwf butikk1
movlw D'1 '
samtale SETPRM
movf data11, W
movwf butikk1
movlw D'2 '
samtale SETPRM
movf data12, W
movwf butikk1
movlw D'3 '
samtale SETPRM
clrf fault_count
BCF Porta, 2
tilbake
hovedsaklig
movf fault_count, W
addlw D'255 '- D'3 " 1
btfsc STATUS, C
bsf Porta, 2
samtale wait_msg
btfss flagg, 1
goto hovedinnhold
incf fault_count, F
samtale read_msg
samtale check_msg
samtale check_change_pass
change_pin
samtale at_cmgd
goto hovedinnhold
slutt
jeg er for øyeblikket en PIC16F873A som MCU og Siemens TC35 GSM-modem for å gjennomføre en SMS kontrollerte prosjektet.Kan jeg be om for kildekoden plz?Vil sette pris ur hjelp fordi
jeg har
testet med de eksisterende ASM kode som
jeg har fått fra en fren som egentlig ikke fungerer.
Kodene er som følger:
include "P16F873a.inc"
listen 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
skriving
r0
R1
R2
fault_count
flagg
bitcnt
legge til
Butikk1
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 '; krystall Skillelinje (123)
org 0x2100
de "1234"
org 0x00
goto startorg 0x04; void avbruddsordrelinje (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
samtale øke
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
økning
incf counter, F
movlw D'5 '
xorwf counter, w
btfsc STATUS, Z
clrf counter
tilbake_initialize
bsf status, RP0
movlw B'00000100 '
; TOCS = OSC, PSA = TMR0
movwf OPTION_REG
BCF status RP0
movlw 0xa0
movwf INTCON
tilbake
;------------------------------------------------- --------------------------------
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
samtale empty_reg
movlw D'10 '
samtale forsinkelse
samtale RS232
samtale _initialize
samtale at_cmgf
goto hovedinnhold
empty_reg
movlw 0x20
movwf FSR fortsetter
empty_reg1
movlw H'7F '
xorwf FSR fortsetter, W
btfsc STATUS, Z
tilbake
clrf INDF
incf FSR fortsetter, F
goto empty_reg1
; SET baudhastighet å kommunisere med PC
; BOOT baudhastighet = 9600, NO paritet, 1 stoppbit
RS232 bsf status, RP0
movlw 0x19
movwf SPBRG
movlw b'00100100 '
movwf TXSTA
BCF status RP0
movlw b'10000000 '
movwf RCSTA
clrf dataL
bosette decfsz dataL, F
START_UP
goto bosette
movf RCREG, W
movf RCREG, W
movf RCREG, W
tilbake
; RECEIVE tegn fra RS232 OG STORE PÅ W
; DETTE rutinen ikke vender tilbake til en CHARACTER mottas
Motta clrf counter
clrf flagg
clrf skriving
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 skriving
tilbake
bye movf RCREG, W
movwf skriving
bsf flagg, 0
retlw ''
; SEND karakter i W VIA RS232 og vente til FERDIG SENDEGRENSE
send BCF INTCON, GIE
movwf TXREG
TransWt bsf status, RP0
WtHere btfss TXSTA, TRMT
goto WtHere
bsf INTCON, GIE
tilbake
;------------------------------------------------- -------------------------------
utsettelse
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 forsinkelse
tilbake
;------------------------------------------------- ------------------------------
; Skrive data til EEPROM rutine ENDRES FOR PIC16F87X ENHETER
; IFØLGE DATABLAD DS30292A Page 43
; DETTE rutine oppgis MED W EIERANDEL
; THE EEPROM BYTE postadressen som har data
; Skal lagres.Dataene som lagres
; Holdes i butikk1
SETPRM
BCF status RP0
movwf EEADR
BCF status RP1
movf butikk1, W
bsf status, RP1
movwf EEDATA
bsf status, RP0
BCF EECON1, EEPGD
bsf EECON1, gjerdesmutt
MANUAL movlw H'55 '
movwf EECON2
movlw H'AA '
movwf EECON2
bsf EECON1, WR
CHKWRT
btfss PIR2, EEIF
goto CHKWRT
BCF PIR2, EEIF
tilbake
;..............
; LEST data fra EEPROM rutine ENDRES FOR PIC16F87X ENHETER
; IFØLGE DATABLAD DS30292A Page 43
; DETTE rutine oppgis MED W EIERANDEL
; THE EEPROM BYTE adresse for å bli lest
PRMGET
movwf EEADR
bsf status, RP0
BCF EECON1, EEPGD
bsf EECON1, RD
BCF status RP0
movf EEDATA, W
BCF status RP1
tilbake
;------------------------------------------------- -----------------------------
; Alfabeter til GSM-modem
A_ movlw 'A'
samtale sende
tilbake
B_ movlw 'B'
samtale sende
tilbake
C_ movlw 'C'
samtale sende
tilbake
D_ movlw D
samtale sende
tilbake
E_ movlw 'E'
samtale sende
tilbake
F_ movlw "F"
samtale sende
tilbake
G_ movlw "G"
samtale sende
tilbake
H_ movlw 'H'
samtale sende
tilbake
I_ movlw 'I'
samtale sende
tilbake
J_ movlw 'J'
samtale sende
tilbake
K_ movlw 'K'
samtale sende
tilbake
L_ movlw 'L'
samtale sende
tilbake
M_ movlw 'M'
samtale sende
tilbake
N_ movlw 'N'
samtale sende
tilbake
O_ movlw "O"
samtale sende
tilbake
P_ movlw "P"
samtale sende
tilbake
Q_ movlw 'Q'
samtale sende
tilbake
R_ movlw 'R'
samtale sende
tilbake
S_ movlw 'S'
samtale sende
tilbake
T_ movlw 'T'
samtale sende
tilbake
U_ movlw 'U'
samtale sende
tilbake
V_ movlw "V"
samtale sende
tilbake
W_ movlw "W"
samtale sende
tilbake
X_ movlw "X"
samtale sende
tilbake
Y_ movlw 'Y'
samtale sende
tilbake
Z_ movlw "Z"
samtale sende
tilbake
c0 movlw'0 '
samtale sende
tilbake
c1 movlw'1 '
samtale sende
tilbake
c2 movlw'2 '
samtale sende
tilbake
C3 movlw'3 '
samtale sende
tilbake
c4 movlw'4 '
samtale sende
tilbake
C5 movlw "5."
samtale sende
tilbake
C6 movlw'6 '
samtale sende
tilbake
C7 movlw'7 '
samtale sende
tilbake
c8 movlw'8 '
samtale sende
tilbake
C9 movlw'9 '
samtale sende
tilbake
komma
movlw ','
samtale sende
tilbake
pluss
movlw ' '
samtale sende
tilbake
lik
movlw '='
samtale sende
tilbake
INV
movlw ' "'
samtale sende
tilbake
neste
movlw ''
samtale sende
tilbake
angir
movlw D'13 '
samtale sende
tilbake
arrow
movlw H'1A '
samtale sende
tilbake
;------------------------------------------------- ------------------------------------
at_cmgf
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale F_
ring lik
samtale c1
ring angir
tilbake
at_cmgr
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale R_
ring lik
samtale c1
ring angir
tilbake
at_cmgd
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale D_
ring lik
samtale c1
ring angir
movlw D'5 '
samtale forsinkelse
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale D_
ring lik
samtale c2
ring angir
movlw D'5 '
samtale forsinkelse
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale D_
ring lik
samtale C3
ring angir
movlw D'5 '
samtale forsinkelse
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale D_
ring lik
samtale c4
ring angir
movlw D'5 '
samtale forsinkelse
samtale A_
samtale T_
samtale pluss
samtale C_
samtale M_
samtale G_
samtale D_
ring lik
samtale C5
ring angir
movlw D'5 '
samtale forsinkelse
tilbake
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
tilbake
;------------------------------------------------- ------------------------
read_msg
movlw D'0 '
samtale PRMGET
movwf pin1
movlw D'1 '
samtale PRMGET
movwf PIN2
movlw D'2 '
samtale PRMGET
movwf pin3
movlw D'3 '
samtale PRMGET
movwf pin4
samtale clr_data
clrf flagg
movlw data1
movwf FSR fortsetter
samtale at_cmgr
read_msg1
samtale Motta
btfsc flagg, 0
tilbake
movlw "P"
xorwf skriving, W
btfss STATUS, Z
goto read_msg1
movf skriving, W
movwf INDF
incf FSR fortsetter, F
read_msg2
samtale Motta
btfsc flagg, 0
tilbake
movf skriving, W
movwf INDF
incf FSR fortsetter, F
goto read_msg2
check_msg
BCF flagg, 1
movlw "P"
xorwf data1, W
btfss STATUS, Z
tilbake
movlw 'I'
xorwf data2, W
btfss STATUS, Z
tilbake
movlw 'N'
xorwf data3, W
btfss STATUS, Z
tilbake
movf pin1, W
xorwf data4, W
btfss STATUS, Z
tilbake
movf PIN2, W
xorwf data5, W
btfss STATUS, Z
tilbake
movf pin3, W
xorwf data6, W
btfss STATUS, Z
tilbake
movf pin4, W
xorwf data7, W
btfss STATUS, Z
tilbake
movlw'1 '
xorwf data9, W
btfsc STATUS, Z
samtale on_relay1
movlw'0 '
xorwf data9, W
btfsc STATUS, Z
samtale off_relay1
movlw'1 '
xorwf data10, W
btfsc STATUS, Z
samtale on_relay2
movlw'0 '
xorwf data10, W
btfsc STATUS, Z
samtale off_relay2
tilbake
on_relay1
bsf Porta, 0
BCF Porta, 2
clrf fault_count
tilbake
off_relay1
BCF Porta, 0
BCF Porta, 2
clrf fault_count
tilbake
on_relay2
bsf Porta, 1
BCF Porta, 2
clrf fault_count
tilbake
off_relay2
BCF Porta, 1
BCF Porta, 2
clrf fault_count
tilbake
;------------------------------------------------- -------------------------
wait_msg
clrf bitcnt
clrf flagg
samtale clr_data
movlw data1
movwf FSR fortsetter
wait_msg3
samtale Motta
movlw ' '
xorwf skriving, W
btfss STATUS, Z
goto wait_msg3
goto wait_msg4
wait_msg1
samtale Motta
movlw D'5 '
xorwf bitcnt, W
btfsc STATUS, Z
goto wait_msg2
btfsc flagg, 0
goto wait_msg
wait_msg4
movf skriving, W
movwf INDF
incf FSR fortsetter, F
incf bitcnt, F
goto wait_msg1
wait_msg2
BCF flagg, 1
movlw ' '
xorwf data1, W
btfss STATUS, Z
tilbake
movlw 'C'
xorwf data2, W
btfss STATUS, Z
tilbake
movlw 'M'
xorwf data3, W
btfss STATUS, Z
tilbake
movlw 'T'
xorwf data4, W
btfss STATUS, Z
tilbake
movlw 'I'
xorwf data5, W
btfss STATUS, Z
tilbake
bsf flagg, 1
tilbake
;------------------------------------------------- -----------------------------
check_change_pass
BCF flagg, 1
movlw "P"
xorwf data1, W
btfss STATUS, Z
tilbake
movlw 'I'
xorwf data2, W
btfss STATUS, Z
tilbake
movlw 'C'
xorwf data3, W
btfss STATUS, Z
tilbake
movf pin1, W
xorwf data4, W
btfss STATUS, Z
tilbake
movf PIN2, W
xorwf data5, W
btfss STATUS, Z
tilbake
movf pin3, W
xorwf data6, W
btfss STATUS, Z
tilbake
movf pin4, W
xorwf data7, W
btfss STATUS, Z
tilbake
movf data9, W
movwf butikk1
movlw D'0 '
samtale SETPRM
movf data10, W
movwf butikk1
movlw D'1 '
samtale SETPRM
movf data11, W
movwf butikk1
movlw D'2 '
samtale SETPRM
movf data12, W
movwf butikk1
movlw D'3 '
samtale SETPRM
clrf fault_count
BCF Porta, 2
tilbake
hovedsaklig
movf fault_count, W
addlw D'255 '- D'3 " 1
btfsc STATUS, C
bsf Porta, 2
samtale wait_msg
btfss flagg, 1
goto hovedinnhold
incf fault_count, F
samtale read_msg
samtale check_msg
samtale check_change_pass
change_pin
samtale at_cmgd
goto hovedinnhold
slutt