Rock (8 / 8 steg)
Steg 8: Microcontroller programkod
;***************FINAL********************************lista över p = 16f877
inkluderar < P16F877. INC >
radix dec
idlocs "V" << 8 | "1" ; Versionsnr
config _CP_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC
; *** huvudsakliga variabeln ***
cblock 0x20; start bank 0 ram område
INPUT_VAR
L1
L2
X
SPEED11
SPEED12
SPEED21
SPEED22
MSTOP
LDET
LR1
LR2
endc
; *** start av huvudprogrammet ***
Start
BSF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X40
MOVWF ADCON1
MOVLW 0XFF; PORT A ÄR JAG
MOVWF TRISA
MOVLW 0X00; PORT B ÄR O
MOVWF TRISB
MOVLW 0XF0; PORT C ÄR I/O
MOVWF TRISC
MOVLW 0XF0; PORT D ÄR I/O
MOVWF TRISD
MOVLW 0X07; PORT E ÄR JAG
MOVWF TRISE
BANKSEL OPTION_REG
BCF OPTION_REG, T0CS
BCF STATUS, RP1
BCF STATUS, RP0
;*******************************************
;*******************************************
Vänta
BCF PORTB, 1
BCF PORTB, 2
BCF PORTB, 6
KALLA PWM1OFF
KALLA PWM2OFF
BCF PORTD, 0
BCF PORTD, 1
BCF PORTD, 2
BCF PORTD, 3
BTFSS LDET, 0
BCF PORTB, 7
MOVLW 0X00
MOVF MSTOP
MOVF LDET
BANKSEL INTCON
BCF INTCON, GIE
BANKSEL TXSTA
BSF TXSTA, BRGH
MOVLW 0X40
MOVWF SPBRG
BCF TXSTA, SYNC
BANKSEL RCSTA
BSF RCSTA, SPEN
BTFSC RCSTA, OERR
GÅ TILL CLROE
BANKSEL PIE1
BSF PIE1, RCIE
BANKSEL RCSTA
BCF RCSTA, RX9
BSF RCSTA, CR
WAIT1
BANKSEL PORTB
BSF PORTB, 3
BSF PORTB, 4
BANKSEL PIR1
BTFSS PIR1, RCIF
GÅ TILL WAIT1
BCF MSTOP, 0
BCF PORTB, 3
BCF PORTB, 4
KALLA PWM1OFF
KALLA PWM2OFF
RING DARKLIGHT
BTFSC LDET, 0
BSF PORTB, 7
RXDATA
; BANKSEL RCSTA
; BTFSC RCSTA, OERR
; GÅ TILL STOPP
KALLA PWM1OFF
KALLA PWM2OFF
RING DARKLIGHT
BTFSC LDET, 0
BSF PORTB, 7
BANKSEL PIR1
BCF PIR1, RCIF
BANKSEL RCREG
MOVF RCREG, 0
;*******************************************
;*******************************************
MOVWF INPUT_VAR
MOVLW 0X00
MOVWF RCREG
BCF STATUS, RP0
BCF STATUS, RP1
MOVF INPUT_VAR, 0; Stanna
SUBLW 0X53
BTFSC STATUS, Z
GÅ TILL STOPP
MOVF INPUT_VAR, 0; LJUS PÅ
SUBLW 0X4E
BTFSC STATUS, Z
GÅ TILL LON
MOVF INPUT_VAR, 0; LJUS AV
SUBLW 0X51
BTFSC STATUS, Z
GÅ TILL LOFF
MOVF INPUT_VAR, 0; GÅ LÅNGSAMT FRAMÅT
SUBLW 0X66
BTFSC STATUS, Z
GÅ TILL FSLOW
MOVF INPUT_VAR, 0; FLYTTA HÖGER LÅNGSAMT
SUBLW 0X72
BTFSC STATUS, Z
GÅ TILL RSLOW
MOVF INPUT_VAR, 0; FLYTTA VÄNSTER LÅNGSAM
SUBLW 0X6C
BTFSC STATUS, Z
GÅ TILL LSLOW
MOVF INPUT_VAR, 0; FLYTTA BAKÅT LÅNGSAMT
SUBLW 0X62
BTFSC STATUS, Z
GÅ TILL ASEN
MOVF INPUT_VAR, 0; FLYTTA FRAMÅT MEDIUM
SUBLW 0X46
BTFSC STATUS, Z
GÅ TILL FMED
MOVF INPUT_VAR, 0; FLYTTA HÖGER MEDIUM
SUBLW 0X52
BTFSC STATUS, Z
GÅ TILL BEKRÄFTAT
MOVF INPUT_VAR, 0; FLYTTA VÄNSTER MEDIUM
SUBLW 0X4C
BTFSC STATUS, Z
GÅ TILL IN
MOVF INPUT_VAR, 0; FLYTTA BAKÅT MEDIUM
SUBLW 0X42
BTFSC STATUS, Z
GÅ TILL BMED
MOVF INPUT_VAR, 0; GÅ FRAMÅT SNABBT
SUBLW 0X55
BTFSC STATUS, Z
GÅ TILL FFAST
MOVF INPUT_VAR, 0; GÅ RÄTT SNABBT
SUBLW 0X57
BTFSC STATUS, Z
GÅ TILL RFAST
MOVF INPUT_VAR, 0; FLYTTA TILL VÄNSTER SNABBT
SUBLW 0X56
BTFSC STATUS, Z
GÅ TILL LFAST
MOVF INPUT_VAR, 0; FLYTTA BAKÅT FAST
SUBLW 0X58
BTFSC STATUS, Z
GÅ TILL BFAST
MOVF INPUT_VAR, 0; HAND NÄRA
SUBLW 0X43
BTFSC STATUS, Z
GÅ TILL HCLOSE
MOVF INPUT_VAR, 0; HAND ÖPPEN
SUBLW 0X4F
BTFSC STATUS, Z
GÅ TILL HOPEN
MOVF INPUT_VAR, 0; HAND UPP
SUBLW 0X75
BTFSC STATUS, Z
GÅ TILL HUP
MOVF INPUT_VAR, 0; HANDEN NER
SUBLW 0X64
BTFSC STATUS, Z
GÅ TILL HDOWN
MOVF INPUT_VAR, 0; LJUS FOLOWER
SUBLW 0X54
BTFSC STATUS, Z
GÅ TILL LFOLLOW
;*******************************************
;*******************************************
GÅ TILL CLROE
FSLOW
; BANKSEL RCSTA
; BCF RCSTA, OERR
; BCF RCSTA, CR
; NOP
; BSF RCSTA, CR
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
; BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
NORMALSLOW
MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X66
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X66
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BCF PORTD, 0
BCF PORTD, 1
BSF PORTB, 1
BSF PORTB, 2
REP3
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP3
GÅ TILL CLROE
;*******************************************
LSLOW
BCF STATUS, RP0
BCF STATUS, RP1
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XCF
MOVWF SPEED21
MOVLW 0X66
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BSF PORTD, 0
BCF PORTD, 1
BSF PORTB, 1
BCF PORTB, 2
REP4
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP4
GÅ TILL CLROE
;*******************************************
RSLOW
BCF STATUS, RP0
BCF STATUS, RP1
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
MOVLW 0XCF
MOVWF SPEED11
MOVLW 0X66
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BCF PORTD, 0
BSF PORTD, 1
BCF PORTB, 1
BSF PORTB, 2
REP35
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP35
GÅ TILL CLROE
;*****************************
ASEN
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
MOVLW 0XCF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XCF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BSF PORTD, 0
BSF PORTD, 1
BCF PORTB, 1
BCF PORTB, 2
REP5
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP5
GÅ TILL CLROE
;*******************************************
FMED
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
NORMALMED
MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BCF PORTD, 0
BCF PORTD, 1
BSF PORTB, 1
BSF PORTB, 2
KALLA SDELAY
REP6
KALLA STALL1
BTFSC MSTOP, 0
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
NOP
BTFSS PORTD, 7
GÅ TILL REP6
PLUSEMED
MOVLW 0XCF
MOVWF SPEED11
MOVLW 0XCC
MOVWF SPEED12
MOVLW 0XCF
MOVWF SPEED21
MOVLW 0XCC
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BCF PORTD, 0
BCF PORTD, 1
BSF PORTB, 1
BSF PORTB, 2
KALLA SDELAY
REP7
KALLA STALL1
BTFSC MSTOP, 0
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
BTFSS PORTD, 7
GÅ TILL NORMALMED
GÅ TILL REP7
GÅ TILL CLROE
;*******************************************
BEKRÄFTAT
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X66
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BCF PORTD, 0
BSF PORTD, 1
BCF PORTB, 1
BSF PORTB, 2
REP8
KALLA STALL1
BTFSC MSTOP, 0
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP8
GÅ TILL CLROE
;*******************************************
IN
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X66
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BSF PORTD, 0
BCF PORTD, 1
BSF PORTB, 1
BCF PORTB, 2
REP9
; KALLA STALL1
; BTFSC MSTOP, 0
; GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP9
GÅ TILL CLROE
;*******************************************
BMED
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X7F
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X7F
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BSF PORTD, 0
BSF PORTD, 1
BCF PORTB, 1
BCF PORTB, 2
REP10
KALLA STALL1
BTFSC MSTOP, 0
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP10
GÅ TILL CLROE
;*******************************************
FFAST
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
BSF MSTOP, 4
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
MOVLW 0XEF
MOVWF SPEED11
MOVLW 0X7F
MOVWF SPEED12
MOVLW 0XEF
MOVWF SPEED21
MOVLW 0X7F
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BCF PORTD, 0
BCF PORTD, 1
BSF PORTB, 1
BSF PORTB, 2
KALLA SDELAY
NORMALFAST
MOVLW 0XCF
MOVWF SPEED11
MOVLW 0XCC
MOVWF SPEED12
MOVLW 0XCF
MOVWF SPEED21
MOVLW 0XCC
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BCF PORTD, 0
BCF PORTD, 1
BTFSC LDET, 0
BSF PORTB, 7
BSF PORTB, 1
BSF PORTB, 2
REP11
KALLA STALL1
BTFSC MSTOP, 0
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
NOP
BTFSS PORTD, 7
GÅ TILL REP11
PLUSEFAST
MOVLW 0XCF
MOVWF SPEED11
MOVLW 0XFF
MOVWF SPEED12
MOVLW 0XCF
MOVWF SPEED21
MOVLW 0XFF
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BCF PORTD, 0
BCF PORTD, 1
BSF PORTB, 1
BSF PORTB, 2
REP12
KALLA STALL1
BTFSC MSTOP, 0
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
BTFSS PORTD, 7
GÅ TILL NORMALFAST
GÅ TILL REP12
GÅ TILL CLROE
;*******************************************
RFAST
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X66
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BCF PORTD, 0
BSF PORTD, 1
BCF PORTB, 1
BSF PORTB, 2
REP13
KALLA STALL1
BTFSC MSTOP, 0
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP13
GÅ TILL CLROE
;*******************************************
LFAST
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X66
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BSF PORTD, 0
BCF PORTD, 1
BSF PORTB, 1
BCF PORTB, 2
KALLA SDELAY
MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X4C
MOVWF SPEED12
MOVLW 0XEF
MOVWF SPEED21
MOVLW 0XB3
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BSF PORTD, 0
BCF PORTD, 1
BSF PORTB, 1
BCF PORTB, 2
REP14
KALLA STALL1
BTFSC MSTOP, 0
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP14
GÅ TILL CLROE
;*******************************************
BFAST
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
MOVLW 0XDF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XDF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BSF PORTD, 0
BSF PORTD, 1
BCF PORTB, 1
BCF PORTB, 2
KALLA SDELAY
MOVLW 0XEF
MOVWF SPEED11
MOVLW 0X66
MOVWF SPEED12
MOVLW 0XEF
MOVWF SPEED21
MOVLW 0X66
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BSF PORTD, 0
BSF PORTD, 1
BCF PORTB, 1
BCF PORTB, 2
REP15
KALLA STALL1
BTFSC MSTOP, 0
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP15
GÅ TILL CLROE
;*******************************************
HCLOSE
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
BTFSC PORTD, 5
GÅ TILL STOPP
BTFSC PORTD, 6
GÅ TILL STOPP
BSF PORTD, 2
BCF PORTD, 3
REP16
BTFSC PORTD, 5
GÅ TILL STOPP
BTFSC PORTD, 6
GÅ TILL STOPP
KALLA SDELAY
KALLA STALL2
BTFSC MSTOP, 2
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP16
GÅ TILL CLROE
;*******************************************
HOPEN
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
BTFSC PORTD, 4
GÅ TILL STOPP
BCF PORTD, 2
BSF PORTD, 3
REP17
BTFSC PORTD, 4
GÅ TILL STOPP
KALLA SDELAY
KALLA STALL2
BTFSC MSTOP, 2
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP17
GÅ TILL CLROE
;*******************************************
HUP
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
BTFSC PORTC, 4
GÅ TILL STOPP
BCF PORTC, 0
BSF PORTC, 3
REP18
BTFSC PORTC, 4
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP18
GÅ TILL CLROE
;*******************************************
HDOWN
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BCF LDET, 0
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
RING DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7
BTFSC PORTC, 5
GÅ TILL STOPP
BSF PORTC, 0
BCF PORTC, 3
REP19
BTFSC PORTC, 5
GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
GÅ TILL REP19
GÅ TILL CLROE
;*******************************************
LON
BSF PORTB, 7
BSF LDET, 0
GÅ TILL CLROE
;*******************************************
LOFF
BCF PORTB, 7
BCF LDET, 0
GÅ TILL CLROE
;*******************************************
LFOLLOW
BCF STATUS, RP0
BCF STATUS, RP1
BCF PORTB, 1
BCF PORTB, 2
BCF PORTB, 6
BCF PORTB, 7
KALLA PWM1OFF
KALLA PWM2OFF
BCF PORTD, 0
BCF PORTD, 1
BCF PORTD, 2
BCF PORTD, 3
BSF MSTOP, 6
REPLF
; BANKSEL OPTION_REG
; BSF OPTION_REG, 3
; BSF OPTION_REG, 3
; BSF OPTION_REG, 3
; BSF OPTION_REG, 3
; CLRFWDT
BCF STATUS, RP0
BCF STATUS, RP1
; BANKSEL INTCON
; BCF INTCON, T0IE
; BCF INTCON, T0IF
; BANKSEL PIE1
; BCF PIE1, 6
; BCF PIE1, 0
; BANKSEL INTCON
; BCF INTCON, GIE
BANKSEL PCON
BCF PCON, 0
BCF PCON, 1
NOP
BSF PCON, 0
BSF PCON, 1
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
KALLA SDELAY
KALLA LFC1
NOP
KALLA LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSC STATUS, Z
GÅ TILL FRAMSIDAN
KALLA SDELAY
KALLA LFC1
NOP
KALLA LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSC STATUS, C
GÅ TILL LR2G
LR1G
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X66
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BSF PORTD, 0
BCF PORTD, 1
BSF PORTB, 1
BCF PORTB, 2
LR1GREP
; KALLA STALL1
; BTFSC MSTOP, 0
; GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
KALLA LFC1
NOP
KALLA LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSC STATUS, Z
GÅ TILL REPLF
KALLA LFC1
NOP
KALLA LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSS STATUS, C
GÅ TILL LR1GREP
GÅ TILL REPLF
LR2G
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X66
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BCF PORTD, 0
BSF PORTD, 1
BCF PORTB, 1
BSF PORTB, 2
LR2GREP
; KALLA STALL1
; BTFSC MSTOP, 0
; GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
KALLA LFC1
NOP
KALLA LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSC STATUS, Z
GÅ TILL REPLF
KALLA LFC1
NOP
KALLA LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSC STATUS, C
GÅ TILL LR2GREP
GÅ TILL REPLF
FRAMSIDAN
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
; KALLA BUTTLEVEL
; BTFSC MSTOP, 1
; GÅ TILL STOPP
MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BCF PORTD, 0
BCF PORTD, 1
BSF PORTB, 1
BSF PORTB, 2
KALLA SDELAY
FROREP
; KALLA STALL1
; BTFSC MSTOP, 0
; GÅ TILL STOPP
BANKSEL PIR1
BTFSC PIR1, RCIF
GÅ TILL RXDATA
; KALLA LDIN
; BTFSC MSTOP, 3
; GÅ TILL STOPP
KALLA LFC1
NOP
KALLA LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSC STATUS, Z
GÅ TILL FROREP
GÅ TILL REPLF
GÅ TILL CLROE
;*******************************************
HÅLLPLATSER
BTFSS MSTOP, 4
GÅ TILL STOPA
MOVLW 0XCF
MOVWF SPEED11
MOVLW 0XB3
MOVWF SPEED12
MOVLW 0XCF
MOVWF SPEED21
MOVLW 0XB3
MOVWF SPEED22
KALLA PWM1ON
KALLA PWM2ON
BCF PORTD, 0
BCF PORTD, 1
KALLA SDELAY
STOPA
BCF STATUS, RP0
BCF STATUS, RP1
BCF PORTB, 1
BCF PORTB, 2
BCF PORTB, 6
BTFSS LDET, 0
; BCF PORTB, 7
BCF PORTC, 0
BCF PORTC, 3
KALLA PWM1OFF
KALLA PWM2OFF
BCF PORTD, 0
BCF PORTD, 1
BCF PORTD, 2
BCF PORTD, 3
MOVLW 0X00
MOVWF MSTOP
;*******************************************
CLROE
BANKSEL RCSTA
BCF RCSTA, CR
BCF RCSTA, FERR
BCF RCSTA, OERR
BSF RCSTA, CR
BSF INTCON, GIE
BSF INTCON, PEIE
GÅ TILL WAIT1
;*******************************************
;*******************************************
;*******************************************
STALL1
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BANKSEL ADCON0
BCF ADCON0, 3
BCF ADCON0, 4
BCF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
RING KONVERTERA
MOVF ADRESH, 0
SUBLW 0X70
BTFSS STATUS, C
BSF MSTOP, 0
BCF STATUS, RP0
BCF STATUS, RP1
RETURNERA
STALL2
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BANKSEL ADCON0
BSF ADCON0, 3
BCF ADCON0, 4
BCF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
RING KONVERTERA
MOVF ADRESH, 0
SUBLW 0X40
BTFSS STATUS, C
BSF MSTOP, 2
BCF STATUS, RP0
BCF STATUS, RP1
RETURNERA
BUTTLEVEL
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0X00
MOVWF MSTOP
BANKSEL ADCON0
BCF ADCON0, 3
BCF ADCON0, 4
BSF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
RING KONVERTERA
MOVF ADRESH, 0
SUBLW 0X7F
BTFSS STATUS, C
GÅ TILL BL1
GÅ TILL BL2
BL1
BSF MSTOP, 1
BSF PORTB, 6
BL2
RETURNERA
DARKLIGHT
BCF STATUS, RP0
BCF STATUS, RP1
BTFSC LDET, 0
GÅ TILL RETFDL
BANKSEL ADCON0
BCF ADCON0, 3
BSF ADCON0, 4
BCF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
RING KONVERTERA
MOVF ADRESH, 0
SUBLW 0XEE
BTFSS STATUS, C
BSF PORTB, 7
RETFDL
RETURNERA
KONVERTERA
MOVLW 0X49
BANKSEL ADCON1
MOVWF ADCON1
BANKSEL ADCON0
BCF ADCON0, 7
BSF ADCON0, 6
BSF ADCON0, 0
BSF ADCON0, GÅ
WAITADC
BTFSC ADCON0, GÅ
GÅ TILL WAITADC
BCF STATUS, RP1
BCF STATUS, RP0
RETURNERA
PWM1ON
BANKSEL PR2
MOVLW 0XFF
MOVWF PR2
BCF STATUS, RP0
BCF STATUS, RP1
MOVF SPEED11, 0
MOVWF CCP1CON
MOVF SPEED12, 0
MOVWF CCPR1L
BSF STATUS, RP0
BCF STATUS, RP1
MOVLW 0XF0
MOVWF TRISC
BCF STATUS, RP0
BCF STATUS, RP1
BCF T2CON, T2CKPS1
BCF T2CON, T2CKPS0
BSF T2CON, TMR2ON
BSF CCP1CON, 2
BSF CCP1CON, 3
RETURNERA
PWM2ON
BANKSEL PR2
MOVLW 0XFF
MOVWF PR2
BCF STATUS, RP0
BCF STATUS, RP1
MOVF SPEED21, 0
MOVWF CCP2CON
MOVF SPEED22, 0
MOVWF CCPR2L
BSF STATUS, RP0
BCF STATUS, RP1
MOVLW 0XF0
MOVWF TRISC
BCF STATUS, RP0
BCF STATUS, RP1
BCF T2CON, T2CKPS1
BCF T2CON, T2CKPS0
BSF T2CON, TMR2ON
BSF CCP2CON, 2
BSF CCP2CON, 3
RETURNERA
PWM1OFF
BCF CCP1CON, 2
BCF CCP1CON, 3
BSF T2CON, T2CKPS1
BSF T2CON, T2CKPS0
BCF T2CON, TMR2ON
MOVLW 0X00
MOVWF CCP1CON
MOVLW 0X00
MOVWF CCPR1L
BANKSEL PR2
MOVLW 0X00
MOVWF PR2
BCF STATUS, RP1
BCF STATUS, RP0
RETURNERA
PWM2OFF
BCF CCP2CON, 2
BCF CCP2CON, 3
BSF T2CON, T2CKPS1
BSF T2CON, T2CKPS0
BCF T2CON, TMR2ON
MOVLW 0X00
MOVWF CCP2CON
MOVLW 0X00
MOVWF CCPR2L
BANKSEL PR2
MOVLW 0X00
MOVWF PR2
BCF STATUS, RP1
BCF STATUS, RP0
RETURNERA
LFC1
BANKSEL ADCON0
BSF ADCON0, 3
BCF ADCON0, 4
BSF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
RING KONVERTERA
MOVF ADRESH, W
ANDLW 0XF0
MOVWF LR1
BCF STATUS, RP0
BCF STATUS, RP1
RETURNERA
LFC2
BANKSEL ADCON0
BCF ADCON0, 3
BSF ADCON0, 4
BSF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
RING KONVERTERA
MOVF ADRESH, 0
ANDLW 0XF0
MOVWF LR2
BCF STATUS, RP0
BCF STATUS, RP1
RETURNERA
LDIN
BANKSEL ADCON0
BCF ADCON0, 3
BSF ADCON0, 4
BCF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
RING KONVERTERA
MOVF ADRESH, 0
SUBLW 0X4C
BTFSC STATUS, C
GÅ TILL COMP4
BSF MSTOP, 3
COMP4
BCF STATUS, RP0
BCF STATUS, RP1
RETURNERA
SDELAY
CLRF L2
XL3
CLRF L1
XL2
CLRF TMR0
XL1
MOVLW 0XFF
SUBWF TMR0, W
BTFSS STATUS, C
GÅ TILL XL1
MOVLW 0X20
INCF L1
SUBWF L1, W
BTFSS STATUS, C
GÅ TILL XL2
MOVLW 0X10
INCF L2
SUBWF L2, W
BTFSS STATUS, C
GÅ TILL XL3
RETURNERA
NOP
NOP
SLUTET