[Programmation] PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 37

PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème



  1. #1
    MSeghir

    Post PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème


    ------

    Bonjour, j'ai un petit problème...
    Je veux juste faire un compteur de 0 à 99, mais je ne sais pas d'où vient le problème d'affichage du décompte.
    voila :/

    - PIC 16F84A
    - PROTEUS 8 PRO
    - MicroC
    - Decodeur 74LS48 sur Proteus

    Le shéma :
    Nom : Deux digit.png
Affichages : 1455
Taille : 26,5 Ko
    voila le programme

    Le code :

    Code:
    unsigned short cnt=0;
     unsigned short u, di, i;
      unsigned short t[10]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    void main() {
     trisa= 0;
     trisb= 0;
     for(;;)
     {
     for (cnt=0;cnt<100;cnt++)
     {
      di=cnt/10;
      u=cnt-10*di;
       for (i=0;i<100;i++)
       {
          porta=0b11111110;portb=t[u];
          delay_ms(2);
          porta=0b11111101;portb=t[di];
          delay_ms(2);
       }
      
     }
     }
    
    }

    -----

  2. #2
    Piefra

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Probleme

    Bjr,

    Y aurai pas une inversion port a et b ?

    Cdlt
    Cordialement Piefra

  3. #3
    MSeghir

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Probleme

    comment ça ??
    je n'ai pas compris ce que tu voulais dire

  4. #4
    mag1

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Probleme

    Citation Envoyé par MSeghir Voir le message
    comment ça ??
    je n'ai pas compris ce que tu voulais dire
    Bonjour,
    Je connais rien en C, mais apparemment, dans le code, le codage des segments est sur les ports b et la sélection des digits sur les ports a.
    Sur le schéma, c'est le contraire...
    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

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

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Probleme

    Non le codage des segments est sur les ports a et la sélection des digits sur les ports b...

  7. #6
    Qristoff
    Animateur Électronique

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Probleme

    Citation Envoyé par MSeghir Voir le message
    Non le codage des segments est sur les ports a et la sélection des digits sur les ports b...
    pas dans le code en tout cas !
    Tout existe, il suffit de le trouver...!

  8. #7
    Jack
    Modérateur

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Probleme

    Citation Envoyé par MSeghir Voir le message
    Non le codage des segments est sur les ports a et la sélection des digits sur les ports b...
    Relis attentivement ton code et tu verras que mag1 a raison.

  9. #8
    Jack
    Modérateur

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    En fait j'ai l'impression que le code ne correspond pas à ton schéma. On dirait que le code du PIC commande directement les segments sur le port B sans passer par le 74LS48

  10. #9
    Jack
    Modérateur

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    En passant, tu peux avantageusement utiliser l'opérateur modulo et remplacer
    Code:
    u=cnt-10*di;
    par
    Code:
    u = cnt % 10;

  11. #10
    jiherve

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    bonjour
    avec un ls48 c'est lui qui assure le décodage BCD => 7 segments et il faut activer l'afficheur concerné en même temps.
    En pratique on invalide tous les afficheurs, on place le code BCD sur les bonnes sorties on revalide l'afficheur pertinent.
    c'est tout de même basique voire trivial!
    JR
    l'électronique c'est pas du vaudou!

  12. #11
    Piefra

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    Re,

    Pour le decodage bcd 7seg , perso je n'ai pas verifier la correspondance de l'array t et ses 10 valeurs
    Ni si utiliser un array etait plus avantgeux qu'une division

    Cdlt
    Cordialement Piefra

  13. #12
    jiherve

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    re
    si on utilise un LS48 alors il n'y a pas besoin de décoder, c'est basique!!!!!!
    ou c'est que l'on ne sait pas ce que l'on fait!
    JR
    l'électronique c'est pas du vaudou!

  14. #13
    MSeghir

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Probleme

    Je pense que le problème est dans le code

  15. #14
    MSeghir

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Probleme

    C'est vrai, mais je ne sais pas comment mettre en œuvre ce qu'il a dit..

  16. #15
    MSeghir

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    Comment est-ce possible??

  17. #16
    Piefra

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    Re,

    L'avantage du decodeur pourrait etre juste une reduction des pins out de 7 a 4
    Et vouloir garder une gestion en array plus efficiante en cycle
    ????

    il faudrait preciser l'origine du schema , du code et le but du projet global
    Ainsi que le niveau du demandeur de maniere a donner les bons elements de language
    Tiens je me met a ecrire comme un politicien , une contamination ...

    Cdlt
    Cordialement Piefra

  18. #17
    jiherve

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    bonsoir,
    bon une autre remarque:
    une sortie de PIC ne peut supporter le courant d'un afficheur cathodes communes car celui ci peut largement dépasser les 25mA max.
    Il faut un transistor, petit NMOS de préférence.
    Le décodeur en plus de minimiser le nombre de pins a surtout pour avantage de décoder la séquence du nibble, donc pour afficher 1 on sort 0b0001, pour 6 0b0110 etc etc , bien sur si l'on veut un affichage décimal cohérent on aura prit soin de convertir le binaire pur en BCD.
    en résumé lire les datasheet des composants!!
    JR
    l'électronique c'est pas du vaudou!

  19. #18
    MSeghir

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    voila !!
    Objectif : Créer un compteur de 0 à 99
    Logiciel utilisé*:
    - Proteus 8.5 Pro
    - MikroC
    Éléments :
    - Segment Cathode Display
    - PIC 16F84A
    - Decodeur 74LS48

    Le schéma est complet :
    Nom : Deux Digit 0 à 99.jpg
