基于51的单片机GPS定位系统设计

硬件方案

        本设计主要是制作出一款基于51单片机的GPS定位器,根据设计需求,硬件部分主要由51单片机最小系统,GPS定位模块,LCD12864液晶,LED指示灯,3.3V稳压电路,天线设计而成;原理图如图:

 

PCB图如下:

 

功能

  • 采用LCD12864液晶显示当前的时间、日期、经度、速度、航向、高度、海拔等信息。
  • 采用了3颗LED指示灯,红灯为GPS接收数据指示灯,黄灯为GPRNC数据有效指示灯,绿灯为GPGGA数据有效指示灯。

软件设计

主程序源码

/****************************************
主函数    
/****************************************/
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) //如果数据无效超过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) //如果数据无效超过20次
                    {
                        RMC_NO;
                        error_num = 20;
                        GPS_Init();     //返回初始化
                    }
                    gps_flag = 0;
                    rev_stop  = 0;
                    REV_NO;
                }
            }
        }
    }
}

资料链接:https://pan.baidu.com/s/166fyv2oDTUXP12hvIh1cgQ?pwd=za05 
提取码:za05

  • 8
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值