UART Micro-controller Program (VISHNU KIRAN MARAGANI)
#include <REGX51.H>
sbit motor1_1=P1^0;
sbit motor1_2=P1^1;
sbit motor2_1=P1^4;
sbit motor2_2=P1^5;
sbit led1=P1^2;
sbit led2=P1^3;
sbit wave=P1^7;
void uartx(unsigned char*);
void delay(int);
//void select(unsigned char);
void main()
{
char c;
unsigned int a[50], i=0;
motor1_1=0;
motor1_2=0;
motor2_1=0;
motor2_2=0;
led1=0;
led2=0;
TMOD=0X20; //timer1 mode2
TH1=0XFD; //baud rate 9600
SCON=0X50; //mode 1 and set REN (Receive enable) bit
TR1=1; //start the timer
while (1)
{
wave=~wave;
uartx("menu\n");
uartx("1.right\n");
uartx("2.left\n");
uartx("3.forward\n");
uartx("4.backward\n");
while (RI==0); //monitoring RI bit until rise the bit
//transmit characters 'a' through SBUF register
a[i]=SBUF; //moving Data from SBUF to array
RI=0; //clear the RI bit
SBUF=a[i]; //array assigned to SBUF register
while (TI==0); //monitoring TI bit until rise the bit
TI=0;
c=a[i]; //clear the RI bit
/*SBUF=a[i]; //array assigned to SBUF register
while (TI==0); //monitoring TI bit until rise the bit
TI=0;*/ //clear the TI bit
if(c==0x31)
{
uartx("1.right\n");
motor1_1=1;
motor1_2=0;
motor2_1=0;
motor2_2=0;
led1=1;
led2=0;
delay(10);
}
else if(c==0x32)
{
uartx("2.left\n");
motor1_1=0;
motor1_2=0;
motor2_1=1;
motor2_2=0;
led1=0;
led2=1;
delay(10);
}
else if(c==0x33)
{
uartx("3.forward\n");
motor1_1=1;
motor1_2=0;
motor2_1=1;
motor2_2=0;
led1=1;
led2=1;
delay(10);
}
else if(c==0x34)
{
uartx("4.backward\n");
motor1_1=0;
motor1_2=1;
motor2_1=0;
motor2_2=1;
led1=0;
led2=0;
delay(10);
}
else
{
uartx("wrong selection. select 1/2/3/4\n");
}
}
}
void uartx(unsigned char*p)
{
char mydata;
while(*p!='\0')
{
mydata=*p;
SBUF=mydata;
while(TI==0);
TI=0;
p++;
}
}
void delay(int k)
{
int l,j,i;
for(l=0;l<=k;l++)
{
for(j=0;j<=1275;j++)
{
i++;
i--;
}
}
}
#include <REGX51.H>
sbit motor1_1=P1^0;
sbit motor1_2=P1^1;
sbit motor2_1=P1^4;
sbit motor2_2=P1^5;
sbit led1=P1^2;
sbit led2=P1^3;
sbit wave=P1^7;
void uartx(unsigned char*);
void delay(int);
//void select(unsigned char);
void main()
{
char c;
unsigned int a[50], i=0;
motor1_1=0;
motor1_2=0;
motor2_1=0;
motor2_2=0;
led1=0;
led2=0;
TMOD=0X20; //timer1 mode2
TH1=0XFD; //baud rate 9600
SCON=0X50; //mode 1 and set REN (Receive enable) bit
TR1=1; //start the timer
while (1)
{
wave=~wave;
uartx("menu\n");
uartx("1.right\n");
uartx("2.left\n");
uartx("3.forward\n");
uartx("4.backward\n");
while (RI==0); //monitoring RI bit until rise the bit
//transmit characters 'a' through SBUF register
a[i]=SBUF; //moving Data from SBUF to array
RI=0; //clear the RI bit
SBUF=a[i]; //array assigned to SBUF register
while (TI==0); //monitoring TI bit until rise the bit
TI=0;
c=a[i]; //clear the RI bit
/*SBUF=a[i]; //array assigned to SBUF register
while (TI==0); //monitoring TI bit until rise the bit
TI=0;*/ //clear the TI bit
if(c==0x31)
{
uartx("1.right\n");
motor1_1=1;
motor1_2=0;
motor2_1=0;
motor2_2=0;
led1=1;
led2=0;
delay(10);
}
else if(c==0x32)
{
uartx("2.left\n");
motor1_1=0;
motor1_2=0;
motor2_1=1;
motor2_2=0;
led1=0;
led2=1;
delay(10);
}
else if(c==0x33)
{
uartx("3.forward\n");
motor1_1=1;
motor1_2=0;
motor2_1=1;
motor2_2=0;
led1=1;
led2=1;
delay(10);
}
else if(c==0x34)
{
uartx("4.backward\n");
motor1_1=0;
motor1_2=1;
motor2_1=0;
motor2_2=1;
led1=0;
led2=0;
delay(10);
}
else
{
uartx("wrong selection. select 1/2/3/4\n");
}
}
}
void uartx(unsigned char*p)
{
char mydata;
while(*p!='\0')
{
mydata=*p;
SBUF=mydata;
while(TI==0);
TI=0;
p++;
}
}
void delay(int k)
{
int l,j,i;
for(l=0;l<=k;l++)
{
for(j=0;j<=1275;j++)
{
i++;
i--;
}
}
}