◀ Previous Next ▶ Up ▲


witpoko.com


ขอความช่วยเหลือด่วนที่สุดดค่ะ จะส่งงานแล้ว เกี่ยวกับโปรแกรมลดขนาดข้อมูลที่ได้รับจากGPSค่ะ

คือต้องการนำค่าละติจูด ลองติจูด ของจีพีเอสออกมาใช้นะค่ะเขียนโปรแกรมแล้วค่ามันออกมาเฉพราะฟิลิบดานะค่ะต้องเขียนเพิ่มเติมส่วนไหนค่ะหรือแกยังไงรบกวนด้วยนะค่ะข้งล่างคือSource code นะค่ะ(เขียนโดยใช้keil cนะค่ะ)
#include <regx52.h>
#include <stdio.h>
/*********************** Function Receive data from serial port ***************************/
unsigned char Rx(void)
{
unsigned char dat=0;
while(~RI); //Wait for recieve Byte complete
dat = SBUF; //Receive Byte to MCS-51
RI = 0;
return(dat);
}
/************************ Function Delay for Use Interrupt ********************************/
void Delay(void)
{
unsigned char m;
for(m=0;m<200;m++);
}
/************************************** Main *********************************************/
unsigned char dat,rmc[40],get[40],i,k,a,b,c,d;
unsigned int e,f;
bit flag;
void main(void)
{ PCON = 0x00;
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xFA;
TR1 = 1;
TI = 1; //For use Function Printf
while(1){
flag =1;
while(flag)
{
if(RI)
if(Rx()=='$')
if(Rx()=='G')
if(Rx()=='P')
if(Rx()=='R')
if(Rx()=='M')
if(Rx()=='C')
if(Rx()==',')
{
i=0;
for(i=0;i<40;i++)
rmc[i]=Rx();
}
flag=0;
k=0;
get[k]='L';k++;
get[k]='A';k++;
get[k]='T';k++;
get[k]=':';k++;
for(i=13;i<15;i++)
{get[k]=rmc[i];
k++;
}
get[k]=0x27;k++;
for(i=15;i<17;i++)
{get[k]=rmc[i];
k++;
}
get[k]=0x27;k++;
a=rmc[18]-0x30;
b=rmc[19]-0x30;
c=rmc[20]-0x30;
d=rmc[21]-0x30;
e=((a*1000)+(b*100)+(c*10)+d);
e=e/10000;
f=e*6000;
a=f/1000;
f=f%1000;
b=f/100;
f=f%100;
c=f/10;
f=f%10;
d=f;
rmc[18]=a+0x30;
rmc[19]=b+0x30;
rmc[20]=c+0x30;
rmc[21]=d+0x30;
get[k]=rmc[18];k++;
get[k]=rmc[19];k++;
get[k]=0x2E;k++;
get[k]=rmc[20];k++;
get[k]=rmc[21];k++;
get[k]=0x22;k++;
get[k]='-';k++;
get[k]=rmc[23];k++;
get[k]=' ';k++; //k=18
get[k]='L';k++;
get[k]='O';k++;
get[k]='N';k++;
get[k]='G';k++;
get[k]=':';k++;
for(i=25;i<28;i++)
{get[k]=rmc[i];
k++;
}
get[k]=0x27;k++;
for(i=28;i<30;i++)
{get[k]=rmc[i];
k++;
}
get[k]=0x27;k++;
a=rmc[31]-0x30;
b=rmc[32]-0x30;
c=rmc[33]-0x30;
d=rmc[34]-0x30;
e=((a*1000)+(b*100)+(c*10)+d);
e=e/10000;
f=e*6000;
a=f/1000;
f=f%1000;
b=f/100;
f=f%100;
c=f/10;
f=f%10;
d=f;
rmc[31]=a+0x30;
rmc[32]=b+0x30;
rmc[33]=c+0x30;
rmc[34]=d+0x30;
get[k]=rmc[31];k++;
get[k]=rmc[32];k++;
get[k]=0x2E;k++;
get[k]=rmc[33];k++;
get[k]=rmc[34];k++;
get[k]=0x22;k++;
get[k]='-';k++;
get[k]=rmc[36];k++; //k=38
}
for(k=0;k<39;k++)
{
SBUF=get[k];
TI=0;
while(~TI);
TI=0;
}
}
}


จากคุณ : แตง -[ 18 ต.ค. 48 - 17:17:53 A:58.10.205.156 X: ]





กระทู้ยอดนิยม