La roche (8 / 8 étapes)

Étape 8: Code de programme du microcontrôleur

;***************FINAL********************************

liste p = 16f877
inclure < P16F877. INC >
Radix dec
idlocs « V » << 8 | "1" ; N° de version
config _CP_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC

; *** variable principale ***

cblock 0 x 20 ; début de zone ram Banque 0
INPUT_VAR
L1
L2
X
SPEED11
SPEED12
SPEED21
SPEED22
GSPE
LDET
LR1
LR2

ENDC

; *** démarrage du programme principal ***

début

BSF STATUS, RP0
BCF STATUS, RP1

MOVLW 0 X 40
MOVWF ADCON1
MOVLW 0XFF ; A PORT EST J’AI
MOVWF TRISA

MOVLW 0 X 00 ; PORT B EST O
MOVWF TRISB

MOVLW 0XF0 ; PORT C EST E/S
MOVWF TRISC

MOVLW 0XF0 ; PORT D EST E/S
MOVWF TRISD

MOVLW 0 X 07 ; PORT E EST I
MOVWF TRISE

BANKSEL OPTION_REG
BCF OPTION_REG, T0CS

BCF STATUS, RP1
BCF STATUS, RP0

;*******************************************
;*******************************************

ATTENDRE
BCF PORTB, 1
BCF PORTB, 2
BCF PORTB, 6
APPEL PWM1OFF
APPEL PWM2OFF
BCF PORTD, 0
BCF PORTD, 1
BCF PORTD, 2
BCF PORTD, 3
BTFSS LDET, 0
BCF PORTB, 7

MOVLW 0 X 00
MOVF GSPE
MOVF LDET

BANKSEL INTCON
BCF INTCON, GIE

BANKSEL TXSTA
BSF TXSTA, BRGH
MOVLW 0 X 40
MOVWF SPBRG

BCF TXSTA, SYNCHRONISATION
BANKSEL RCSTA
BSF RCSTA, SPEN

BTFSC RCSTA, OERR
GOTO CLROE

BANKSEL PIE1
BSF PIE1, RCIE

BANKSEL RCSTA
BCF RCSTA, RX9

BSF RCSTA, CREN

WAIT1
BANKSEL PORTB
BSF PORTB, 3
BSF PORTB, 4

BANKSEL PIR1
BTFSS PIR1, RCIF
GOTO WAIT1

BCF GSPE, 0

BCF PORTB, 3
BCF PORTB, 4

APPEL PWM1OFF
APPEL PWM2OFF
APPEL DARKLIGHT
BTFSC LDET, 0
BSF PORTB, 7

RXDATA
; BANKSEL RCSTA
; BTFSC RCSTA, OERR
; ARRÊTS DE GOTO

APPEL PWM1OFF
APPEL PWM2OFF
APPEL DARKLIGHT
BTFSC LDET, 0
BSF PORTB, 7

BANKSEL PIR1
BCF PIR1, RCIF

BANKSEL RCREG
MOVF RCREG, 0

;*******************************************
;*******************************************

MOVWF INPUT_VAR
MOVLW 0 X 00
MOVWF RCREG

BCF STATUS, RP0
BCF STATUS, RP1

MOVF INPUT_VAR, 0 ; ARRÊTER
SUBLW 0 X 53
BTFSC STATUS, Z
ARRÊTS DE GOTO

MOVF INPUT_VAR, 0 ; LUMIÈRE SUR
SUBLW 0X4E
BTFSC STATUS, Z
GOTO LON

MOVF INPUT_VAR, 0 ; LUMIÈRE S’ÉTEINT
SUBLW 0 X 51
BTFSC STATUS, Z
GOTO LOFF

MOVF INPUT_VAR, 0 ; AVANCER LENTEMENT
SUBLW 0X66
BTFSC STATUS, Z
GOTO FSLOW

MOVF INPUT_VAR, 0 ; DÉPLACEZ JUSTE LENT
SUBLW 0 X 72
BTFSC STATUS, Z
GOTO RSLOW

