Bueno, te dejo el programa en lenguaje C, este si lo puedes alterar
Código:#include <16f628A.h> #fuses INTRC, NOWDT, NOPUT, NOMCLR, NOBROWNOUT, NOLVP, NOCPD, NOPROTECT #use delay(clock=4000000) #include <lcd_b.c> int time0, time1; int16 pulses0, pulses, rpm, time; int1 rpmbit; void rpm_get() { rpm=60*pulses; if(pulses0!=pulses) { printf(lcd_putc,"\fRpm \n%Lu", rpm); delay_ms(1500); } pulses=0; time1=0; } void main() { set_tris_a(0x1F); rpm=0; time=0; time0=0; time1=time0; pulses=0; pulses0=pulses; rpmbit=1; lcd_init(); lcd_putc("\fBienvenido\n"); output_low(PIN_A7); do { diagnostico(); if(input(PIN_A1)) { if((input(PIN_A0))&&(rpmbit==1)) { pulses++; rpmbit=0; } if((!input(PIN_A0))&&(rpmbit==0)) { rpmbit=1; } time0++; if(time0>=250) { time1++; time0=0; if(time1>=4) { time0=0; if(pulses<1) { lcd_putc("\frpm < 60\nO sin giro"); delay_ms(500); } else { rpm_get(); pulses0=pulses; } } } } if(input(PIN_A2)) { output_toggle(PIN_A7); if(!input(PIN_A1)) { lcd_putc("\fMotor Apagado"); } delay_ms(500); } delay_ms(1); } while(1); }
solo que el PIN_A2 lo dejas a "1" originalmente se diseño para activar un motor y medir sus RPM's
Saludos
hola amigo vi tu programacion y al copiarla a el programa c y compilar detecta un error con el lcd quisiera saber si tienes una libreria para el programador c porque cuando modifico el archivo en proteus a lcd .c y compilo el programa con el isis el display no muestra simulacion... gracias
Bueno, te dejo el programa en lenguaje C, este si lo puedes alterar
Código:#include <16f628A.h> #fuses INTRC, NOWDT, NOPUT, NOMCLR, NOBROWNOUT, NOLVP, NOCPD, NOPROTECT #use delay(clock=4000000) #include <lcd_b.c> int time0, time1; int16 pulses0, pulses, rpm, time; int1 rpmbit; void rpm_get() { rpm=60*pulses; if(pulses0!=pulses) { printf(lcd_putc,"\fRpm \n%Lu", rpm); delay_ms(1500); } pulses=0; time1=0; } void main() { set_tris_a(0x1F); rpm=0; time=0; time0=0; time1=time0; pulses=0; pulses0=pulses; rpmbit=1; lcd_init(); lcd_putc("\fBienvenido\n"); output_low(PIN_A7); do { diagnostico(); if(input(PIN_A1)) { if((input(PIN_A0))&&(rpmbit==1)) { pulses++; rpmbit=0; } if((!input(PIN_A0))&&(rpmbit==0)) { rpmbit=1; } time0++; if(time0>=250) { time1++; time0=0; if(time1>=4) { time0=0; if(pulses<1) { lcd_putc("\frpm < 60\nO sin giro"); delay_ms(500); } else { rpm_get(); pulses0=pulses; } } } } if(input(PIN_A2)) { output_toggle(PIN_A7); if(!input(PIN_A1)) { lcd_putc("\fMotor Apagado"); } delay_ms(500); } delay_ms(1); } while(1); }
solo que el PIN_A2 lo dejas a "1" originalmente se diseño para activar un motor y medir sus RPM's
Saludos
hola amigo quisiera saber porque cuando compilo el programa en C sale un erro con el lcd
y no se deja compilar, bien luego lo modifico a lcd. c y esta bien el programa ya no detecta error ahi sino en la variable diagnostico y dice que no esta definida, la otra es que soluciono el eeror dejando la variable diagnostico con // pero el simulador proteus no me deja ver nada en el display. sera algun problema de librerias quisiera sabe si tienes una por ahi para que me la prestes
Última edición: