Вы находитесь на странице: 1из 14

Source code

User side
#include<reg52.h>
//including sfr registers for ports of the controller
#include<lcd.h>

//LCD Module Connections


sbit RS = P3^2;
sbit EN = P3^3;
sbit D0 = P2^0;
sbit D1 = P2^1;
sbit D2 = P2^2;
sbit D3 = P2^3;
sbit D4 = P2^4;
sbit D5 = P2^5;
sbit D6 = P2^6;
sbit D7 = P2^7;
//End LCD Module Connections
//Keypad Connections
sbit R1 = P1^0;
sbit R2 = P1^1;
sbit R3 = P1^2;
sbit R4 = P1^3;
sbit C1 = P1^4;
sbit C2 = P1^5;
sbit C3 = P1^6;
sbit C4 = P1^7;
sbit S1 = P3^7;
//End Keypad Connections
void Delay(int a)

{
int j;
int i;
for(i=0;i<a;i++)
{
for(j=0;j<100;j++)
{
}
}
}
char Read_Keypad()
{
C1=1;
C2=1;
C3=1;
C4=1;
R1=0;
R2=1;
R3=1;
R4=1;
if(C1==0){Delay(100);while(C1==0);return '7';}
if(C2==0){Delay(100);while(C2==0);return '8';}
if(C3==0){Delay(100);while(C3==0);return '9';}
//if(C4==0){Delay(100);while(C4==0);return '/';}
R1=1;
R2=0;
R3=1;
R4=1;
if(C1==0){Delay(100);while(C1==0);return '4';}
if(C2==0){Delay(100);while(C2==0);return '5';}
if(C3==0){Delay(100);while(C3==0);return '6';}
//if(C4==0){Delay(100);while(C4==0);return 'X';}

R1=1;
R2=1;
R3=0;
R4=1;
if(C1==0){Delay(100);while(C1==0);return '1';}
if(C2==0){Delay(100);while(C2==0);return '2';}
if(C3==0){Delay(100);while(C3==0);return '3';}
if(C4==0){Delay(100);while(C4==0);return '-';}
R1=1;
R2=1;
R3=1;
R4=0;
//if(C1==0){Delay(100);while(C1==0);return 'C';}
if(C2==0){Delay(100);while(C2==0);return '0';}
if(C3==0){Delay(100);while(C3==0);return '=';}
if(C4==0){Delay(100);while(C4==0);return '+';}
return 0 ;
}
void main()
{
int i=0,q,rs,t,tot=0,temp,j,x,a[10];
char c,p,total;
Lcd8_Init();
c='_';
Lcd8_Clear();
Lcd8_Set_Cursor(1,5);
Lcd8_Write_String("WELCOME");
Lcd8_Set_Cursor(2,3);
Lcd8_Write_String("HOTEL REGENT");
Delay(2000);
Lcd8_Clear();

while(1)
{
l2: if(c!='=')
{

Lcd8_Clear();
Lcd8_Set_Cursor(1,1);
Lcd8_Write_String("ITEM: ");
TMOD=0x20;
TH1=0xfd;
SCON=0x50;
a[j]=1;
j++;
TR1=1;
sertx('1');

}
while(!(c = Read_Keypad()));
if((c!='+')||(c!='='))
{
TMOD=0x20;
TH1=0xfd;
SCON=0x50;
TR1=1;
a[j]=c;
x=a[j];
sertx(x);
j++;
}
if((c=='='))
goto l1;
p=c;

while((p==c))
{
if(p==c)
i++;
Lcd8_Set_Cursor(1,7);
switch (c)
{
case '1':Lcd8_Write_String("rice");
rs=40;break;
case '2':Lcd8_Write_String("c.b");
rs=120;break;
case'3':Lcd8_Write_String("appam");
rs=8;break;
case'4':Lcd8_Write_String("idly");
rs=7;break;
case'5':Lcd8_Write_String("poori");
rs=8;break;
case'6':Lcd8_Write_String("sweets");
rs=5;break;
case'7':Lcd8_Write_String("coffee");
rs=15;break;
case'8':Lcd8_Write_String("tea");
rs=8;break;
case'9':Lcd8_Write_String("water");
rs=0;break;
case'0':Lcd8_Write_String("waiter");break;
case '-':break;
}
Lcd8_Set_Cursor(2,1);
Lcd8_Write_String("NOS: ");

//Lcd8_Write_Char(c);

Lcd8_Set_Cursor(2,5);
while(!(c = Read_Keypad()));
if((c!='+')||(c!='='))
{
TMOD=0x20;
TH1=0xfd;
SCON=0x50;
TR1=1;
a[j]=c;
x=a[j];
sertx(x);
j++;
}
Lcd8_Write_Char(c);
switch (c)
{
case '1':q=1;break;
case '2':q=2;break;
case '3':q=3;break;
case '4':q=4;break;
case '5':q=5;break;
case '6':q=6;break;
case '7':q=7;break;
case '8':q=8;break;
case '9':q=9;break;
case '0':q=0;break;
case '-':break;
}
t=rs*q;

tot=tot+t;
Delay(1000);
Lcd8_Clear();
Lcd8_Set_Cursor(1,1);
Lcd8_Write_String("MORE ITEMS Y/N");
while(!(c = Read_Keypad()));
S1=0;
Delay(250);
S1=1;
}
if(c=='+')
goto l2;
l1:
i=1;
Lcd8_Clear();
Lcd8_Set_Cursor(1,1);
Lcd8_Write_String("total RS: ");
while(tot>0)
{
temp=tot%10;
tot=tot/10;
Lcd8_Set_Cursor(1,(15-i));

Lcd8_Write_Char(temp+48);
i++;
}
Lcd8_Set_Cursor(2,1);
Delay(4000);
Lcd8_Clear();

Lcd8_Set_Cursor(1,1);
Lcd8_Write_String("ORDER RECEIVED");
Lcd8_Set_Cursor(2,1);
Lcd8_Write_String("PLEASE WAIT");
Delay(10000);
}}
Kitchen side
#include<reg52.h>
//including sfr registers for ports of the controller
#include<lcd.h>
//LCD Module Connections
sbit RS = P3^6;
sbit EN = P3^7;
sbit D0 = P2^0;
sbit D1 = P2^1;
sbit D2 = P2^2;
sbit D3 = P2^3;
sbit D4 = P2^4;
sbit D5 = P2^5;
sbit D6 = P2^6;
sbit D7 = P2^7;
//End LCD Module Connections
//Keypad Connections
sbit R1 = P1^0;
sbit R2 = P1^1;
sbit R3 = P1^2;
sbit R4 = P1^3;
sbit C1 = P1^4;
sbit C2 = P1^5;
sbit C3 = P1^6;
sbit C4 = P1^7;