MOVF INPUT_VAR, 0 ; DÉPLACER LENTEMENT VERS LA GAUCHE
SUBLW 0X6C
BTFSC STATUS, Z
GOTO LENTE

MOVF INPUT_VAR, 0 ; MARCHE ARRIÈRE LENTE
SUBLW 0X62
BTFSC STATUS, Z
GOTO ALENT

MOVF INPUT_VAR, 0 ; DÉPLACER LE SUPPORT VERS L’AVANT
SUBLW 0 X 46
BTFSC STATUS, Z
GOTO DAMM

MOVF INPUT_VAR, 0 ; DÉPLACER LA DROITE MOYENNE
SUBLW 0 X 52
BTFSC STATUS, Z
GOTO RMÉ

MOVF INPUT_VAR, 0 ; DÉPLACER LE MILIEU GAUCHE
SUBLW 0X4C
BTFSC STATUS, Z
GOTO LMÉES

MOVF INPUT_VAR, 0 ; SE DÉPLACER EN ARRIÈRE MÉDIUM
SUBLW 0 X 42
BTFSC STATUS, Z
GOTO BMED

MOVF INPUT_VAR, 0 ; ALLER DE L’AVANT RAPIDEMENT
SUBLW 0 X 55
BTFSC STATUS, Z
GOTO FFAST

MOVF INPUT_VAR, 0 ; DÉPLACER LA DROITE RAPIDE
SUBLW 0 X 57
BTFSC STATUS, Z
GOTO RFAST

MOVF INPUT_VAR, 0 ; ALLER À GAUCHE RAPIDE
SUBLW 0 X 56
BTFSC STATUS, Z
GOTO LFAST

MOVF INPUT_VAR, 0 ; MARCHE ARRIÈRE RAPIDE
SUBLW 0 X 58
BTFSC STATUS, Z
BFAST GOTO

MOVF INPUT_VAR, 0 ; PROCHE DE MAIN
SUBLW 0 X 43
BTFSC STATUS, Z
GOTO HCLOSE

MOVF INPUT_VAR, 0 ; MAIN OUVERTE
SUBLW 0X4F
BTFSC STATUS, Z
GOTO HOPEN

MOVF INPUT_VAR, 0 ; COUP DE MAIN
SUBLW 0X75
BTFSC STATUS, Z
GOTO HUP

MOVF INPUT_VAR, 0 ; LA MAIN VERS LE BAS
SUBLW 0 X 64
BTFSC STATUS, Z
GOTO HDOWN

MOVF INPUT_VAR, 0 ; FOLOWER LÉGER
SUBLW 0 X 54
BTFSC STATUS, Z
GOTO LFOLLOW

;*******************************************
;*******************************************

GOTO CLROE
FSLOW
; BANKSEL RCSTA
; BCF RCSTA, OERR
; BCF RCSTA, CREN
; NOP
; BSF RCSTA, CREN

BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
; BCF LDET, 0

; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7

NORMALSLOW

MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X66
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X66
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BCF PORTD, 0
BCF PORTD, 1

BSF PORTB, 1
BSF PORTB, 2
REP3

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP3

GOTO CLROE
;*******************************************

LENTE
BCF STATUS, RP0
BCF STATUS, RP1

; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0

APPEL DARKLIGHT
BTFSC LDET, 0
; BSF PORTB, 7

MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XCF
MOVWF SPEED21
MOVLW 0X66
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BSF PORTD, 0
BCF PORTD, 1

BSF PORTB, 1
BCF PORTB, 2
REP4

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP4
GOTO CLROE
;*******************************************
RSLOW
BCF STATUS, RP0
BCF STATUS, RP1

; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

MOVLW 0XCF
MOVWF SPEED11
MOVLW 0X66
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BCF PORTD, 0
BSF PORTD, 1

BCF PORTB, 1
BSF PORTB, 2
REP35

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP35
GOTO CLROE
;*****************************
ALENT
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

