Dass der Code 2 Ports will, stimmt. Darum hab ich das Zeug für dieses Display auch selber geschrieben, so dass ich bei den Control-Pins nicht den gleichen Port haben muss. Nur beim Datenport lass ichs bei nem zusammenhängenden Port, da hier dann das lesen/setzen schneller geht.

Wie sieht denn die Beschaltung vom Kontrast-Pin des LCD aus?
Wenn alle Pixel an sind, ist der vermutlich auf Vollgas aufgedreht.
Ein nicht initialisiertes LCD zeigt entweder nichts oder "Brösel".