Hallo,
Ich habe eine Basic-Programm zur Ansteuerung geschrieben.
Hier ist es:
Code:

$regfile = "2313def.dat"                
$crystal = 4000000

Dim Temp_ziffer As Byte                
Dim Bcd_aus As Byte                    

Dim Ausgang As Byte                   
Dim Sek_blink As Bit                    

Dim A_sekunde As Byte                 
Dim A_minute As Byte                  
Dim A_stunde As Byte                   
Dim B_sekunde As Byte                
Dim B_minute As Byte


Config Portb = Output                  
Config Portd = Output                   
'Ddrd = &B0111100                         
'Portd = &B1000011                      
Data &B0000000             
Segment_a Alias Portb.0
Segment_b Alias Portb.1
Segment_c Alias Portb.2
Segment_d Alias Portb.3
Segment_e Alias Portb.4
Segment_f Alias Portb.5
Segment_g Alias Portb.6
Dezimalpunkt Alias Portb.7
Ziffer_1 Alias Portd.0
Ziffer_2 Alias Portd.1
Ziffer_3 Alias Portd.2
Ziffer_4 Alias Portd.3
Ziffer_5 Alias Portd.4
Ziffer_6 Alias Portd.5
Ziffer_7 Alias Portd.6
Ziffer_8 Alias Portd.7




Const Load_timer1 = 62755                



On Timer0 7segment                      
Config Timer0 = Timer , Prescale = 256   
Enable Timer0                          


Sekunde_plus:


Load Timer1 , Load_timer1          

Incr _sekunde                      


Return
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

On Timer1 Sekunde_plus                 
Config Timer1 = Timer , Prescale = 64   
Enable Timer1                          
Enable Interrupts                        
Load Timer1 , Load_timer1           

Do
If A_sekunde = 9 then
A_sekunde = 0
B_sekunde + 1
   Incr A_sekunde
   Incr B_sekunde
End If
'++++++++++++++++++++++++++++++++++
If B_sekunde = 6 then
A_sekunde = 0
B_sekunde = 0
   Incr B_sekunde
   Incr A_sekunde
End If'++++++++++++++++++++++++++++++++++
If A_minute = 9 then
A_minute = 0
B_minute + 1
   Incr B_minute
   Incr A_minute
End If'++++++++++++++++++++++++++++++++++
If B_minute = 6 then
A_minute = 0
B_minute = 0
A_stunde + 1
   Incr B_minute
   Incr A_stunde
   Incr A_minute
End If'++++++++++++++++++++++++++++++++++
If A_stunde = 9then
A_sekunde = 0
B_sekunde = 0
A_minute = 0
B_minute = 0
A_sekunde = 0
B_sekunde = 0
   Incr B_minute
   Incr A_minute
   Incr B_sekunde
   Incr A_sekunde
   Incr A_stunde
End If

End
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

7segment:

If Temp_ziffer = 8 Then Temp_ziffer = 0           '
Incr Temp_ziffer                                 
Portb = &B11111111                                


Select Case Bcd_aus
    Case 1 : Ausgang = Lookup(1 , Segmentfolge)
    Case 2 : Ausgang = Lookup(2 , Segmentfolge)
    Case 3 : Ausgang = Lookup(3 , Segmentfolge)
    Case 4 : Ausgang = Lookup(4 , Segmentfolge)
    Case 5 : Ausgang = Lookup(5 , Segmentfolge)
    Case 6 : Ausgang = Lookup(6 , Segmentfolge)
    Case 7 : Ausgang = Lookup(7 , Segmentfolge)
    Case 8 : Ausgang = Lookup(8 , Segmentfolge)
    Case 9 : Ausgang = Lookup(9 , Segmentfolge)
    Case 0 And Temp_ziffer = 1 : Ausgang = Lookup(10 , Segmentfolge) 
    Case 0 And Temp_ziffer > 1 : Ausgang = Lookup(0 , Segmentfolge)  
End Select


Segment_a = Not Ausgang.0                         'Segment A
Segment_b = Not Ausgang.1                         'Segment B
Segment_c = Not Ausgang.2                         'Segment C
Segment_d = Not Ausgang.3                         'Segment D
Segment_e = Not Ausgang.4                         'Segment E
Segment_f = Not Ausgang.5                         'Segment F
Segment_g = Not Ausgang.6                         'Segment G


Return






'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Segmentfolge:                
Data &B0111111               
Data &B0000110               
Data &B1011011               
Data &B1001111               
Data &B1100110              
Data &B1101101               
Data &B1111101               
Data &B0000111               
Data &B1111111               
Data &B1101111               
Data &B0000000              
Data &B1011100               
Data &B1000000              
Data &B0001000              
Data &B0000001              
Data &B1110100              
Data &B1111000
Wenn Fehler drinstecken,dann seit so nett und postet sie.