MOVLW 0XCF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XCF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BSF PORTD, 0
BSF PORTD, 1

BCF PORTB, 1
BCF PORTB, 2
REP5
BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP5

GOTO CLROE
;*******************************************
DAMM
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

NORMALMED

MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BCF PORTD, 0
BCF PORTD, 1

BSF PORTB, 1
BSF PORTB, 2
APPEL SDELAY
REP6
APPEL STALL1
BTFSC GSPE, 0
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
NOP
BTFSS PORTD, 7
GOTO REP6

PLUSEMED

MOVLW 0XCF
MOVWF SPEED11
MOVLW 0XCC
MOVWF SPEED12
MOVLW 0XCF
MOVWF SPEED21
MOVLW 0XCC
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BCF PORTD, 0
BCF PORTD, 1

BSF PORTB, 1
BSF PORTB, 2
APPEL SDELAY
REP7
APPEL STALL1
BTFSC GSPE, 0
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
BTFSS PORTD, 7
GOTO NORMALMED
GOTO REP7
GOTO CLROE
;*******************************************
RMÉ
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X66
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BCF PORTD, 0
BSF PORTD, 1

BCF PORTB, 1
BSF PORTB, 2
REP8
APPEL STALL1
BTFSC GSPE, 0
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP8

GOTO CLROE
;*******************************************
LMÉES
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X66
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BSF PORTD, 0
BCF PORTD, 1

BSF PORTB, 1
BCF PORTB, 2
REP9
; APPEL STALL1
; BTFSC GSPE, 0
; ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP9
GOTO CLROE
;*******************************************
BMED
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X7F
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X7F
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BSF PORTD, 0
BSF PORTD, 1

BCF PORTB, 1
BCF PORTB, 2
REP10
APPEL STALL1
BTFSC GSPE, 0
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP10
GOTO CLROE
;*******************************************
FFAST
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
BSF GSPE, 4

; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

MOVLW 0XEF
MOVWF SPEED11
MOVLW 0X7F
MOVWF SPEED12
MOVLW 0XEF
MOVWF SPEED21
MOVLW 0X7F
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BCF PORTD, 0
BCF PORTD, 1

BSF PORTB, 1
BSF PORTB, 2

APPEL SDELAY

NORMALFAST

MOVLW 0XCF
MOVWF SPEED11
MOVLW 0XCC
MOVWF SPEED12
MOVLW 0XCF
MOVWF SPEED21
MOVLW 0XCC
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BCF PORTD, 0
BCF PORTD, 1

BTFSC LDET, 0
BSF PORTB, 7

BSF PORTB, 1
BSF PORTB, 2
REP11
APPEL STALL1
BTFSC GSPE, 0
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
NOP
BTFSS PORTD, 7
GOTO REP11

PLUSEFAST

MOVLW 0XCF
MOVWF SPEED11
MOVLW 0XFF
MOVWF SPEED12
MOVLW 0XCF
MOVWF SPEED21
MOVLW 0XFF
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BCF PORTD, 0
BCF PORTD, 1

BSF PORTB, 1
BSF PORTB, 2
REP12
APPEL STALL1
BTFSC GSPE, 0
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
BTFSS PORTD, 7
GOTO NORMALFAST
GOTO REP12
GOTO CLROE
;*******************************************
RFAST
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X66
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BCF PORTD, 0
BSF PORTD, 1

BCF PORTB, 1
BSF PORTB, 2
REP13
APPEL STALL1
BTFSC GSPE, 0
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP13
GOTO CLROE
;*******************************************
LFAST
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X66
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BSF PORTD, 0
BCF PORTD, 1

BSF PORTB, 1
BCF PORTB, 2

APPEL SDELAY

MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X4C
MOVWF SPEED12
MOVLW 0XEF
MOVWF SPEED21
MOVLW 0XB3
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BSF PORTD, 0
BCF PORTD, 1

BSF PORTB, 1
BCF PORTB, 2
REP14
APPEL STALL1
BTFSC GSPE, 0
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP14
GOTO CLROE
;*******************************************
BFAST
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

