IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Composants électroniques


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1
    Par défaut Composants électroniques
    Pouvez vous m'aider?
    je dois realiser une palette de composants electroniques sous builder c++
    orienté simulation logique avec une horloge ,porte NAND,VCC,MASSE,FIL,etc..

    Pouvez vous m aider?
    merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Deux strates :
    - graphique et événementielle
    - logique

    Si les composants comprennent également des circuits multi fonctions (genre 74LS00, CD4011 pour ne citer qu'eux ), prévoir sans doute une classe par strate.

    Par exemple, les fonctions logiques peuvent prendre l'apparence d'un automate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class jFct
    {
    public :
    bool Done;
    bool Circ;
    Byte s;
        __fastcall jFct();
        __fastcall ~jFct();
        virtual Byte __fastcall S(int N);
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class jNand2E : public jFct
    {
    jFct *E1; int N1;
    jFct *E2; int N2;
        __fastcall jNand2E();
        __fastcall ~jNand2E();
        Byte __fastcall S(int N);
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Byte __fastcall jNand2E::S(int N)
    {
    if(!Done)
        {
        if(!Circ)
            {
            Circ = true;
            s = (Byte)((E1->S(N1) & E2->S(N2) & 1) ^ 1);
            Circ = false;
            }
        Done  = true;
        }
    }
    A noter que le paramètre N ne sert que pour des fonctions à plusieurs sorties (74LS74.... 74LS 93...74LS138...Z80, 65C02, 68000...)

    On sait, par exemple, qu'un 74LS00 et un CD4011 auront la même structure interne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    jNand2E *F1;
    jNand2E *F2;
    jNand2E *F3;
    jNand2E *F4;
    Seules les pins de raccordement seront différents ce qui devrait être géré par la strate graphique (gérant aussi l'inter connection)!

    etc...

    Pour GND et VCC il suffit de faire deux fonctions dérivées de jFct dont la seule fonction sera de renvoyer un état (0 ou 1).
    On peut envisager un tri state de valeur 3 (entrée en l'air pour les TTL ou pour les sorties à collecteur ou drain ouvert...)... Le code du nand à 2 entrées est fait en ce sens...

    Par contre... on risque quand même une grande complexité avec les connections...

    A plus ! A suivre... ?

Discussions similaires

  1. [AC-2007] Base de données pour composants électroniques
    Par Ptit_Jedi dans le forum Modélisation
    Réponses: 21
    Dernier message: 01/06/2011, 14h09
  2. Réponses: 20
    Dernier message: 20/05/2011, 13h47
  3. Réponses: 0
    Dernier message: 19/05/2011, 14h26
  4. [Joomla!] recherche composants Joomla pour pour la gestion de valves électroniques
    Par jacko2 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 03/01/2008, 11h04
  5. Réponses: 3
    Dernier message: 05/12/2006, 16h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo