Hola amigos necesito ayuda para programar el PIC16F628A, la idea es poder controlar a travez de RA0(START) y RA1(STOP) el funcionamiento de un motor, mi problema principal esta en no poder parar el motor cuando este esta funcionando durante un determinado tiempo, necesito poder parar el motor en cualquier momento de dicha temporizacion, se podria decir que es como una parada de emergencia. No se pueden realizar modificacion al esquema del circuito, adjunto codigo de programa que tengo, esperare atento a sus comentarios. Saludos.
#byte porta=05
#byte portb=06
#use fast_io(a)
#use fast_io(b)
#fuses NOPROTECT,NOCPD,NOLVP,NOWDT,XT
#use delay(clock=4000000) //Reloj 4MHz
void main()
{
set_tris_a(0xff); // Puerto A como entrada
set_tris_b(0x00); // Puerto B como entrada
portb=0; // Limpia puerto B
DO{
IF (INPUT(PIN_A0)){ // Si se presiona RA0
delay_ms(100);
portb=1;
delay_ms(5000);
}
IF (INPUT(PIN_A1)){ // Si se presiona RA1
delay_ms(100);
portb=0;
}
}
WHILE(TRUE);
}
El esquematico lo pueden descargar aqui:
#byte porta=05
#byte portb=06
#use fast_io(a)
#use fast_io(b)
#fuses NOPROTECT,NOCPD,NOLVP,NOWDT,XT
#use delay(clock=4000000) //Reloj 4MHz
void main()
{
set_tris_a(0xff); // Puerto A como entrada
set_tris_b(0x00); // Puerto B como entrada
portb=0; // Limpia puerto B
DO{
IF (INPUT(PIN_A0)){ // Si se presiona RA0
delay_ms(100);
portb=1;
delay_ms(5000);
}
IF (INPUT(PIN_A1)){ // Si se presiona RA1
delay_ms(100);
portb=0;
}
}
WHILE(TRUE);
}
El esquematico lo pueden descargar aqui: