Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
Denis Bopp

[RESOLVIDO] Problemas ao ligar display LCD no PIC

Recommended Posts

Bom dia pessoal, estou tendo problemas para fazer o meu circuito funcionar, que por sinal é muito simples, consiste num PIC 16F84A e um display LCD 2x16 trabalhando em 4 bits, estou usando o MPLAB para escrever o código, bom, na teoria ele funciona, mas quando gravo no PIC nada acontece, o display não dá sinal de vida, já troquei o display e o problema continua, o PIC está legal, pois já gravei outras rotinas e ele roda sem problema.

1 - Resolvido pessoal, a minha ligação do pino VEE estava errada! : (

2 - Melhorei a rotina de inicialização com tempos maiores!!

Editado por Denis Bopp
Resolvido!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É vdd mostre o circuito fica melhor de ajudar.

1- o LCD ligado sem nada ligado só a alimentação deverá ficar com a linha 1 (a primeira de cima) com todos os quadradinhos ligados. Se assim estiver esta OK, se não, troque.

2- tem que ver a ligação dos pinos deles, por exemplo o 5 deve ser aterrado também, não pode esquecer de ajustar o contraste ou de ligar o pot de contraste.

3- outros...etc's

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Não tenho como enviar imagens, pois o nosso servidor bloqueia alguns sites, mas vou descrever o circuito:

    PIC LCD

    RBO D4

    RB1 D5

    RB2 D6

    RB3 D7

    RB4 E

    RB5 RS

    O pino RW está em GND, VDD e VEE em +5 e VSS em GND, como disse a comunicação é em 4 bits, e está rodando no MPLAB.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Amigo Denis,

    Já tentou colocar um capacitor cerâmico de 10 a 100pF entre os pinos VDD e GND do PIC?

    P.S.: O mais próximo possível do PIC.

    Grande Abraço,

    R.Costa.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Amigo Denis,

    Já tentou colocar um capacitor cerâmico de 10 a 100pF entre os pinos VDD e GND do PIC?

    P.S.: O mais próximo possível do PIC.

    Grande Abraço,

    R.Costa.

    Na verdade não, vou tentar isso também.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Opa Denis,

    desculpe, mas informei o valor do capacitor ceramico errado!

    voce deve utilizar valores de 10nF a 100nF!

    Desculpe,

    Abração,

    R.Costa.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Denis, você conseguiria alterar o esquema para conectar o pino VEE ao terra (0V) e não ao +5V?

    Oi Fernando, fiz melhor coloquei um trimpot para regular o contraste e resolveu o meu problema, esta ligação que você citou realmente era a causa do problema!

    Obrigado pela atenção pessoal!!!!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Olá amigos, um outro probleminha surgiu agora, quando pressiono o reset nem sempre o lcd é limpo, as vezes ficam caracteres, ou a mensagem pela metade e assim por diante, o código segue abaixo:

    void main(void){

    i = 0;

    x = 0;

    y = 0;

    strcpy(a, "");//Limpa a cadeia principal

    strcpy(buf, "");//Limpa a cadeia auxiliar

    configura_pic();//Configuração do microcontrolador

    configura_lcd();//Configuração do lcd

    envia_comando(_LCD_CLEAR);//Limpar o lcd

    __delay_ms(40);//Aguardar 40ms

    strcpy(a, "Testando...");

    envia_cadeia(a);//Imprime a primeira mensagem

    ei();//habilita as interrupções

    ... continua

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Conforme necessidade do autor, os tópicos foram fundidos...

    Editado por Bcpetronzio
    Corrigir falha na digitação do texto

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Olá amigos, um outro probleminha surgiu agora, quando pressiono o reset nem sempre o lcd é limpo...

    Normal. O LCD é uma memória RAM externa visual. Enquanto nenhum novo comando de escrita for enviado, ele vai manter os últimos dados que foram enviados para ele.

    Depois da inicialização do display, envie CLRSCR, e o LCD será limpo. Não tem outra solução, a não ser retirar a alimentação do display.

    LCD não tem RESET.

    []'s

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Normal. O LCD é uma memória RAM externa visual. Enquanto nenhum novo comando de escrita for enviado, ele vai manter os últimos dados que foram enviados para ele.

    Depois da inicialização do display, envie CLRSCR, e o LCD será limpo. Não tem outra solução, a não ser retirar a alimentação do display.

    LCD não tem RESET.

    []'s

    Oi Maurício, se você notar o comando já está sendo enviado na rotina.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    ah, tá! Nesse caso foi você quem escreveu as rotinas do LCD? Ou você está usando rotinas já prontas do compilador? Qual a velocidade que seu MCU tá processando? LCDs respondem bem à até uns 2MHz.

    Quando você aterra R/W, não pode mais checar o flag BF. Nesse caso, entre uma instrução e outra pro LCD, é bom dar um delay de uns 2ms. Não precisa ser um tempo maior, porque a instrução que mais consome tempo é justamente a CLEAR SCREEN, que come 1,5ms na grande maioria. Isso, depois que o LCD já foi inicializado! Na inicialização, você precisa seguir os tempos entre instruções que o manual recomenda, e são bem maiores do que esses 2ms.

    []'s

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Visitante
    Este tópico está impedido de receber novos posts.





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×