產(chǎn)品詳情
“本設計主要是制作出一款基于51單片機的GPS定位器,根據(jù)設計需求,硬件部分主要由51單片機+GPS定位模塊+LCD12864液晶+LED指示燈+3.3V穩(wěn)壓電路+天線設計而成;
”一.硬件方案
本設計主要是制作出一款基于51單片機的GPS定位器,根據(jù)設計需求,硬件部分主要由51單片機+GPS定位模塊+LCD12864液晶+LED指示燈+3.3V穩(wěn)壓電路+天線設計而成;如圖:
二.設計功能
(1)單片機選用:51單片機(STC89C51/52、AT89C51/52、AT90C51/52均可兼容),GPS定位模塊(帶天線)。
(2)采用LCD12864液晶顯示當前的時間、日期、經(jīng)度、速度、航向、高度、海拔等信息。
(3)采用了3顆LED指示燈,紅燈為GPS接收數(shù)據(jù)指示燈,黃燈為GPRNC數(shù)據(jù)有效指示燈,綠燈為GPGGA數(shù)據(jù)有效指示燈。
三.設計原理圖
(1)原理圖主要采用AD軟件進行設計,如圖:
(2)PCB圖如下:
四.軟件設計
主程序源碼
/****************************************
主函數(shù)
/****************************************/
void main(void)
{
uchar error_num = 0;
Uart_Init(); //初始化串口
Lcd_Init(); //初始化LCD
GPS_Init(); //初始化GPS
rev_stop=0;
REV_NO;
while(1)
{
if (rev_stop) //如果接收完一行
{
TR0 = 1; //開啟定時器
REV_YES;
if (change_page % 2 == 1) //換頁
{
if (GPS_GGA_Parse(rev_buf, &GPS)) //解析GPGGA
{
GGA_YES;
GPS_DisplayTwo(); //顯示第二頁信息
error_num = 0;
gps_flag = 0;
rev_stop = 0;
REV_NO;
}
else
{
error_num++;
if (error_num >= 20) //如果數(shù)據(jù)無效超過20次
{
GGA_NO;
error_num = 20;
GPS_Init(); //返回初始化
}
gps_flag = 0;
rev_stop = 0;
REV_NO;
}
}
else
{
if (GPS_RMC_Parse(rev_buf, &GPS)) //解析GPRMC
{
RMC_YES;
GPS_DisplayOne(); //顯示GPS###頁信息
error_num = 0;
gps_flag = 0;
rev_stop = 0;
led1 = 1;
}
else
{
error_num++;
if (error_num >= 20) //如果數(shù)據(jù)無效超過20次
{
RMC_NO;
error_num = 20;
GPS_Init(); //返回初始化
}
gps_flag = 0;
rev_stop = 0;
REV_NO;
}
}
}
}
}