Ir ao conteúdo

Pic16f84a


james freire

Posts recomendados

Postado

Ola galera,

Achei na internet um trabalho de uns garotos da UNIVERSIDADE DE CAXIAS DO SUL, com o titulo ,"INDICADOR DE VELOCIDADE", neste documento eles fornecem um código fonte, que serve para calcular a velocidade do móvel que passa por 2 sensores fotoelétrico.

Comecei a montar este sistema para ser usado no meu projeto da faculdade "carrinho com propulsão elástica", quero medir a velocidade desse meu carrinho, para comprovar com os cálculos. ( com o carrinho tudo bem)

Estou tentando simular no proteus, mas antes de tudo preciso escrever o programa, copilar para depois inserir no pic. Aqui esta o 1º problema, esta dando erro na hora de copilar.

alguem pode me ajudar a desvendar esses erros.

estou usando para copilar o pic-c copiler PCWHD

veja imagem dos erros abaixo

veja codigo fonte.

#include <16F84A.h> // seleciona o microcontrolador alvo

#fuses XT, NOWDT, NOPUT, NOPROTECT //Seleciona osc CRISTAL, desativa WDT, PUT e PROTECT.

#use delay(clock=4000000) //Seleciona osc de trabalho do cristal.

#include <lcd.c> //Inclui biblioteca de manipulação de LCD.

long int x, vel; //Variáveis 16 bits para contagem.

static boolean back; //Variável lógico.

int y; //Variável 8 bits.

#separate

void lcd_func() //Função de escrita em LCD.

{

lcd_putc('\f'); //Limpa o display.

delay_ms(5);

output_high(pin_a0); //Ativa saída RA0.

lcd_gotoxy(2,1); //Posiciona cursor em coluna 2 linha 1.

printf(lcd_putc,"%lukm/h", vel); //Escreve o valor da variável vel e Km/h.

lcd_gotoxy(2,2); //Posiciona cursor em coluna 2 linha 2.

printf(lcd_putc,"%lums", x); //Escreve o valor de x e ms.

if(vel > 50) //Se vel for maior de 50.

{

output_high(pin_a1); //Ativa saída RA1.

lcd_gotoxy(11,2); //Posiciona cursor em coluna 11 linha 2.

lcd_putc("<ex>"); //Escreve "<ex>", como indicador de excesso de velocidade.

}

delay_ms(2000); //Aguarda 2 segundos.

vel = 0; //Zera variável vel.

lcd_putc('\f'); //Limpa o display.

output_low(pin_a1); //Desativa saída RA1.

lcd_gotoxy(4,1); //Posiciona cursor em coluna 4 linha 1.

lcd_putc("Espera...."); //Escreve "Espera....".

return;

}

#separate

void le_tecla() //Função de leitura de tecla para ativar ou desativar backlight.

{

if(!input(pin_a2)) //Se tecla pino RA2 for pressionada.

{

delay_ms(200); //Aguarda 200ms para filtragem de ruído da tecla.

y = input(pin_a2); //Verifica se tecla foi realmente pressionada, se for verdadeira, y = 0.

if(y==0) //Se y = 0.

{

back = !back; //Inverte valor lógico de variável back.

output_bit(pin_b3, back); //Carrega saída RB3 com valor de back.

delay_ms(200); //Aguarda 200ms.

}

}

return;

}

#separate

void m_temp() //Função de contagem de tempo.

{

output_low(pin_a0); //Desativa saída pino RAO.

while(input (pin_a4)) //Enquanto entrada não for acionada.

{

delay_ms(1); //Aguarda 1ms.

x = x + 1; //Soma 1 em x.

}

vel = 36000 / x; //Calculo de velocidade em Km/h.

lcd_func(); //Chama função de LCD.

return;

}

#separate

void lcd_func1() //Função inicial para amostragem de mensagem "Espera....".

{

lcd_putc('\f'); //Limpa o display.

lcd_gotoxy(4,1); //Posiciona o curso na coluna 4 linha 1 no display.

lcd_putc("Espera...."); //Escreve "Espera....".

return; //Retorna para função principal do programa.

}

#separate

void main() //Função principal do programa.

{

lcd_init(); //Inicia a comunicação com LCD.

lcd_putc('\f'); //Limpa o display.

x = 0;

vel = 0;

y = 0;

lcd_func1(); //Chama função de amostragem.

while(true)

{

output_high(pin_a0); //Ativa pino RA0.

if(!input(pin_a3)) //Se tecla de pino RA3 for pressionado.

{

x = 0;

m_temp(); //Chama função de contagem de tempo.

}

le_tecla(); //Chama função de leitura de tecla backlight

}

}

post-480080-13884957432408_thumb.jpg

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!