#include <reg51.h>
// PNP 9012 0°Ê§@
/**********************************************************************************/
sbit LED_1 = P1^0;
sbit LED_2 = P1^1;
sbit LED_3 = P1^2;

void Heater(unsigned int);
void Fan(unsigned int);
void All_lights(unsigned int);
void delay_1ms(int);

// LED delay
void delay_1ms(int x)
{
	int i,j;
	for(i=0;i<x;i++)
		for(j=0;j<60;j++);
}
/**********************************************************************************/
// ¤â±±°Æµ{¦¡
void Heater(unsigned int x)
{
	if(x==1)
	{
		LED_1 = 1; //close
	}
  else	
	{
		LED_1 = 0; //open
	}
}

void Fan(unsigned int y)
{
	if(y==1)
	{
		LED_2 = 1; //close
		LED_3 = 1;
	}
  else	
	{
		LED_2 = 0; //open
		LED_3 = 0;
	}
}

void All_lights(unsigned int z)
{
	if(z==1)
	{
		LED_1 = LED_2 = LED_3 = 1; //close
	}
	else 
	{
		LED_1 = LED_2 = LED_3 = 0; //open
	}
}

/**********************************************************************************/
void main(void) //ver.3 正常動作
{
	unsigned char B,cmd;	
	unsigned char dht[5]={0,1,2,3,4}; 			//無法以此方式傳送
	unsigned char ddht[3]={0x61,0x31,0x32}; //ASCII，可用此方式傳送

	TMOD=0x20;		 	      //UART正常
	TH1=0xFD;
	SCON=0x50;
	TR1=1;
	
	LED_1=LED_2=LED_3=1; //啟動時燈號
				
while(1)
  {	
			while(RI==0);
			B=SBUF;
			cmd=B;
			
			switch(cmd)
			{
				case 0x41:        // ASCII=A 'heater_open'
							Heater(1);
							delay_1ms(1000);
							RI=0;
				      
				      SBUF=0x57; //  ASCII 0x57=W, 可運行
							while(TI==0);
							TI=0;  
							break;
				case 0x42:       //  ASCII=B 'heater_close'
							Heater(0);
							delay_1ms(1000);
							RI=0;
				      
				      SBUF=dht[0]; // 無法運行 
							while(TI==0);
							TI=0;				
							break;		
				case 0x43:		 //  ASCII=C 'Fan_open'
			        Fan(1);
							delay_1ms(1000);
			        RI=0;
				      
				      SBUF=ddht[2]; //  ASCII 0x32=2, 可運行
							while(TI==0);
							TI=0;				
				      break;		
			}
  }	
}