MOVLW 0XDF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XDF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BSF PORTD, 0
BSF PORTD, 1

BCF PORTB, 1
BCF PORTB, 2

APPEL SDELAY

MOVLW 0XEF
MOVWF SPEED11
MOVLW 0X66
MOVWF SPEED12
MOVLW 0XEF
MOVWF SPEED21
MOVLW 0X66
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BSF PORTD, 0
BSF PORTD, 1

BCF PORTB, 1
BCF PORTB, 2
REP15
APPEL STALL1
BTFSC GSPE, 0
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP15
GOTO CLROE
;*******************************************
HCLOSE
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

BTFSC PORTD, 5
ARRÊTS DE GOTO
BTFSC PORTD, 6
ARRÊTS DE GOTO

BSF PORTD, 2
BCF PORTD, 3

REP16
BTFSC PORTD, 5
ARRÊTS DE GOTO
BTFSC PORTD, 6
ARRÊTS DE GOTO
APPEL SDELAY
APPEL STALL2
BTFSC GSPE, 2
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP16

GOTO CLROE
;*******************************************
HOPEN
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

BTFSC PORTD, 4
ARRÊTS DE GOTO
BCF PORTD, 2
BSF PORTD, 3

REP17
BTFSC PORTD, 4
ARRÊTS DE GOTO
APPEL SDELAY
APPEL STALL2
BTFSC GSPE, 2
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP17

GOTO CLROE
;*******************************************
HUP

BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

BTFSC PORTC, 4
ARRÊTS DE GOTO
BCF PORTC, 0
BSF PORTC, 3

REP18
BTFSC PORTC, 4
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP18

GOTO CLROE
;*******************************************
HDOWN

BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BCF LDET, 0
; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

APPEL DARKLIGHT

BTFSC LDET, 0
; BSF PORTB, 7

BTFSC PORTC, 5
ARRÊTS DE GOTO
BSF PORTC, 0
BCF PORTC, 3

REP19
BTFSC PORTC, 5
ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
GOTO REP19

GOTO CLROE
;*******************************************
LON

BSF PORTB, 7
BSF LDET, 0

GOTO CLROE
;*******************************************
LOFF
BCF PORTB, 7
BCF LDET, 0

GOTO CLROE
;*******************************************
LFOLLOW

BCF STATUS, RP0
BCF STATUS, RP1

BCF PORTB, 1
BCF PORTB, 2
BCF PORTB, 6
BCF PORTB, 7
APPEL PWM1OFF
APPEL PWM2OFF
BCF PORTD, 0
BCF PORTD, 1
BCF PORTD, 2
BCF PORTD, 3
BSF GSPE, 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 0 X 00
MOVWF GSPE

APPEL SDELAY

APPEL LFC1
NOP
APPEL LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSC STATUS, Z
FRONT DE GOTO
APPEL SDELAY
APPEL LFC1
NOP
APPEL LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSC STATUS, C
GOTO LR2G

LR1G

BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE

; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X66
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BSF PORTD, 0
BCF PORTD, 1

BSF PORTB, 1
BCF PORTB, 2
LR1GREP
; APPEL STALL1
; BTFSC GSPE, 0
; ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA

APPEL LFC1
NOP
APPEL LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSC STATUS, Z
GOTO REPLF
APPEL LFC1
NOP
APPEL LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSS STATUS, C
GOTO LR1GREP
GOTO REPLF

LR2G

BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE

; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X66
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BCF PORTD, 0
BSF PORTD, 1

BCF PORTB, 1
BSF PORTB, 2
LR2GREP
; APPEL STALL1
; BTFSC GSPE, 0
; ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA

APPEL LFC1
NOP
APPEL LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSC STATUS, Z
GOTO REPLF
APPEL LFC1
NOP
APPEL LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSC STATUS, C
GOTO LR2GREP
GOTO REPLF

AVANT
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE

; APPEL BUTTLEVEL
; BTFSC GSPE, 1
; ARRÊTS DE GOTO

