Mich wundert, daß hier noch keiner geantwortet hat.
Dein Prog ist mir allerdings etwas zu hoch. Mich wundert, daß dein Bascom hier nicht meckert, denn so wie ich das sehe (bin selbst Anfänger) stimmen die Deklarationen der Ports nicht.

Config Pinc.4 = Input <- deklariert c.4 als Eingang
PortC.4=1 <- aktiviert internen Widerstand, spart also R2

Das Ganze ist nicht sehr logisch, funktioniert aber leider so.

Hier nun der Fehler:
Config Pinc.6 = Output <- Eingang (PinC.6) ist Ausgang (PortC.6) ?

So sollte das dann laufen:
Config PortC.6 = Output <- Achtung: Ausgang = Port

Hier ein kleines Prog zum testen:

Code:
$regfile = "m32def.dat"
$crystal = 16000000 

config PinC.4 = input            'PinC.4 als Eingang
PortC.4 = 1               'internen Pullup ein, Taster geht auf Masse

config PortC.5 = Output   'Port C.5 als Ausgang , 470R - LED - Gnd

do

if PinC.4 = 0          ' Taster betätigt (0)
then PortC.5 =1     ' Led an
else Port C.5 = 0   ' sonst aus !

loop 
end
Das sollte funktionieren, hab grad nix zum testen da.

Die Antwort kommt etwas spät, hilft aber vieleicht anderen, die die selben Probleme haben.

Bernd