Ir ao conteúdo
  • Cadastre-se

Erro na pic 18f4550 com lcd 16x2


knightd

Posts recomendados

Boas.

Eu criei um codigo no pic c, em que le um valor analogico, pin ra0, e que depois de converter para tensão e enviado para o lcd. O meu problema é o seguinte, o pic esta a mandar a informaçao para o lcd no entanto nao apareçem todos os caracteres que sao enviados. O circuito foi simulado no proteus.

Segue de seguida o codigo que fiz. Gostaria de saber se tem algum erro, pois ja nao sei qual o problema da falta de caracteres.

#include <18F4550.h>
#device adc=10


#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //Crystal osc >= 4mhz
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection



#use delay(clock= 20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)



#include <lcd.c>





// #define use_portb_lcd TRUE

float v;

void main()
{


setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(AN0);

delay_ms(200);
lcd_init(); //inicia o lcd
delay_ms(100);
//Setup_Oscillator parameter not selected from Intr Oscillotar Config tab

// TODO: USER CODE!!

while(true){

lcd_putc("\f");
delay_ms(500);

lcd_putc("Teste LCD");
delay_ms(500);

output_high(pin_c0); //liga um led
delay_ms(500); //aumentando o delay aumenta o tempo que demora ate que a saida mostre o sinal lido
set_adc_channel(0);
delay_us(10);
v=read_adc();
v=v*0.004887585532746823069403714565; //5/1023=0,004887585532746823069403714565
printf("%f \n \r", v);

lcd_putc("\f");
delay_ms(100);
lcd_putc("Teste LCD1");
delay_ms(500);

lcd_putc("\f");
delay_ms(100);
printf(lcd_putc,"Teste LCD2");
delay_ms(500);

lcd_putc("\f");
delay_ms(100);
printf(lcd_putc,"Val: %2.3f",v);
delay_ms(500);


}



}

A montagem do circuito no proteus esta parecida a algumas que se encontram aqui.

Desde ja peço desculpa se estou a repetir o topico, mas como nao encontrei nada criei este.

Link para o comentário
Compartilhar em outros sites

Boas Matheus

Desde ja agradeco a dica, mas o problema esta no lcd, quando imprime por exemplo o "Teste LCD" a primeira letra "e" nao aparece, mas o restante aparece. Nos seguintes testes lcd tambem da o mesmo problema e quando chega a parte em que tem que apresentar o valor da variavel v no lcd ele tambem nao aparece a segunda letra, nem o numero a seguir a virgula.

Matheus de modo a perceber melhor o meu problema junto as imagens do meu problema no lcd.

Será do pll, se for como é que altero, pois como sou um pouco novo isto nao sei ao certo.

post-1018029-13884964450847_thumb.jpg

post-1018029-1388496445152_thumb.jpg

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!