#pragma SMALL DB OE #include sbit power = P0^0; sbit green = P0^1; sbit red = P0^3; char ReceiveSerial() { char c; TMOD = 0x20; /* configure timer for the correct baud rate */ TH1 = 0xe6; /* 1200 bps for 12 MHz clock */ TCON = 0x00; /* Set timer to not running */ SCON = 0x50; /* Set Serial IO to receive and normal mode */ TR1 = 1; /* start timer to Receive */ while( (SCON & 0x01) == 0 ) /* wait for receive data */; c = SBUF; return c; } /* Delay function */ void delay() { int i, j; for (i=0; i<1000; i++) for (j=0; j<50; j++) i=i+0; } /* Main function which will blink LED */ void main (void) { char c; power = 0; /* on */ red = 0; /* off */ green = 0; /* off */ while(1) { c = ReceiveSerial(); if (c == 'x') /* closed */ { red = 0; green = 1; delay(); } else if (c =='y') /* open/day */ { red = 1; green = 1; delay(); } else if(c == 'z') /* open/night */ { green = 0; red = 1; delay(); red = 0; delay(); } } }