LCD, não quer funcionar

estou tentando usar um display LCD, mas ele "não me obedece"
O P2 envia os dados, e eu espero 15ms entre cada comando.
O P2 envia os dados, e eu espero 15ms entre cada comando.
- Código: Selecionar todos
#include<AT89x52.h>
#define RW P1_0
#define RS P1_1
void Tempo(void);
void Tempo_15m(void)
{
TH0=0xC5;
TL0=0x67;
TR0=1;
while(TF0);
TF0=0;
TR0=0;
}
main(void)
{
TMOD=0x11;
RS=RW=0;
P1_2=1;
Tempo_15m();
P1_2=0;
/*Inicializa LCD*/
P2=0x38;
Tempo_15m();
P2=0x38;
Tempo_15m();
P2=0x06;
Tempo_15m();
P2=0x0E;
Tempo_15m();
P2=0x01;
Tempo_15m();
/* Fim da inicialização*/
P2=0x0D;
Tempo_15m();
RW=0;
RS=1;
Tempo_15m();
P2=0x32;
return(0);
}