segunda-feira, 30 de junho de 2008

LCD 16x2 com R8C/25

Pessoal,

Após ler em alguns sites como por exemplo o RenesasRuls, e mais alguns foruns pela internet notei uma preocupação no startup de alguns "novos usuários" como eu da plataforma renesas quanto à utilização de LCDs diferentes do 8x2 que acompanha o Kit.

Pois bem, resolvi brincar com isso nestes dias, apesar de estar bem corrido no trabalho e claro, colocar o resultado aqui pra vocês...

Este é o esquema do cabo, usando um LCD normal de 16 pinos. No meu caso não liguei o Led do LCD por motivos óbvios, não queria puxar isso do E8, visto que o limite do mesmo é de 300mA, portanto se alguém quiser ligar isso sugiro uma fonte separada para o mesmo, ou até pode ligar diretamente da alimentação da placa. No entanto será necessário usar uma fonte ligada na mesma e não mais a alimentação pelo emulador. NÃO ESQUECER de não ligar o VCC no E8 ao iniciá-lo no HEW.

Esta foto é o aspecto final do cabo ligado na placa de desenvolvimento.

Um detalhe do cabo. Notem que eu usei um cabo pinhead macho e coloquei um adaptador macho-macho. E cobri tudo com fita isolante...

Aqui eis a traseira de nosso LCD... notem o pot de 47k que eu coloquei... poderá ser utilizado pots de 10k até 50k ... dê preferência para pots mais próximos de 10k. Alguns LCDs não gostam muito de resistências altas no contraste... ajuste o mesmo ao ligar o kit todo.

Mais um detalhe do módulo com o conector encaixado no lugar...

Aqui o módulo ligado... e os caracteres no LCD...

Aqui o programa rodando....

Bom ... mas nada disso adiantaria se não desse pra fazer um improvement no código do LCD em relação ao do 8x2 original que é bem lerdinho...

Bom ... a primeira coisa é editar o arquivo lcd.h e trocar as seguintes constantes...

#define DELAY_TIMING 0x02 // (original era 0x20)
#define NUMB_CHARS_PER_LINE 16 // óbvio
#define LCD_LINE2 16 // óbvio 2

Em seguida eu declarei uma funçãozinha para apagar a tela... ClrScr()...

void ClrScr(void);

bem no final do lcd.h....

Chegou a hora de modificarmos o lcd.c e implementar o ClrScr()...

Eis a rotina...

void ClrScr(void) {
LCD_write(CTRL_WR,LCD_CLEAR);
DisplayDelay(1530);
}

Espetacularmente simples... porém usual...

Como sempre ... matando a cobra e mostrando o pau...

E vai aí mais um videozinho mostrando o que acabo de mostrar pra vcs neste POST...

Um comentário:

  1. Ola fera estou com um problema conprei um lcd porem nao aparece o que deveria liguei da mesma maneira que vc so mostra akeles quadrinhos sera que queimou?

    ResponderExcluir