-Der Controller könnte nicht anlaufen.
Bist du sicher das das Programm ausgeführt wird?
Schließe noch eine LED an und komplementiere sie an
Stellen in deinem Programm die du prüfen möchtest.

-Die Verbindungen könnten fehlerhaft sein.
Kalte Lötstelle? Sind die Ports richtig angeschossen? Port1 verdreht?
Ich prüfe meine Hardware immer mit einem Programm das die Portpins
einzeln auf low zieht. Man braucht dann nur noch messen ob das Signal
auch an der richtigen Stelle ankommt.

Benutzt du wirklich einen 32.4kHz Quarz?
Das Enable-Signal muß nicht so lang sein. Ein

setb Enable
clr Enable

reicht auch.

Ps.
Ich verstehe nicht was du gegen den 4-bit Bus einzuwenden hast.
Ein 8-bit Anschluß macht eigentlich nur Sinn wenn das LCD in den
Controllerbus integriert wird.