estoy trabajando en el diseño de un reloj con un pic16f877a, empece mediante el pcw wizard que ya da una parte del código para no estar escribiendo los comando una y otra vez, el código que presento a continuación funciona bien en el proteus y ya lo arme y funciona bien, pero mi problema es que para aumentar o disminuir los segundos, minutos y horas tengo que esperar que termine el ciclo del contador "s" de un segundo, me gustaría que el reloj siga funcionando así como esta pero con la modificación de que pueda cambiarle los delay de los input para que en realidad funcionen con los 200ms que les tengo puesto y no con los 1000ms del contador "s" asta el momento tengo este código que es el que ya me funciona en realidad
espero que me puedan ayudar saludos
Código:
#include "C:\Users\jesus\Desktop\mecatronica\microcontroladores\proyectos fuera de la materia\prueva lcd\prueva.h"
#include <lcd.c>
int8 s=0;
int8 h=0;
int8 m=0;
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
SET_TRIS_A(0b111111);
SET_TRIS_B(0);
lcd_init(); // se inicializa la lcd
// TODO: USER CODE!!
output_b(0);
lcd_gotoxy(1,1); // ubica puntero
printf(lcd_putc,"vienvenido Jesus" );
printf(lcd_putc,"\nsist. encendido" );
delay_ms(2000);
lcd_init(); // se inicializa la lcd
lcd_gotoxy(1,1); // ubica puntero
printf(lcd_putc,"INICIALIZANDO..." );
printf(lcd_putc,"\nespere porfavorr" );
delay_ms(1500);
lcd_init(); // se inicializa la lcd
do{
if(input(pin_a0)){
s=s+2;
delay_ms(50);
}else if(input(pin_a1)){
s=s-2;
delay_ms(50);
}else if(s>=59){
s=-1;
m++;
}else if(input(pin_a2)){
m++;
delay_ms(50);
}else if(input(pin_a3)){
m--;
delay_ms(50);
}else if(m>=60){
h++;
m=0;
}else if(input(pin_a4)){
h++;
delay_ms(50);
}else if(input(pin_a5)){
h--;;
delay_ms(50);
}else if(h>=24){
h=0;
}
s++;
delay_ms(1000);
lcd_gotoxy(1,1); // ubica puntero
printf(lcd_putc,"%2u"":""%2u"":""%2u"" ""h:m:s", h, m, s, );
}while(1);
}
espero que me puedan ayudar saludos
Última edición por un moderador: