Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[Moved] GPS Logger Design PIC16F877 mikroC Pro

Status
Not open for further replies.

Amit025025

Newbie level 1
Newbie level 1
Joined
Jul 7, 2014
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Visit site
Activity points
7
Hey...
Good Morning..

I need help to make a GPS receiver module using PIC16f877..
I am using mikroC PRO for PIC with Isis Proteus as the simulator..

I shall remain grateful to you if you post the code and the circuit diagram.

Thanks
 
Last edited by a moderator:

Hi,

At libstock.com there is a NMEA library. Use it. It has an example and it will solve your issue. With minimum code your project will be completed. It is only for PIC devices. As mikre compiler doesn't support auto mem bank switching you will get "IRP bit has to be manually set for..." warning while compiling and your code might not work as expected when used with PIC16F devices, so, my advice is to use PIC18F device with mikroC Compiler and NMEA library.
 
here is a code for gps reception. if any error ask me here
void getgps(void)
{
unsigned char timeout = 50;
do
{
CREN = 0;
DelayMs(10);
CREN = 1;

while(getch() != '$')
{
}
#ifdef debug
puts("$ GOT");
#endif
/*GPS HEAD*/
i = 0;
gps_data = 0;
while(gps_data != ',')
{
gps_data = getch_timeout();
gps_head = gps_data;
i++;
}
#ifdef debug
puts("HEADER GOT");
#endif
if((gps_head[3] == 'G') &&(gps_head[4] == 'A'))
{
#ifdef debug
puts("GPGGA GOT");
#endif
GP_FLG = 1;
while(getch_timeout() != ',');
/*LATITUDE*/
i = 0;
gps_data = 0;
while(gps_data != ',')
{
gps_data = getch_timeout();
LAT = gps_data;
i++;
}
i--;
LAT = getch();
i++;
LAT = 0;
gps_data = getch_timeout();
#ifdef debug
puts("LAT GOT");
#endif
/*LONGITUDE*/
i = 0;
gps_data = 0;
while(gps_data != ',')
{
gps_data = getch_timeout();
LONG = gps_data;
i++;
}
i--;
LONG = getch_timeout();
i++;
LONG = 0;
#ifdef debug
puts("LONG GOT");
#endif
while(getch()!= 13)
{
timeout--;
}

}
}while(!GP_FLG);
return;
}
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top