Affichages : 1043
Taille : 182,4 Ko

  20. #19
    jiherve

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    Re
    un LS48 ne peut pas vraiment piloter un vrai 7 segments à LED car son courant de sortie est limité à 1,3ma et avec ce courant un segment s'allume à peine même sur un 7 segments de course.
    Ensuite le dispositif placé dans les cathodes communes doit pouvoir absorber les courants de 8 segments + le point décimal , en prenant un courant typique de 10mA cela fait 90mA => pouf le PIC!
    donc encore une fois une niaiserie récupérée sur le net.
    JR
    l'électronique c'est pas du vaudou!

  21. #20
    MSeghir

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    J'ai vu des exemples sur le net et la simulation est faite correctement, pour moi le problème est toujours dans le code uniquement.

  22. #21
    MSeghir

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    Aaaaaaaaaa
    Dernière modification par MSeghir ; 24/04/2022 à 18h37.

  23. #22
    jiherve

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    re
    en simulation cela semble fonctionner dans la vraie vie il faudra éteindre les lumières pour voir l'afficheur.
    ceci dit effectivement ton code ne fonctionne pas car tu n'envoies pas les bonnes choses sur les bons ports!
    je répète : le LS48 fait le décodage comme un grand tout seul!
    JR
    l'électronique c'est pas du vaudou!

  24. #23
    webscience

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    Bonjour,

    Je suis d'accord avec jiherve,

    Si c'est juste pour faire un compteur tu peux supprimer ton 74LS48 le Pic16F84A peut le faire,

    J'ai l’impression que tu débutes dans le monde des microcontrôleurs Microchip Pic

    La simulation ça ne fait pas tout, car en simulation le logiciel ne va tenir compte de l'échauffement ou de la lumière émit,

    Et parfois certain s'étonne que leur montage fume, Ah.... il fonctionne.... mais pas longtemps.


    A+
    Dernière modification par webscience ; 24/04/2022 à 19h33.

  25. #24
    MSeghir

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    Oui, je suis nouveau, je veux juste faire une simulation correcte

  26. #25
    jiherve

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    re
    le ls48 n'est pas un compteur mais un décodeur BCD => 7segments on peut s'en passer mais alors il faut au minimum 7 pins sur le µC + une autre pour le point décimal, c'est un choix à faire en fonction des contraintes du projet.
    On peut aussi utiliser un registre à décalage pour porter le code des segments, cela ne consomme que 3 pins, 2 en "tombé en marche", de la même façon la commande des digit peut être faite par autant de sorties que de digit ou bien au moyen d'un décodeur 1 parmi n ex 74xx139,74xx138.
    Le moins gourmand coté µC c'est 7 pins pour un afficheur à 8 digits, 3 pour les segment et le point et 4 pour la sélection des digits dont une pin pour l'extinction lors du multiplexage pour avoir un résultat propre.
    so much to learn!
    JR
    l'électronique c'est pas du vaudou!

  27. #26
    webscience

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    Voici comment ton schéma devrait être, pour faire fonctionner ton pic seulement en compteur .

    Nom : Compteur 2 digits.jpg
