Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

commander le portb du 16f84 avec decodage cod rc5



  1. #1
    jelloole

    commander le portb du 16f84 avec decodage cod rc5


    ------

    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

    -----
    Images attachées Images attachées
    Dernière modification par Antoane ; 09/03/2015 à 19h09. Motif: Ajout balises [/code]

  2. #2
    antek

    Re : commander le portb du 16f84 avec decodage cod rc5

    Tu déclares des variable dans une zone attribuée aux registres spéciaux (CBLOCK '00')
    J"ai pas été plus loin

Sur le même thème :

Discussions similaires

  1. Question PIC valeur PORTB avec RBO en interruption
    Par boy30 dans le forum Électronique
    Réponses: 1
    Dernier message: 09/04/2013, 12h20
  2. programmation de µC 16F84 pour commander un gradateur de lumiere
    Par Noursouka dans le forum Électronique
    Réponses: 6
    Dernier message: 13/03/2013, 17h56
  3. [PIC] PORTB,VAR ? (choisir le no du port avec une variable)
    Par Mkala dans le forum Électronique
    Réponses: 5
    Dernier message: 20/02/2010, 12h18
  4. Programme pour commander une PLL ADF4360-1 avec un PIC 16F84
    Par AsTrA-68 dans le forum Électronique
    Réponses: 1
    Dernier message: 21/01/2010, 09h31
  5. hacheu serie commander par 16F84
    Par benbenben89 dans le forum Électronique
    Réponses: 0
    Dernier message: 04/04/2006, 10h55
Découvrez nos comparatifs produits sur l'informatique et les technologies.