MOVLW 0XFF
MOVWF SPEED11
MOVLW 0X99
MOVWF SPEED12
MOVLW 0XFF
MOVWF SPEED21
MOVLW 0X99
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON

BCF PORTD, 0
BCF PORTD, 1

BSF PORTB, 1
BSF PORTB, 2
APPEL SDELAY
FROREP
; APPEL STALL1
; BTFSC GSPE, 0
; ARRÊTS DE GOTO

BANKSEL PIR1
BTFSC PIR1, RCIF
GOTO RXDATA
; APPEL LDIN
; BTFSC GSPE, 3
; ARRÊTS DE GOTO
APPEL LFC1
NOP
APPEL LFC2
NOP
MOVF LR2, 0
SUBWF LR1, 0
BTFSC STATUS, Z
GOTO FROREP
GOTO REPLF

GOTO CLROE
;*******************************************
S’ARRÊTE

BTFSS GSPE, 4
STOPA GOTO

MOVLW 0XCF
MOVWF SPEED11
MOVLW 0XB3
MOVWF SPEED12
MOVLW 0XCF
MOVWF SPEED21
MOVLW 0XB3
MOVWF SPEED22
APPEL PWM1ON
APPEL PWM2ON
BCF PORTD, 0
BCF PORTD, 1
APPEL 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
APPEL PWM1OFF
APPEL PWM2OFF
BCF PORTD, 0
BCF PORTD, 1
BCF PORTD, 2
BCF PORTD, 3
MOVLW 0 X 00
MOVWF GSPE
;*******************************************
CLROE

BANKSEL RCSTA
BCF RCSTA, CREN
BCF RCSTA, FFF
BCF RCSTA, OERR

BSF RCSTA, CREN
BSF INTCON, GIE
BSF INTCON, PEIE

GOTO WAIT1

;*******************************************
;*******************************************
;*******************************************

STALL1
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BANKSEL ADCON0
BCF ADCON0, 3
BCF ADCON0, 4
BCF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
APPEL CONVERT
MOVF ADRESH, 0
SUBLW 0 X 70
BTFSS STATUS, C
BSF GSPE, 0
BCF STATUS, RP0
BCF STATUS, RP1
RETOUR

STALL2
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BANKSEL ADCON0
BSF ADCON0, 3
BCF ADCON0, 4
BCF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
APPEL CONVERT
MOVF ADRESH, 0
SUBLW 0 X 40
BTFSS STATUS, C
BSF GSPE, 2
BCF STATUS, RP0
BCF STATUS, RP1
RETOUR

BUTTLEVEL
BCF STATUS, RP0
BCF STATUS, RP1
MOVLW 0 X 00
MOVWF GSPE
BANKSEL ADCON0
BCF ADCON0, 3
BCF ADCON0, 4
BSF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
APPEL CONVERT
MOVF ADRESH, 0
SUBLW 0X7F
BTFSS STATUS, C
GOTO BL1
GOTO BL2

BL1
BSF GSPE, 1
BSF PORTB, 6
BL2
RETOUR

DARKLIGHT
BCF STATUS, RP0
BCF STATUS, RP1

BTFSC LDET, 0
GOTO RETFDL
BANKSEL ADCON0
BCF ADCON0, 3
BSF ADCON0, 4
BCF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
APPEL CONVERT
MOVF ADRESH, 0
SUBLW 0XEE
BTFSS STATUS, C
BSF PORTB, 7
RETFDL
RETOUR

CONVERT
MOVLW 0 X 49
BANKSEL ADCON1
MOVWF ADCON1
BANKSEL ADCON0
BCF ADCON0, 7
BSF ADCON0, 6
BSF ADCON0, 0
BSF ADCON0, GO
WAITADC
BTFSC ADCON0, GO
GOTO WAITADC
BCF STATUS, RP1
BCF STATUS, RP0

RETOUR

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

RETOUR

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

RETOUR

