Turn ON and OFF led using serial communication.
Code :
#include<reg51.h>                            // Include 8051 library .
void ser_init();                                   // Initialize serial communications.
void tx(unsigned char w);                  // Serial transmission function definition.
unsigned char d;                                // Store the character received from user 
unsigned char rx();                            // Serial receive function definition.
sbit led = P1^0;                                 // Set led bit.
void main()                                      // Main function starts
{
	ser_init();                               // Serial function calling. 
	d=rx();                                   // Receive data and store it in d.
	tx(d);                                      // Transmit data stored in d.
	if(d=='O')                                   //  if character is 'O'
	{
		led = 0;                               // led will turn On.
	}
       if(d=='F')                                    // if character is 'F,
	{
		led = 1;                              // led will turn Off.
	}
}
void tx(unsigned char w)                      // Transmit function.
{
	SBUF = w;                            // SBUF temporary buffer location where character is stored.
	while(TI==0);                       // Wait until transmission completed flag gets high.
	TI=0;                                     // Once high , make it zero for the next character. 
}
void ser_init()                                // Serial transmission function
{
	SCON = 0X50;                        // Mode 1 (8-bit UART ) 
	TMOD = 0X20;                      // Timer 1 in Mode 2.
	TH1 = 0XFD;                         // Baud rate of 9600.
	TR1 = 1;                                 // Timer run flag enabled.
}
unsigned char rx()                        // Receive function.
{
	while(RI==0);             // Wait while receive flag is not high.           
	RI=0;                           // Reset the receive flag.
	return SBUF;               // Return data received in SBUF.
}
: Circuit Diagram
 Led is connected in sinking mode. Sinking mode is when cathode of  LED is connected to Port of 8051 and anode is connected to Vcc.
A ballast resistor is added in series with led to limit the flow of current through the led and prevent excess current that can blow the led.
A terminal window is connected to microcontroller 
for serial comm. 
 RxD of  8051 is connected to TxD of terminal.
TxD of  8051 is connected to RxD of terminal.
If  ' F '  is typed led will turn OFF.

.gif)
Comments
Post a Comment