Du hast 2X "Do" drin, aber nur einmal "loop".

Außerdem müssen Variablen immer VOR dem eigentlichen Programm deklariert werden (zumindest afaik) (das ist das, was du mit "dim" machst)

Code:
  ...
Locate 1 , 1
  Lcd Chr(0) ; "L: " ; Temp1



Dim Temp2 As Word , Kanal2 As Byte
Kanal2 = 0
Do
  Temp2 = Getadc(4)
...
hier deklarierst du Temp2, nachdem schon Arbeitsanweisungen gegeben wurden.
dein 2. "Do" ist hier übrigens zu sehen.


warum zählst du zweimal die ADC-Pins durch???? das ist wirgendwie sinnlos.

probiere es damit (oder etwas ähnlichem):
Code:
Dim Temp as Word , Kanal as Byte


 Config Lcd = 16 * 2
 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
 Config Lcdbus = 4 

Config Adc = Single , Prescaler = Auto
Start Adc

cls

Kanal = 0

Do
 
Temp = getadc(Kanal)
cls
locate 1 , 1
lcd "ADC-Pin: " ; Kanal ; "Wert: " ; Temp
wait 1
incr Kanal
if Kanal > 7 then
  Kanal = 0
end if

loop
End
damit sollten alle ADC-Pins nacheinander im Sekundentakt abgefragt und die Werte angezeigt werden.

wenn du nur die Kanäle 0 bis X abfragen möchtest (z.B. nur bis Kanal 2), dann musst du nur bei
Code:
 if Kanal > 7 then
die 7 durch X (also Bspw 2) ersetzen)