- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Frage wegen 7 Segment

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    36
    Beiträge
    380
    Anzeige

    Praxistest und DIY Projekte
    ja dass mit dem anschließen is mir schon klar. worums mir geht wie ich es in Bascom hinbekomme dass er einstellbar is und im sekundentakt eückwärts zählt

  2. #12
    Erfahrener Benutzer Roboter Genie Avatar von darwin.nuernberg
    Registriert seit
    08.08.2004
    Ort
    A, A
    Alter
    60
    Beiträge
    1.305
    Blog-Einträge
    1
    Reicht dir das nicht was ich da jetzt alles hingeschrieben habe?

    Dann bastle besser Papierflieger!
    Gruss
    Darwin (meine Projekte sind auf meiner Pinnwand zu finden)

  3. #13
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.05.2006
    Ort
    Oberschopfheim
    Alter
    36
    Beiträge
    380
    ja aber für was brauch ich denn einen decoder des kann ich doch auch alles mit dem controller machen oder?

  4. #14
    Erfahrener Benutzer Roboter Genie Avatar von darwin.nuernberg
    Registriert seit
    08.08.2004
    Ort
    A, A
    Alter
    60
    Beiträge
    1.305
    Blog-Einträge
    1
    Ja schon, aber dann braucht Du ja zwei Ports...
    Einen für die 7 Segmente und den anderen für die 4 Dekaden.

    Der Treiber decodiert zum einen einen 4-Bit Binär-Wert in die richtige Segmentierung und zum anderen schützt er die Ports des AVR.

    Wenn Du ohne Decoder auskommen willst dann muss Du die Segmente selbst decodieren:

    Welches Segment soll bei wecler Zahl (wert) leuchten:


    Code:
    Wert   a   b   c   d   e   f   g
      1        *   *
      2    *   *       *   *       *     
      
    usw. Das ganze dann noch vereinfachen (in die Disjunktive Normalform bringen) um's kleiner und schneller zu Machen (fall gewünscht/nötig).

    Also der Decoder ist meiner Meinung nach besser... und koste auch nur ein paar cent.


    Ich schau mal ob ich auf die schnelle eine Softwarelösung zum decodieren der Segmente auf die Reihe bringe.
    Gruss
    Darwin (meine Projekte sind auf meiner Pinnwand zu finden)

  5. #15
    Erfahrener Benutzer Roboter Genie Avatar von darwin.nuernberg
    Registriert seit
    08.08.2004
    Ort
    A, A
    Alter
    60
    Beiträge
    1.305
    Blog-Einträge
    1
    So ich hab Dir jetzt noch einen Segmentdecoder geschrieben,
    den musst Du nur noch entsprechend in das andere Listing einbauen.

    Erwarte blos nicht, das ich Dir das auch noch mache.


    Erst mal wird eine Eingabe erwartet (0-9)
    dann wird der Wert in der Funktion decodiert, (könnte noch erweitert werden a,b,c,d,e,f)
    und schließlich in den Port geschrieben.

    Segment a = auf Bit 0
    Segment b = auf Bit 1
    Segment c = auf Bit 2
    Segment d = auf Bit 3
    Segment e = auf Bit 4
    Segment f = auf Bit 5
    Segment g = auf Bit 6
    Bit 7 (nicht genutzt) könnte der Dezimalpunkt (dp) werden.



    Code:
    ' ****************************************
    ' *                                      *
    ' * 7-Segmentdecoder by darwin.nuernberg *
    ' *                                      *
    ' ****************************************
    
    
    $regfile = "m32def.dat"                                     ' specify the used micro
    $crystal = 8000000                                          ' used crystal frequency
    $baud = 9600                                                ' use baud rate
    $hwstack = 64                                               ' default use 32 for the hardware stack
    $swstack = 20                                               ' default use 10 for the SW stack
    $framesize = 80                                             ' default use 40 for the frame space
    
    
    
    
    Dim Segmente As Byte                                        ' Variable für die Segmente
    Dim Zahl As Byte
    Dim Pause As Integer
    
    Segmente = 0                                                ' Muss dann nur noch an den Port gesendet werden
    Pause = 100
    
    ' Die einzelnen Segmente werden an einem Port angeschlossen:
    
    Config Portc = Output                                       ' Port definieren
    Portc = 0
    
    Declare Function Decode_segmente(byval Wert As Byte) As Byte
    
    ' ===============================================================
    Beginn:
    Do
    
       Input "Wert (0-9) eingeben : " , Zahl                    ' Zahl abfragen
       Segmente = Decode_segmente(zahl)                            ' Segmente decodieren
       Portc = Segmente                                            ' die decodierten Segmente ausgeben
       Waitms Pause                                             ' Wartezeit
    
    Loop
    
    End                                                         'end program
    
    ' ===============================================================
    
    Function Decode_segmente(byval Wert As Byte) As Byte        ' Segmente-Decodieren
       Select Case Wert
          Case 0 : Decode_segmente = &B00111111
          Case 1 : Decode_segmente = &B00000110
          Case 2 : Decode_segmente = &B01011011
          Case 3 : Decode_segmente = &B01001111
          Case 4 : Decode_segmente = &B01100110
          Case 5 : Decode_segmente = &B01101101
          Case 6 : Decode_segmente = &B01111101
          Case 7 : Decode_segmente = &B00000111
          Case 8 : Decode_segmente = &B01111111
          Case 9 : Decode_segmente = &B01101111
          Case Else : Decode_segmente = 0
    
       End Select
     End Function
    ' ===============================================================
    
    End
    PS: es könnte sein dass ich bei den segmenten einen Wurm Drin hab (keine hardwaremässige kontrolle) dann bruchst Du ja nur das Bitmuster in der Function korrigieren.

    ENDE OVER und OUT
    Gruss
    Darwin (meine Projekte sind auf meiner Pinnwand zu finden)

  6. #16
    Erfahrener Benutzer Roboter Genie Avatar von darwin.nuernberg
    Registriert seit
    08.08.2004
    Ort
    A, A
    Alter
    60
    Beiträge
    1.305
    Blog-Einträge
    1
    Ich hab nochmal rumgekramt, und einen Schaltplan gefunden,
    welcher mit einem anderern 7-Segment-Decoder arbeitet und einzelne 7-Segmentanzeigen benutzt,
    so könnte man auch größere Anzeigen (Wand-Uhr) realisieren.

    Bild hier  
    der Schaltplan in voller größe: hier klicken

    Ich hoffe man kann alles erkennen.

    Ich habs allerdings NIE aufgebaut, obwohl das Layout auch schon fertig ist (Zeit/Prio zu gering).
    Gruss
    Darwin (meine Projekte sind auf meiner Pinnwand zu finden)

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test