LCD - Problemas

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

Mensagempor chrdcv » 09 Set 2008 15:46

Boa tarde Sr.(s)!

Segue rotina abaixo de inicialização. Conforme podem observar, o quarto byte do array lcd_setup é 0x30 enquanto o correto, para a utilização da segunda linha de um lcd16x2 seria 0x38. Acontece que quando troco para 0x38 e testo, nada aparece no display. Já quando utilizo inicializando como se fosse um lcd 16x1, consigo escrever normalmente na primeira linha!


void drvCLCDInit (void)
{
auto u8_t u8i;
volatile const u16_t wait[] = {50000, 5000, 200, 200, 1, 1, 1, 1};
volatile const u8_t lcd_setup[] = {0x30, 0x30, 0x30, 0x30, 0x08, 0x01, 0x06, 0x0C};

sysucSFR_PORT3_SEL = 0x00;
sysucCLCD_CTRL_WRTE = 0x00;
sysucCLCD_CTRL_DIRE = 0x0F;

sysucSFR_PORT4_SEL = 0x00;
sysucCLCD_PORT_WRTE = 0x00;
sysucSFR_PORT4_DIR = 0xFF;
sysucSFR_PORT4_REN = 0x00;

for(u8i = 0; u8i < sizeof(lcd_setup); u8i++)
{
sysucDelayUs(*(wait + u8i));
drvCLCDWrite(CLCD_MODE_INST, (u8i > 2) ? TRUE : FALSE, (* (lcd_setup + u8i)));
}
}


Se alguém puder me ajudar, agradeceria muito, pois já perdi muito tempo com esse lcd e simplesmente não consigo escrever na segunda linha!
Avatar do usuário
chrdcv
Dword
 
Mensagens: 1580
Registrado em: 13 Out 2006 14:13

Mensagempor chrdcv » 10 Set 2008 16:58

Saudações pessoal!

Só para dar um salve e dizer que o problema foi resolvido. Devido o LCD JHD162A possuir tensão de alimentação indicada de +5.0V, o mesmo estava sendo alimentado com +3.30V dessa forma, não era possível visualizar nada na segunda linha e dava a "impressão" que o mesmo não era inicializado corretamente quando o comando para setar a utilização de duas linhas era enviado.

Obrigado a todos pela atenção!
christian
Avatar do usuário
chrdcv
Dword
 
Mensagens: 1580
Registrado em: 13 Out 2006 14:13

Anterior

Voltar para 8051

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x