programmer le pic 16F88 - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 47 sur 47

programmer le pic 16F88



  1. #31
    invite7a49d0d5

    Cool Re : programmer le pic 16F88


    ------

    re ;O]

    d'après moi ce dernier code fonctionne tel quel...
    cad pas besoin d'activer les interruptions périphs...
    (mais ajoutes TRISA = 0x00; au début, pour "assurer" les PORTA en sorties)

    vede
    ;O]
    ______________
    ...

    -----

  2. #32
    invite7a49d0d5

    Cool Re : programmer le pic 16F88

    ok, dans ce cas c'est probablement une erreur dans le décodage ou dans la transmission des caractères... ascii...

    essaie avec : si read = "r"... pour repérer le "z"...
    déjà pour voir si ça résolve le problème...

    vede
    ;O]
    _______________
    ...

  3. #33
    freepicbasic

    Re : programmer le pic 16F88

    Le = est une assignation
    et le == une comparaison

    non
    if (byte_read="a")
    oui
    if (byte_read=="a")

    le double quote est réservé aux chaines de caractères
    le simple quote aux char

    A mon avis il faut écrire;
    if (byte_read=='a')
    a vérifier sur ton compilateur.
    A+, pat

  4. #34
    coeur noire
    Invité

    Re : programmer le pic 16F88

    salut


    j'ai fais tout les essai en remplacent z par v
    Code:
    if (byte_read=='a')
               {PORTA =0b11000011;}
          if (byte_read=='v')
               {PORTA =0b00000000;}
    Code:
    if (byte_read="a")
               {PORTA =0b11000011;}
          if (byte_read="v")
               {PORTA =0b00000000;}
    rien aucun effet

  5. #35
    invite7a49d0d5

    Cool Re : programmer le pic 16F88

    Salut coeur noire,

    tu écrivais que c'était "r" (pas "v") à la place de "z"...
    ça a changé?

    vede
    ;O]
    _________________
    ...

  6. #36
    freepicbasic

    Re : programmer le pic 16F88

    affiche tout , si ça ne fonctionne pas c est qu'il y a une erreur ailleurs
    A+, pat

  7. #37
    coeur noire
    Invité

    Re : programmer le pic 16F88

    salut

    donc
    quand je tape la lettre z au clavier c'est la lettre r qui apparais a l'écran
    donc pouvoir z a l'écran je tape au clavier la lettre v





    char error, byte_read; /* Auxiliary variables */

    void main()
    {
    OSCCON =0b01110010;
    ANSEL = 0; /* Configure AN pins as digital I/O */
    CMCON = 0x07;
    TRISA = 0b00010000;
    TRISB = 0b00110100;
    error = Soft_UART_Init(PORTB, 2, 5, 9600, 0);

    while(1) {
    PORTA =0b0000000;
    byte_read = Soft_UART_Read(&error);
    if (error)
    {PORTB = error;}
    else
    Soft_UART_Write(byte_read);

    if (byte_read='a')
    {PORTA =0b11000011;}
    if (byte_read='r')
    {PORTA =0b00000000;}
    }
    }

    les diodes sont eteintes les lettres apparaissent a l'écran


    char error, byte_read; /* Auxiliary variables */

    void main()
    {
    OSCCON =0b01110010;
    ANSEL = 0; /* Configure AN pins as digital I/O */
    CMCON = 0x07;
    TRISA = 0b00010000;
    TRISB = 0b00110100;
    error = Soft_UART_Init(PORTB, 2, 5, 9600, 0);

    while(1) {
    PORTA =0b0000000;
    byte_read = Soft_UART_Read(&error);
    if (error)
    {PORTB = error;}
    else
    Soft_UART_Write(byte_read);

    if (byte_read=='a')
    {PORTA =0b11000011;}
    if (byte_read=='r')
    {PORTA =0b00000000;}
    }
    }
    idem

  8. #38
    invite7a49d0d5

    Cool Re : programmer le pic 16F88

    Salut,

    c'est très très zétrange ;O]
    je te suggère de rajouter des temporisations lors de l'affichage...
    et tenter en mettant "read_byte" dans une variable comme ça:
    Code:
    byte var;
    
    while(1) {
    PORTA =0b0000000;
    var = 0;
    byte_read = Soft_UART_Read(&error);
    var = byte_read;
    if (error)
    {PORTB = error;}
    else
    Soft_UART_Write(byte_read);
    
    if (var='a')
    {PORTA =0b11000011; delay_ms(1000);}
    if (var='r')
    {PORTA =0b00000000; delay_ms(1000);}
    }
    }
    car peut-être que le compilo "écrase" byte_read lors de son envoi...
    attention ça n'est qu'une supposition...

    vede
    ;O]
    _________________
    ...

  9. #39
    coeur noire
    Invité

    Re : programmer le pic 16F88

    les diodes sont tout éteintes
    et elles s'allume toute si je tape n'importe qu'elle touche du clavier
    Code:
    char error, byte_read,var;
    
    void main()
    {
    
    OSCCON =0b01110010;
    ANSEL = 0; /* Configure AN pins as digital I/O */
    CMCON = 0x07;
    TRISA = 0b00010000;
    TRISB = 0b00110100;
    error = Soft_UART_Init(PORTB, 2, 5, 9600, 0);
    
    while(1) {
    PORTA =0b0000000;
    var=0;
    var=byte_read;
    byte_read = Soft_UART_Read(&error);
    if (error)
    {PORTA =0b00000001;}/* si y a erreur la doides sur le PORTA.F1 est éclaires*/
    else
    Soft_UART_Write(byte_read);
    
    if (var='a')
    {PORTA =0b11000011;
    delay_ms(1000);}
    if (var='r')
    {PORTA =0b00000000;
    delay_ms(1000);}
    }
    }

  10. #40
    invite7a49d0d5

    Cool Re : programmer le pic 16F88

    re ;O]

    dans ton code tu as inversé les lignes :

    byte_read = Soft_UART_Read(&error);
    var=byte_read;

    ça vient probablement de là...
    ( il faut mettre var=byte_read; après byte_read = Soft_UART_Read(&error)

    sinon, tu es certain que l'ADC est bien désactivé???

  11. #41
    coeur noire
    Invité

    Re : programmer le pic 16F88

    salut

    Code:
    char error, byte_read,var;
    
    void main()
    {
    
    OSCCON =0b01110010;
    ANSEL = 0; /* Configure AN pins as digital I/O */
    CMCON = 0x07;
    TRISA = 0b00010000;
    TRISB = 0b00110100;
    error = Soft_UART_Init(PORTB, 2, 5, 9600, 0);
    
    while(1) {
    PORTA =0b0000000;
    var=0;
    
    byte_read = Soft_UART_Read(&error);
    var=byte_read;
    
    if (error)
    {PORTA =0b00000001;}/* si y a erreur la doides sur le PORTA.F1 est éclaires*/
    else
    Soft_UART_Write(byte_read);
    
    if (var='a')
    {PORTA =0b11000011;
    delay_ms(1000);}
    if (var='r')
    {PORTA =0b00000000;
    delay_ms(1000);}
    }
    }
    si je tape n'importe qu'elle touche les diodes s'allume et s'éteigne
    ansel est bien configurer en digital
    CMCON = 0x07 aux reset

  12. #42
    freepicbasic

    Re : programmer le pic 16F88

    les comparaisons c'est == pas =
    A+, pat

  13. #43
    coeur noire
    Invité

    Re : programmer le pic 16F88

    salut

    ca fais 1 mois que j'essaye de comparer une lettre reçu du terminal aux pic pour faire clignoter les diodes
    j'ai meme essayer en asm rien a faire





    dans le code C je rentre dans la condition if(PIR1.RCIF==1)
    car j'ai une diodes qui s'allume

    Code:
    /*PB0 PB7 en sorti commande les deux transistors 2N222A*/
    /*PA0,PA1,PA7,PA6 en sorti commande les deux ULN2803A*/
    /*PA4 PB4 en entrer fin de course gauche droit*/
    /*PA2 en sorti commande le transistor pour commander le pont diviseur de tension*/
    /*PA3 en entrer pour verifier la tention du pont diviseur de tention*/
    /*PB2 PB5 en entrer pour USART */
    /* la lettre a =01100001 la lettre z =01111010*/
    
    
    
    void main (void)
    
    {
    int gauche=0;
    char rec=0;
    char codeRecu=0;
    char code1=0b01100001;/*la lettre a allumé les diodes*/
    char code2=0b01111010;/*la lettre z pour arreter les diodes */
    OPTION_REG=0b00000111;
    INTCON    =0b01000000;
    PIE1      =0b00100000;/*bit5=1*/
    OSCCON    =0b01110010;/*8Mhz INTRC_IO*/
    ANSEL = 0;/*digital*/
    CMCON = 0x07;
    RCSTA=0b10010000;
    TXSTA=0b00000100;
    SPBRG=0x33; // Quartz 8Mhz , BRGH=1 donc SPBRG = 51;
    TRISA = 0b00010000;
    TRISB = 0b00110100;
    Soft_Uart_Init(PORTB, 2, 5, 9600, 0);
    Delay_ms(100);
    while (1)
    
    {
    PORTB = 0b00000000 ;
    PORTA = 0b00000000 ;
    if(PIR1.RCIF==1)
    {
    PORTB = 0b10000001 ;
    PORTA = 0b10000000 ;teste si on a passé la condition 
    codeRecu=Soft_Uart_Read(&rec);
    Soft_Uart_Write(rec);
    
    if (codeRecu==code1)
        {
        gauche=1;
        PIR1.RCIF=0;
        }
    
     else if (codeRecu==code2)
        {
        gauche=0;
        }
    
    
    if(gauche)/*diodes allumé*/
    {
    PORTB = 0b10000001 ;// bit7 AND bit0 5VDC
    PORTA = 0b01000001 ;// Bit6 AND bit0 5VDC
    delay_ms (1000) ;// Tempo
    PORTA = 0b10000010 ;// bit7 AND Bit1 5VDC
    delay_ms (100) ;// Tempo
    } }
    
    }
    
    
    }
    Fichiers attachés Fichiers attachés
    Dernière modification par coeur noire ; 01/05/2010 à 13h41.

  14. #44
    RISC

    Re : programmer le pic 16F88

    Salut,

    D'après tes bits de configuration, j'en déduis que tu utilises l'oscillateur RC interne tu PIC. Est-ce exact ?
    Si c'est le cas, c'est très certainement une source de PB car l'oscillateur interne n'est pas assez précis pour permettre une liaison série (voir chapitre 18.3 de la datasheet) . Choisis un oscillateur à quartz ou un résonnateur céramique ;=)

    Pour vérifier ton programme n'hésite pas si tu ne l'a déjà fait à lire le cours sur les PIC16 en ASM de Bigonoff (la référence dans le domaine)

    a+

  15. #45
    coeur noire
    Invité

    Re : programmer le pic 16F88

    salut

    j'utilise a présent un quartz externe 8 MGHZ+ 2 condensateurs 22micros farad
    j'ai modifier le fichier asm RS232 de BIGNOFF
    avec l'hyperterminal j'ai des symboles et des lettres "ç °°"qui apparais avec BsCp rien et meme le teste de transmition fonctionne pas
    Fichiers attachés Fichiers attachés

  16. #46
    coeur noire
    Invité

    Re : programmer le pic 16F88

    avec mikroC

    je passe la condition les deux diodes s'allume mais il ne reconnais pas les lettres donc aucune diode ne clignote
    Code:
    /*PB0 PB7 en sorti commande les deux transistors 2N222A*/
    /*PA0,PA1,PA7,PA6 en sorti commande les deux ULN2803A*/
    /*PA4 PB4 en entrer fin de course gauche droit*/
    /*PA2 en sorti commande le transistor pour commander le pont diviseur de tension*/
    /*PA3 en entrer pour verifier la tention du pont diviseur de tention*/
    /*PB2 PB5 en entrer pour USART */
    /* la lettre a =01100001 la lettre z =01111010*/
    
    
    
    void main (void)
    
    {
    int gauche=0;
    char rec=0;
    char codeRecu=0;
    char code1=0b01100001;/*la lettre a allumé les diodes*/
    char code2=0b01111010;/*la lettre z pour arreter les diodes */
    OPTION_REG=0b00000111;
    INTCON    =0b01000000;
    PIE1      =0b00100000;/*bit5=1*/
    OSCCON     =0b01110000;/*8mghz quartz externe */
    ANSEL = 0;/*digital*/
    CMCON = 0x07;
    RCSTA=0b10010000;/*port serie active 8 bit 1 bit stop  */
    TXSTA=0b00000100;
    SPBRG=0x33; // Quartz 8Mhz , BRGH=1 donc SPBRG = 51;
    TRISA = 0b00010000;
    TRISB = 0b00110100;
    Soft_Uart_Init(PORTB, 2, 5, 9600, 0);
    Delay_ms(100);
    while (1)
    
    {
    PORTB = 0b00000000 ;
    PORTA = 0b00000000 ;
    if(PIR1.RCIF==1)
    {
    PORTB = 0b10000001 ;
    PORTA = 0b00000011 ;/*teste si j'ai passé la condition*/
    codeRecu=Soft_Uart_Read(&rec);
    Soft_Uart_Write(rec);
    
    if (codeRecu==code1)
        {
        gauche=1;
        PIR1.RCIF=0;
        }
    
     else if (codeRecu==code2)
        {
        gauche=0;
        }
    
    
    if(gauche)/*diodes allumé*/
    {
    PORTB = 0b10000001 ;// bit7 AND bit0 5VDC
    PORTA = 0b00000001 ;// Bit0 5VDC
    delay_ms (1000) ;// Tempo
    PORTA = 0b00000010 ;//  Bit1 5VDC
    delay_ms (100) ;// Tempo
    } }
    
    }
    
    
    }

  17. #47
    coeur noire
    Invité

    Re : programmer le pic 16F88

    je viend de rmodifier le fichier asm et le quartz pour 4mghZ
    je recois constament le mot 'pret' donc quartz 8mghZ a la poubelle

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. Pont en H et Pic 16F88
    Par bypbop dans le forum Électronique
    Réponses: 84
    Dernier message: 16/12/2009, 13h56
  2. pic 16f88 et SPI
    Par invite7973ef56 dans le forum Électronique
    Réponses: 21
    Dernier message: 17/07/2009, 08h14
  3. Pic 16f88 grillé
    Par invite61c07ffe dans le forum Électronique
    Réponses: 2
    Dernier message: 27/04/2009, 22h09
  4. Pic 16f88
    Par invite61c07ffe dans le forum Électronique
    Réponses: 6
    Dernier message: 26/04/2009, 22h36
  5. Programmer avec ICprog un 16F88
    Par invite69e2606f dans le forum Électronique
    Réponses: 0
    Dernier message: 31/05/2008, 20h08
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...