Programation PIC16F87X
Répondre à la discussion
Page 1 sur 4 12 3 DernièreDernière
Affichage des résultats 1 à 30 sur 107

Programation PIC16F87X



  1. #1
    invitee9e0f92f

    Programation PIC16F87X


    ------

    Bonjour
    Actuellement sur un projet j'ai un problème au niveau de la programmation de mon PIC16F877 mais avant d'exposer mon problème voila 2 - 3 informations :
    Mon microcontroleur sera cadencer par un Quartz de 4 Mhz
    5 Signal Analogique seront en entré
    3 Signal Numerique Série en sortie ( Controle de Driver de LED )
    2 des Signal Analogique sont des Signal Carré (Fréquence images des Tr/min)
    Les autres Signal sont des tension continue en fonction de la température ou du niveau
    Mais c'est la que ce pose le souci ^^
    Je ne trouve pas la solution comment faire pour que mon programme me dise la valeur de la fréquence pour pouvoir ensuite le comparer avec des valeurs pour généré mon code Binaire
    Et j'ai le même problème pour les tension continue
    Je nage et ne trouve aucune solution
    Merci de vos réponse

    -----

  2. #2
    freepicbasic

    Re : Programation PIC16F87X

    Pour la température le lm35 est étalonné 10mv/°C.
    pour un niveau cela dépendra du capteur , il faudra sans doute faire un calcul s'il est linéaire, sinon une table de transcodage ...
    A+, pat

  3. #3
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour
    Je ne chercher pas de circuit mais un code pour microcontroleur ( C en l'occurence ( oublier de preciser )
    merci

  4. #4
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour
    Désolé du doublons mais de nouvelle information :
    J'ai trouver que le PIC16F877 avec en faite 3 Timer
    le timer 0 je c'est comment m'en servir
    Le timer 1 : Je ne voit pas comment l'utiliser :s ( la documentation est peu clair sur le sujet contrairement au timer 0 )
    Le timer 2 : il ne permet que des division de l'horloge interne

    Pour les autres signal je pense utiliser le convertisseur analogique / numerique du microcontroleur ( faut-il encore que je trouve comment le coder en C )
    Merci de vos réponse qui me deblocquerai bien

  5. A voir en vidéo sur Futura
  6. #5
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour
    En faite j'ai peut être trouver comment me servir du timer1
    Voila mas première partit de code C ( il n'y a que la partit conversion ^^ )
    #include <16F877.H>

    bit compte_tour @ RB1 //Broche Sortie

    void main (void)
    {
    TRISA = ob11110111; // Definition RA
    TRISA = ob10001111; // Defenition RB
    OPTION_REG = ob11101000 // Definition Timer 0
    T1CON = ob00000111 // Definition Timer 1
    }
    for (;;)
    {
    a=0
    TMR0 = 0
    temps = 0
    frequence = 0
    While (TRM0<1)
    {
    a += 1;
    }
    b=0
    TMR1 = 0
    temps2 = 0
    vitesse = 0
    While (TRM1<1)
    {
    b += 1;
    }
    temps2 = a * 0.001
    vitesse = 1 / temps2

    frequence = 1 / periode ;

    if (frequence < 1000)

    else if (frequence > 1000 && frequence < 1010)
    }
    Voyer vous des erreurs ?
    Si oui lequels ?
    Pensez vous que cela vas permettre de convertir ma fréquence ?
    merci

  7. #6
    sdec25

    Re : Programation PIC16F87X

    Salut.
    Déjà on dit des signaux et pas des signal.
    Pour le fonctionnement du Timer 1 c'est expliqué dans la section "Timer 1 module" de la datasheet.

    Et si tu commentais ton code et que tu disais exactement ce que tu veux faire on pourrait te dire si ça marche ou pas.

  8. #7
    invitee0bbe70d

    Re : Programation PIC16F87X

    Bonjour,

    Il vaut mieux éviter de faire des opérations en virgule flottante sur les petits micrcontroleurs car cela dure très longtemps...
    Je te recommande ce tutoriel sur les PIC16 en langage C.

  9. #8
    freepicbasic

    Re : Programation PIC16F87X

    point de vue syntaxe.
    L'accolade en dessous de T1CON est en trop.

    point de vue algorithme , c'est incompréhensible !
    Pourquoi 2 timers ?
    La remarque sur les chiffres flottants est juste !

    Si le but est de compter le temps entre 2 montés d'un signal (ex: compte tour auto),
    Il suffit de pooler un bit du port et de lire le timer après chaque monter.
    Si le temps à mesurer entre dans les limites du timer, bien sur.
    Si l'on veut mesurer des fréquences élevées , il faudra passer par des interruptions.
    A+, pat

  10. #9
    morpheus87

    Re : Programation PIC16F87X

    d'accord avec Freepicbasic

  11. #10
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour
    2 Timer parce que j'ai besoin d'analyser 2 Signaux Différent
    ( Signal des tour/minute et Signal de KM/h )
    Comme je ne savait pas comment commenté je n'ai pas commenté demain je rajoute les commentaire
    Si vous avez une autre solution a la place des virgule flottante je suis preneur
    Les fréquences ne sont pas élever ( max 10Khz )
    Merci de vote aide
    P.S : Sdec25 j'ai dit que j'avais du mal a comprendre la doc technique du timer1(4Heure de Rechercher pour trouver des site pour apprendre le C pour µc ) ! donc je demandais des explication sur son fonctionnement ! et Désole d'avoir fait cette faute d'orthographe qui ta arraché les yeux .

  12. #11
    invitee9e0f92f

    Re : Programation PIC16F87X

    P.S.S : que veut dire pooler ( je n'est qu'un BEP elec et je ne suis qu'en STI GE donc autant dire que je n'est que de minuscule base sur les µc )

  13. #12
    sdec25

    Re : Programation PIC16F87X

    Pour les calculs en virgule flottante :
    temps2 = a * 0.001
    vitesse = 1 / temps2

    à remplacer par :
    vitesse = 1000/a

    Pour le timer 1 qu'est ce que tu ne comprends pas dans la doc ? Il y a 2 bits pour le prescaler, 1 bit pour la source, 1 pour ON/OFF.
    Dernière modification par sdec25 ; 05/10/2008 à 19h17.

  14. #13
    freepicbasic

    Re : Programation PIC16F87X

    Pooler le bit 0 du portA

    while ((porta & 1)==0 ) ;
    T = TMR1;
    TMR1=0;
    etc ...
    A+, pat

  15. #14
    invitee9e0f92f

    Re : Programation PIC16F87X

    oui mais sur le coup je ne comprenai pas du a la fatigue
    Merci de l'info pour les virgule flotante je ne pensait vraiment pas au simplification ^^ )
    Dès demain je modifie mon esquisse de code avec vos sugestion pour avoir votre avis
    Dès que mon code avance je tacherai de le mettre , qui c'est sa servira peut etre a quelqu'un ^^
    Merci de vos réponse

  16. #15
    invitee9e0f92f

    Re : Programation PIC16F87X

    la méthode du pooler n'a pas le désavantage de ne comptait que la période basse du signal ?

  17. #16
    invitee0bbe70d

    Re : Programation PIC16F87X

    Bonsoir,

    Si tu veux mesurer une période / un pulse (haut ou bas) / un rapport cyclique, la meilleure unité à utiliser sur ton PIC est le CCP (Capture Compare PWM) en mode Capture .

    Exemple pour la mesure d'une période :
    1er front montant, le timer 1 est capturé dans les registres CCPR1L et H.
    tu sauvegardes CCPR1L et H.
    2e front montant, le timer 1 est capturé dans les registres CCPR1L et H.
    tu sauvegardes CCPR1L et H.

    En faisant la différence entre la 2e valeur et la première, tu as un nombre multiple de la période du timer1 qui te donne la période du signal que tu mesures

  18. #17
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour MicroChip
    En lisant la documentation technique le mode CCP me parait tres intéressant ( plus pratique que des calcules )
    Mais je ne voit pas comment l'incorporer a mon code pourrait tu me maitre sur la piste stp
    Merci beaucoup

  19. #18
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour a tous
    je vous tient au courant de mon code :
    - je n'ai pas trouver la solution pour le CCP :s
    - j'essais de coder le CAN ( avec plus ou moins de succès )
    - j'essais de regarder pour envoyer les donné en SS ( Série Synchronisé ) pour aller sur des Drivers de LED
    si vous avez des info sur le code c pour le CCP sa serait avec grand plaisir
    merci de vos réponse

  20. #19
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour A tous
    Malgré une semaine de recherche je patine un peu sur le CAN , les transfert de Donné IC2

    Voici le code actuel ( commentaires sans instruction sont ce que je recherche )
    Merci de votre aide

    Code:
    #include <16F877.H>
    bit compte_vitesse @ RB2
    bit compte_tour @ RB1
    
    void main (void)
    {
    TRISA = ob11110111;  //Configuration Port A
    TRISB = ob10001111;  // Config Port B
    PORTA = 0;           // Mise a 0 Port A
    PORTB = 0;           // Mise a 0 port B
    OPTION_REG = ob11101000  // Timer 0 configuration
    T1CON = ob00000111     // Timer 1 Configuration
    
    }
    for (;;)
    {
    a=0             // Mise a 0 de A
    TMR0 = 0        // Mise a 0 du timer 0
    frequence = 0   // Mise a 0 de frequence
    While (TRM0<1)  // Boucle jusqu'a que TRM0 = 1 ( Detection d'un front montant ) 
    { 
    a += 1;         // Incrémentation de A 
    }
    b=0             // Mise a 0 de B
    TMR1 = 0        // Mise a 0 de Timer1
    vitesse = 0     // Mise a 0 de vitesse
    While (TRM1<1)  // Boucle jusqu'a que TRM1 = 1 ( Detection d'un front montant )
    { 
    b += 1;         // Incrémentation de B
    }
    
    frequence = 1000/a ; // exemple Calcule Frequence non definitif 
    vitesse = 1000/b // exemple Calcule Vitesse non definitif 
    
    if (frequence < 1000) // exemple Comparaison Fréquence non definitif 
                           // Stockage Dans une adresse memoire ( bientot )
    else if (frequence > 1000 && frequence < 1010) // exemple Comparaison Fréquence non definitif 
    
     // Envoit en protocole IC2 du code contenu dans la memoire #** sur la borne RB1 (Compte Tour)
     // Envoit en protocole IC2 du code contenu dans la memoire #** sur la borne RB2 (Compteur ) 
     // Mise en route Du can 
     // Chargement Valeur CAN sur RA* ( jauge ) 
     // Comparaison CAN 
     // Memoriastion adresse #** 
     // Chargement Valeur CAN sur RA* ( °c eau ) 
     // Comparaison CAN 
     // Memoriastion adresse #** 
     // Memoriastion adresse #** 
     // Chargement Valeur CAN sur RA* ( °c huile ) 
     // Comparaison CAN 
     // Memoriastion adresse #** 
     // Envoit en protocole IC2 du code contenu dans la memoire #** sur la borne RB2 (Jauge + °c huile et eau )
     // Programme recommence au début

  21. #20
    sdec25

    Re : Programation PIC16F87X

    Salut.
    Pour l'IC2 je sais pas mais pour le CAN je peux te montrer mon code (c'est du PIC18F mais le principe est le même). Il faut d'abord appeler configAnalog, puis selectChannel et enfin getAnalog.

    Code:
    unsigned int getAnalog() {
    	ADCON0bits.GO = 1;
    	while(ADCON0bits.NOT_DONE);
    	ADCON0bits.ADON = 0;
    		
    	return ADRESL + (ADRESH*256);
    }
    
    void configAnalog(unsigned char nb_channels) {
    	switch(nb_channels) {
    		case 11: TRISBbits.TRISB0 = 1; // AN10
    		case 10: TRISBbits.TRISB4 = 1;
    		case 9: TRISBbits.TRISB1 = 1;
    		
    		case 5: TRISAbits.TRISA5 = 1;
    		
    		case 4: TRISAbits.TRISA3 = 1;
    		case 3: TRISAbits.TRISA2 = 1;
    		case 2: TRISAbits.TRISA1 = 1;
    		case 1: TRISAbits.TRISA0 = 1; //AN0
    		default:;
    	}	
    	ADCON1 = 0b00001111 & (~nb_channels);
    }	
    
    
    /*
     * Choisit un canal pour le CAN et commence l'acquisition
     */
    void selectChannel(unsigned char num) {
    	ADCON0 = (0b00111100 & (num<<2));
    	
    	#ifndef PLLEN
    		ADCON2 = 0b10000001; /* 1(right justified)  x  000(acq time)
    			001(8 TOSC) pour P18F à 8 Mhz
    		*/
    	#else
    		ADCON2 = 0b10000010; // 010 : 32 TOSC
    	#endif
    	
    	ADCON0bits.ADON = 1;
    }
    Par contre qu'est-ce que // Comparaison CAN et // Memoriastion adresse #**
    ?

  22. #21
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour
    J'ai bien compris la premeir partit de ton code mais la deuxieme partit me parait flou ( celle ci : )
    Code:
    void selectChannel(unsigned char num) {
    	ADCON0 = (0b00111100 & (num<<2));
    	
    	#ifndef PLLEN
    		ADCON2 = 0b10000001; /* 1(right justified)  x  000(acq time)
    			001(8 TOSC) pour P18F à 8 Mhz
    		*/
    	#else
    		ADCON2 = 0b10000010; // 010 : 32 TOSC
    	#endif
    	
    	ADCON0bits.ADON = 1;
    }
    Je ne comprend pas en faite comment ont choisi le channel

    mes // Comparaison seront des comparasion de valeur ( exemple if an0<2 ou = memorisé ob0000
    if an0>2 && an0<4 ou =4 memorisé ob0001 ( c'est vraiment un exemple vite fait ^^ )
    merci de ton aide

  23. #22
    sdec25

    Re : Programation PIC16F87X

    Le choix du canal se fait dans le registre ADCON0. Sur ton PIC (16F87X), ADCON0(5..3) = channel select bits (000 pour channel 0 et 111 pour channel 7).
    Le registre ADCON2 n'existe pas sur ton PIC. Le temps d'acquisition est manuel et le bit "left justified" ou "right justified" est dans ADCON1.
    La marche à suivre pour utiliser le CAN est dans la datasheet du 16F87X :
    1. Configure the A/D module:
    • Configure analog pins/voltage reference and
    digital I/O (ADCON1)
    • Select A/D input channel (ADCON0)
    • Select A/D conversion clock (ADCON0)
    • Turn on A/D module (ADCON0)
    2. Configure A/D interrupt (if desired):
    • Clear ADIF bit
    • Set ADIE bit
    • Set PEIE bit
    • Set GIE bit
    3. Wait the required acquisition time.
    4. Start conversion:
    • Set GO/DONE bit (ADCON0)
    5. Wait for A/D conversion to complete, by either:
    • Polling for the GO/DONE bit to be cleared
    (with interrupts enabled); OR
    • Waiting for the A/D interrupt
    6. Read A/D result register pair
    (ADRESH:ADRESL), clear bit ADIF if required.
    7. For the next conversion, go to step 1 or step 2,
    as required. The A/D conversion time per bit is
    defined as TAD. A minimum wait of 2TAD is
    required before the next acquisition starts.
    1) se fait dans configAnalog et selectChannel.
    5) et 6) se font dans getAnalog.

  24. #23
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour
    Merci de ta réponse cela ma vraiment aider !
    Voila ce que j'ai fait ( début du prog + partit CAN ) peut tu me dire si cela est juste
    Code:
    #include <16F877.H>
    bit compte_vitesse @ RB2
    bit compte_tour @ RB1
    
    void main (void)
    {
    TRISA = ob11110111;  //Configuration Port A
    TRISB = ob10001111;  // Config Port B
    PORTA = 0;           // Mise a 0 Port A
    PORTB = 0;           // Mise a 0 port B
    OPTION_REG = ob11101000;  // Timer 0 configuration
    T1CON = ob00000111;     // Timer 1 Configuration
    T2CON = ob00000101;     // Timer 2 Configuration
    ADCON1 = ob10000100;   // CAN Configuration Port et alignement 
    
    }
    Code:
    void selectChannel(unsigned char num) {
    	ADCON0 = ob01000001; // Fosc/8(00), Chanel : RAO (000) , GO/DONE : No (0) , Bit non définie (0) , ADON : oui (1)   
    	TMR2 = 0;     // Mise a 0 du timer 2 pour la temporisation 
    	for (TRM2=6); // Temporisation permetant au convertisseur de chager la valeur analogique 
    	nop();       // 1us de temporisation par sécurité !
    	GO/DONE = 1; // Go/DONE = 1 Début conversion 
    	TMR2 = 0;    // Mise a 0 Du timer 2 pour la temporisation
    	for (TRM2=1) ; // Temporisation pour laisser le temps au micro de convertir 
        EcritureFlash(0x1004,ADRESH:ADRESL); // Ecriture a l'adresse 0x1004 de la valeur 
    	ADIF = 0;
        }
    Merci

  25. #24
    sdec25

    Re : Programation PIC16F87X

    J'ai pas vérifié toutes les valeurs des registres mais ça a l'air juste.
    Par contre tu peux virer le paramètre de la fonction selectChannel()
    Et pour attendre la fin de la conversion tu peux tester le bit GO_DONE

  26. #25
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour a tous
    J'ai profité de mon après midi de libre pour continuer le programme
    il me manque plus qu'un chose => arriver a envoyer mes donné stocker dans ma mémoire en série ( sur des registre a décalage )
    Quelqu'un aurai t-il un lien vert un site expliquant comment faire en C ?
    Voici le code actuellement :
    Code:
    #include <16F877.H>
    bit compte_vitesse @ RB2
    bit compte_tour @ RB1
    
    void main (void)
    {
    TRISA = ob11110111;  //Configuration Port A
    TRISB = ob10001111;  // Config Port B
    PORTA = 0;           // Mise a 0 Port A
    PORTB = 0;           // Mise a 0 port B
    OPTION_REG = ob11101000;  // Timer 0 configuration
    T1CON = ob00000111;     // Timer 1 Configuration
    T2CON = ob00000101;     // Timer 2 Configuration
    ADCON1 = ob10000100;   // CAN Configuration Port et alignement 
    
    }
    for (;;)
    {
    a=0;             // Mise a 0 de A
    TMR0 = 0;        // Mise a 0 du timer 0
    frequence = 0;   // Mise a 0 de frequence
    While (TRM0<1)  // Boucle jusqu'a que TRM0 = 1 ( Detection d'un front montant ) 
    { 
    a += 1;         // Incrémentation de A 
    }
    b=0;             // Mise a 0 de B
    TMR1 = 0;        // Mise a 0 de Timer1
    vitesse = 0;     // Mise a 0 de vitesse
    While (TRM1<1);  // Boucle jusqu'a que TRM1 = 1 ( Detection d'un front montant )
    { 
    b += 1;         // Incrémentation de B
    }
    
    frequence = 1000/a; // exemple Calcule Frequence non definitif 
    vitesse = 1000/b; // exemple Calcule Vitesse non definitif 
    
    if (frequence < 1000) // exemple Comparaison Fréquence non definitif 
     EcritureFlash(0x1000,000000000000000000000000000000000000000000000000) // exemple ecriture memoire valeur binnaire a envoyer
    else if (frequence > 1000 && frequence < 1010) // exemple Comparaison Fréquence non definitif 
     EcritureFlash(0x1000,000000000000000000000000000000000000000000000001)
    
     if (vitesse < 1000) 
    EcritureFlash(0x1012,000000000000000000000000000000000000000000000000) // exemple ecriture memoire valeur binnaire a envoyer
    
    	ADCON0 = ob01000001; // Fosc/8(01), Chanel : RAO (000) , GO/DONE : No (0) , Bit non définie (0) , ADON : oui (1)   
    	TMR2 = 0;     // Mise a 0 du timer 2 pour la temporisation 
    	for (TRM2=6); // Temporisation permetant au convertisseur de chager la valeur analogique 
    	nop();       // 1us de temporisation par sécurité !
    	GO/DONE = 1; // Go/DONE = 1 Début conversion 
    	TMR2 = 0;    // Mise a 0 Du timer 2 pour la temporisation
    	for (GO/DONE=0) ; // Temporisation pour laisser le temps au micro de convertir 
        t_eau=ADRESH:ADRESL // definition de la valeur essence 
    	ADIF = 0;
        
       if (t_eau < 0 ) // Exemple de comparaison 
       EcritureFlash(0x1024,00000000) // exemple ecriture memoire valeur binnaire a envoyer
       else if ( t_eau > ob0000000000100000 && essence < ob 0000000000100000 )// Exemple de comparaison 
       EcritureFlash(0x1004,00000001)// exemple ecriture memoire valeur binnaire a envoyer
    
    
     	ADCON0 = ob01001001; // Fosc/8(01), Chanel : RA1 (001) , GO/DONE : No (0) , Bit non définie (0) , ADON : oui (1)   
    	TMR2 = 0;     // Mise a 0 du timer 2 pour la temporisation 
    	for (TRM2=6); // Temporisation permetant au convertisseur de chager la valeur analogique 
    	nop();       // 1us de temporisation par sécurité !
    	GO/DONE = 1; // Go/DONE = 1 Début conversion 
    	TMR2 = 0;    // Mise a 0 Du timer 2 pour la temporisation
    	for (GO/DONE=0) ; // Temporisation pour laisser le temps au micro de convertir 
        essence=ADRESH:ADRESL // definition de la valeur essence 
    	ADIF = 0;
        
       if (essence < 0 ) // Exemple de comparaison 
       EcritureFlash(0x1026,00000000) // exemple ecriture memoire valeur binnaire a envoyer
       else if ( essence > ob0000000000100000 && essence < ob 0000000000100000 )// Exemple de comparaison 
       EcritureFlash(0x1005,00000001)// exemple ecriture memoire valeur binnaire a envoyer
    
     	ADCON0 = ob01001001; // Fosc/8(01), Chanel : RA3 (011) , GO/DONE : No (0) , Bit non définie (0) , ADON : oui (1)   
    	TMR2 = 0;     // Mise a 0 du timer 2 pour la temporisation 
    	for (TRM2=6); // Temporisation permetant au convertisseur de chager la valeur analogique 
    	nop();       // 1us de temporisation par sécurité !
    	GO/DONE = 1; // Go/DONE = 1 Début conversion 
    	TMR2 = 0;    // Mise a 0 Du timer 2 pour la temporisation
    	for (GO/DONE=0) ; // Temporisation pour laisser le temps au micro de convertir 
        t_huile=ADRESH:ADRESL // definition de la valeur essence 
    	ADIF = 0;
        
       if (t_huile < 0 ) // Exemple de comparaison 
       EcritureFlash(0x1028,00000000) // exemple ecriture memoire valeur binnaire a envoyer
       else if ( t_huilr > ob0000000000100000 && essence < ob 0000000000100000 )// Exemple de comparaison 
       EcritureFlash(0x1006,00000001)// exemple ecriture memoire valeur binnaire a envoyer
    
    
    }

  27. #26
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour a tous
    Aurier vous un exmple de code C pour la transmition de donné série ( avec horloge )
    je compte envoyer a un registre a decalage une donné de 48 Bits contenu dans une mémoire
    le mode IC2 ne peut donc pas aller
    je doit commander 3 Registre de 48 Bits
    Merci

  28. #27
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour
    Je n'est toujours pas trouver la solution pour l'envoi de donner série
    J'en appel donc a voter aide
    Pour vous aider voila le schéma des registre
    ( Sachant que Data1 est la sortie du micro
    ( la data a envoyer est stocker dans une adresse mémoire )
    CLK est la sortie qui servir d'horloge pour le transfert de donné
    Sachant que j'ai 3 * ce schéma a contrôler )
    Merci de votre aide
    Images attachées Images attachées  

  29. #28
    sdec25

    Re : Programation PIC16F87X

    Bonjour,
    QS=?
    STB=?
    OE=?

    La méthode générale pour convertir série -> parallèle :
    D <= nième octet, enregistrement (octet n dans bascule1, n'importe quoi dans les autres)
    D <= (n-1)ème octet, enregistrement (octet (n-1) dans bascule 1 et octet n dans bascule 2)
    ...
    D <= 1er octet, enregistrement (octet n dans bascule n ...)

  30. #29
    invitee9e0f92f

    Re : Programation PIC16F87X

    Bonjour
    Je c'est mais c'est au niveau du programme que je galère ^^
    pas au niveau du hardware
    QS = les data qui resorte
    OE et STB sont des entré de validation ( elle seront plus tard relier au PIC )
    mais je chercher tjr le code pour la transmition serie
    Merci de votre aide

  31. #30
    sdec25

    Re : Programation PIC16F87X

    Citation Envoyé par x-vodka-limee-x Voir le message
    Je c'est mais c'est au niveau du programme que je galère ^^
    C'est un programme que je t'ai donné, pas un schéma.
    Citation Envoyé par x-vodka-limee-x Voir le message
    QS = les data qui resorte
    OE et STB sont des entré de validation ( elle seront plus tard relier au PIC )
    Alors dans mon programme remplace "enregistrement" par "validation".

Page 1 sur 4 12 3 DernièreDernière

Discussions similaires

  1. programation aquaflow
    Par inviteee745aac dans le forum Électronique
    Réponses: 2
    Dernier message: 08/06/2010, 14h15
  2. programation java
    Par invite200dac76 dans le forum Logiciel - Software - Open Source
    Réponses: 14
    Dernier message: 10/10/2007, 16h46
  3. programation
    Par invite1687c371 dans le forum Électronique
    Réponses: 2
    Dernier message: 10/09/2007, 20h03
  4. programation orientée
    Par c_a_r_a_83 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 31/08/2007, 12h59
  5. Alim programmable avec AD5231 et PIC16F87X
    Par invite9d069ed7 dans le forum Électronique
    Réponses: 8
    Dernier message: 29/08/2006, 11h08
Découvrez nos comparatifs produits sur l'informatique et les technologies.