Problem with allignment of LCD

liudr:
Try pushing down the metal housing against the circuit board and see if the missing row gets any better. Your symptom resembles some of the defective displays that have poor contact between the glass that has liquid crystal on it and the circuit board that has control circuit on. There are 6-8 metal tabs that hold these two pieces together. If these tabs are loose, your display will not show some pixels. If they are held together but the conductive rubber strips between them is out of place, you may also experience this symptom. You are putting a huge delay in your loop already so I don't think it is refreshing-related problem (refreshing too fast).

When pusing down the LCD the row got better. I pushed it around a bit until it stayed in place properly and it shows the pixels correctly. Only the top row of pixels of the bottom row is not displaying, the letters are too high to fit on. Is this a common problem?

Also changed the code: (not refreshing it and put it in setup instead of loop)

/*
lcdSetup - Guy
Basic setup for a LiquidCrystal display


Connections:

RS = 12
RW = 11
E  = 10
D0 = 2
D1 = 3
D2 = 4
D3 = 5
D4 = 6
D5 = 7
D6 = 8
D7 = 9

A = 5V   (+)
K = GND  (-)

VDD = 5V  (+)
VSS = GND (-)
V0 = PotMeter Middle Pin

PotMeter:
Right Pin = 5V  (+) 
Left Pin  = GND (-)

*/
#include <LiquidCrystal.h> //Include the LiquidCrystal library

LiquidCrystal lcd(12,11, 10, 4, 5, 6, 7); //Setting a LiquidCrystal as 'lcd' 
void setup() 
{
  //lcd.clear(); //Clear the display
  lcd.begin(16,2); //Define the Length and Rows
  lcd.setCursor(0,0);
  lcd.print("ABCDEFGHIJKLMNOP");
  lcd.setCursor(0,1);
  lcd.print("ABCDEFGHIJKLMNOP");
}

void loop() 
{
}

And a pic of how it looks now: