You are on page 1of 4

LIST p=16F84a ; Dfinition de processeur

#include <p16F84A.inc> ; fichier include

BANK0 macro ; passer en banque0


bcf STATUS,RP0
endm
BANK1 macro ; passer en banque1
bsf STATUS,RP0
endm

;********************************************
; registres secondaires *
;********************************************
MEMO EQU 0X24
CMP1 EQU 0X25
CMP2 EQU 0X26
CMP3 EQU 0X27

ORG 0X00
GOTO INIT
ORG 0X04
;********************************************
; programme interruptible *
;********************************************
CALL TEMPO3
; SAUT DES BITS DE DEPART, DE COMMUTATION ET D'ADRESSE
CALL TEMPO2
CALL TEMPO2
CALL TEMPO2
CALL TEMPO2
CALL TEMPO2
CALL TEMPO2
CALL TEMPO2
CALL TEMPO2
; TEST DES BITS DE COMMANDE
;BIT C5
BTFSS PORTB,0
GOTO KODO1
BSF MEMO,5
KODO1
BCF MEMO,5
GOTO $+1
;BIT C4
BTFSS PORTB,0
GOTO KODO2
BCF MEMO,4
KODO2
BSF MEMO,4
GOTO $+1
;BIT C3
BTFSS PORTB,0
GOTO KODO3
BCF MEMO,3
KODO3
BSF MEMO,3
GOTO $+1
;BIT C2
BTFSS PORTB,0
GOTO KODO4
BCF MEMO,2
KODO4
BSF MEMO,2
GOTO $+1
;BIT C1
BTFSS PORTB,0
GOTO KODO5
BCF MEMO,1
KODO5
BSF MEMO,1
GOTO $+1
;BIT C0
BTFSS PORTB,0
GOTO KODO6
BCF MEMO,0
KODO6
BSF MEMO,0
;ALLUMAGE DE LA LED CORRESPONDANTE
MOVF MEMO
SUBLW 0X01
BTFSS STATUS,C
GOTO SHIN1
BSF PORTA,0 ;LED1
SHIN1
MOVF MEMO
SUBLW 0X02
BTFSS STATUS,C
GOTO SHIN2
BSF PORTA,1 ;LED2
SHIN2
MOVF MEMO
SUBLW 0X03
BTFSS STATUS,C
GOTO SHIN3
BSF PORTA,2 ;LED3
SHIN3
MOVF MEMO
SUBLW 0X04
BTFSS STATUS,C
GOTO SHIN4
BSF PORTA,3 ;LED4
SHIN4 ;ATTENDRE UNE DUREE AVANT DE SORTIR
CALL TEMPO2
CALL TEMPO2
CALL TEMPO2
CLRF MEMO
BCF INTCON,1
RETFIE

;********************************************
; initialisation *
;********************************************
INIT
BANK1
CLRF TRISA
MOVLW 0XFF
MOVWF TRISB
MOVLW 0X40
MOVWF OPTION_REG
MOVLW 0X90
MOVWF INTCON
BANK0
CLRF PORTA
CLRF PORTB
CLRF MEMO

; Test s'il y a une interruption sur RB0


BTFSS INTCON,1
GOTO $-1

;**********************************
; Tempo1 = 896s *
;**********************************
TEMPO1
MOVLW 0X59 ;89
MOVWF CMP1
T1
MOVLW 0X0A ;10
MOVWF CMP2
DECFSZ CMP2,1
GOTO $-1
DECFSZ CMP1,1
GOTO T1
MOVLW 0X06 ;6
MOVWF CMP3
DECFSZ CMP3,1
GOTO $-1
;**********************************
; Tempo2 = 1778s *
;**********************************
TEMPO2
MOVLW 0X64 ;100
MOVWF CMP1
T2
MOVLW 0X11 ;17
MOVWF CMP2
DECFSZ CMP2,1
GOTO $-1
DECFSZ CMP1
GOTO T2
MOVLW 0X4E
MOVWF CMP3
DECFSZ CMP3,1
GOTO $-1
;**********************************
; Tempo3 = 200s *
;**********************************
TEMPO3
MOVLW 0XC8 ;200
MOVWF CMP1
DECFSZ CMP1
GOTO $-1

END

You might also like