this project is designed and implemented to control the meeting room or conference status using 80C51 microcontroller. LCD, LEDs and seven segment display interfaced together with AT89C51 to show meeting room or any other conference status , to indicate exact number of people who are entering and leaving the meeting room . In place of using PIR sensor I used pushbuttons so that I can test it manually, in the update version of project we will replace pushbuttons with PIR sensor.
#include <reg51.h>
sbit rs=P3^0;
sbit rw=P3^1;
sbit en= P3^2;
sbit sw0= P3^3;
sbit sw1= P3^4;
sbit led0= P3^5;
sbit led1= P3^6;
sbit led2= P3^7;
void msdelay(void);
void delay(unsigned int);
void cmd(unsigned char);
void dat(unsigned char);
void main(void)
{
unsigned int number[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char ch[]="room is full";
unsigned char ch1[]="keep entering";
unsigned char ch2[] ="ROOM IS EMPTY";
unsigned int k,s;
P1=0xC0;
while(1){
if (sw0==0 && s<9)
{
s++;
cmd(0x01);
P1= number[s];
msdelay ();
if (s==9)
{
cmd(0x80);
cmd(0x0c);
cmd(0x06);
for(k=0;ch[k]!='\0';k++)
dat(ch[k]);
led0=0;
led1=1;
led2=1;
}
else
{
cmd(0x80);
cmd(0x0c);
cmd(0x06);
for(k=0;ch1[k]!='\0';k++)
dat(ch1[k]);
led1=0;
led0=1;
led2=1;
}
}
else if(sw1==0 && s>0)
{
s--;
cmd(0x01);
P1 = number[s];
msdelay ();
if (s==0){
cmd(0x80);
cmd(0x0c);
cmd(0x06);
for(k=0;ch2[k]!='\0';k++)
dat(ch2[k]);
led0=1;
led1=1;
led2=0;
}
else
{
cmd(0x80);
cmd(0x0c);
cmd(0x06);
for(k=0;ch1[k]!='\0';k++)
dat(ch1[k]);
led0=1;
led1=0;
led2=1;
}
}
else if (s==0)
{
cmd(0x80);
cmd(0x0c);
cmd(0x06);
for(k=0;ch2[k]!='\0';k++)
dat(ch2[k]);
led0=1;
led1=1;
led2=0;
}
}
}
void delay(unsigned int t)
{
unsigned int i,j;
en=1;
for(i=0;i<t;i++)
for(j=0;j<150;j++);
en=0;
}
void msdelay()
{
unsigned int a,b;
for(a = 0; a <50; a++)
{
for(b = 0; b <50; b++)
;
}
}
void cmd(unsigned char ch)
{
rs=0;
rw=0;
P2=ch;
delay(20);
}
void dat(unsigned char ch)
{
rs=1;
rw=0;
P2=ch;
delay(20);
}