Problem:
Du lässt den Bot erst nach vorne fahren, fragst dann den ADC ab. Wenn dieser über 450 ist, dann fährst du rückwärts. Sollte also stimmen.
bleibt offen:
Ist der ADC Wert für den Sensor richtig? Welcher Entfernung entsprechen denn 450?

Probiere es mal so:
Code:
$crystal = 8000000
$regfile = "m8def.dat"

Dim Result As Word

Config Pinb.0 = Output
Config Pind.7 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output

Config Adc = Single , Prescaler = Auto , Reference = Internal

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1

Start Adc

Do
 Compare1a = 255
 Compare1b = 255
 Portb.0 = 1
 Portb.1 = 0
 Portd.7 = 0
 Portb.2 = 1

 Result = Getadc(6)
 	If Result > 450 Then
 		Compare1a = 255
 		Compare1b = 255
 		Portb.0 = 0
 		Portb.1 = 1
 		Portd.7 = 1
 		Portb.2 = 0
                wait 1
	End If
Loop

End
Der Abschnitt mit den "waitms 1000" und dem danach ist nicht wichtig. (Das kann man kürzen. Hab ich gemacht.)
Und auch kannst du wahrscheinlich die interne Referenzspannung verwenden, da die meisten Sensoren maximal 2,6 Volt liefern. So ist du Auflösung genauer.

jon