Thursday, 30 June 2016

Dc motor Control Serial Reception ARM7

Hello Friends
Let us have a look on Dc motor Control Serial Reception

unsigned char str1[16]={"   FORWARD     "};
unsigned char str2[16]={"   BCKWARD    "};
unsigned char str3[16]={"   RIGHT TURN  "};
unsigned char str4[16]={"   LEFT TURN   "};

void main()
{
TRISD=0;
TRISB=0;
TRISC=0X80;
lcdinit();
serialinit();
while(1)
{
serrx();
if(a=='F')
{
//delay(500);   // clockwise forward
//delay(500);
in1=1;
in2=0;
in3=1;
in4=0;
display(str1);
}
else if(a=='B')
{
//delay(500);
//delay(500);
in1=0;
in2=1;
in3=0;
in4=1;
lcdcmd(0x80);
display(str2);
//delay(500);
}

else if(a=='R')
{
//delay(500);
//delay(500);
in1=0;
in2=1;
in3=1;
in4=1;
lcdcmd(0x60);
display(str3);
//delay(500);
}
else if(a=='L')
{
//delay(500);
//delay(500);
in1=1;
in2=1;
in3=1;
in4=0;
lcdcmd(0x80);
display(str4);
//delay(500);
}
else if(a=='S')
{
//delay(500);
//delay(500);
in1=1;
in2=1;
in3=1;
in4=1;
lcdcmd(0x80);
display(str5);
//delay(500);
}

}

}


Embedded Linux Training  
void lcdinit()
{
//PORTD=0x00;
delay(10);
lcdcmd(0x38);
delay(10);
lcdcmd(0x0e);
delay(10);
lcdcmd(0x01);
delay(10);
lcdcmd(0x06);
delay(10);
lcdcmd(0x80);
delay(10);
}


void serialinit()
{
RCSTA=0X90;
SPBRG=12;
TXSTAbits.TXEN=1;
RCSTAbits.SPEN=1;
}


void serrx()
{
while (PIR1bits.RCIF==0);
a=RCREG;
}


void delay(int t)
{
int i;
for(i=0;i<=10*t;i++)
{
}
}

void display(unsigned char a[16])
{
int i,q;
for(i=0;i<=15;i++)
{
q=a[i];
lcddata(q);
}
}

void lcdcmd(unsigned char cmd)
{
ldata=cmd;
rs=0;
en=1;
delay(10);
en=0;

}

void lcddata(unsigned char dat)
{
ldata=dat;
rs=1;
en=1;
delay(10);
en=0;

}

No comments:

Post a Comment