Hola, ¿qué tal a todos? Espero se encuentren muy a gusto.
Aquí con una consulta para quien se pueda tomar el tiempo de leer algunas líneas y poderme dar algún consejo en este programa que tiene como fin no más que, según la señal de entrada (cuando se tiene 0) en un pin nos activa dos pines con un tiempo diferido.
Lo que me sucede es que al realizar la simulación en proteus y presionar el botón que me hace la simulación del "0" en la entrada, mandando a tierra no realiza la acción.
Muchas gracias por su tiempo y ojala puedan hacerme cualquier observacion.
Aquí con una consulta para quien se pueda tomar el tiempo de leer algunas líneas y poderme dar algún consejo en este programa que tiene como fin no más que, según la señal de entrada (cuando se tiene 0) en un pin nos activa dos pines con un tiempo diferido.
Lo que me sucede es que al realizar la simulación en proteus y presionar el botón que me hace la simulación del "0" en la entrada, mandando a tierra no realiza la acción.
Muchas gracias por su tiempo y ojala puedan hacerme cualquier observacion.
Código:
#include <16f887.h> //libreria del pic 16f887
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES NOPUT //No Power Up Timer
#FUSES MCLR //Master Clear pin enabled
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOCPD //No EE protection
#FUSES BROWNOUT //Reset when brownout detected
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES LVP //Low Voltage Programming on B3(PIC16) or B5(PIC18)
#FUSES NODEBUG //No Debug mode for ICD
#use delay (clock=8000000) //Directiva indica la frecuencia del procesador
//#use fast_io(b) //Instrucciones de i/o para el puerto b
//#use fast_io(c) //Instrucciones de i/o para el puerto c
#bit monB0=0x06.0
#bit rele1A0=0x05.0
#bit rele2A1=0x05.1
#int_EXT
void EXT_isr(void) // interrupcion
{
if(!monB0)
{
rele1A0=1;
delay_ms(1000);
rele2A1=1;
} //Condicion de entrada de monedero en B0
}
void main(void) //Funcion principal main
{
port_b_pullups(TRUE); //activar resistencias pull-up del puerto B
set_tris_B(0b00000001); //establecer B0 como entrada
set_tris_A(0b00000000); //establecer A0 y A1 como salidas
rele1A0=0; //inicializar variales
rele2A1=0;
enable_interrupts(GLOBAL); //interrupcion
enable_interrupts(INT_EXT);
output_A(0);
while(true); //bucle inf.
}
Última edición por un moderador: