Ir ao conteúdo

Posts recomendados

Postado

Boa noite galera! 

bem galera, estou enfrentando uns probleminhas com relação a programar um PIC16F819 com o compilador MIKROC. 

sou novo nessa área de programação e estou tentando fazer um termômetro com um PIC16F819 e um sensor LM35, porém quando fui escrever o codigo para esse pic, descobri que é um pouco diferente do 16F877 por exemplo.

embora eu tenha escrito um codigo que compilou sem erros e rodou no pic também sem dar erros de execução, porém as mensagens que deviam aparecer no lcd, não aparece nada no display lcd.

os comandos de impressão no lcd não estão errados, pois uso os mesmo comandos para mostrar mensagens usando um PIC16F628A e funciona perfeitamente.

alguem ai poderia me dar uma ajudinha com relação a esse codigo?

vou postar aqui  o esqueminha e o codigo que estou usando.

e agradeço desde ja a quem puder me ajudar!

 

sbit LCD_RS at RA7_bit;
sbit LCD_EN at RA6_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at TRISA7_bit;
sbit LCD_EN_Direction at TRISA6_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;

unsigned int temperatura = 0;
float resultado;
unsigned char txt[15];
void main() {
  ADCON0 = 0;
  ADCON1 = 0B00000000;
  TRISA  = 0B00000001;
  TRISB = 0;
  PORTA = 0;
  PORTB = 0;
  Lcd_Init();
  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Cmd(_LCD_CURSOR_OFF);
  Lcd_Out(1, 1, "Temperatura :");
  Lcd_Chr(2,8,223);
  Lcd_Chr(2,9,'C');
  temperatura = 0;
   do {
    temperatura = ADC_Read(0);
    resultado = temperatura * 5000.0 /1024.0;
    resultado = resultado/10.0;
    FloatToStr(resultado, txt);
    txt[4]=0;
    Lcd_Out(2, 1, txt);
    Delay_ms(500);
  } while(1);
}

1.jpg

adicionado 7 minutos depois

havia me esquecido de dizer que os pinos EN e RS do display estavam em RA6  e RA7 como esta no codigo, alterei a posição dos pinos para testar se havia algo errado com a configuração do portb mas continuou na mesma

Postado

Seu código parece certo, isso me parece problema de hardware, você tentou por um cristal oscilador? dependendo da configuração do mikroC você poe o cristal configurado e funciona, outra coisa é o MCLR, tente por um resistor de pull-up e vê se resolve.

  • Membro VIP
Postado

... além disso você deve verificar no d.s. do seu mc se os alguns pinos podem ser saída. P.ex. alguns são só entrada ou são saída open coletor.

dica extra: variável float e mc 8 bits com pouca capacidade não se dão muito bem

Visitante
Este tópico está impedido de receber 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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!