Hallo,
anbei der Code. Ist für den Simulator etwas modifiziert.
Das ganze soll eine Uhr werden mit kreisförmig angeordneten 12 LED´s für die Stundenanzeige und 4 LED´s für die Viertelstunden.Code:$regfile = "M8def.dat" $crystal = 16000000 Config Timer0 = Timer , Prescale = 1 'timer0 nur für Simulator ansonsten timer1 mit prescale 256 On timer0 timer_sub DDRB = $B11111111 'zeigt die stunden von 0-5 DDRC = $B11111111 'zeigt die stunden von 6-11 DDRD = $B00011111 ' viertelstunden, pin d5-d6 zum einstellen PortB = $B11111111 PortC = $B11111111 PortD = $B11111111 'pullups sekundenblinker alias portd.4 'Portd.4 = PIN 6 dim sekunde as word dim quarter as byte '0, 15, 30, 45 Minuten dim Stunde as byte Enable Timer0 Enable Interrupts Do if Stunde < 6 then portb = lookup(Stunde , stunden_data) portc = 255 endif if Stunde >= 6 then portc = lookup(Stunde , stunden_data) portb = 255 endif portd = lookup(quarter , quarter_data) Loop Timer_sub: incr sekunde if sekunde = 6 then 'eigentlich 900 aber zum simulieren nur mit 6 sekunde = 0 incr quarter end if if quarter = 4 then quarter = 0 incr STUNDE end if if Stunde = 12 then Stunde = 0 end if toggle sekundenblinker 'Portd.4 = PIN 6 Return Quarter_data: Data &B11111110 'voll Portd.0 = PIN 2 Data &B11111101 'viertelnach Portd.1 = PIN 3 Data &B11111011 'halb Portd.2 = PIN 4 Data &B11110111 'viertelvor Portd.3 = PIN 5 Stunden_data: '0-5 ist portb, 6-11 ist portc Data &B11111110 '0 PortB.0 = PIN 14 Data &B11111101 '1 PortB.1 = PIN 15 Data &B11111011 '2 PortB.2 = PIN 16 Data &B11110111 '3 PortB.3 = PIN 17 Data &B11101111 '4 PortB.4 = PIN 18 Data &B11011111 '5 PortB.5 = PIN 19 Data &B11111110 '6 PortC.0 = PIN 23 Data &B11111101 '7 PortC.1 = PIN 24 Data &B11111011 '8 PortC.2 = PIN 25 Data &B11110111 '9 PortC.3 = PIN 26 Data &B11101111 '10 PortC.4 = PIN 27 Data &B11011111 '11 PortC.5 = PIN 28
Wie gesagt, in der Schaltung tut sich bei den LED´s bis auf den Sekundenblinker nichts![]()
Gruß
Jens







Zitieren

Lesezeichen