|
一,打開文件(可以隨文下載放置在文檔中打開)。(如下圖1所示)
1.png (1.94 MB, 下載次數: 64)
下載附件
2020-8-23 08:31 上傳
圖1
二,調整原理圖大小,適合可視,另存工程文件。(如下圖2,3,4所示)
2.png (146.95 KB, 下載次數: 77)
下載附件
2020-8-23 08:31 上傳
圖2
3.png (116.88 KB, 下載次數: 74)
下載附件
2020-8-23 08:31 上傳
圖3
4.png (116.15 KB, 下載次數: 69)
下載附件
2020-8-23 08:31 上傳
圖4
三,點擊Source Code標簽。(如下圖5所示)
5.png (90.22 KB, 下載次數: 68)
下載附件
2020-8-23 08:31 上傳
圖5
四,編輯main.c Proteus8.9 VSM Studio Keil編譯器仿真AT89C51RD2_系列030_GPS數據接受反饋仿真 (如下圖6所示)
6.png (79.11 KB, 下載次數: 64)
下載附件
2020-8-23 08:31 上傳
圖6
五,Main.c 代碼:
/* Main.c file generated by New Project wizard
*Coder: Ziegler Yin
* Created: 周日 5月 3 2020
* Processor: AT89C51RD2
* Compiler: Keil for 8051
*/
#include "muart01.h"
volatile u8 xdata Rec_Buf[Buf_Max];
extern u8 t, Rec_OK;
u8 *gs, c=0x33;
void main()//主函數
{
U_Init();
while(1) //程序循環發送
{
while(!RI) {
mprint(table); //共有十一個字符
mprint("\r\n");
delayms(500); //兩個字符串之家間隔一秒
if(Rec_OK== 1){
mprint(Rec_Buf);
mprint("\r\n");
gs= gtnFld(Rec_Buf, ',', 2);
mprint(gs);
mprint("\r\n");
GPSs();
mZero(Rec_Buf);
Rec_OK= 0;
delayms(200); //兩個字符串之家間隔一秒
}
else{
}
}
delayms(5000); //兩個字符串之家間隔一秒
}
}
void Uart1() interrupt 4
{
if(RI) //接收到數據的中斷
{
RI=0; //清除中斷標志
if(Rec_OK==0) {
c=SBUF;
Rec_Buf[t]= c;
if (t< 6 && (p[t] != Rec_Buf[t])) { t = 0; return; }
if(++t==Buf_Max || c== '*') { t= 0; Rec_OK= 1; return;}
}
}
}
Muart01.h:
/* Main.c file generated by New Project wizard
*Coder: Ziegler Yin
* Created: 周日 5月 3 2020
* Processor: AT89C51RD2
* Compiler: Keil for 8051
*/
#ifndef __MUART_H_
#define __MUART_H_
#include "89c51rd2.h"
#include <intrins.h>
#include <stdarg.h>
#include <stdio.h>
#include <math.h>
#include<absacc.h>
#include<string.h>
#define u16 unsigned int
#define u8 unsigned char
#define Buf_Max 80
static u8 code hz1[]= {0xCA, 0xB1, 0xBC, 0xE4, 0x3A, 0x00}; //時間
static u8 code hz2[]= {0xBE, 0xAD, 0xB6, 0xC8, 0x3A, 0x00}; //經度
static u8 code hz3[]= {0xCE, 0xB3, 0xB6, 0xC8, 0x3A, 0x00}; //緯度
static u8 code hz4[]= {0xB8, 0xDF, 0xB6, 0xC8, 0x3A, 0x00}; //高度
static u8 code hz5[]= {0xCE, 0xC0, 0xD0, 0xC7, 0xCA, 0xFD, 0xC1, 0xBF, 0x3A, 0x00}; //衛星數量
static u8 code table[]=" GOOD LUCK ";
static u8 code p[] = "$GPGGA";
void GPSs();
void U_Init();
void delayms(u16 z);
void send(u8 c);
void mprint(char *s);
void mZero(char *s);
u8* gtnFld(u8* s, u8 chr, u8 n);
#endif
六,點擊構建工程按鈕,編譯工程。(如下圖7所示)
7.png (100.33 KB, 下載次數: 59)
下載附件
2020-8-23 08:31 上傳
圖7
七,點擊窗口左下方仿真按鈕,可見虛擬Serial Port顯示。 (如下圖8,9,10所示)
8.png (128.6 KB, 下載次數: 67)
下載附件
2020-8-23 08:31 上傳
圖8
9.png (114.86 KB, 下載次數: 54)
下載附件
2020-8-23 08:31 上傳
圖9
10.png (128.03 KB, 下載次數: 60)
下載附件
2020-8-23 08:31 上傳
圖10
八,選擇release,點擊構建工程按鈕,編譯工程生成Hex文件。(如下圖11所示)
11.png (127.27 KB, 下載次數: 65)
下載附件
2020-8-23 08:31 上傳
圖11
附件Proteus8.9 VSM Studio Keil編譯器仿真AT89C51RD2_系列030_GPS數據接受反饋仿真在已安裝Proteus8.9的計算機文件夾中打開即可
需要進一步了解,請加入QQ群:976235464
|
評分
-
查看全部評分
|