PWM1OFF
BCF CCP1CON, 2
BCF CCP1CON, 3
BSF T2CON, T2CKPS1
BSF T2CON, T2CKPS0
BCF T2CON, TMR2ON
MOVLW 0 X 00
MOVWF CCP1CON
MOVLW 0 X 00
MOVWF CCPR1L
BANKSEL PR2
MOVLW 0 X 00
MOVWF PR2
BCF STATUS, RP1
BCF STATUS, RP0

RETOUR

PWM2OFF
BCF CCP2CON, 2
BCF CCP2CON, 3
BSF T2CON, T2CKPS1
BSF T2CON, T2CKPS0
BCF T2CON, TMR2ON
MOVLW 0 X 00
MOVWF CCP2CON
MOVLW 0 X 00
MOVWF CCPR2L
BANKSEL PR2
MOVLW 0 X 00
MOVWF PR2
BCF STATUS, RP1
BCF STATUS, RP0

RETOUR

LFC1
BANKSEL ADCON0
BSF ADCON0, 3
BCF ADCON0, 4
BSF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
APPEL CONVERT
MOVF ADRESH, W
ANDLW 0XF0
MOVWF LR1
BCF STATUS, RP0
BCF STATUS, RP1
RETOUR

LFC2
BANKSEL ADCON0
BCF ADCON0, 3
BSF ADCON0, 4
BSF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
APPEL CONVERT
MOVF ADRESH, 0
ANDLW 0XF0
MOVWF LR2
BCF STATUS, RP0
BCF STATUS, RP1
RETOUR

LDIN
BANKSEL ADCON0
BCF ADCON0, 3
BSF ADCON0, 4
BCF ADCON0, 5
BCF STATUS, RP0
BCF STATUS, RP1
APPEL CONVERT
MOVF ADRESH, 0
SUBLW 0X4C
BTFSC STATUS, C
GOTO COMP4
BSF GSPE, 3
COMP4
BCF STATUS, RP0
BCF STATUS, RP1
RETOUR

SDELAY
CLRF L2
XL3
CLRF L1
XL2
CLRF TMR0
XL1
MOVLW 0XFF
SUBWF TMR0, W
BTFSS STATUS, C
GOTO XL1

MOVLW 0 X 20
RIFC L1
SUBWF L1, W
BTFSS STATUS, C
GOTO XL2

MOVLW 0 X 10
RIFC L2
SUBWF L2, W
BTFSS STATUS, C
GOTO XL3
RETOUR

NOP
NOP

FIN

Articles Liés

Ferrero Rocher cordiales

Ferrero Rocher cordiales

c'est un peu bizarre que je mange rarement des Ferrero Rocher à l'extérieur d'un aéroport international.  Je veux dire, je peux trouver ces bonbons chocolatés, délicieux de la perfection de la noisette à l'extérieur des fois où j'ai peur d'être écras
« Tu es mon rocher! » Souhaits des amis & famille de mariage

« Tu es mon rocher! » Souhaits des amis & famille de mariage

Excellente idée d'éteindre lors des mariages, laissez vos invités à écrire des voeux pour mariée et le marié pour eux à chérir.La mariée et le marié peuvent voir tous leurs amis et conseils mariage de la famille pour eux.Etape 1: Sortir et recueillir
Gâteau de Nutella ultime (Kinder Bueno, Ferrero Rocher, Nutella Macarons & noisettes)

Gâteau de Nutella ultime (Kinder Bueno, Ferrero Rocher, Nutella Macarons & noisettes)

