Hola amigos de FE!, espero esten muy bien, bueno voy a ser consiso, hace poco hice un programa para un trabajo de colegio, pues hasta el momento todo bien, lo simule con el Proteus y todo bien, la cosa es cuando lo voy a probar en protoboard simplemente no funciona, estoy usando el Pic 16f887, al principio use en oscilador interno, despues decidi usar un externo, y use uno de 12Mhz y nada, lo mismo, quisiera que me ayudaran porfavor!!!, estoy desesperado, ya no se que mas hacer!.
Este es el Programa:
Este es el Programa:
Código:
#Include <16f887.h>
#Use Delay (Clock=4M)
#Define Use_PortD_Lcd True
#Include <Lcd.c>
#Fuses Nowdt, Nobrownout, Nolvp, Noput, Nomclr
#Define Sensor1 PortA, 0
#Define Sensor2 PortA, 1
#Define Sensor3 PortA, 2
#Define ElectroV1 PortC, 0
#Define ElectroV2 PortC, 1
#Define ElectroV3 PortC, 2
#Define MasterSw PortA, 3
#Define Motor PortB, 0
#Byte PortA=5
#Byte PortB=6
#Byte PortC=7
#Byte PortD=8
Float Cant;
Void Motor1()
{
If(Bit_Test(MasterSw))
Bit_Set(Motor);
Else
PortB=0;
}
Void Main()
{
Set_Tris_A(255);
Set_Tris_B(0);
Set_Tris_C(0);
Set_Tris_D(0);
PortC=(0);
Cant=0;
Lcd_Init();
Lcd_PutC("Vasos Llenados:");
Motor1();
While (True)
{
If(Bit_Test(Sensor1))
{
PortB=0;
Bit_Set(ElectroV1);
Delay_ms(5000);
Bit_Clear(ElectroV1);
Motor1();
}
Else
{
If(Bit_Test(Sensor2))
{
PortB=0;
Bit_Set(ElectroV2);
Delay_ms(3000);
Bit_Clear(ElectroV2);
Motor1();
}
Else
{
If(Bit_Test(Sensor3))
{
Cant=Cant+1;
Lcd_Gotoxy(6,2);
Delay_ms(50);
printf(lcd_putc," %f",cant);
Delay_ms(100);
PortB=0;
Bit_Set(ElectroV3);
Delay_ms(3000);
Bit_Clear(ElectroV3);
Motor1();
}
}
}
}
}
Última edición por un moderador: