#include <16f877a.h>
#use delay(clock=20000000)
#fuses hs,noprotect,nowdt,nolvp
#define use_portb_lcd TRUE
#include <lcd.c>
#define IR1 Pin_A0
#define IR2 Pin_A1
#define IR3 Pin_A3
#define IR4 Pin_A4
void main()
{
int people_in = 0, people_out = 0;
set_tris_a(0b00001111);
lcd_init();
lcd_putc("\fAutomatic Room");
lcd_putc("\nLight Controller");
delay_ms(5000);
lcd_putc("\f");
display_1st :
lcd_gotoxy(1,1);
lcd_putc("People in = \n");
lcd_putc("People out = \n");
lcd_gotoxy(14,1);
printf(lcd_putc,"%3u",people_in);
do{
if (input(IR1)==0 && input(IR3) ==0 && input(IR2)==1 && input(IR4)==1)
{
while((input(IR1) && input(IR3)) ^ (input(IR2) && input(IR4))); // (0 AND 0) = 0 (1 AND 1) = 1 0 XOR 1 = 1= TRUE
if (input(IR1)==0 && input(IR3) ==0 && input(IR2)==0 && input(IR4)==0)
{
while((!input(IR1) && !input(IR3)) && (!input(IR2) && !input(IR4))); // 1 AND 1 AND 1 AND 1 = 1 = TRUE
if (input(IR1)==1 && input(IR3) ==1 && input(IR2)==0 && input(IR4)==0)
{
people_in += 1;
lcd_gotoxy(14,1);
printf(lcd_putc,"%3u",people_in);
}
while((input(IR1) && input(IR3)) ^ (input(IR2) && input(IR4)));
}
}
}while(1);
}