您现在的位置: 首页 >> 技术支持 >> 基于C8051FO4O的简易GPS导航仪
基于C8051FO4O的简易GPS导航仪
随着科学技术的发展,GPS定位技术已经越来越走进普通人的生活,本文介绍了利用C8051FO4O单片机开发板、GPS接收机、液晶显示屏等实现的低成本、简单的局域GPS导航系统设计。系统通过串口实现和GPS接收机数据的通信,同时通过系统自制的基于矢量图形的数字地图,实现数字地图与导航信息的同步显示,并可以绘制载体的航迹。
系统结构
GPS接收机通过串口和MCU相连,实时提取数据,得到用户的位置参数,通过白带的电子地图,由LCD显示用户位置,实现导航定位的目的)该系统组成原理的结构图如下图所示。
LCD接口电路 LCD接口板与C8051FO4O开发板通过开发板的J24和接口板的J5的96针插针连接,其中96针插针接口描述如下表所示。
LCD接口电路中P7.O~P7.7(DO~D7)为数据总线,P5.5~P5了(Al3~Al5)为地址总线,PO.6(RD)为读数据信号,PO.7(WR)为写数据信号,同时将PO.2和PO.3引出,交叉配置为串口1的发送和接收端口。
GPS接收和处理
串行通信 C8051FO4O有两个串行端口(UARTO和URAT1,作为控制器和串行设备之间的编码转换器。通过配置串行口控制寄存器SCON,设置串口工作方式,当发送数据时,控制器的字节数据转换为串行的位数据;反之接受数据时,串行的位数据转换为字节数据。串行口控制寄存器SCON的SMO、SM1用于定义串行口工作方式选择位,如下表所示,
其中fosc为晶振频率,同时GPS的串行通信参数为:波特率=4800bps,数据位=8位,开始位=1位,停止位=1位。串口初始化程序如下程序所示,
程序 1
/*********** 串口初始化配制 *********/
void uartO_ini()
{
SFRPAG E = UARTO_PAG E;
SADENO = OxOO;// SADENO为 UARTO从机地址
控制寄存器,0表示相应位地址不参加过滤,即该位地址
值为0或 1 均为有效地址
SADDRO = OxOO;// SADDRO 为 UARTO 从机地
址设置寄存器
SSTAO = Ox15;// SMODO =1,UARTO波特率2
分频允许,此时在使用 T1 至T4 为波特率发生定时器时,
计算公式为 BandRate=ft/1 6,ft为 T1 至T4 的溢出率
//TX0时钟源为 T2,RXO 时钟源为 T2
SCONO = Ox50;//工作在模式 1,为 8bit可变波特
率通讯
SCONO &= OxFC;//将 TIO和 RIO清零
t2_ini();//初始化 UARTO 的波特率产生定时器 T2
}
通过串口输出接收进来的GPS数据程序如下程序所示。
/****通过串口输出接收进来的 GPS 数据 ****/
void GPS_out()
{
p=2;//纬度部分
for(q= 0; GPS_sec[p][q] ! =’\0’ ; q++)
{
SFR PAG E= 0;
Send Char(GPS_sec[p][q]);
}
Send Char(' * ');
p=4;//经度部分
for(q=0;GPS_sec[pl[q]! =’\0’;q++)
{
SFRPAG E= 0;
Send Char(GPS_sec[p][q];
}
Send Char('* ');
}