Ich weiss, es klingt komisch, aber dreh mal die Reihenfolge bei der Initialisierung um: erst clrf, dann tris laden.

Zitat Zitat von Datenblatt
EXAMPLE 9-4: INITIALIZING PORTD

CLRF PORTD ; Initialize PORTD by clearing output data latches
CLRF LATD ; Alternate method to clear output data latches
MOVLW 0xCF ; Value used to initialize data direction
MOVWF TRISD ; Set RD<3:0> as inputs, RD<5:4> as outputs, RD<7:6> as inputs
Und mach mal nach dem ersten setzen von dem PinD4 ne lange Warteschleife rein (also solang, dass du siehst, ob der Pin mal high wird oder nicht)