simular la compra de un producto de la Máquina Expendedora

vídeo de maquina expendedora

https://youtu.be/Rl_ytC7ZepA



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>


void main()
{
  
 int d ;
 int p ;
  char k;
  port_b_pullups (true),
  lcd_init();

  kbd_init();
   
 while (1)
    {
   
  k=kbd_getc ();
  
 //--------------------------------------------------------------------------------------
 
 
 if(input (pin_a0)==0 )
       
    {                      
                       while ((input (pin_a0)==0 ) & ( k=='\0' ))
                           
                       {
                        k=kbd_getc ();
                                lcd_gotoxy (1,1);
                                printf (lcd_putc," \fgracias por preferir AUTOVEND ");
                                delay_ms(0.2);
                                printf (lcd_putc," \f");
                       
                       }
                        
                     
                        
                 //    if(k="1")
                 //    {
                     
                    // lcd_gotoxy (1,1);
                    // printf(lcd_putc,"  #: %c",k);
                          
                        if(k=='1')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:1");
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," un soles ");
                    delay_ms(2000);
                          }
                          
                     else  if(k=='2')  
                          {         
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:2");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," dos soles ");
                   delay_ms(2000);
                          }
                          
                     else  if(k=='3')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:3");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," tres soles ");
                    delay_ms(2000);
                          }
                          
                     else  if(k=='4')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:4");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," cuatro soles ");
                    delay_ms(2000);
                          }
                          
                          else  if(k=='5')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:5");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," cinco soles ");
                    delay_ms(2000);
                          }
                          
                          else  if(k=='6')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:6");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," seis soles ");
                    delay_ms(2000);
                          }
                          
                          else  if(k=='7')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:7");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," siete soles ");
                    delay_ms(2000);
                          }
                          
                          else  if(k=='8')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:8");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," ocho soles ");
                          delay_ms(2000);             
                          }
                          
                          else  if(k=='9')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:9");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," nueve soles ");
                    delay_ms(2000);
                          }
                          else  if(k!='1','2','3','4','5','6','7','8','9','0')  
                          {
                          lcd_gotoxy (1,1);
                    printf(lcd_putc,"  #: %c",k);
                     
                         // }
                          //for (d=76;d>=17;--d)
                        //  {
                                lcd_gotoxy (1,2);
                                printf (lcd_putc," no hay esta opcion");
                      
                                //if  (k=='1','2','3','4','5','6','7','8','9')
                               //      {
                                //        d=d-1000;
                                      //  printf (lcd_putc,"\f");
                               //      }
                           delay_ms(2000);
                         // }
                   
                        
                 }  
                 
                               
                 
                                
                 
                 
            }
 
 
                 
   
//----------------------------------------------------------------------------------------   
  
       if(input (pin_a0)==1 )
       
    {                      
                       while ( (input (pin_a0)==1 ) & ( k=='\0'))
                           
                       {
                        k=kbd_getc ();
                                lcd_gotoxy (1,1);
                                printf (lcd_putc," \fsu credito es: ");
                                lcd_gotoxy (6,2);
                                printf (lcd_putc,"  2.00 soles ");
                         delay_ms(0.2);
                       
                       }
                        
                     
                        
                 //    if(k="1")
                 //    {
                     
                    // lcd_gotoxy (1,1);
                    // printf(lcd_putc,"  #: %c",k);
                          
                        if(k=='1')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:1");
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," vendiendo ");
                    delay_ms(2000);
                          }
                          
                     else  if(k=='2')  
                          {         
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:2");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," vendiendo ");
                   delay_ms(2000);
                          }
                          
                     else  if(k=='3')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:3");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," vendiaendo ");
                    delay_ms(2000);
                          }
                          
                     else  if(k=='4')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:4");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," vendiendo ");
                    delay_ms(2000);
                          }
                          
                          else  if(k=='5')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:5");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," vendiendo ");
                    delay_ms(2000);
                          }
                          
                          else  if(k=='6')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:6");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," vendiendo ");
                    delay_ms(2000);
                          }
                          
                          else  if(k=='7')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:7");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," vendiendo ");
                    delay_ms(2000);
                          }
                          
                          else  if(k=='8')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:8");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," vendiendo ");
                          delay_ms(2000);             
                          }
                          
                          else  if(k=='9')  
                          {
                          lcd_gotoxy (1,1);
                     printf(lcd_putc,"\f#:9");
                     
                          lcd_gotoxy (1,2);
                   printf(lcd_putc," vendiendo ");
                    delay_ms(2000);
                          }
                          else  if(k!='1','2','3','4','5','6','7','8','9','0')  
                          {
                          lcd_gotoxy (1,1);
                    printf(lcd_putc,"  #: %c",k);
                     
                         // }
                          //for (d=76;d>=17;--d)
                        //  {
                                lcd_gotoxy (1,2);
                                printf (lcd_putc," no hay esta opcion");
                      
                                //if  (k=='1','2','3','4','5','6','7','8','9')
                               //      {
                                //        d=d-1000;
                                      //  printf (lcd_putc,"\f");
                               //      }
                           delay_ms(2000);
                         // }
                   
                        
                 }  
                 
                               
                 
                                
                 
                 
            }

     }
}

Comentarios