Microcontroller › 8051 › Help with serial communication › TRY THISMY WORKING
TRY THIS
MY WORKING CODE
#include………
…………..
…………
// SERIAL COMMUNICATION
void serial_init (void); //initialise serial communication
unsigned char recv_byte (void); //recieves th ASCII value
void send_byte (unsigned char); //sends ASCII value to PC or microcontroller
void sendString (unsigned char *str);
void enter(void);
void main()
{
unsigned char A;
serial_init();
sendString(“WELCOME TO RS232 COM1”);
enter();
sendString(“DEXTER8051”);
enter();
A=recv_byte()
…………………
………………
………………
}
/*SENDING THE ENTER CAMMAND*/
void enter()
{
send_byte(0x0d); // <CR>
send_byte(0x0a); // <LF>
}
/*SERIAL ROUTINES*/
void serial_init()
{
SCON=0x50; //mode 1 serial communication
TMOD=0x20; //timer 1 auto reload mode
TH1=0xfd; //9600 baudrate at 11.0592 MHz
TR1=1;
EA=1;
EX0=1;
IT0=1;
IP=0x10;
}
/* RECIVING BIT FROM PC*/
unsigned char recv_byte()
{
unsigned char c;
while(!RI); //waits till a byte is recieved
RI = 0;
c = SBUF;
return(c);
}
/* SENDING BIT TO PC*/
void send_byte(unsigned char ch)
{
TI = 0;
SBUF = ch;
while(!TI);
del_1ms();
}
/* SENDING STRING BIT TO PC*/
void sendString(unsigned char *str)
{
while(*str != ‘