Répondre à la discussion
Page 3 sur 3 PremièrePremière 3
Affichage des résultats 61 à 90 sur 90

pic16F84



  1. #61
    triste80

    Re : pic16F84


    ------

    stp mr freepicbasic est ce que tu peux m aider à traduire à language assembleur de pic 16F84

    -----

  2. Publicité
  3. #62
    oxedgar

    Re : pic16F84

    Hello as tu pu réaliser ton code? sa marche?

  4. #63
    freepicbasic

    Re : pic16F84

    salut triste80,
    Je t'ai donné un exemple pour une parti de ton algorithme.

    Le but est que tu progresse , et non pas de faire le travail à ta place.
    Essais d'appliquer sur le post#60
    en mettant le résultat sur le forum, afin de corriger si besoin.
    A+, pat

  5. #64
    oxedgar

    Re : pic16F84


    Je te poste ici le code de gestion de feux tricolores dans les grandes lignes, cela correspond a ton utilisation.
    Je n'ai pas fait ce code il est livré en exemple avec le livre "apprendre la programmation des PIC par l'expérimantation et la simulation" de Pascal Mayeux paru aux Editions ETSF.

    Si il ne te plait pas, fourni moi un cailler des charges complet et je te ferai le code avec toutes les explications.

    Code:
    ;------------   Exemple d'application avec un PIC : Les feux tricolores   ---------------
    
    ; Titre : Feux tricolores
    ; Date : 01 JUILLET 2000
    ; Auteur : P.M
    ; PIC utilisé : PIC 16 F 84
    ; On réalise des feux tricolores sur les broches RB0 à RB5  d' un PIC 16 C 84 
    ; le quartz est de 4 Mhz , on effectue une tempo longue  environ égale à 4 secondes et 
    ; une tempo courte environ égale à 1.5 secondes. 
    ; un bouton marche sur le port A permet de lancer l' application 
    
    ; RB0=rouge1 RB1=orange1 RB2=vert1   
    ; RB3=rouge2 RB4=orange2 RB5=vert2   
    
    
    ;------------   Directive d' assemblage pour PLAB   ---------------
    
    	list	p=16f84A
    	#include p16f84A.inc
    	__config H'3FF9'   
    
     
    ;------------   Définition des constantes   ---------------
    
    #define inter0 0	   ; bouton marche
    #define inter1 1	   ; bouton clignotement orange
    					
    ;------------   Définition des registres temporaires   ---------------
    
    retard1      EQU        0x0C      ; le registre temporaire retard1 se trouve à l' adresse 0C
    retard2      EQU        0x0F      ; le registre temporaire retard2 se trouve à l' adresse 0F
    retard3      EQU        0x10      ; le registre temporaire retard3 se trouve à l' adresse 10
    
    ;------------   Init des ports A et B   ---------------
    
    
    	ORG 0
    	  
    	bsf STATUS,5		; on met à 1 le 5eme bit du registre status pour accéder
        				; à la 2eme page mémoire ( pour trisa et trisb )
    
    	MOVLW 0x00            	; on met 00 dans le registre W
    	MOVWF TRISB           	; on met 00 dans le port B il est programmé en sortie
    
    	MOVLW 0x1F            	; on met 1F dans le registre W
    	MOVWF TRISA           	; on met 1F dans le port A il est programmé en entrée
    	
    	bcf STATUS,5		; on remet à 0 le 5eme bit du registre status pour accéder	
    				; à la 1eme page mémoire 
    
    ;------------   Init des feux ROUGE1 et ROUGE2  ---------------
    
    
    	MOVLW  B'00001001'      ; on met 0C dans le registre W ( Rouge1 et Rouge2 )
    	MOVWF  PORTB          ; on met W sur le port B ( led )
    
    ;--------------------   Programme principal   ----------------------
    
    debut
    
    	MOVLW  B'00001001'           ; on met 0C dans le registre W ( Rouge1 et Rouge2 )
    	MOVWF  PORTB                  ; on met W sur le port B ( led )
    
    	btfss PORTA,inter0 	; interrupteur 0 ( marche ) appuyé ? si oui on continu sinon 
    	        		              ;va à debut
    	goto debut
    
    ret_cli
    
    	btfsc PORTA,inter1  	; interrupteur 1 ( clignotant ) appuyé ? si oui on  
    	        		              ;va à clignote
    	goto clignote
    
    	MOVLW  B'00001001'          ; on met 0C dans le registre W ( Rouge1 et Rouge2 )
    	MOVWF  PORTB                 ; on met W sur le port B ( led )
    
    ;--------------- Chargement de la temporisation ---------------------
    
    
    	CALL  tempo                       ; on appel la temporisation 1 ( longue )
             
    	MOVLW  B'00001100'          ; on met 0C dans le registre W ( Vert1 et Rouge2 )
    	MOVWF  PORTB                 ; on met W sur le port B ( led )
    
    	CALL  tempo                       ; on appel la temporisation 1 ( longue )
    
    	MOVLW  B'00001010'         ; on met 0A dans le registre W ( Orange1 et Rouge2 )
    	MOVWF  PORTB                ; on met W sur le port B ( led )
    
    	CALL  tempo2                    ; on appel la temporisation courte
    
    	MOVLW  B'00001001'         ; on met 0C dans le registre W ( Rouge1 et Rouge2 )
    	MOVWF  PORTB                ; on met W sur le port B ( led )
    
    	CALL  tempo2                    ; on appel la temporisation courte
    
    	MOVLW  B'00100001'        ; on met 24 dans le registre W ( Rouge1 et Vert2 )
    	MOVWF  PORTB               ; on met W sur le port B ( led )
    
    	CALL  tempo                     ; on appel la temporisation longue
    
    	MOVLW  B'00010001'        ; on met 14 dans le registre W ( Rouge1 et Orange2 )
    	MOVWF  PORTB               ; on met W sur le port B ( led )
    
    	CALL  tempo2                   ; on appel la temporisation courte
    
    
    	GOTO  debut                    ; retour au début du programme
    
    
    ;------------   Programme de temporisation longue   ---------------
    
    tempo
    	MOVLW 0xFF            ; on met ff dans le registre W
    	MOVWF retard1         ; on met W dans le registre retard1 
    	MOVWF retard2         ; on met W dans le registre retard2 
    	MOVLW 0x12            ; on met 12 dans le registre W
    	MOVWF retard3         ; on met W dans le registre retard3 
    
    attente
    
    	DECFSZ retard1,F       ; on décrémente retard1 et on saute la prochaine instruction si 
    	GOTO  attente            ; le registre retard1 = 0 sinon retour à attente
    
    	movlw 0xFF	     ; on recharge retard1
    	movwf retard1
    
    	DECFSZ retard2,F       ; on décrémente retard2 et on saute la prochaine instruction si 
    	GOTO  attente            ; le registre retard2 = 0 sinon retour à attente
    
    	movlw 0xFF	     ; on recharge retard2
    	movwf retard2
    
    	DECFSZ retard3,F       ; on décrémente retard3 et on saute la prochaine instruction si 
    	GOTO  attente            ; le registre retard3 = 0 sinon retour à attente
    	  
    	RETURN                    ; retour au programme principal après l 'instruction CALL
      
    
    ;------------   Programme de temporisation courte   ---------------
    
    tempo2
    	MOVLW 0xFF            ; on met ff dans le registre W
    	MOVWF retard1         ; on met W dans le registre retard1 
    	MOVWF retard2         ; on met W dans le registre retard2 
    	MOVLW 0x07            ; on met 7 dans le registre W
    	MOVWF retard3         ; on met W dans le registre retard3 
    
    attente2
    
    	DECFSZ retard1,F       ; on décrémente retard1 et on saute la prochaine instruction si 
    	GOTO  attente2          ; le registre retard1 = 0 sinon retour à attente2
    
    	movlw 0xFF                ; on recharge retard1
    	movwf retard1
    
    	DECFSZ retard2,F       ; on décrémente retard2 et on saute la prochaine instruction si 
    	GOTO  attente2          ; le registre retard2 = 0 sinon retour à attente2
    
    	movlw 0xFF	     ; on recharge retard2
    	movwf retard2
    
    	DECFSZ retard3,F       ; on décrémente retard3 et on saute la prochaine instruction si 
    	GOTO  attente2          ; le registre retard3 = 0 sinon retour à attente2
    
    	RETURN
    
    clignote
    
    	
    	MOVLW  B'00010010'      ; on met 12 dans le registre W ( Orange1 et Orange2 )
    	MOVWF  PORTB             ; on met W sur le port B ( led )
    
    	CALL  tempo2                 ; on appel la temporisation courte
    
    	MOVLW  B'00000000'      ; on met 00 dans le registre W ( aucune led )
    	MOVWF  PORTB             ; on met W sur le port B ( led )
    
    	CALL  tempo2                 ; on appel la temporisation courte
    
    	goto ret_cli
    
    	END
    Ci-Dessous, le contenu du fichier HEX qu'il te sufi de coller dans le bloc-note, de l'enregistrer au format .hex et de l'envoyer au pic.
    Code:
    :100000008316003086001F30850083120930860079
    :1000100009308600051C082885184128093086000B
    :1000200021200C30860021200A3086003120093042
    :1000300086003120213086002120113086003120B9
    :100040000828FF308C008F00123090008C0B26287F
    :10005000FF308C008F0B2628FF308F00900B262856
    :100060000800FF308C008F00073090008C0B362882
    :10007000FF308C008F0B3628FF308F00900B362816
    :1000800008001230860031200030860031200C2814
    :060600004128C329CC20B3
    :02400E00F93F78
    :1042000043006C00690067006E006F00740061007D
    :104210006E0074002C002000760031002E0030006B
    :0242200000009C
    :00000001FF
    si tu est interrésée je peut t'envoyer par mail le scan du chapitre.
    écris moi ici

  6. #65
    triste80

    Re : pic16F84

    j ai feu tricolère à base de pic 16F84 ,3leds à portA et 3leds à ports B
    RA0=feu vert1
    RA1=feu orang1
    RA2=feu roug1
    les portB
    RB5=feu roug2
    RB6=feu orang2
    RB7=feu vert2
    voici ma sequence
    temp 1s 9s 4s 9s 4s
    VOIEA R R R v O
    voieB R V 0 R R
    et la nuit seul feu orang allume

  7. #66
    triste80

    Re : pic16F84

    voici mon organigramme de mon proget de feux tricolère ;

    ;debut

    ;congiguration et initialisation

    T3_ cp=5;
    i=0
    T1
    si rb0=1
    goto sequence de nuit
    ;sequence de nuit
    i1=0;
    i1=2;
    rs-T reçoit tab0[i1]
    A reçoit tab[i1+1]
    B reçoit tab[i1+2]
    portA reçoit A
    portB reçoit B
    tempo(T)
    incremente i
    dec cpt
    si cpt=0 ;no
    goto rs
    cpt =5
    i=0
    goto T1
    ;equenquence de jour

    T reçoit tab[i]
    A reçoit tab[i+1]
    B reçoit tab[i+2]
    portA reçoit A
    portB reçoit B
    tempo (T)
    incr i
    dec cpt
    si cpt=0;
    goto T3
    goto T1

  8. Publicité
  9. #67
    Gérard

    Re : pic16F84

    Si avec toutes les aides que tu as reçu, tu ne sais toujours pas écrire le programme, je ne vois qu'une solution : LAISSE TOMBER L'ELECTRONIQUE

    Tu peux toujours essayer d'élever des chèvres !

  10. #68
    oxedgar

    Re : pic16F84

    Comment compte tu passer du mode nuit au mode jour?
    Dans tes temps de pause, quelle période correspond a quoi?
    Je le comprends comme sa:

    pendant ¦ 1s ¦ 9s ¦ 4s ¦ 9s ¦ 4s
    1 sur RA ¦ 2 ¦ 2 ¦ 2 ¦ 0 ¦ 1
    1 sur RB ¦ 5 ¦ 7 ¦ 6 ¦ 5 ¦ 5

    Tu est sûre? Il ne te manque pas des états?
    A quelle fréquance clignote l'orange la nuit?

    Ton ordinogramme n'est pas clairement compréhansible.
    Pour une meilleure compréhantion entre nous, essaie de ne pas utiliser d'abréviations.

  11. #69
    triste80

    Re : pic16F84

    oui c est juste se que tu as ècrit et la tempo de la nuit d orange est pour 4s
    pendant ¦ 1s ¦ 9s ¦ 4s ¦ 9s ¦ 4s
    1 sur RA ¦ 2 2 2 0 1
    1 sur RB ¦ 5 7 6 5 5
    tempo de nuit 4s
    PORTA 1
    portB 6

  12. #70
    triste80

    Re : pic16F84

    j utilise interipteur Rbo=1 je fait la sequence de nuit au les feux oranges seulement allume peandant tempo de nuit 4s,RB0=0 je fait la sequence de jour
    1s:2;5
    9s:2;7
    4s:2;6
    9s:0;5
    4s:1;5

  13. #71
    triste80

    Re : pic16F84

    voici mon programme il me reste que je fait tempo de 9s;1s et je sais faire
    list pic=16f84
    # iclude (pic16F84.inc)
    _configuration _cp_off,_wdt_off,_pwrte_on,_XT _osc
    equivalences de registr
    esportA equ 0x0005
    portB equ 0x0006
    trisA equ 0x0085
    trisB equ 0x0086
    statut equ 0x0003

    constantes

    #define BP portB,4
    les registres memoires
    compt equ 0Ch
    compt1 equ 0dh
    compt2 equ 0Eh

    initialisation

    org 00h
    goto debut



    org 05h


    debut

    clrf portB
    clrf portA
    bsf statut,RP0 ;selection de bank1
    movlw B'11111000'
    movwf trisA
    movlw B'11111000'
    movwf trisB
    bcf statut,RP0 ;accès à bank 0
    clrf portA
    clrf portB ;extintion des leds

    ;programme principale
    Btfsc potB,0
    Goto sequjour

    ;boucle de la nuit
    ;ensuite allumer les feux oranges
    Bsf PORTA,1
    BSF PORTB,1 Call tempo orang_on_nu
    etteindres les feux oranges
    bcf portA,1
    bcf portB,1
    call tempo_orang_nuit_off
    goto boucle nuit

    ;sequence de jour
    Bcf portA,0 ; bit0=1
    Bsf portB;0
    Bsf portB,1 ;bit1=2
    Bsf portB,1 ;bit1=2
    Bcf portB,2 ;bit2=4
    Bsf portA,2 ;bit2=4
    Call my tempo ;9 s
    ;on allume le feu roug1 et feu orang2
    Bsf portA,0
    Bsf portB,1
    Call my tempo1 ;4s
    ;on allum le feu roug2 et feu vert1
    Bsf portA,2
    Bsf portB,0
    Call mytemp1;9s
    ;On aluume le feu roug2 et feu orang1
    Bsf portA,1
    Bsf portB,2
    Call my temp0;4s
    ;tempo de 4s
    Movlw 0x0028 ; chargemt de compteur par 30
    Movwf compt2
    T1
    Movlw 0x00c8 ; chargement par 200
    Movwf compt1
    T2
    Movlw 0x00A5
    Movwf compt
    T3
    Decfsz compt,1
    T3 Goto
    Decfsz compt1,1
    Goto T3
    Decfsz compt2,1
    Goto T3
    return

  14. #72
    freepicbasic

    Re : pic16F84

    Le modif sont précédées de ";#############".

    Les commentaires doivent être précédés par un ";"!
    Lorsqu'on fait un goto ou un call!
    L'étiquette qui est derrière doit existée !


    le programme principale n'avait pas de fin ou de re-bouclage!
    J'ai créé une étiquette main avec un "goto main"
    différentes erreur de syntaxe corrigées
    la tempo de clignotement n'existait pas !
    Je l'ai créé a la fin , on change que le poids fort du compteur.
    j'ai divisé 0x28 par 8 pour avoir 1/2 sec au lieu de 4s.

    la tempo de 9s n'existait pas!
    la seconde tempo de 9s a été ramené à 8s
    afin de faire 2 call à la procédure de 4s.

    Ne pas confondre 0 et o !

    l'étiquette "T2" est inutile !

    le bouton est "define BP" alors qu'on test PORTB,0 !
    Voir le problème quelle est le bon ?


    l'adresse 0x004 est l'adresse int
    mettre un retfie juste au cas ou...
    ça coute rien.

    Je n'ai pas testé ce code ,
    et je ne suis pas infaillible,
    peut être reste t il des erreurs...
    je n'ai pas vérifié les bcf , bsf ...

    Code:
    List pic=16f84
    # include (pic16F84.inc)
    _configuration _cp_off,_wdt_off,_pwrte_on,_XT _osc
    ;#############
    ;equivalences de registres
    portA equ 0x0005
    portB equ 0x0006
    trisA equ 0x0085
    trisB equ 0x0086
    statut equ 0x0003
    
    ;#############
    ;constantes
    
    #define BP portB,4
    ;#############
    ;les registres memoires
    compt equ 0Ch
    compt1 equ 0dh
    compt2 equ 0Eh
    
    initialisation
    
    org 00h
    goto debut
    
    ;#############
    org 04h
    retfie
    
    org 05h
    
    
    debut
    
    clrf portB
    clrf portA
    bsf statut,RP0 ;selection de bank1
    movlw B'11111000'
    movwf trisA
    movlw B'11111000'
    movwf trisB
    bcf statut,RP0 ;accès à bank 0
    clrf portA
    clrf portB ;extintion des leds
    
    ;programme principale
    ;#############
    main
    ;#############
    ;Btfsc potB,0
    Btfsc portB,0
    ;??? BOUTON??? a quoi sert le define BP ???
    
    Goto sequjour
    ;boucle de la nuit
    
    
    ;ensuite allumer les feux oranges
    Bsf PORTA,1
    BSF PORTB,1 
    ;#############
    Call tempo tempo_orang_nuit
    ;#############
    ;etteindres les feux oranges
    bcf portA,1
    bcf portB,1
    call tempo_orang_nuit
    goto boucle nuit
    
    ;#############
    sequjour
    ;sequence de jour
    Bcf portA,0 ; bit0=1
    Bsf portB;0
    Bsf portB,1 ;bit1=2
    Bsf portB,1 ;bit1=2
    Bcf portB,2 ;bit2=4
    Bsf portA,2 ;bit2=4
    ;#############
    Call mytempo1 ;8 s
    ;on allume le feu roug1 et feu orang2
    Bsf portA,0
    Bsf portB,1
    ;#############
    Call mytempo ;4s
    ;on allum le feu roug2 et feu vert1
    Bsf portA,2
    Bsf portB,0
    ;#############
    Call mytemp1;8s
    ;On aluume le feu roug2 et feu orang1
    Bsf portA,1
    Bsf portB,2
    ;#############
    Call mytempo;4s
    
    ;#############
    goto main
    
    
    ;#############
    mytemp1;8s
    Call mytemp0;4s
    Call mytemp0;4s
    return
    
    ;#############
    mytemp0;4s
    
    ;tempo de 4s
    Movlw 0x0028 ; chargement de compteur par 30
    Movwf compt2
    T1
    Movlw 0x00c8 ; chargement par 200
    Movwf compt1
    T2
    Movlw 0x00A5
    Movwf compt
    T3
    ;#############
    Decfsz compt,1
    Goto T3
    Decfsz compt1,1
    Goto T3
    Decfsz compt2,1
    Goto T3
    return
    
    ;#############
    tempo_orang_nuit
    ;tempo de 500ms
    Movlw 0x005 ; chargement de compteur par 5
    Movwf compt2
    goto T1
    A+, pat

  15. Publicité
  16. #73
    triste80

    Re : pic16F84

    # define BP portB,0 c est celui qui de separer entre le sequence de jour et la nuit

  17. #74
    triste80

    Re : pic16F84

    mais je declare que RB0 c est une interuption

  18. #75
    triste80

    Re : pic16F84

    Bsf portA,0 ; bit0=1
    Bcf portB;0
    Bcf portB,1 ;bit1=2
    Bcf portB,1 ;bit1=2
    Bsf portB,2 ;bit2=4
    Bcf portA,2 ;bit2=4
    car seulemnt le feu roug1 et feu vert2 allume

  19. #76
    triste80

    Re : pic16F84

    tu n as pas terminè le tempo de 500ms je le termine comme ça
    tempo_orang_nuit
    ;tempo de 500ms
    Movlw 0x005 ; chargement de compteur par 5
    Movwf compt2
    goto T1

    Movlw 0x00c8 ; chargement par 200
    Movwf compt1
    T2
    Movlw 0x00A5
    Movwf compt
    T3
    ;#############
    Decfsz compt,1
    Goto T3
    Decfsz compt1,1
    Goto T3
    Decfsz compt2,1
    Goto T3
    return

  20. #77
    peace2010

    Re : pic16F84

    quel est utilitè de T1,T2 c est une etiquet mais on rien fais d eux

  21. #78
    triste80

    Re : pic16F84

    List pic=16f84
    # include (pic16F84.inc)
    _configuration _cp_off,_wdt_off,_pwrte_on,_XT _osc
    ;#############
    ;equivalences de registres
    portA equ 0x0005
    portB equ 0x0006
    trisA equ 0x0085
    trisB equ 0x0086
    statut equ 0x0003

    ;#############
    ;constantes

    #define BP portB,4
    ;#############
    ;les registres memoires
    compt equ 0Ch
    compt1 equ 0dh
    compt2 equ 0Eh

    initialisation

    org 00h
    goto debut

    ;#############
    org 04h
    retfie

    org 05h


    debut

    clrf portB
    clrf portA
    bsf statut,RP0 ;selection de bank1
    movlw B'11111000'
    movwf trisA
    movlw B'11111000'
    movwf trisB
    bcf statut,RP0 ;accès à bank 0
    clrf portA
    clrf portB ;extintion des leds

    ;programme principale
    ;#############
    main
    ;#############
    ;Btfsc potB,0
    Btfsc portB,0

    Goto sequjour
    ;boucle de la nuit


    ;ensuite allumer les feux oranges
    Bsf PORTA,1
    BSF PORTB,1
    ;#############
    Call tempo tempo_orang_nuit
    ;#############
    ;etteindres les feux oranges
    bcf portA,1
    bcf portB,1
    call tempo_orang_nuit
    goto boucle de la nuit

    ;#############
    sequjour
    ;sequence de jour
    Bsf portA,0 ; bit0=1
    Bcf portB,0
    Bcf portB,1 ;bit1=2
    Bcf portB,1 ;bit1=2
    Bsf portB,2 ;bit2=4
    Bcf portA,2 ;bit2=4
    ;#############
    Call mytempo1 ;8 s
    ;on allume le feu roug1 et feu orang2
    Bsf portA,0
    Bsf portB,1
    ;#############
    Call mytempo ;4s
    ;on allum le feu roug2 et feu vert1
    Bsf portA,2
    Bsf portB,0
    ;#############
    Call mytemp1;8s
    ;On aluume le feu roug2 et feu orang1
    Bsf portA,1
    Bsf portB,2
    ;#############
    Call mytempo;4s

    ;#############
    goto main


    ;#############
    mytemp1;8s
    Call mytemp0;4s
    Call mytemp0;4s
    return

    ;#############
    mytemp0;4s

    ;tempo de 4s
    Movlw 0x0028 ; chargement de compteur par 40
    Movwf compt2
    T1
    Movlw 0x00c8 ; chargement par 200
    Movwf compt1
    T2
    Movlw 0x00A5
    Movwf compt
    T3
    ;#############
    Decfsz compt,1
    Goto T3
    Decfsz compt1,1
    Goto T2
    Decfsz compt2,1
    Goto T2
    return

    ;#############
    tempo_orang_nuit
    ;tempo de 500ms
    Movlw 0x005 ; chargement de compteur par 5
    Movwf compt2
    T1
    Movlw 0x00c8 ; chargement par 200
    Movwf compt1
    T2
    Movlw 0x00A5
    Movwf compt
    T3
    ;#############
    Decfsz compt,1
    Goto T3
    Decfsz compt1,1
    Goto T3
    Decfsz compt2,1
    Goto T3
    Return
    end

  22. Publicité
  23. #79
    freepicbasic

    Re : pic16F84

    tu n as pas terminè le tempo de 500ms je le termine comme ça
    tempo_orang_nuit
    ;tempo de 500ms
    Movlw 0x005 ; chargement de compteur par 5
    Movwf compt2
    goto T1

    Movlw 0x00c8 ; chargement par 200
    Movwf compt1
    T2
    Movlw 0x00A5
    Movwf compt
    T3
    ;#############
    Decfsz compt,1
    Goto T3
    Decfsz compt1,1
    Goto T3
    Decfsz compt2,1
    Goto T3
    return
    tu ne peux pas utiliser 2 fois la même étiquette. (T1, T2,T3)
    goto T1 permet d'économiser un code identique !
    C'est faux !
    La routine était terminé mais une parti était commune !
    comme elles finissent par return , elles retournent au bon call !
    Dernière modification par freepicbasic ; 07/05/2007 à 08h33.
    A+, pat

  24. #80
    freepicbasic

    Re : pic16F84

    si tu veux utiliser une interruption il faut une routine d'interruption !
    il n'y en a pas !

    un simple pooling suffit , comme ici "
    Btfsc portB,0

    alors suprimer le define BP inutile
    suprimer les lignes inutiles aussi ...
    A+, pat

  25. #81
    triste80

    Re : pic16F84

    mais quel est le role de goto etiquet T1 il n y as pas etiquet T1 et etiquet T2

  26. #82
    triste80

    Re : pic16F84

    mais je viens auqun utilitè de ètiquette T2

  27. #83
    freepicbasic

    Re : pic16F84

    voir le dessin ci joint
    le return en bleu est commun au 2 procédures.
    Dernière modification par Yoyo ; 07/05/2007 à 16h27.
    A+, pat

  28. #84
    freepicbasic

    Re : pic16F84

    En vert le cheminement des 2 procédures !
    Images attachées Images attachées  
    A+, pat

  29. Publicité
  30. #85
    triste80

    Re : pic16F84

    il y as dans le tempo etiquette T2 mais je ne vois pas go to etiquette T2 pour que je le faire

  31. #86
    triste80

    Re : pic16F84

    merci j ai compris le desin il sert à economiser mon programme au lieu de faire 2 fois etiquette

  32. #87
    triste80

    Re : pic16F84

    j ai movlw B'11111000'
    movwf portB
    j ai utiliser RB0 comme une sortie on mème temps comme un interpteur
    qu est ce que je fait maintenant j utilise rb0 comme interpteur et je change le programme

  33. #88
    freepicbasic

    Re : pic16F84

    j ai movlw B'11111000'
    movwf portB
    j ai utiliser RB0 comme une sortie on mème temps comme un interpteur
    qu est ce que je fait maintenant j utilise rb0 comme interpteur et je change le programme
    Utilise RB3 ou RB4 comme c'était prévu avec ton define.
    Code:
    btfsc PORTB,4
    Goto sequjour
    au lieu de

    Code:
    Btfsc portB,0
    Goto sequjour
    A+, pat

  34. #89
    triste80

    Re : pic16F84

    quel est utilitè de ètiquet T2 dans tempo il n y as pas goto T2

  35. #90
    triste80

    Re : pic16F84

    je veux comprendre le principe fonctionnement exacte de feu tricolère à base de pic 16f84
    quand le oxcilateur genère des signaux vers le pic1684 ou se trouve le programme dans le ram l interface logic momorise le programme puis envois ves led qui allume ou etteint .c est ou j ai trampè

Page 3 sur 3 PremièrePremière 3

Discussions similaires

  1. montage pic16f84
    Par snyfir dans le forum Électronique
    Réponses: 1
    Dernier message: 17/11/2008, 22h05
  2. pic16F84
    Par peace2010 dans le forum Électronique
    Réponses: 64
    Dernier message: 07/05/2007, 22h26
  3. Eeprom du PIC16F84
    Par clinon dans le forum Électronique
    Réponses: 8
    Dernier message: 30/11/2006, 19h45
  4. Pic16f84-04/p
    Par jo-electrons dans le forum Électronique
    Réponses: 2
    Dernier message: 30/09/2006, 19h50
  5. a propos du PIC16F84
    Par aabdoos dans le forum Électronique
    Réponses: 2
    Dernier message: 18/03/2006, 15h33
Découvrez nos comparatifs produits sur l'informatique et les technologies.