Ein J-K FlipFlop in C programieren........



  • .....wie geht das....kann mir vieleicht jemand dabei helfen....
    ein J-K FF mit sämtlichen Ein/und Ausgängen zu programieren?!....
    ...bin echt am rumquälen....heul....habe so etwas noch nie gemacht.....THX im *******



  • was für ein und ausgänge benötigst du denn. ein jk flipflop hat als eingänge j,k,t und die ausgänge Q !Q ( nicht Q ) und ggf noch die eingánge set und reset

    zum jk-flipflop gibts dann ne entsprechende schaltung samt wertetabelle die dann mittels logischer operationen umzusetzen ist.

    also ich versuchs mal. bitte nicht schlagen wenns falsch ist.

    Q und !Q sind der aktuelle zustand
      Q+ und !Q+ der zustand im nächsten schritt.
      0 ist aus 
      1 ist an 
      x heist soviel wie 1 oder 0 ist da egal.
    
      J K T   Q+ !Q+
      x x 0   Q  !Q <- das ding ist tacktgestuert drumm tut sich hir nichts 
      0 0 1   Q  !Q
      0 1 1   0  1 
      1 0 1   1  0
      1 1 1   !Q Q <-- Togelzustand.
    
    erweitern wir jetzt die tabelle mal ein bischen
    
     J K Q !Q T   Q+ !Q+
     x x x x  0   Q  !Q
     0 0 0 1  1   0   1     
     0 0 1 0  1   1   0     
     0 1 0 1  1   0   1     
     0 1 1 0  1   0   1     
     1 0 0 1  1   1   0     
     1 0 1 0  1   1   0     
     1 1 0 1  1   1   0     
     1 1 1 0  1   0   1     
    
    daruas lassen sich dann folgenden boolschen formel ablessen für
    Q+ = ( T und  Q und !K und !J ) oder 
         ( T und  Q und !K und  J) oder 
         ( T und !Q und !K und  J) oder 
         ( T und !Q und  K und  J) oder 
    
         (!T und  Q und  K und  J) oder 
         (!T und  Q und  K und !J) oder 
         (!T und  Q und !K und  J) oder 
         (!T und  Q und !K und !J)  
    
    dass soltte sich dann doch zusammenfassen lassen oder Demorgan lässt grüssen
    
    Q+ = ( !T und Q ) oder
         ( T und ((Q und !K) oder ( J und !K) oder (J und !Q) ))
    

    ich hoffe ich hab das jetz richtig zusammengewurschtelt.

    Die elemente Q !Q J K T sind vom typ bool fals es das gibt.
    die opperatoren und siet so aus &&
    der opperator oder siet so aus || ( is zumindestens in c / c++ so

    gruss Termite.



  • Also ich muss sagen, soweit ich das überblicke stimmt es!
    Ich werd nun versuchen das Ganze in Code umwandeln:

    void main ()
    {
      ...
      if (input1==0&&input2==0&&endz==0)  
      {
        endz=0;
        nendz=1;
      }
      if (input1==0&&input2==0&&endz==1)  
      {
        endz=1;
        nendz=0;
      }
      if (input1==0&&input2==1&&endz==0)  
      {
        endz=0;
        nendz=1;
      }
      if (input1==0&&input2==1&&endz==1)  
      {
        endz=0;
        nendz=1;
      }
      if (input1==1&&input2==0&&endz==0)  
      {
        endz=1;
        nendz=0;
      }
      if (input1==1&&input2==0&&endz==1)  
      {
        endz=1;
        nendz=0;
      }
    }
    

    Man kann den Code sicher noch um einiges kürzen, aber ich denk so kann man das am besten veranschaulichen.
    Die ganze Zauberei dahinter ist nur, dass ich für alle möglichen Zustände die Auftreten können eine "If-Klausel" verwende.
    input1.......k
    input2.......j
    endz.........q
    nendz........!q (nicht q)
    Bitte um Korrekturen sollte ich einen Denkfehler oder ähnliches begangen habe!
    Ansonsten viel Spass mit der Lösung. 😉

    cya
    Step2Web

    [ Dieser Beitrag wurde am 11.06.2002 um 20:41 Uhr von Step2web alias Stephan editiert. ]



  • ...also Jungs....ihr seid einfach spitze......
    ...und das alles in so kurzer Zeit.....

    ...muss belohnt werden....Termite....falls du mal nach Kassel kommst....spendiere ich dir einen Termitenhügel (hehe...ich meine Kaffee & Kuchen)....für Stephan natürlich auch.....

    ...vielen Dank....habt mir echt weiter geholfen....


Anmelden zum Antworten