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
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
Publicar un comentario