Ir ao conteúdo
  • Cadastre-se

Display gráfico de LCD e PIC16F648A


Mulder_Fox

Posts recomendados

Pessoal, preciso da ajuda de vocês.

A eletrônica é meu hobby.

Sempre estou envolvido em algum projeto, mas, sempre sem propósitos comerciais.

Gosto de desenvolver meus projetos desde o início e por isto, evito pegar coisas prontas.

Gosto de desafios.

No momento estou desenvolvendo um projeto de um velocímetro digital que será instalado em um triciclo motorizado de um amigo que é deficiente físico.

Como mostrador será utilizado um display gráfico monocromático de LCD.

Comprei um do modelo ITM-12864K0-002. Ele é baseado no controlador KS0108.

Lí o seu datasheet:

http://omegacb.googlecode.com/files/ITM-12864K0-Tecnico.pdf

Desenvolvi um programa em Assembly para o PIC16F648A (inicialmente seria o 628A, mas, o programa não coube) apenas para exibir a tela do mostrador, pois, precisava aprender a utilizar este tipo de display.

Após apanhar um pouco (na verdade muito), consegui fazer o display exibir a tela, mas, estou com um problema que não consigo descobrir a causa: Após um tempo ligado, o que pode variar desde poucos minutos até mais de meia hora, o lado esquerdo do display apaga. Sei que este tipo de display tem dois CIs e que o lado esquerdo é comandado pelo CI1.

Não sei se este problema está sendo causado pelo software, defeito do display ou instabilidade devido à montagem em protoboard.

Estou utilizando o oscilador interno de 4 Mhz do PIC.

Qualquer ajuda será bem vinda.

Valeu pessoal.

Esquema do circuito:

EsquemaLCD.png

Tela normal:

Displayinteiro.jpg

Tela após o defeito ocorrer:

Displaymetade.jpg

Programa em Assembly:

http://www.esnips.com/doc/7147bd38-9acb-4b89-8655-5d3e5be7c582/Programa-para--teste-de-LCD-grafico-com-PIC16F648A

Link para o comentário
Compartilhar em outros sites

Ola amigo Mulder_Fox, então, acho difícil que seja problema no software ou na protoboard, tive um problema semelhante, mas que sumiam alguns pontos da minha imagem, so resolveu , mesmo trocando o display (ele era baseado nesse mesmo controladoe que você citou) da uma varificada nos sinais de saida do PIC, e aguarde mais opinioes.

abraço

Link para o comentário
Compartilhar em outros sites

Amigo, dado os sintomas, posso dar 70% de certeza que seja o display. Se fosse o software ele não iria criar a imagem e depois cortar daquela maneira. Um possivel problema que você mesmo apontou seria o mau contato na proto, mas isso pose ser resolvido construindo a PCI (afinal você já tem o circuito final, só está debugando o código, certo?).

Se possivel teste com outro Display (lembre-se de nunca tocar os contatos, nem a parte de trás do Display com os dedos, essas areas são sensiveis a estatica e podem queimar).

Só um detalhe, o link do codigo está quebrado.

Poste o resultado dos teste para que a gente possa te ajudar.

Link para o comentário
Compartilhar em outros sites

Cacio J Gazola, o circuito utilizará o PIC16F877A, pois, há muitas funcões que requerem uma quantidade de pinos de I/O que o 648A não tem.

Este programa eu desenvolvi apenas para aprender a lidar com este display.

O programa para o circuito final será baseado neste, mas, com algumas modificações.

Este programa fica escrevendo continuamente a tela. O definitivo irá efetuar alterações apenas quando necessário e nos campos específicos, por exemplo, quando o veículo tiver rodado 1 km, apenas a unidade dos odômetros será alterada.

Quanto ao link do código, tente de novo, pois, estes sites de postagem gratuita são meio chatos. Tem hora que não abrem.

O teste com os LEDs não foi esclarecedor, então, lembrei de ligar o WDT para ver se é o programa que estava travando e mesmo assim acontece o problema.

Vou comprar outro display para sanar esta dúvida.

Quando tiver feito o teste com o novo display dou o retorno.

Obrigado por hora.

Edit:

Constatei que, na realidade não havia ligado o WDT. Fica para depois este teste.

Antes de comprar outro display, tive um ideia nova para teste:

Alterei o programa para que após escrever a tela ele entre em loop ao contrário de ficar escrevendo a tela inteira a cada rodada. Vamos ver o que acontece.

Link para o comentário
Compartilhar em outros sites

Puxa, vou ter que ver outro site para colocar, mas, até lá, quem quiser informa um email que eu envio.

Não vou postar aqui, porque ele é muito extenso.

Quanto ao problema, depois que alterei o programa para entrar em loop após rodar 1 vez, o problema não ocorreu mais. Ficou ligado por 3 horas a fio.

Neste momento estou testando o programa como estava antes, ou seja, escrevendo a tela inteira a cada rodada, mas, com o WDT ligado e até agora, quase 1 hora ligado, não ocorreu o problema.

Creio que não seja o display não.

Acho que o programa está travando em algum momento.

Edit:

Vejam se este link para o programa abre:

http://www.esnips.com/doc/7147bd38-9acb-4b89-8655-5d3e5be7c582/Programa-para--teste-de-LCD-grafico-com-PIC16F648A

Link para o comentário
Compartilhar em outros sites

Obrigado Lucas Scoppio.

Gosto de passar horas fazendo isto. É uma terapia para mim. Dizem que é bom para o cérebro fazê-lo trabalhar. :D

Neste momento estou testando novamente com a versão do programa que escreve a tela uma vez e entra em loop.

Creio que se fosse defeito do display o problema deveria ocorrer também.

Na versão do programa em que o problema ocorre a tela é escrita a cada rodada do programa.

Creio que de alguma forma o CI1 do display trava, se é que isto é possível.

Talvez até pelo fato de estar montado em protoboard, pois, afinal a frequência é um pouco alta.

Vejam aí como está a montagem:

Displaynaproto.jpg

Closedaproto.jpg

Closedogravador-1.jpg

Link para o comentário
Compartilhar em outros sites

muito legal. Eu tambem gosto de ficar construindo programas em assembly, e como você disse um terapia (além de uma boa fonte de renda extra...:lol)

Mas o link com o código ainda não está abrindo, após clicar no link aparece a pagina de 'bad link' da esnips e depois de alguns segundos redireciona para a pagina principal....

Link para o comentário
Compartilhar em outros sites

Problema resolvido!

Não sei o que estava causando o problema, mas, resolvi fazendo uma alteração no programa.

A tela continua sendo escrita a cada rodada do programa, mas, com a diferença de que os dois CIs são ligados a cada rodada também.

Antes eles eram ligados apenas na inicialização.

O programa está rodando com um cristal de 14MHz há 4 horas e nada de apagar!

Cacio, creio que finalmente resolvi o problema do link, mas, de qualquer forma, postei também em outro site:

http://www.4shared.com/file/116165784/d5dd0f54/Teste_do_diplay_grfico_de_LCD.html

Obrigado a todos pela ajuda, incentivo e elogios.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...