Hallo,
Ich habe eine Basic-Programm zur Ansteuerung geschrieben.
Hier ist es:
Wenn Fehler drinstecken,dann seit so nett und postet sie.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







Zitieren

Lesezeichen