MAQUINA EXPENDEDORA-presentacion final

vídeo sobre la maquina expendedora

https://youtu.be/vmWIP9WFt-c

simulación usando el software proteus  y  ccs c compiler


programa
#include <16f877a.h>
#fuses xt,nowdt
#use delay(clock=4M)
#define lcd_data_port  getenv("sfr:portd")
#define lcd_enable_pin pin_d0
#define lcd_rs_pin pin_d1
#define lcd_rw_pin pin_d2
#define use_portb_kbd true

#include  <lcd.c>
#include  <kbd4x4_1.c>
#include <string.h>


int p;
int t;
float a;
void vuelto();
void ActualizarSaldo();
void main()
{   
   char k;
   int x ;
   p=0;
   a=0;
   t=0;
   port_b_pullups (true),
   output_low(pin_c5);
   lcd_init();  
   kbd_init();
   
  while (true)
         {
              k=kbd_getc ();
              x=k-48;
            
  
                while ((input (pin_a1)==0) & (input (pin_a0)==0))
                    {                              
                                 lcd_gotoxy (1,1);
                                 printf (lcd_putc,"gracias por preferirnos\n inserte moneda ");                              
     //---------------------- ---------ESTO ES CUANDO NO HAY NADA NOS TIENE QUE DAR EL PRECIO----------------------------
     //-----------------------------------galletas-------------------------------------- 
                          k=kbd_getc ();
                  if (k=='1') 
                           {                        
                           lcd_gotoxy (1,1);
                      printf(lcd_putc,"\f#:1 galletas");
                           lcd_gotoxy (1,2);
                      printf(lcd_putc," 1.60 soles ");
                           delay_ms(1650);
                           }                          
   //----------------------------------jugo--------------------------------------------------- 
                  else if (k=='2') 
                           {                        
                           lcd_gotoxy (1,1);
                      printf(lcd_putc,"\f#:2 jugo");
                           lcd_gotoxy (1,2);
                      printf(lcd_putc," 1.50 soles ");
                           delay_ms(1650);
                           }    
   //----------------------------------gaseosa------------------------------------------------------- 
                 else if (k=='3') 
                           {                        
                           lcd_gotoxy (1,1);
                      printf(lcd_putc,"\f#:3 gaseosa");
                           lcd_gotoxy (1,2);
                      printf(lcd_putc," 2.00 soles ");
                           delay_ms(1650);
                           }   
   //----------------------------------chicle-------------------------------------------------------
                 else if (k=='4') 
                           {                        
                           lcd_gotoxy (1,1);
                      printf(lcd_putc,"\f#:4 cicle");
                           lcd_gotoxy (1,2);
                      printf(lcd_putc," 0.50 soles ");
                      delay_ms(1650);
                           } 
   //-------------------------------------------------------------------------------------------------
    //---------------------------fil del prceso cero-----------------------------------------
                     }
                       printf(lcd_putc,"\f" ); 
                       
                        
                      while (((input (pin_a0)==1) | (input (pin_a1)==1) ) & (t==0))
                         {
                         if (input (pin_a0)==1)
                             {
                             p=2;                            
                             }
                            
                         else if (input (pin_a1)==1)
                             {
                             p=3;
                             }
                        
                         lcd_gotoxy (1,1);
                         printf (lcd_putc," Marqué numero ");                  
                         lcd_gotoxy (1,2);
                         printf (lcd_putc," saldo: %i",p);                         
                         k=kbd_getc ();    
     //---------------------------venta de los productos-----------------------------------------                       
   //-----------------------------------galletas--------------------------------------                        
                          if (k=='1') 
                           {                        
                           lcd_gotoxy (1,1);
                      printf(lcd_putc,"\f#:1 galletas");
                           lcd_gotoxy (1,2);
                      printf(lcd_putc," 1.60 soles ");
                      ActualizarSaldo();            
                          a=p-1.60;                 
                          if(a!=0)
                          {               
                          vuelto();                            
                          }
                      delay_ms(1000);
                       printf(lcd_putc,"\f" );
                           t=2;
                           }
   //----------------------------------jugo---------------------------------------------------
                           else if (k=='2') 
                           {                        
                           lcd_gotoxy (1,1);
                      printf(lcd_putc,"\f#:2 jugo");
                           lcd_gotoxy (1,2);
                      printf(lcd_putc," 1.50 soles ");
                      ActualizarSaldo();            
                          a=p-1.50;                 
                          if(a!=0)
                          {              
                          vuelto();                            
                          }
                      delay_ms(1000);
                       printf(lcd_putc,"\f" );
                       t=2;
                           }    
   //----------------------------------gaseosa------------------------------------------------------- 
                           else if (k=='3') 
                           {                        
                           lcd_gotoxy (1,1);
                      printf(lcd_putc,"\f#:3 gaseosa");
                           lcd_gotoxy (1,2);
                      printf(lcd_putc," 2.00 soles ");
                      ActualizarSaldo();            
                          a=p-2.00;                 
                          if(a!=0)
                          {              
                          vuelto();                            
                          }
                      delay_ms(1000);
                       printf(lcd_putc,"\f" );
                       t=2;
                           }    
   //----------------------------------chicle-------------------------------------------------------
                            else if (k=='4') 
                           {                        
                           lcd_gotoxy (1,1);
                      printf(lcd_putc,"\f#:4 cicle");
                           lcd_gotoxy (1,2);
                      printf(lcd_putc," 0.50 soles ");
                      ActualizarSaldo();            
                          a=p-0.50;                 
                          if(a!=0)
                          {              
                          vuelto();                            
                          }
                      delay_ms(1000);
                       printf(lcd_putc,"\f" );
                       t=2;
                           } 
   //-------------------------------------------------------------------------------------------------                     
                          }
                        
          }
}
//------------------------------------- funcionnes----------------------------
void ActualizarSaldo()
{
                        delay_ms(2000);
                                                   output_high(pin_c6);
                                                   delay_ms(1000);                              
                        lcd_gotoxy (1,1);
                        output_high(pin_b3);                                                    
                      printf(lcd_putc,"\f vendiendo \n......espere");
                                                   delay_ms(1600);
                                                   output_low(pin_c6);
}

void vuelto()
{
                        output_high(pin_c5);
                                                   delay_ms(1000);                                                  
                           lcd_gotoxy (1,1);
                      printf(lcd_putc,"\f vuelto:  ");
                      lcd_gotoxy (1,2);
                      printf(lcd_putc,"       %f",a);
                                                   delay_ms(1600);
                                                   output_low(pin_c5);  
}



Comentarios

Entradas populares de este blog

CONCLUSIONES Y OBSERVACIONES

TAREAS DEL TERCER LABORATORIO