Je voudrais simplement tester les 4 derniers bits du code RC5
J’ai utilisé un variable cle pour enregistrer 4 derniers bits d’une touche de telecomande
On utilisant le decalage a gauche du variable cle
J’ai utilisé un variable count pour repeter le test 4 fois = 4 bits
Quand j’appye sur la touche 1 le port rb0 du pic 16f84 s’allume
Quand j’appyue sur la touche 2 s’allume rb1
Quand j’appyue sur la touche 3 s’allume rb2
Quand j’appyue sur la touche 4 s’allume rb3
Et recommence depuis le debut
voila l'organigramme je veux savoir s'il est juste ou faut
et la temporisation
et le programme mais pour moi ca marche pas
aider moi a verifier le programme s'il vous plait
le programme
Code:LIST p=16F84 ; Définition de processeur #include <p16F84.inc> ; Définitions de variables __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC #DEFINE IR PORTA,4 ;****************************************************************** *** ; DECLARATIONS DE VARIABLES * ;****************************************************************** *** CBLOCK 0x00C ; début de la zone variables cpt1 : 1 ; compteur de boucles 1 cpt2 : 1 ; compteur de boucles 2 cnt:1 code1:1 ENDC ; Fin de la zone ;****************************************************************** **** ; DEMARRAGE SUR RESET * ;****************************************************************** **** org 0x000 ; Adresse de départ après reset goto init ; Adresse 0: initialiser ;****************************************************************** *** ; INITIALISATIONS * ;****************************************************************** *** init bsf STATUS,RP0 bsf TRISA,4 clrf TRISB bcf STATUS,RP0 goto start ; sauter au programme principal ;****************************************************************** *** ; SOUS-ROUTINE DE TEMPORISATION * ;****************************************************************** *** ;----------------------------------------------------------------- ---- ; Cette sous-routine introduit un retard de 500.000 µs. ; Elle ne reçoit aucun paramètre et n'en retourne aucun ;----------------------------------------------------------------- ---- tm1778 movlw 4 goto tim0 tm444 movlw 1 goto tim0 tm17334 movlw39 tim0 movwf cpt2 tim2 movlw 147 movwf cpt1 tim1 decfsz cpt1,f goto tim1 decfsz cpt2,f goto tim2 return ;****************************************************************** *** ; PROGRAMME PRINCIPAL * ;****************************************************************** *** start clrf code1 btfsc IR goto start call tm444 test1 btfss IR goto test1 call tm17334 movlw 3 movwf cnt test2 btfsc IR goto rx2 rx1 btfss IR goto rx1 bcf code1,0 goto rx3 rx2 btfsc IR goto rx2 bsf code1,0 goto rx3 rx3 rlf code1,f call tm1778 decfsz cnt,f goto test2 movlw 1 xorwf code1,f btfss STATUS,Z goto deux bsf PORTB,0 goto start deux movlw 2 xorwf code1,f btfss STATUS,Z goto troix bsf PORTB,1 goto start troix movlw 3 xorwf code1,f btfss STATUS,Z goto quatre bsf PORTB,2 goto start quatre movlw 4 xorwf code1,f btfss STATUS,Z goto cinq bsf PORTB,3 goto start cinq goto start END
-----