hmmm also ich bin auch gerade am anfangen...

wie sieht deine schaltung aus?
hast du transistoren an der gemeinsamen kathode der segmente oder sowas?

hast mal die 7segment anzeige getestet ohne das multiplexen ???

ich hab bei mir mal drei taster an port d und ein segment an port c gehangen und etwas rumexperimentiert, hier mal mein aktueller code ...

funktion: er zeigt ne null wenn ich den einen taster aus hab, beim betätigen verschwindet die null.
drück ich den taster an d.2 (interrupt) wird die schleife unterbrochen und er zählt von 6 bis 0 runter ...



Code:
 'testsoftware v 0.1

    config porta = output
    Config Portc = Output
    Config Pind.0 = Input                                   ' kann man auch  kürzer schreiben - egal
    Config Pind.1 = Input                                   'konfiguriert die ports d 0,1,2 als input
    Config Pind.2 = Input

    Portd.0 = 1                                             'pullup-widerstände ein
    Portd.3 = 1
    Portd.2 = 1

    Dim Nix As Byte , Eins As Byte
    Dim Zwei As Byte , Drei As Byte , Vier As Byte , Fuenf As Byte , Sechs As Byte
    Dim Sieben As Byte , Acht As Byte , Neun As Byte

    Nix = &B1111011
    Eins = &B0101000
    Zwei = &B1110110
    Drei = &B1111100
    Vier = &B0101101
    Fuenf = &B1011101
    Sechs = &B1011111
    Sieben = &B1101000
    Acht = &B1111111
    Neun = &B1111101

    On Int0 Int0serv                                        'bei interrupt int0 gehe zu int0serv
    Config Int0 = Rising                                    'und zwar bei steigender flanke
    Enable Int0                                             'muss auch rein
    Enable Interrupts                                       'und das muss wohl auch rein ...

    Porta.0 = 1                                             'led mal ausschalten


    Do                                                      'Beginn der Endlosschleife


     If Pind.0 = 1 Then
       'nix also die 0 anzeigen
        Portc = Nix


     Else
        'alle LEDs aus
        Portc = 0
     End If
   Loop                                                     'Ende der Endlosschleife



   Int0serv:                                                'bei interrupt von sechs runterzählen
   Portc = Sechs
   Waitms 500
   Portc = Fuenf
   Waitms 500
   Portc = Vier
   Waitms 500
   Portc = Drei
   Waitms 500
   Portc = Zwei
   Waitms 500
   Portc = Eins
   Waitms 500
   Portc = Nix



    Return
Code-Tags. Männer ! (PicNick)