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.
Entre para seguir isso  
Denis Bopp

Novo Problema com PIC e LCD

Recommended Posts

Bom pessoal, montei um novo circuito agora com o 16F887, usando o código que estava rodando no 16F628A, após os devidos ajustes, gravei mas aparentemente havia algo de errado (claro que havia) pois o LCD parecia iniciar mas não mostrava nada, depois de várias tentativas e nenhum problema encontrado, minha vontade de jogar tudo na parede e pisotear até não sobrar nada foi trocada por uma surpresa inesperada, já estava cansado de passar o ci do gravador para o circuito apenas puxeis os fios necessário para a gravação e pluguei no circuito, gravei novamente o código e tudo rodou beleza... ??? Mas quando tirei os fios que iam do gravador ao circuito tudo voltou ao que era, apagou o lcd e nada aparecia, depois de mexer em tudo, coloquei um resistor entre o bit 7 e o terra o lcd funcionou beleza, agora, o porque não tenho ideia, se alguém tiver alguma... não encontrei nada no catálogo que justificasse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

por favor, nos forneça o código e a linguagem, além do esquema elétrico ou fotos para que possamos ajudar melhor.

E por favor, forneça também o nome e versão do compilador. Além do programa de gravação em uso.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • por favor, nos forneça o código e a linguagem, além do esquema elétrico ou fotos para que possamos ajudar melhor.

    E por favor, forneça também o nome e versão do compilador. Além do programa de gravação em uso.

    Fala grande Lucas, estou enviando o circuito, quanto ao código :

    #include <htc.h>

    #include <string.h>

    #include <stdlib.h>

    #include "lcd.h"

    __CONFIG(INTIO & MCLREN & WDTDIS & LVPDIS & BOREN);

    char buf[21];

    int x = 0, y = 180;

    static bit _IMPRIME;

    void interrupt isr(void){

    //tratamento das interrupções

    if(T0IE && T0IF){

    T0IF = 0;

    x++;

    if(x==1000){

    //RA1 = !RA1;

    y--;

    x = 0;

    _IMPRIME = 1;

    }

    }

    }

    void main(void){

    //inicia_pic();

    TMR0 = 0b11111010;//250

    INTCON = 0b0100000;//Habilita TMR0

    OSCCON = 0b01100001;

    OPTION = 0b10000001;

    ADCON0 = 0x00;

    ANSEL = 0b00000000;

    ANSELH = 0b00000000;

    TRISA = 0b00000000;

    PORTA = 0b00000000;

    TRISB = 0b00000000;

    PORTB = 0b00000000;

    TRISD = 0b00000001;

    PORTD = 0b00000000;

    configura_lcd();

    envia_comando(0x80);

    strcpy(buf, "Rede CA Normal");

    envia_cadeia(buf);

    envia_comando(0xC0);

    strcpy(buf, "tensão: 220VAC");

    envia_cadeia(buf);

    ei();

    while(1){

    //Inicio do laço

    if(!RD0){

    if(T0IE){

    if(_IMPRIME){

    envia_comando(0x01);

    __delay_ms(2);

    strcpy(buf, "Falta de rede CA");

    envia_cadeia(buf);//Envia a primeira linha

    envia_comando(0xC0);//Segunda linha

    strcpy(buf, "Partinto GGD em: ");

    envia_cadeia(buf);

    itoa(buf, y, 10);

    strcat(buf, " s");

    //envia_comando(0xC9);//Segunda linha

    envia_cadeia(buf);

    _IMPRIME = 0;

    }

    }

    else{

    TMR0 = 0b11111010;

    T0IE = 1;

    x = 0;

    y = 180;

    }

    }

    else if(RD0 && T0IE){

    T0IE = 0;

    x = 0;

    y = 180;

    envia_comando(0x01);

    __delay_ms(2);

    //envia_comando(0x80);

    strcpy(buf, "Rede CA Normal");

    envia_cadeia(buf);

    envia_comando(0xC0);

    strcpy(buf, "tensão: 220VAC");

    envia_cadeia(buf);

    }

    //Fim do laço

    }

    }

    post-515594-13884951103138_thumb.jpg

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    voce provavelmente tem problemas ai com pulldown, quando seu pic esta jogando sinal 0, ao invés disso ele esta deixando em aberto... por isso ele nao entende o dado enviado e nao inicializa corretamente. tente trocar de pic ou o port que esta trabalhando pelo port D ou C

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    uma dica...

    use o PORTD para controlar os comandos do LCD e o portB para controlar os bits de dados...

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    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

    ×