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

Thema: 7 segment multiplex + DP

  1. #11
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Gut, Ich schau' mir das an. Etwas Geduld
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  2. #12
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Versuch mal, Irrtum vorbehalten.

    Ein paar Sachen würde ich anders machen, aber eigentlich könnte das gehen. Ist der Code von dir oder wo hast du ihn her ?

    Code:
    $regfile = "m48def.dat"
    $crystal = 4000000
    
    
    Config Timer1 = Timer , Prescale = 64                       ' 1 sec
    Const Timerpreset = 3036                                    ' 1 sec
    
    On Timer1 Ontimer1
    
    Config Portd.0 = Output                                     'A
    Config Portd.1 = Output                                     'B
    Config Portd.2 = Output                                     'C
    Config Portd.3 = Output                                     'D
    Config Portd.4 = Output                                     'E
    Config Portd.5 = Output                                     'F
    Config Portd.6 = Output                                     'G
    
    Config Portb.1 = Output                                     'Digi 1
    Config Portb.2 = Output                                     'Digi 2
    Config Portb.3 = Output                                     'Digi 3
    Config Portb.4 = Output                                     'Digi 4
    
    Config Portc.2 = Output                                     'Dezimalpunkt = Sek_blink Gegen +
    Config Portc.1 = Output                                     'Relais
    Config Portc.0 = Output                                     'Peeper Gegen -
    
    Config Portc.3 = Input                                      ' Start/ Stop Taster
    Config Portc.4 = Input                                      'Minuten Taster
    Config Portc.5 = Input                                      'Sekunden Taster
    
    
    Declare Sub Zeiteinstellung
    Declare Sub Soundout
    
    Dim Zeit(4) As Byte
    
    Dim Kontrolle As Eram Byte                                  ' kontrollbyte
    Dim Eezeit(4) As Eram Byte
    
    Dim Z As Byte
    Dim I As Word
    Dim Tmp As Byte
    
    Dim Taste1 As Bit
    Dim Taste2 As Bit
    Dim Taste3 As Bit
    Dim Taste4 As Bit
    
    
       Portd = &H7F
       Portb = &H1E
       Portc = &H3C
    
       Taste4 = 1
    
    
    '--- Sekunden-Punkt darf in diesem Fall nicht in der Multiplexroutine stehen ---
       Dezimalpunkt Alias Portc.2                               'dezimalpunkt blinkt im halbsekunden takt
       Dim Sek_blink As Bit
    
    'Zeit Voreinstellung laden aus EEProm
    
       Call Zeiteinstellung
    
       Enable Timer1
       Stop Timer1
       Timer1 = Timerpreset
       Enable Interrupts
    '*******************************************************************************
    Main:
       Tmp = 1
       For Z = 1 To 4
          Dezimalpunkt = Sek_blink
          I = I + 1
          If I = 600 Then
             Sek_blink = 0
             I = 0
          End If
    
          Portd = Lookup(zeit(z) , Led_table)                   'zahl aus Variable in 7segment anzeigen
          Portb = Tmp
          If Tccr1b = 0 Then                                    'wenn timer gestoppt, ist Relais aus
             Portb.5 = 1                                        'einzelnen segmente ansteuern
          End If
          Shift Tmp , Left , 1
          Waitms 1
    
    '----------------- Start/Stop und wenn geändert EEPROM-werte Schreiben ---------
          If Pinc.3 = 0 And Taste4 = 0 Then
             Eezeit(1) = Zeit(1)
             Eezeit(2) = Zeit(2)
             Eezeit(3) = Zeit(3)
             Eezeit(4) = Zeit(4)
             Kontrolle = 0                                      ' ERAM Kontrolle
             Taste4 = 1                                         ' reset changed
          End If
    '----------------- Reine Start/Stop Routien ------------------------------------
          If Pinc.3 = 0 And Taste3 = 0 Then
             Taste3 = 1                                         ' disable start/stop
             If Tccr1b = 0 Then
                Start Timer1
                Call Zeiteinstellung
                I = 0                                           ' reset blink-count
                Portc.1 = 1                                     'Relais ON
             Else
                Stop Timer1
                Call Zeiteinstellung
                I = 0                                           ' reset blink-count
                Portc.1 = 0                                     'Relais OFF
             End If
          End If
          If Pinc.3 = 1 Then
             Taste3 = 0                                         ' enable start/stop
          End If
    '----------------- Minuten um 1 erhöhen Taster ---------------------------------
          If Pinc.4 = 0 And Taste2 = 0 And Tccr1b = 0 Then
             Taste2 = 1                                         ' disable up/down MIN
             Taste4 = 0                                         ' set changed
             Incr Zeit(2)
             If Zeit(2) = 10 Then
                Zeit(2) = 0
                Incr Zeit(1)
                If Zeit(1) = 10 Then Zeit(1) = 0
             End If
          End If
          If Pinc.4 = 1 Then
             Taste2 = 0                                         ' enable up/down MIN
          End If
    '------------Sekunde und Minuten = Null setzen ---------------------------------
          If Pinc.4 = 0 And Tccr1b = 0 And Pinc.5 = 0 Then
             Taste4 = 0                                         ' set changed
             Zeit(1) = 0
             Zeit(2) = 0
             Zeit(3) = 0
             Zeit(4) = 0
          End If
          If Pinc.4 = 1 And Pinc.5 = 1 Then
    
          End If
    
       Next Z
    
    '******************************************************************************
    '----------------- Sekunden um 1 erhöhen Taster --------------------------------
       If Pinc.5 = 0 And Taste1 = 0 And Tccr1b = 0 Then
          Taste1 = 1                                            ' disable up/down SEC
          Taste4 = 0                                            ' set changed
          Incr Zeit(4)
          If Zeit(4) = 10 Then
             Zeit(4) = 0
             Incr Zeit(3)
             If Zeit(3) = 6 Then Zeit(3) = 0
          End If
       End If
       If Pinc.5 = 1 Then
          Taste1 = 0                                            ' enable up/down SEC
       End If
    
    
    Goto Main
    
    
    '******************************************************************************
    Ontimer1:
       Timer1 = Timerpreset
       Decr Zeit(4)
       Sek_blink = 1
       I = 0                                                    'blink counter
       If Zeit(1) = 0 And Zeit(2) = 0 And Zeit(3) = 0 And Zeit(4) = 0 Then
           Stop Timer1
           Call Zeiteinstellung
           I = 0
           Portc.1 = 0                                          'relais OFF
           Call Soundout                                        'Peep-peep
        End If
        If Zeit(4) = 255 Then
             Zeit(4) = 9
             Decr Zeit(3)
             If Zeit(3) = 255 Then
                Zeit(3) = 5
                Decr Zeit(2)
                If Zeit(2) = 255 Then
                   Zeit(2) = 9
                   Decr Zeit(1)
                End If
             End If
         End If
    Return
    
    '----------- gespeicherte Timerwerte aus EEPROM laden --------------------------
    Sub Zeiteinstellung
       If Kontrolle = &HFF Then                                 ' neu oder gelöschter ERAM
          Zeit(1) = 0
          Zeit(2) = 0
          Zeit(3) = 0
          Zeit(4) = 0
       Else
          Zeit(1) = Eezeit(1)                                   'Minuten Zehner
          Zeit(2) = Eezeit(2)                                   'Minuten Einer
          Zeit(3) = Eezeit(3)                                   'Sekunden zehner
          Zeit(4) = Eezeit(4)                                   'Sekunden Einer
       End If
    End Sub
    
    Sub Soundout
       Portb.1 = 1
       Portb.2 = 1
       Portb.3 = 1
       Portb.4 = 1
       Sound Portc.0 , 400 , 100
       Portb.1 = 0
       Portb.2 = 0
       Portb.3 = 0
       Portb.4 = 0
       Waitms 100
       Portb.1 = 1
       Portb.2 = 1
       Portb.3 = 1
       Portb.4 = 1
       Sound Portc.0 , 400 , 100
       Waitms 100
       Portb.1 = 0
       Portb.2 = 0
       Portb.3 = 0
       Portb.4 = 0
       Sound Portc.0 , 400 , 100
       Portb.1 = 1
       Portb.2 = 1
       Portb.3 = 1
       Portb.4 = 1
    End Sub
    
    
    End
    
    'Parameter für 7Segment um diese Zahl Anzuzeigen über die Ausgänge
    Led_table:
    '        0        1     2     3        4     5        6     7     8     9
       Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H0 , &H10
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    24.05.2008
    Beiträge
    16
    Hallo Robert danke!
    Aber leider Geht das letzte Segment nicht,
    den Code habe ich irgendwo im Netz gefunden.
    MFG Alfons

  4. #14
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    ..leider Geht das letzte Segment nicht, .
    Du meinst das LED-Segment g ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    24.05.2008
    Beiträge
    16
    Hallo nein ich meine das letzte Segment

  6. #16
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    42
    Beiträge
    2.009
    Was heisst "letztes" Segment?
    A? B? C? D? E? F? G? DP?
    #ifndef MfG
    #define MfG

  7. #17
    Neuer Benutzer Öfters hier
    Registriert seit
    24.05.2008
    Beiträge
    16
    hi sorry ich meinte das letzte display

  8. #18
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    24.12.2006
    Alter
    59
    Beiträge
    117
    Zitat Zitat von alf-k
    Hallo Robert danke!
    Aber leider Geht das letzte Segment nicht,
    den Code habe ich irgendwo im Netz gefunden.
    MFG Alfons
    irgendwo,kann nicht sein der ist von mir und wurde für einen namens
    "manni" im Bascom forum geschrieben. hatte mir dafür 3 bis 4 lcd versprochen, die ich nie erhalten habe.
    ist schon komisch das es leute gibt die einen alles machen lassen und selbst nicht denken wollen. ist ja einfacher. wird mir nicht mehr passieren
    jemanden mit einen kompletten code zu helfen, schnipsel ja ,komplett nein. selber lernen ist halt schwerer als alles sich vorkauen lassen.

    gehe lieber heli fliegen und mache meinen kram selbst.

    MIKE

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