Ir ao conteúdo
  • Cadastre-se
Lucas Lorena

PIC Prog Pic 18f4520 Com display.

Recommended Posts

boom galera vocês tem me ajudado muito então muito obrigado mesmo. mais me embolei em outra programação  estou querendo fazer um misturador mais no caso com "LEDS"

então eu queria aprender a fazer um botão desligar o LED A  e ligar o LEB B e nisso no display o LED A estava on ele ficaria off e o LED B on no display. 
RESUMINDO : Aperto o botão RB7 que no caso seria "Válvula 1 " ai liga o "LED A" e aparece no display "VL1 ON" Dps de apertado , aperto o botão RB6 "Válvula 2 " ai liga o "LED B" e desliga o "LED A "  E aparece no display . "VL1 OFF" e  "VL2 ON"  simples. 
mais no meu caso isso ta difícil. 

a minha programação \/ 

Citação

sbit LCD_EN at RA5_bit; //define cada pino do LCD a qual pino do PIC está ligado
sbit LCD_RS at RE0_bit;
sbit LCD_D7 at RD3_bit;
sbit LCD_D6 at RD2_bit;
sbit LCD_D5 at RD1_bit;
sbit LCD_D4 at RD0_bit;

sbit LCD_EN_direction at trisa5_bit; //define a direção de cada pino do LCD
sbit LCD_RS_direction at trise0_bit;
sbit LCD_D7_direction at trisd3_bit;
sbit LCD_D6_direction at trisd2_bit;
sbit LCD_D5_direction at trisd1_bit;
sbit LCD_D4_direction at trisd0_bit;

#define ligaled2 portc.rc7
#define ligaled1 portc.rc6
#define ligaled0 portc.rc5

#define offled0 portc.rc5=0

#define botao2 portb.rb7
#define botao1 portb.rb6
#define botao0 portb.rb5


void main() {
portd=0;
portc=0;
trisd=0xff;
lcd_init();
lcd_cmd(_lcd_cursor_off);
intcon2.rbpu=0;
Lcd_out(1,1,"Mistureixon");
Delay_ms(1000);
Lcd_cmd(_lcd_clear);
while(1)
   {
   if(button(&portb,7,50,0))           ///  se o rb7 for pressionado 
   {
   ligaled0=~ligaled0;                     // troca o estado do pino RC5
   if(ligaled0==1)                            // Se  o ligaled0 for acionado (estiver acesso)
   {
   lcd_out(1,1,"VL1 ON  ");                     // escreve on no lcd 
   }
   while (botao2==0);                    // Aguarde soltar o botão. 

    }

  if(button(&portb,6,50,0))               ///  se o rb6 for pressionado          

   {

  ligaled1=~ligaled1;                        // troca o estado do pino RC6

  offled0;                                       /// para desligar o LED RC5               (Que no caso não estar funcionando).

   if(ligaled1==1)                                // Se  o ligaled1 for acionado (estiver acesso)

     {

   lcd_out(2,1,"VL1 OFF");                  // escreve on no lcd 

      }

   else                                                    /// Se não
   lcd_out(2,1,"VL2 ON");
   while (botao1==0);                 // Aguarde soltar o botão.

    }

    }
    }

    }

 boom ai esta ! se alguém conseguir me ajudar estarei muito agradecido vllw  :D 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A descrição (e o fonte) tá 1/2 grande pra algo relativamente simples. Comece pelo acende led em função de botão - uma melhoria do hello world pisca led. Domine bem ele e logo estará dominando o mundo. Publique o circuito.

E melhore um pouco mais isso...

2 horas atrás, Lucas Lorena disse:

no meu caso isso ta difícil

o que ocorreu? o que deveria ocorrer? qual problema deu? fez alguma coisa pra [tentar] resolver?

Apesar de ser muita flatulência pra poucos dejetos,  cogite fazer um fluxograma da problemática. Isso te ajuda na visão mais ampla da solucionática.

 

E por último a dica [pessoal] mais importante ... Ao começar o tópico com o termo "galera" pode fazer com que membros digamos ... anciãos (like this) ... fiquem pouco a vontade e com pouca vontade de participar :mad:

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

 @Isadora FerrazBoom meu Ancião kkkk  no meu caso funciona apenas o 1botao  acende o led A aparece no display  VLA 1 ON , mas o segundo botão não funciona n desliga o led A e nem liga o led B . e também nem muda no display. 

Bom eu vi que não abri uma chave no else poderia ser isso mais o meu progresso esta lento . mas mesmo assim n esta funcionando . 

  • Haha 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
14 horas atrás, Lucas Lorena disse:

Aperto o botão RB7 que no caso seria "Válvula 1 " ai liga o "LED A" e aparece no display "VL1 ON" Dps de apertado , aperto o botão RB6 "Válvula 2 " ai liga o "LED B" e desliga o "LED A "  E aparece no display . "VL1 OFF" e  "VL2 ON"  simples. 

Por gentileza coloque isso num fluxograma ou execute (em c) cada etapa na sequencia e/ou na dependência da etapa anterior e seus problemas acabaram

 

4 horas atrás, Lucas Lorena disse:

meu Ancião kkkk 

:angry::tw_angry:       :P

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

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×