//End Keypad Connections


int a[30],i;
void Delay(int a)
{
int j;
int i;
for(i=0;i<a;i++)
{
for(j=0;j<100;j++)
{
}
}
}
char Read_Keypad()
{
C1=1;
C2=1;
C3=1;
C4=1;
R1=0;
R2=1;
R3=1;
R4=1;
//if(C1==0){Delay(100);while(C1==0);return '7';}
//if(C2==0){Delay(100);while(C2==0);return '8';}
//if(C3==0){Delay(100);while(C3==0);return '9';}
//if(C4==0){Delay(100);while(C4==0);return '/';}
R1=1;
R2=0;
R3=1;
R4=1;

//if(C1==0){Delay(100);while(C1==0);return '4';}
//if(C2==0){Delay(100);while(C2==0);return '5';}
//if(C3==0){Delay(100);while(C3==0);return '6';}
//if(C4==0){Delay(100);while(C4==0);return 'X';}
R1=1;
R2=1;
R3=0;
R4=1;
//if(C1==0){Delay(100);while(C1==0);return '1';}
//if(C2==0){Delay(100);while(C2==0);return '2';}
//if(C3==0){Delay(100);while(C3==0);return '3';}
if(C4==0){Delay(100);while(C4==0);return '-';}
R1=1;
R2=1;
R3=1;
R4=0;
if(C1==0){Delay(100);while(C1==0);return 'C';}
//if(C2==0){Delay(100);while(C2==0);return '0';}
//if(C3==0){Delay(100);while(C3==0);return '=';}
if(C4==0){Delay(100);while(C4==0);return '+';}
return 0 ;
}
void serial() interrupt 4
{
int tot=0,temp=0,k,b[3];
Lcd8_Clear();
for(k=0;k<3;k++)
{
while(RI==0);
b[k]=SBUF;
Lcd8_Set_Cursor(1,k);
Lcd8_Write_Char(SBUF);
temp=((temp*10)+(SBUF-48));

RI=0;
}
ES=1;
a[i]=temp;
i++;
return;
}
void main()
{
int i=0,q,rs,t=1,tot=0,k,r,o,m=0;
char c,p,total;
int x,it,n,ta,j=0,temp1,temp2,temp;
EA=1;
ES=1;
while(1)
{
TMOD=0x20;

//Enable Timer 1

TH1=0XFD;
SCON=0x50;
TR1=1;
temp=0;
Lcd8_Init();
while(1)
{
while(!(c = Read_Keypad()));
if(c=='+')
{
Lcd8_Clear();
j++;
x=a[j];
n=x%10;
x=x/10;

o=x%10;
x=x/10;
ta=x%10;
Lcd8_Set_Cursor(1,1);
Lcd8_Write_String("Table no : ");
Lcd8_Set_Cursor(1,12);
Lcd8_Write_Char(ta+48);
Lcd8_Set_Cursor(2,0);
Lcd8_Write_String("ITEM: ");
switch (o)
{
case 1: Lcd8_Write_String("rice"); break;
case 2: Lcd8_Write_String("c.b"); break;
case 3: Lcd8_Write_String("appam"); break;
case 4: Lcd8_Write_String("idly"); break;
case 5: Lcd8_Write_String("poori"); break;
case 6: Lcd8_Write_String("sweets"); break;
case 7: Lcd8_Write_String("coffee"); break;
case 8: Lcd8_Write_String("tea"); break;
case 9: Lcd8_Write_String("water"); break;
case 0: Lcd8_Write_String("waiter");
break;
}

Lcd8_Set_Cursor(2,14);
Lcd8_Write_Char(n+48);
Delay(1000);
}
else if(c=='-')
{
Lcd8_Clear();
j--;
x=a[j];
n=x%10;
x=x/10;
o=x%10;
x=x/10;
ta=x%10;
Lcd8_Set_Cursor(1,1);
Lcd8_Write_String("Table no : ");
Lcd8_Set_Cursor(1,12);
Lcd8_Write_Char(ta+48);
Lcd8_Set_Cursor(2,0);
Lcd8_Write_String("ITEM: ");
switch (o)
{
case 1: Lcd8_Write_String("rice"); break;
case 2: Lcd8_Write_String("c.b"); break;
case 3: Lcd8_Write_String("appam"); break;
case 4: Lcd8_Write_String("idly"); break;
case 5: Lcd8_Write_String("poori"); break;

case 6: Lcd8_Write_String("sweets"); break;


case 7: Lcd8_Write_String("coffee"); break;
case 8: Lcd8_Write_String("tea"); break;
case 9: Lcd8_Write_String("water"); break;
case 0: Lcd8_Write_String("waiter"); break;
case '-':break;
}
Lcd8_Set_Cursor(2,14);
Lcd8_Write_Char(n+48);
Delay(1000);
}

}
}
}

Вам также может понравиться