Affichages : 1375
Taille : 82,7 Ko

    Mon code ASM fonction sous proteus 8, à toi de jouer


    A+

  28. #27
    MSeghir

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    Avez-vous utilisé mon code*?

  29. #28
    webscience

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    Écrit par MSeghir : Avez-vous utilisé mon code ?
    Non, j'ai utilisé mon code qui est en assembleur (ASM),

    A+

  30. #29
    MSeghir

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    Maintenant j'ai modifié le schéma et le code, mais le problème reste avec le même affichage dans les deux 7 segments...Ce problème peut-il être résolu à votre avis*?

    Le shéma :
    Nom : 2 d 7 seg.jpg
Affichages : 962
Taille : 196,8 Ko

    Et Le code :
    Code:
    #include <pic.h>
    #include "delay.c"
    //configuration fuse bits
    __CONFIG(XT & WDTDIS & PWRTDIS & UNPROTECT);
    //global variables
    unsigned char display_value = 0x00;
    //stores any value between 0-99, value to be
    displayed to 7-segment
    unsigned char tens_digit;
    //stores the tens digit of display_value
    unsigned char ones_digit;
    //stores the ones digit of display_value
    //function prototypes
    void update_value(unsigned char display_value);
    void display(void);
    void main()
    {
    unsigned char temp=0x00;
    PORTB &= ~0x0F;
    //PORTB<3:0> are output
    TRISB &= ~0x0F;
    PORTB &= ~0x03;
    //PORTA<1:0> are output
    TRISA &= ~0x03;
    update_value(display_value);
    //initial update
    while(1)
    {
    display();
    segments
    temp++;
    if (temp == 9)
    elapsed
    {
    display_value++;
    //increment value
    if (display_value > 99)
    //if more than 99
    display_value = 0x00; //reset back to 0
    update_value(display_value); //extract tens/ones digit of new
    value
    temp = 0x00;}}}
    //display to 7segment
    void display(void)
    {
    PORTA = 0x01;
    //enable SEGMENT1
    PORTB = ones_digit;
    //display '1'
    DelayMs(50);
    //50ms delay
    PORTA = 0x02;
    //enable SEGMENT2
    PORTB = tens_digit;
    //display '4'
    DelayMs(50);}
    void update_value(unsigned char display_value)
    {
    tens_digit = display_value/10;
    ones_digit = display_value - (tens_digit * 10);
    }
    Dernière modification par Antoane ; 29/04/2022 à 20h37. Motif: alors balises code

  31. #30
    webscience

    Re : PIC16F84A et "Decoder" Afficheur 7 segments Compteur Problème

    Ton schéma est déjà mieux, mais pourquoi tu gardes ton 74LS48 ?

    .....le voila le vrai problème de la simulation..... dans la vrai vie ton montage fonctionnerais, mais pas en simulation.

    Pourquoi ..... et ben c'est juste une question de vitesse, ton simulateur n'est pas assez rapide pour reproduire un multiplexage, donc, il n'arrive pas à éteindre un afficheur après l'autre (j'ai eu le même problème que toi, à moins qu'il existe un paramètre dans Proteus 8 , mais j'ai pas trouvé)

    A+

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Compteur afficheur 7 segments et Arduino
    Par Sky234 dans le forum Électronique
    Réponses: 10
    Dernier message: 03/11/2015, 14h42
  2. PIC16F84A Afficheur 7 segments (Compteur) Probleme
    Par SmoZy dans le forum Électronique
    Réponses: 8
    Dernier message: 12/04/2014, 18h55
  3. un compteur => un afficheur 7 segments
    Par Antoane dans le forum Électronique
    Réponses: 18
    Dernier message: 27/03/2012, 06h56
  4. pic16f84a et afficheur 7 segments
    Par kevin8z dans le forum Électronique
    Réponses: 30
    Dernier message: 17/11/2011, 17h27
  5. compteur afficheur 7 segments
    Par invite938b5933 dans le forum Électronique
    Réponses: 9
    Dernier message: 28/10/2010, 07h48
Découvrez nos comparatifs produits sur l'informatique et les technologies.