Partage
  • Partager sur Facebook
  • Partager sur Twitter

codeur bcd maison

    18 mars 2015 à 13:04:02

    Bonjour,

    je cherche un moyen d'afficher les dizaine et les centaines sur mes 7 segments mais je ne vois pas comment faire arrivé à la dizaine,

    faut t'il traduire en porte logique chaque nombre ou ya t'il un moyen pour convertir en décimal les dizaine et les centaine?

    en gros comment s'est bidouiller dans les décodeur binaire decimal dans les CI? comment le refaire avec des transistor?

    merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter
      18 mars 2015 à 13:37:29

      Un décodeur 7 segments, c'est tout simplement une grosse suite d'opérateurs logiques permettant d'allumer ou non chaque segment en fonction du nombre binaire présent sur les entrées.

      A l'intérieur, cela ressemble à ça :

      Explications : http://www.memoireonline.com/04/12/5741/m_Conception-et-realisation-dun-systeme-de-vote-electronique-pour-le-parlement-cas-du-senat-c26.html

      En tout cas, pour faire ça avec uniquement des transistors, je te souhaite bon courage car il va t'en falloir quelques centaines.

      Bref, mieux vaut acheter un décodeur directement ;)

      -
      Edité par lorrio 18 mars 2015 à 13:38:33

      • Partager sur Facebook
      • Partager sur Twitter
        18 mars 2015 à 14:17:14

        Si tu as un signal d'horloge, le faire entrer dans un 7490 (compteur par 10, ce CI est cascadable), en sortie tu auras 4 signaux A, B, C et D prenant les valeurs suivantes :

        0000

        0001

        0010

        0011

        0100

        0101

        0110

        0111

        1000

        1001 (qui correspond à 9)

        0000

        si ces sorties sont câblés sur un 7447, tu peux directement (avec résistances) brancher un afficheur 7 segments.

        Ces références sont des TTL, il existe des équivalents dans la famille 4000. 

        J'espère avoir répondu à tes attentes.

        • Partager sur Facebook
        • Partager sur Twitter
        Le 25 juillet 2016, j'ai essayé une Ford Mustang.
          18 mars 2015 à 17:50:44

          merci lorrio , merci gerard68 mais le problème c'est que je vois tout a fait comment faire le circuit le probleme est ce que je ne comprend pas
          comment passer la dizaine sans recoder un a un les 91 nombres jusqu'a 100 alors j'imagine pas jusqua 1000 ou meme 10000 qu'elle est "lastuce" pour cascader cette opération en sachant que je vois comment coder un nombre binaire en décimal sur un 7 seg mais je ne vois pas comment faire fonctionner des dizaine ou des centaine , qu'elle est le principe de mise en cascade à l'intérieur ?

          • Partager sur Facebook
          • Partager sur Twitter
            18 mars 2015 à 18:01:00

            En clair, tu cherches à faire une sorte de mega décodeur 7 segments avec :

            - Entrée sur 7 bits => nombre entre 0 et 127 (mais seul un nombre entre 0 et 99 pourra être affiché)

            - Sortie sur 2x 7segments (un pour les dizaines, un pour les unités)

            Je me trompe ?


            Si c'est effectivement le cas, ce n'est pas gagné...

            A ma connaissance, ce genre de circuit n'existe pas et me semble bien complexe à faire.

            Pour ce genre de chose, on utilise plutôt un petit processeur avec un bout de code qui fait des divisions et des modulo ;)

            Exemple :

            int nb = 2345;
            
            int uni = ( ( nb /    1 ) % 10 );    // uni = 5
            int diz = ( ( nb /   10 ) % 10 );    // diz = 4
            int cen = ( ( nb /  100 ) % 10 );    // cen = 3
            int mil = ( ( nb / 1000 ) % 10 );    // mil = 2
            

            -
            Edité par lorrio 18 mars 2015 à 18:02:55

            • Partager sur Facebook
            • Partager sur Twitter
              18 mars 2015 à 18:36:39

              ya pas moyen de faire un afficheur 7 segment avec en cascade un autre afficheur 7 segment interconnecté entre eux pour faire l'affichage d'un nombre allant jusqu'a 99? sans utiliser un µc?
              • Partager sur Facebook
              • Partager sur Twitter
                18 mars 2015 à 19:14:08

                Pas avec un nombre codé sur n bits.


                Si je prends l'exemple d'un compteur de 0 à 999, tu verras qu'à l'intérieur, il n'y a pas un bus de 10 bits (soit un nombre de 0 à 1023) mais 3 bus indépendants de 4 bits.

                Chaque bus a pour consigne de compter de 0 à 9, rien de plus.

                Quand un des bus atteint 10, celui-ci est remis à 0 et le bus suivant est incrémenté de 1.

                De ce fait, chaque bus peut être directement relié à un décodeur 7 segments et tout ce passe bien.

                En comptage, cela donne donc :

                | NOMBRE | bus centaine | bus dizaine | bus unité |
                |    000 |         0000 |        0000 |      0000 |
                |    001 |         0000 |        0000 |      0001 |
                |    002 |         0000 |        0000 |      0010 |
                |    003 |         0000 |        0000 |      0011 |
                |    004 |         0000 |        0000 |      0100 |
                ...
                |    008 |         0000 |        0000 |      1000 |
                |    009 |         0000 |        0000 |      1001 |
                |    010 |         0000 |        0001 |      0000 |  // Le bus unité a atteint 10 donc il est remis à 0 et le bus dizaine est incrémenté
                |    011 |         0000 |        0001 |      0001 |
                |    012 |         0000 |        0001 |      0010 |
                |    013 |         0000 |        0001 |      0011 |
                ...
                

                Si tu t'amuses à regarder le nombre que forme la concaténation des bus, c'est assez marrant :

                | NOMBRE | bus centaine | bus dizaine | bus unité | CONCATENATION:
                |    000 |         0000 |        0000 |      0000 | 0000 0000 0000 = 0
                |    001 |         0000 |        0000 |      0001 | 0000 0000 0001 = 1
                |    002 |         0000 |        0000 |      0010 | 0000 0000 0010 = 2
                |    003 |         0000 |        0000 |      0011 | 0000 0000 0011 = 3
                |    004 |         0000 |        0000 |      0100 | 0000 0000 0100 = 4
                ...
                |    008 |         0000 |        0000 |      1000 | 0000 0000 1000 = 8
                |    009 |         0000 |        0000 |      1001 | 0000 0000 1001 = 9
                |    010 |         0000 |        0001 |      0000 | 0000 0001 0000 = 16
                |    011 |         0000 |        0001 |      0001 | 0000 0001 0001 = 17
                |    012 |         0000 |        0001 |      0010 | 0000 0001 0010 = 18
                |    013 |         0000 |        0001 |      0011 | 0000 0001 0011 = 19
                ...

                 En concaténation, ce compteur passe de 9 à 16 :)

                -
                Edité par lorrio 18 mars 2015 à 19:15:52

                • Partager sur Facebook
                • Partager sur Twitter
                  19 mars 2015 à 19:32:20

                  donc du coup je vois ce que tu veux dire mais si je code un additionneur logique qui me renvoie un nombre sur n bits c'est foutu... non?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 mars 2015 à 20:30:07

                    un additionneur logique avec 2 demi additioneur (OR ex et AND) mit bout à bout pour former un additionneur disons de 8 bits qui me permet de compter jusqu'à 250 je ne pourrais donc pas afficher mon nombre non?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 mars 2015 à 20:33:59

                      Non, ce n'est pas possible.

                      Mais tu peux utiliser le même principe que pour les compteurs ;)

                      Il te faudra donc 3 additionneurs 4 bits (un pour chaque digit) ainsi que les comparateurs qui vont avec.

                      Dès qu'un des comparateurs détecte qu'un additionneur atteint 10, il remet l'additionneur à 0 et enclenche un +1 sur l'additionneur suivant.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 mars 2015 à 22:22:16

                        charly33 a écrit:

                        un additionneur logique avec 2 demi additioneur (OR ex et AND) mit bout à bout pour former un additionneur disons de 8 bits qui me permet de compter jusqu'à 250 je ne pourrais donc pas afficher mon nombre non?


                        En clair, tu souhaites faire quoi ?

                        Avec 8 bit, on compte de 0 à 255.

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Le 25 juillet 2016, j'ai essayé une Ford Mustang.
                          20 mars 2015 à 16:28:12

                          une calculette sans microcon uniquement avec des transistors
                          • Partager sur Facebook
                          • Partager sur Twitter
                            22 mars 2015 à 23:18:32

                            Bon courage.
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Le 25 juillet 2016, j'ai essayé une Ford Mustang.

                            codeur bcd maison

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown