Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

03/09/2011 #1


Problema con Programa
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:

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(); 
             }
           }
        }
     }
   }
03/09/2011 #2
Moderador general

Avatar de Fogonazo

¿ No te parece que deberías aclarar que se supone debe hacer el programa ?
03/09/2011 #3


Perdon por no aclarar, este programa lo que hace es, bueno, estamos haciendo una banda transportadora, que llena y tapa un vaso de jugo, primero se pone el vaso en la banda luego un motor se activa y hay tres pistone u un sensor por piston, al llegar al primer sensor del primer piston, el motor se parara y se activara el piston de llenado, luego se vuelve a activar el piston y al llegar al segundo sensor del segundo piston, se parara el motor y activara el piston 2 , y luego se vuelve a activar el motor y al llegar al tercer sensor del piston 3 se para el motor y se activa el 3er piston, y eso seria todo.

Ayundeme porfavor!!!
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.