Está en la página 1de 2

#include <16f628.

h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay(clock=4000000)
#use standard_io(b)
#use standard_io(a)
#include <lcd.c>
#byte PORTB = 0x06
#byte PORTA = 0x05// para poder acceder a portb con ese nombre,otra??
unsigned char const disp[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,
0x7f, 0x6f};
long i;
long u;
long d;
long m;
long c;
#int_TIMER1 //cada 0.5segundos
void TIMER1_isr(void)//Funcin de interrupcin por desbordamiento TMR1
{
i=GET_TIMER0();
i=i*30; // rpm el anemometro tira 2 pulsos por minuto
set_timer0(0x00);//vuelvo a poner a cero el contador
set_timer1(0x0BDC);//carga del TMR1
}
void main() {

enable_interrupts(INT_RTCC);
enable_interrupts(INT_TIMER1);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);//mi temporizador
setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_1);//lo utlizo como contador preescale
r=1
enable_interrupts(global);

lcd_init();
delay_ms(200);
PORTB = 0;
PORTA = 0; //todo el puerto A a 0v controla los transistores

set_timer1(0x0BDC);

do{

rpm=i; // 2 pulsos por minuto
vel=rpm*0,04*3,14 // para pasar a velocidad lineal
printf(lcd_putc, "vel rpm %d", rpm);
lcd_gotoxy(1,1);
printf(lcd_putc, "vel lineal %d",vel);
lcd_gotoxy(1,2);

} while (TRUE);
}

También podría gustarte