Ir ao conteúdo
  • Cadastre-se

PIC Pic 18f4520 com display


Posts recomendados

Olá galera estou aqui porque agr estou com outroo problema serio tenho q fazer no pic a programaçao pra quando eu aperta um botao acende o led e no display aparece por exemplo ‘sala’ foto do pic no final do post \/ dps vou fla todas entrada q vou utilizar 

 

Ok irei utilizar as porta rb7,rb6,rb5, rb4 para os button 

o display vai estar ligado nas porta rd0, rd1,rd2,rd3

E os led ligado nas porta rd7,rd6,rd5,rd4

e a programacao 

 

sbit LCD_EN at RA5_bit;

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;

//direção dos pinos

sbit lcd_en direction at trisa5_bit;

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;

 

Void main () {

lcd_init ();

lcd_cmd (_lcd_cursor_off);

trisb=0xff;

trisd=0;

portd=0;

Intcon2.rbpu=0;

while (1)

{

if(button(&portb,4,50,0))

portd.rd4=~portd.rd4;

while (portb.rd4==0);

lcd_out(1,1,”sala”);

delay_ms(1000);

{

Lcd_cmd(_lcd_clear);

if(button(&portb,5,50,0))

portd.rd5=~portd.rd5;

while (portb.rd5==0);

lcd_out(1,1,”cozinha”);

delay_ms(1000);

{

Lcd_cmd(_lcd_clear);

if(button(&portb,6,50,0))

portd.rd6=~portd.rd6;

while (portb.rd6==0);

lcd_out(1,1,”quarto”);

delay_ms(1000);

{

Lcd_cmd(_lcd_clear);

if(button(&portb,7,50,0))

portd.rd7=~portd.rd7;

while (portb.rd7==0);

lcd_out(1,1,”banheiro”);

delay_ms(1000);

lcd_cmd(_lcd_clear);

}

}

}

}

}

 

 

Nessa programaçao esta ligando os led mais n ta aparecendo nos display e n sei aonde arumar :/ aguardo resposta Obrigado.

4A9DDE31-554B-4417-A177-6A53F78F78E7.jpeg

image.jpg

image.jpg

Link para o comentário
Compartilhar em outros sites

Hum... tenta faze um código hellow world. Eu uso um potenciômetro para regular a tensão no terceiro pino da esquerda para direita. Mas na prática em vez do potenciômetro Uso um resistor de 1k e outro de 10k sendo que o de 1k ligando no terra e o 10k ligado no 5V e no meio ligado a esse pino que falei.

 

No segundo pino agora da direita ta para a esquerda eu uso um resistor de 220ohm para luz do lcd...

 

Como disse tenta um código aleatória ai de hello world. Se já fez esse teste e está funcionando até mesmo com os teus resistores podemos continuar ^^

 

 

__

OFF-

meu português está piorando hehehe

Link para o comentário
Compartilhar em outros sites

@Bommu Perneta ss o circuito esta funcionando só nao aparece escrito no display quando aperto um botao , e como faz esse codigo hellow world q eu nunca ouvi fla kkkk porque velho eu olhei pra essa programação q eu fiz era pra funcionar e n funciona n sei porque n sei aonde errei se ta certo ou n 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Pode ser um mondicoisa. Entre elas destaco a programação dos fuses, pino de reset, cristal com problema, alimentação, cagadinhas na montagem, e claro o tradicional etc. Veja se no proteus simula direito. Se sim... é problema entre teclado e cadeira mesmo kk. Ah sim, um hello world pro micromundo pode ser traduzido pra pisca led. "Rebobine a fita" e veja se consegue fazer piscar.

 

off2

9 horas atrás, Bommu Perneta disse:

OFF-

meu português está piorando hehehe

Tadinho. Ele tá gripado é? kk

aff

  • Confuso 1
Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz hah fechado vou testar no proteus so q apenas quinta porque to meio gripado e cabei dexando meu notebook com

o grupo ai eu retorno aqui pra ver se é realmente a programaçao mesmo ou o circuito , agr essa parte ai do hellow world 

tenho q colocar em cima do void main? 

Usa tipo um #define? 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
11 horas atrás, Lucas Lorena disse:

essa parte ai do hellow world 

tenho q colocar em cima do void main? 

Usa tipo um #define? 

hmmmm... acho que precisas de um pouco mais de ajuda que vou ter dificuldade em te fornecer. "hello world" é uma expressão do mundo da programação quando você consegue fazer seu primeiro programa. No mundo dos mc´s pode ser considerado um "pisca led" como o abaixo (que digito online). É um exemplo simples com zero biblioteca externa que geralmente forneço pros noviços (não rebeldes) e quase fácil de entender. Serve pra virtualmente qualquer mc

#define led portd.rd4
void delay(unsigned int dl)
{
while(dl--);
}
//...
void main(void) //nem precisa do void mas como falou nele. perceba também o #define led
{
//inicializa hw
for(;;)
{
led^=1; //Taí... hello world pisca led
delay(10000);
}
}

Taí... hello world pisca led. A partir daqui pode partir pra dominação do mundo!

 

  • Haha 1
Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz oky isa testei a programaçao no protheus e n funciono o display liga e fica aparecendo quarto , banheiro etc e fica mudando. E os botao quando aperta n acende os led como era pra acender e aparece no display acendeu um led e o quarto apago , acendeu outro e a sala kk bom vou tenta ve esse codigo hellow world pra ve se fica mais fácil de fazer 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Uma pista...

Em 09/10/2017 às 21:03, Lucas Lorena disse:

if(button(&portb,4,50,0))

o que isso faz? Parece que  lê o bit 4 do portb. O que significam 50,0? Bem isso não é importante agora. Tente inverter algo como

if(!(button(&portb,4,50,0)));// ou

if(~(button(&portb,4,50,0)));//

Também percebo agora excesso de { e }

Além disso seu código pode ser melhorado... Aguarde seu momento

  • Triste 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...