Sieht doch gar nicht so schlecht aus. Ich habe mal ein paar kleine Änderungen gemacht. Probier es mal aus.
Code:
$regfile = "M8def.dat"
$crystal = 1000000
'--------Segmente---------------
Config Portd = Output
Portd = 1
'----------Anode Display---------
Config Portb = Output
Digit1 Alias Portb.1
Digit2 Alias Portb.2
Portb = 0
'---------AD-Wandler Config-------------
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
'--------Timer Config----------------
Dim A As Byte 'Umschaltung einer/zehner
Config Timer0 = Timer , Prescale = 8
On Timer0 Timer_routine
Enable Timer0
Enable Interrupts
A = 1
Dim Messung As Word
Dim Stelle(2) As Byte
Dim I As Byte
Dim X(10) As Byte
Restore Segmente
For I = 1 To 10
Read X(i)
Next I
Do
Messung = Getadc(0) / 11 'Wert vom ADC/11 (0-99) in Variable speichern
Stelle(1) =messung / 10 'Hinter dem Komma wird abgeschnitten, enthält also die Zehner
Incr Stelle(1) 'Damit die Werte von 1-10 gehen
Stelle(2)=messung mod 10 'gibt den Rest, also die Einer
Incr Stelle(2)
Loop
End
Timer_routine:
Portb.a = 0 'Vorherige Stelle ausschalten
Incr A
If A=3 Then A=1
Portd=X(Stelle(A)) 'Neue Segmente ausgeben
Portb.a = 1 'Neue Stelle einschalten
Return
Segmente:
'gemeinsame Anode:
' 0 1 2 3 4 5 6 7 8 9
'Data &H3F , &H6 , &H05B , &H04F , &H066 , &H06D , &H07D , &H7 , &H7F , &H6F
'gemeinsame kathode:
' 0 1 2 3 4 5 6 7 8 9
Data &H40 , &H79 , &H24 , &H30 , &H19 , &H12 , &H02 , &H78 , &H00 , &H10
Lesezeichen