跳到主要内容

GPS 模块与 8051 单片机的接口

GPS 模块是一种利用全球定位系统来确定车辆或人员位置的设备。GPS 接收器可为用户在地球上任何时间和地点提供可靠的导航、定位和时间服务。该全球定位系统使用 24 到 32 颗卫星向接收器提供数据。GPS 在全球导航中变得非常重要,并可用于土地测量、路径标记、地图制作、跟踪和监控、商业及科学用途。在了解本电路之前,可先了解如何将 LCD 与 8051 单片机接口。

1. GPS 与 8051 单片机接口原理

GPS 模块通过读取卫星传输的信号来计算位置。每颗卫星连续发送包含发送时间的消息。GPS 接收器根据每条消息的到达时间测量到各卫星的距离。这些信息用于计算 GPS 接收器的位置。接收到的原始数据被转换为用户可用的纬度(LATITUDE)、经度(LONGITUDE)、海拔(ALTITUDE)、速度(SPEED)和时间(TIME)。

2. GPS 与 8051 单片机接口电路图

电路图如下所示:

alt text

3. 电路元件

  • AT89C51 控制器
  • 编程板
  • 编程电缆
  • 12V DC 电池或适配器
  • MAX232 IC
  • 16×2 LCD
  • GPS 模块
  • 电位器 10k
  • 12 MHz 晶振
  • 电解电容 – 1μF (4 个), 10μF
  • 陶瓷电容 – 33pF (2 个)
  • 电阻 – 10kΩ

4. 电路设计

在上述电路中,LCD 数据引脚连接到控制器的 PORT2,控制引脚 RS、RW 和 EN 分别连接到 P1.0、P1.1 和 P1.2。LCD 上显示当前位置的纬度和经度值。电位器 RV1 用于调整 LCD 对比度。GPS 模块的接收引脚连接到 MAX232 IC 的 13 引脚,GND 引脚接地。控制器的 RXD 引脚连接到 MAX232 的 12 引脚。MAX232 IC 用于电平转换。

GPS 接收器根据 NMEA 标准使用 RS232 协议持续传输数据。在 NMEA 格式中,位置信息的纬度和经度值位于 GPRMC 语句中。本项目从 NMEA 格式中提取 LATITUDE 和 LONGITUDE,并显示在 LCD 上。

数据需通过 UART 协议从 GPS 模块串行接收至控制器,然后从接收到的消息中提取纬度和经度值并显示在 LCD 上。

5. 从 NMEA 格式中提取纬度和经度值

GPS 模块接收到的前 6 个字符与字符串 $GPRMC 比较,如果匹配则进行后续处理,否则重复该过程。如果匹配,则等待两个逗号(,),下一个字符表示 GPS 是否激活。如果该字符为 A,则 GPS 激活,否则 GPS 未激活。然后再次等待逗号(,),接下来的 9 个字符表示纬度。再等待两个逗号(,),接下来的 10 个字符表示经度。

若无需编程即可查看纬度和经度,可使用 Trimble Studio 软件。该软件在接口 GPS 模块时可直接提供纬度、经度、海拔、速度、时间和日期,并可显示在 Google 地图上。

以下函数用于从 NMEA 格式中提取 LATITUDE 和 LONGITUDE 值:

void gps ()
{
unsigned int LAT[9], LON[10];
unsigned char Temp, i;
if (rx_data() == ‘$’)
{
if( rx_data() == ‘G’)
{
if (rx_data() == ‘P’)
{
if (rx_data() == ‘R’)
{
if (rx_data() == ‘M’)
{
if (rx_data() == ‘C’)
{
while (rx_data() !=,);
while (rx_data() !=,);
/*checking for “A” condition*/
Temp = rx_data();
if (Temp == ‘A’||Temp == ‘V’)
{
while (rx_data() !=,);
/*latitude values*/
LCDCmd (0x80);
for (i=0; i<9; i++)
{
LAT[i] = rx_data();
LCDData (LAT[i]);
}
while (rx_data() !=,);
while (rx_data() !=,);
/*longitude values*/
LCDCmd (0xc0);
for (i=0; i<10; i++)
{
LON[i] = rx_data();
LCDData (LON[i]);
}
}
}
}
}
}
}
}
}

6. 操作方法

  1. 将程序烧录到 8051 单片机
  2. 按电路图连接线路
  3. 使用适配器为 GPS 模块供电
  4. 将 GPS 模块接口连接至计算机,并打开 Hyper Terminal 检查接收到的消息
  5. 检查 GPS 是否激活
  6. 连接 GPS 到电路,可观察 LCD 显示纬度和经度值
  7. 关闭电路和 GPS 模块的电源

7. 电路应用

  • 用于海上导航、汽车导航和车队管理
  • 用于跟踪设备和地图制作设备
  • 用于个人定位
  • 用于嵌入式系统项目以确定位置

点击下载项目代码