GÂTEAU NUTELLA ultime (KINDER BUENO, FERRERO ROCHER, NUTELLA MACARONS & noisettesSUIVEZ-MOI SUR LES MÉDIAS SOCIAUX !YouTube : https://www.youtube.com/channel/UC6-aoDG0ePzoI_8M...Twitter : https://twitter.com/FactoryTreatInstagram : https://instagram.
Brunch sur les roches

Brunch sur les roches

il s'agit de l'histoire de TangerineBadger. Elle est très particulier au sujet de sa nourriture, si elle aime prendre le brunch d'une certaine manière.Étape 1: Routine du matin de TangerineBadger Tous les dimanches, elle dort retard avant de prendre
Auto-apprentissage roche - papier - ciseaux Robot Lego Mindstorms NXT !

Auto-apprentissage roche - papier - ciseaux Robot Lego Mindstorms NXT !

Salut tout le monde !  Il s'agit de mon premier instructable !Il s'agit d'un vrai moi - robot qui apprend à jouer à roche - papier - ciseaux d'apprentissage !  Il apprendront comment battre une personne 100 % du temps !  Une personne n'est pas nécess
Crayon d’Art sur les roches

Crayon d’Art sur les roches

Il s'agit d'un ible' tout colorie art et je vais vous montrer comment créer des projets assez étonnants. Et tant qu'il y a un adulte autour, le second projet est vraiment amusant pour les enfants !Étape 1: fournitures Vous allez avoir besoin de plusi
Escalade de roche pour les débutants !

Escalade de roche pour les débutants !

Étape 1: Ce que vous devez HarnaisChaussons d'escaladesac de craiechaussettecraiebouteille d'eau (fortement recommandé)escalade de localisation (gymnase intérieur recommandé)Porter des vêtements de sport (ne pas porter shorts courts!) Spandex shorts
Élingue (sling roches plus de 100 pieds) de poche

Élingue (sling roches plus de 100 pieds) de poche

Ah la fronde, une arme primitive, encore utilisée à ce jour. Dans les temps anciens, les Romains utilisaient cette arme comme une arme de siège pour les batailles navales et batailles terrestres semblables. La toile est mentionnée tout au long de l'h
Rocher de pépites de chocolat maison

Rocher de pépites de chocolat maison

alors j'ai voulu faire un cadeau pour mon ami. et elle aime ferrero rocher, mais ils étaient vraiment chers alors j'ai bien pourquoi ne pas rendre moi-même. J'ai aussi chercher sur internet quelques idées, mais les ingrédients coûtent cher. Alors je
Dessin des roches la manière simple

Dessin des roches la manière simple

Il s'agit d'une méthode d'élaboration d'un mur de pierre ou de la voie, inspiré par
Valentines roches

Valentines roches

Ce sont des valentines petit parfaits pour n'importe qui ! Ils sont faciles et simples à faire !Étape 1: matériauxautocollants de la Saint-ValentinPod modgeRoche lisseÉtape 2: Mettre des autocollants sur le rocherMettez les autocollants tout comme vo
Comment polir des roches (rapidement et facilement!)

Comment polir des roches (rapidement et facilement!)

Bonjour à tous ! Il s'agit de mon premier Instructable alors j'espère que ça va bien ! Donc ce Instructable a commencé il y a quelques semaines, quand ma famille et moi étions en visite en Irlande. En route vers les falaises de Moher, nous nous somme
Roche de monstres

Roche de monstres

Les roches ! Les roches peuvent êtretrouver n'importe où ; vous pouvez les trouver à l'extérieur ou à un magasin d'artisanat. Ces monstres peuvent se faire facilement qu'avec un peu de choses.Que nous faut-il ?Roches, évidemment. Recherchez des roche
Porte-clés personnalisé faux rocher

Porte-clés personnalisé faux rocher

Cacher une clé de rechange sous une roche est une excellente idée. Jusqu'à ce que quelqu'un arrive et déplace à la roche, trouver la clé dessous. Cette instructable vous montrera comment créer votre propre faux rocher qui tiendra solidement votre clé
Maison Ferrero Rocher Fudgesicles

Maison Ferrero Rocher Fudgesicles

Vous aurez besoin :-Bâtons de Popsicle en bois-15 tasses en plastique-Tasses à mesurer-Cuillères à mesurer-Mixer ou fouet-Spatule en caoutchouc-Grand bol de mélangeIngrédients :-5 packs de Ferrero Rocher chocolats (celles avec 3 chocolats dans un pac