標(biāo)題: stc51單片機(jī)做的GPS定位及軌跡記錄器!完成 [打印本頁]
作者: xiaojuan 時(shí)間: 2013-6-20 21:50
標(biāo)題: stc51單片機(jī)做的GPS定位及軌跡記錄器!完成
基于C3-370C的GPS定位及軌跡記錄儀!
在51hei買了C3-370C的GPS,準(zhǔn)備做GPS軌跡記錄,因?yàn)槲乙恢毕朐诼糜蔚恼掌霞由献鴺?biāo)信息……
開始用M48作控制MCU,結(jié)果寫著寫著,發(fā)現(xiàn)Flash空間不足,想換個(gè)M8或M88的,在常州還不好買,手上正好還有兩塊STC90C52,8K的,于是就換上C52了。
C52不帶AD,那電池檢測又成問題,于是從壞的萬用表上拆下一個(gè)2904運(yùn)放,做了個(gè)簡單的電池電壓檢測。
現(xiàn)在整個(gè)設(shè)備的供電都由鋰電池直接提供,配一塊880mah的手機(jī)電池,可以用6小時(shí)左右;
我用24C64記錄軌跡信息,包括日期時(shí)間、經(jīng)緯度在內(nèi)的一組信息,可存儲512條,按1min/條,可存8小時(shí)。
數(shù)據(jù)通過串口傳給上位機(jī),上位機(jī)軟件轉(zhuǎn)換數(shù)據(jù),也可直接輸出KML文件,在Goole earth中打開。
按鍵0: 短按(可見衛(wèi)星信息|坐標(biāo)數(shù)據(jù)); 長按(運(yùn)行|暫停);
按鍵1: 短按(記錄當(dāng)前坐標(biāo)數(shù)據(jù)); 長按(暫停時(shí)長按刪除所有數(shù)據(jù));
按鍵2: 短按(背光燈); 長按(記錄模式切換H/A90s/A60s/A30s/A10s);
025407d7b4brlcyb4n3dbm.jpg (82.31 KB, 下載次數(shù): 1399)
下載附件
2013-6-20 21:49 上傳
視圖1
025408zy6284desrjib8sy.jpg (67.14 KB, 下載次數(shù): 1445)
下載附件
2013-6-20 21:49 上傳
背光燈開啟
025409tws6vetw0xs0x6kt.jpg (60.62 KB, 下載次數(shù): 1396)
下載附件
2013-6-20 21:49 上傳
界面說明
025411w2vr1k1lo21246ty.jpg (117.97 KB, 下載次數(shù): 1420)
下載附件
2013-6-20 21:49 上傳
液晶背后的主控板
025412g23kilmm9lkkk9ix.jpg (80.41 KB, 下載次數(shù): 1468)
下載附件
2013-6-20 21:49 上傳
30S自動(dòng)記錄模式
025415ag663pctpzpe38el.jpg (156.31 KB, 下載次數(shù): 1360)
下載附件
2013-6-20 21:49 上傳
可見衛(wèi)星信息
025417emv8kvegt3eqt3zv.jpg (90.03 KB, 下載次數(shù): 1424)
下載附件
2013-6-20 21:49 上傳
連接電腦上傳數(shù)據(jù)
025418pev6vctvx90zetzv.jpg (79.97 KB, 下載次數(shù): 1393)
下載附件
2013-6-20 21:49 上傳
PC端接收數(shù)據(jù)
025419mu1z6zeu29mmzy49.jpg (63.49 KB, 下載次數(shù): 1418)
下載附件
2013-6-20 21:49 上傳
刪除數(shù)據(jù)
025422j02gg12c1gg0grv2.jpg (190.76 KB, 下載次數(shù): 1448)
下載附件
2013-6-20 21:49 上傳
背面
025424qwal4zwzpttw7i9l.jpg (119.76 KB, 下載次數(shù): 1461)
下載附件
2013-6-20 21:49 上傳
左側(cè)
025427mqqr49gshqhqqrx9.jpg (179.07 KB, 下載次數(shù): 1468)
下載附件
2013-6-20 21:49 上傳
右側(cè)
025429p933in0930aiului.jpg (102.9 KB, 下載次數(shù): 1290)
下載附件
2013-6-20 21:49 上傳
在GooleEarth打開
025429trxua3zbwoa3kfa0.jpg (8.62 KB, 下載次數(shù): 1377)
下載附件
2013-6-20 21:49 上傳
運(yùn)放低電壓指示電路
GPS軌跡記錄PC端及程序:
GPS軌跡記錄PC端.rar
(65.97 KB, 下載次數(shù): 1517)
2013-6-20 21:48 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者: xiaojuan 時(shí)間: 2013-6-20 21:53
最近想著給它加個(gè)殼,費(fèi)了一些時(shí)間,找到了一個(gè)東東,感覺做外殼不錯(cuò),就是ADSL的分頻器,不過體積小了不少,
尺寸只有60X44X21!
0.png (254.3 KB, 下載次數(shù): 780)
下載附件
2016-8-12 15:13 上傳
0.png (376.22 KB, 下載次數(shù): 772)
下載附件
2016-8-12 15:14 上傳
于是想做就做吧,為了減小體積,能用貼片的元件都換成貼片的,幸好最近出了Atmega8a這個(gè)價(jià)格還算合理的AVR片子,
上位機(jī)軟件也做了調(diào)整,將照片匹配軟件與上位機(jī)軟件合成。
主程序文件:
#include "_STC90.h"
#include "_GPS.h"
sbit C_LED = P0^4; //數(shù)據(jù)通訊指示
sbit Key0 = P3^3;
sbit Key1 = P1^2;
sbit Key2 = P1^0;
bit flg_gsv=0;
bit flg_mode=0;
bit flg_upload=0;
bit flg_rx=0;
bit flg_rxf=0;
uchar flg_rmcgga=0; //1rmc 2gga
void get_gpsmode(void)
{
if(!flg_mode){
if(buf_gps[3]=='M' && buf_gps[4]=='C') flg_rmcgga = 1; //RMC
else{
if(buf_gps[3]=='G' && buf_gps[4]=='A') flg_rmcgga = 2; //GGA
else flg_rx = 0;
}
}
else{
if(buf_gps[3]=='S' && buf_gps[4]=='V') flg_rmcgga = 3; //GGA
else flg_rx = 0;
}
}
void UART_RX(void) interrupt 4
{
uchar tp_rx;
while(!RI);
tp_rx = SBUF;
if(!flg_rxf){
if(flg_rx){
buf_gps[count_gps] = tp_rx;
if(count_gps==4) get_gpsmode();
if(tp_rx=='*'){ flg_rx = 0; flg_rxf = 1;}
else count_gps++;
}
else{
if(tp_rx=='$'){ flg_rx = 1; count_gps = 0; flg_rmcgga = 0;}
}
}
if(tp_rx=='#') flg_upload = 1;
RI = 0;
}
void UART_TX(uchar tp_tx)
{
SBUF = tp_tx;
while(!TI);
TI = 0; _nus(100);
}
uchar var_js7=36;
uchar var_js5=0;
uchar var_js4=0;
uint var_jsrec=0;
//60ms
void TIMER2_SEV(void) interrupt 5
{
TF2 = 0;
if(var_js7>0) var_js7--;
if(var_js5>0) var_js5--;
if(var_js4>0) var_js4--;
if(var_jsrec>0) var_jsrec--;
}
void initial(void)
{
C_LED = 0;
GPS_EN = 0;
EA = 0;
AUXR = 0x01;
IPH = 0x0c; IP = 0x14;
SCON = 0x50;
PCON = 0x00;
RI = 0; TI = 0; ES = 1;
TCON = 0x00;
TMOD = 0x21;
TH1 = 256-6; TL1 = 256-6; ET1 = 0; TR1 = 1;
T2CON = 0x00; T2MOD = 0x00;
RCAP2H = (65536-55296)/256; RCAP2L = (65536-55296)%256;
ET2 = 1; TR2 = 1;
I2C_Init();
L5_init();
L5_wrstr_cn(24,2,0,4,4); //衛(wèi)星定位
L5_wrstr_cn(24,4,4,4,4); //軌跡記錄
EA = 1;
while(var_js7>0);
Lgps_disp_init();
C_LED = 1;
}
void Key_deal(void)
{
uchar jk=255;
C_LED = 0; EA = 0; flg_rx = 0; flg_rxf = 0;
if(!Key0){
do{ _nms(8); jk--;}while(!Key0 && jk>0);
if(jk>0){
flg_mode = !flg_mode;
L5_setxy(0,1); ofs = 0; line = 0x00; Lwr_icob(336);
if(!flg_mode) Lgps_disp_dt();
}
else{
flg_sata = !flg_sata; L5_SATA();
GPS_EN = flg_sata;
}
do{ while(!Key0); _nms(5);}while(!Key0);
}
if(!Key1){
do{ _nms(20); jk--;}while(!Key1 && jk>0);
if(jk>0){ at_onewr('H'); var_js4 = 10;}
else at_format();
do{ while(!Key1); _nms(5);}while(!Key1);
}
if(!Key2){
do{ _nms(8); jk--;}while(!Key2 && jk>0);
if(jk>0) L5_LED = !L5_LED;
else{
while(!Key2){
rec_add();
_nms(255); _nms(255); _nms(255); _nms(255);
}
var_jsrec = var_rec*50; var_jsrec/=3;
}
}
C_LED = 1; EA = 1;
}
void main(void)
{
initial();
while(1){
if(flg_rxf){
if(flg_sign) C_LED = 0;
L5_ComData(1); var_js5 = 6;
get_cama();
if(!flg_mode){
if(flg_rmcgga==1) L5_RMC();
else if(flg_rmcgga==2) L5_GGA();
}
else{
if(flg_rmcgga==3){
if(!flg_gsv){
L5_GSV();
if(buf_gps[8]=='3') flg_gsv = 1;
}
else{
if(buf_gps[8]=='2'){ L5_GSV(); flg_gsv = 0;}
}
}
}
for(count_gps=0;count_gps<96;count_gps++)
buf_gps[count_gps]=0;
C_LED = 1; flg_rxf = 0;
}
if(var_js5==1){ L5_ComData(0); var_js5 = 0;}
if(var_js7==0){ L5_BAT(); var_js7 = 16;}
if(!(Key0&Key1&Key2)){ _nms(5); Key_deal();}
if(var_js4==1){ L5_AtWr(0); var_js4 = 0;}
if(!flg_sata){
if(var_rec>0){
if(var_jsrec==0){
at_onewr('A'); var_js4 = 10;
var_jsrec = var_rec*50; var_jsrec/=3;
}
}
}
if(flg_upload){
if(flg_sata){
uint k; uchar r;
C_LED = 0; EA = 0; flg_rx = 0; flg_rxf = 0;
for(k=0;k<at_id;k++){
AT24C64_RdPage(k*16);
UART_TX(k/256); UART_TX(k%256);
for(r=0;r<16;r++) UART_TX(C64_buf[r]);
L5_sch(1,1,k,at_id);
}
EA = 1; L5_sch(0,0,0,0); C_LED = 1;
}
flg_upload = 0;
}
}
}
作者: xiaojuan 時(shí)間: 2013-6-20 21:56
_gps.h 文件:
#include "_STC90.h"
#include "_LCD5110.h"
#include "_AT24C64.h"
#define Bat_full 10 //電量滿
#define Bat_empt 11 //電量空
#define Signal 12 //信號
#define NoSignal 13 //信號
#define file 14 //文件
#define Sata_run 15 //狀態(tài)運(yùn)行
#define Sata_pause 16 //狀態(tài)暫停
#define Ico_gps 17 //GPS
#define Ico_com 18 //數(shù)據(jù)通訊
#define Ico_del 19 //刪除
#define Ico_upload 20 //上傳
#define Ico_wait 21 //等待
#define chr_point 22 //大'.'
#define chr_degree 23 //度
#define chr_min 24 //分
#define Ico_point 25 //小度
#define Ico_degree 26 //小度
sbit Bat_Low = P1^4; //電池0低
sbit GPS_EN = P3^5; //GPS使能
uchar buf_gps[96]={0};
uchar count_gps=0;
bit flg_sign=0;
uchar var_seg[20]={0};
uchar ofs=0;
uchar line=0x00;
void get_cama(void)
{
uchar tp_c=0,cj;
for(cj=0;cj<20;cj++) var_seg[cj] = 0;
for(cj=0;cj<count_gps;cj++)
if(buf_gps[cj]==','){ var_seg[tp_c] = cj; tp_c++;}
}
void Lwr_icob(uint nb){ for(;nb>0;nb--) L5_wrbyte(1,line);}
void Lwr_ico(uchar ic)
{
uchar i0,i1;
switch(ic){
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
i0 = (ic-48)*4; i1 = i0+4; break;
case 10: i0 = 65; i1 = 75; break; //電量滿
case 11: i0 = 75; i1 = 85; break; //電量空
case 12: i0 = 40; i1 = 50; break; //信號有
case 13: i0 = 50; i1 = 60; break; //信號無
case 14: i0 = 60; i1 = 65; break; //文件
case 15: i0 = 137; i1 = 143; break; //運(yùn)行圖標(biāo)
case 16: i0 = 143; i1 = 149; break; //暫停圖標(biāo)
case 17: i0 = 85; i1 = 105; break; //GPS
case 18: i0 = 164; i1 = 173; break; //數(shù)據(jù)傳輸
case 19: i0 = 173; i1 = 180; break; //刪除×
case 20: i0 = 180; i1 = 187; break; //上傳
case 21: i0 = 187; i1 = 194; break; //等待
case 'D': i0 = 131; i1 = 137; break; //'D'
case ':': i0 = 115; i1 = 117; break; //':'
case '/': i0 = 105; i1 = 109; break; //'/'
case '.': i0 = 109; i1 = 111; break; //'.'
case '-': i0 = 111; i1 = 115; break; //'-'
case '%': i0 = 194; i1 = 202; break; //'%'
case 'k': i0 = 117; i1 = 131; break; //'kmh'
case 'm': i0 = 121; i1 = 127; break; //'m'
case 's': i0 = 159; i1 = 164; break; //'s'
case 'A': i0 = 202; i1 = 207; break; //'A'
case 'H': i0 = 207; i1 = 212; break; //'H'
case 'N': i0 = 212; i1 = 217; break; //'N'
case 'S': i0 = 217; i1 = 222; break; //'S'
case 'E': i0 = 222; i1 = 227; break; //'E'
case 'W': i0 = 227; i1 = 232; break; //'N'
case 22: i0 = 149; i1 = 152; break; //大'.'
case 23: i0 = 152; i1 = 156; break; // °
case 24: i0 = 156; i1 = 159; break; //'
case 25: i0 = 232; i1 = 235; break; //中點(diǎn)
case 26: i0 = 235; i1 = 238; break; //小度
default: i0 = ic*4; i1 = i0+4; break; //數(shù)字
}
for(;i0<i1;i0++) L5_wrbyte(1,(dip_ico[i0]<<ofs)|line);
}
void Lwr_icos(uchar cs,uchar cl)
{
uchar k;
for(k=0;k<cl;k++) Lwr_ico(buf_gps[cs+k]);
}
void Lwr_icoh(uchar *hs){ while(*hs){ Lwr_ico(*hs); hs++;}}
void L5_wr_chr(uchar nc)
{
uchar l,n;
switch(nc){
case 'N': n = 19; break;
case 'S': n = 22; break;
case 'E': n = 16; break;
case 'W': n = 24; break;
case 'H': n = 18; break;
case 'A': n = 14; break;
case 'G': n = 17; break;
case 'P': n = 20; break;
case 'R': n = 21; break;
case 'M': n = 18; break;
case 'C': n = 15; break;
case ',': n = 11; break;
case '.': n = 13; break;
case '-': n = 12; break;
case '*': n = 10; break;
case 'V': n = 23; break;
default: n = nc-48; break;
}
for(l=0;l<6;l++) L5_wrbyte(1,ASCII326[n][l]);
}
void L5_wr_chrs(uchar ch,uchar lc)
{
uchar k;
for(k=0;k<lc;k++) L5_wr_chr(buf_gps[ch+k]);
}
void L5_wr_chrh(uchar *hr){ while(*hr){ L5_wr_chr(*hr); hr++;}}
uchar chrtodec(uchar cd){return buf_gps[cd]-48;}
uchar chr_dec(uchar cf){ return chrtodec(cf)*10+chrtodec(cf+1);}
/void Lwr_dec(uchar dec){ Lwr_ico(dec/10); Lwr_ico(dec%10);}
void L5_RMC(void)
{
uchar tp_h,tp_y,tp_m,tp_d;
bit flg_d=0;
L5_setxy(56,5); ofs = 3; line = 0x02;
tp_h = chr_dec(6)+8;
if(tp_h>23){ tp_h%=24; flg_d = 1;}
Lwr_dec(tp_h); Lwr_ico(':');
Lwr_icos(8,2); Lwr_ico(':'); Lwr_icos(10,2);
L5_CE = 1;
C64_buf[3] = tp_h;
C64_buf[4] = chr_dec(8); C64_buf[5] = chr_dec(10);
L5_setxy(32,5);
tp_m = chr_dec(var_seg[8]+3);
tp_d = chr_dec(var_seg[8]+1);
if(flg_d){
switch(tp_m){
case 4: case 6: case 9: case 11:
tp_h = 30; break;
case 2: tp_y = chr_dec(var_seg[8]+5);
if(tp_y%4==0) tp_h = 29;
else tp_h = 28;
break;
default: tp_h = 31; break;
}
if(tp_d<tp_h) tp_d++;
else{
tp_d = 1;
if(tp_m<12) tp_m++;
else tp_m = 1;
}
Lwr_dec(tp_m); Lwr_ico('-'); Lwr_dec(tp_d);
}
else{
Lwr_icos(var_seg[8]+3,2); Lwr_ico('-');
Lwr_icos(var_seg[8]+1,2);
}
L5_CE = 1;
C64_buf[1] = tp_m; C64_buf[2] = tp_d;
L5_setxy(0,0); ofs = 0; line = 0x40;
if(buf_gps[17]=='A'){ Lwr_ico(Signal); flg_sign = 1;}
else{ Lwr_ico(NoSignal); flg_sign = 0;}
L5_CE = 1;
if((var_seg[4]-var_seg[2])==12){
L5_setxy(0,3); ofs = 0; line = 0x00;
L5_wr_chr(buf_gps[29]);
L5_setxy(12,3);
L5_wr_chrs(19,2); Lwr_ico(chr_degree);
L5_wr_chrs(21,2); Lwr_ico(chr_point);
L5_wr_chrs(24,4);
L5_CE = 1;
if(buf_gps[29]=='N') C64_buf[6] = 0x00; //N78 S83
else C64_buf[6] = 0x10;
C64_buf[7] = chr_dec(19); C64_buf[8] = chr_dec(21);
C64_buf[9] = chr_dec(24); C64_buf[10] = chr_dec(26);
}
if(var_seg[6]>41){
L5_setxy(0,4);
tp_y = buf_gps[var_seg[5]+1]; L5_wr_chr(tp_y); //E/W
tp_h = chr_dec(31);
if(var_seg[5]>40){
L5_wr_chrs(31,3);
tp_h = tp_h*10+chrtodec(33);
}
else{ Lwr_icob(6); L5_wr_chrs(31,2);}
Lwr_ico(chr_degree);
L5_wr_chrs(var_seg[5]-7,2); Lwr_ico(chr_point);
L5_wr_chrs(var_seg[5]-4,4);
L5_CE = 1;
if(tp_y=='E') C64_buf[6]&=0xf0; //E69 W87
else C64_buf[6]|=0x01;
C64_buf[11] = tp_h; C64_buf[12] = chr_dec(var_seg[5]-7);
C64_buf[13] = chr_dec(var_seg[5]-4); C64_buf[14] = chr_dec(var_seg[5]-2);
}
L5_setxy(52,2);
tp_h = var_seg[7]-var_seg[6];
if(tp_h>4){
uint tp_v=0;
if(tp_h==7) tp_y = 6;
else tp_y = tp_h;
for(tp_m=1;tp_m<tp_y;tp_m++){
if(tp_m==3) tp_m++;
tp_v = tp_v+chrtodec(var_seg[7]-tp_m)*185;
if(tp_m<5){
if(tp_v%10>4) tp_v = tp_v/10+1;
else tp_v/=10;
}
}
if(tp_h==7) tp_v = tp_v+chrtodec(var_seg[6]+1)*1850;
if(tp_v<100) Lwr_icob(8);
else{
if(tp_v<1000) Lwr_icob(4);
else{ Lwr_ico(tp_v/1000); tp_v%=1000;}
Lwr_ico(tp_v/100); tp_v%=100;
}
Lwr_ico(tp_v/10); Lwr_ico('.'); Lwr_ico(tp_v%10);
}
else Lwr_icoh("---.-"); //Lwr_ico('k'); -.-kmh
L5_CE = 1;
L5_setxy(24,2);
tp_h = var_seg[8]-var_seg[7];
if(tp_h>4){
uint tp_dg=0;
tp_h-=4;
for(tp_y=0;tp_y<tp_h;tp_y++)
tp_dg = tp_dg*10+buf_gps[var_seg[7]+1+tp_y]-48;
if(tp_dg>90 && tp_dg<270){
Lwr_ico('S'); Lwr_ico(Ico_point);
if(tp_dg<180){ Lwr_ico('E'); tp_dg = 180-tp_dg;}
else{ Lwr_ico('W'); tp_dg = tp_dg-180;}
}
else{
Lwr_ico('N'); Lwr_ico(Ico_point);
if(tp_dg<180) Lwr_ico('E');
else{ Lwr_ico('W'); tp_dg = 360-tp_dg;}
}
Lwr_dec(tp_dg); Lwr_ico(Ico_degree);
}
else Lwr_icob(24);
L5_CE = 1;
}
void L5_GGA(void)
{
uchar tp_h;
L5_setxy(10,0); ofs = 0; line = 0x40;
Lwr_icos(var_seg[6]+1,2);
L5_CE = 1;
L5_setxy(74,4); ofs = 0; line = 0x00;
Lwr_ico(buf_gps[var_seg[5]+1]);
L5_CE = 1;
L5_setxy(74,3);
if((var_seg[8]-var_seg[7])==4){
Lwr_icos(var_seg[7]+1,3);
tp_h = chrtodec(var_seg[7]+1)*10 +chrtodec(var_seg[7]+3);
}
else{ Lwr_icoh("-.-"); tp_h = 0;}
L5_CE = 1;
C64_buf[15] = tp_h;
L5_setxy(56,1);
tp_h = var_seg[9]-var_seg[8];
if(tp_h>3){
Lwr_icob(28-tp_h*4);
Lwr_icos(var_seg[8]+1,tp_h-1);
}
else Lwr_icoh("----.-");
L5_CE = 1;
}
bit flg_lowbat=0;
void L5_BAT(void)
{
L5_setxy(74,0); ofs = 0; line = 0x40;
if(!Bat_Low){
if(flg_lowbat) Lwr_icob(10);
else Lwr_ico(Bat_empt);
flg_lowbat = !flg_lowbat;
}
else Lwr_ico(Bat_full);
L5_CE = 1;
}
bit flg_sata=0;
void L5_SATA(void)
{
L5_setxy(22,5); ofs = 0; line = 0x02;
if(!flg_sata) Lwr_ico(Sata_run);
else{ Lwr_ico(Sata_pause); flg_sign = 0;}
L5_CE = 1;
}
void L5_ComData(bit tp_cd)
{
L5_setxy(20,0); ofs = 0; line = 0x40;
if(tp_cd) Lwr_ico(Ico_com);
else Lwr_icob(10);
L5_CE = 1;
}
void L5_sch(bit sen,uchar stype,uint s0,uint s1)
{
L5_setxy(0,1); ofs = 0; line = 0x00;
if(sen){
Lwr_ico(file);
if(stype==0) Lwr_ico(Ico_wait);
else{
if(stype==1) Lwr_ico(Ico_upload);
else Lwr_ico(Ico_del);
}
s0 = s0*100/s1; s1 = s0/5; //20份'%'
if(s0<10) Lwr_icob(8);
else{
if(s0<100){Lwr_icob(4); Lwr_ico(s0/10);}
else Lwr_dec(s0/10);
}
Lwr_ico(s0%10); Lwr_ico('%');
line = 0x1f; Lwr_icob(1+s1); line = 0x11;
Lwr_icob(20-s1); line = 0x1f; Lwr_icob(1);
}
else{ _nms(255); _nms(255); _nms(255); Lwr_icob(54);}
L5_CE = 1;
}
uint at_id=0;
void L5_FileN(void)
{
L5_setxy(42,0); ofs = 0; line = 0x40;
Lwr_dec(at_id/10); Lwr_ico(at_id%10);
L5_CE = 1;
}
void at_getid(void)
{
uchar tp_r;
at_id = 0;
do{
tp_r = AT24C64_RD(at_id*16);
if(tp_r==0xff) break;
at_id++;
L5_sch(1,0,at_id,512);
}while(at_id<512);
L5_FileN(); L5_sch(0,0,0,0);
}
void at_format(void)
{
uint tp_f;
if(flg_sata){
if(at_id>0){
for(tp_f=0;tp_f<at_id;tp_f++){
AT24C64_WR(tp_f*16,0xff);
L5_sch(1,2,tp_f,at_id);
}
at_id = 0; L5_FileN(); L5_sch(0,0,0,0);
}
}
}
void L5_AtWr(uchar wen)
{
L5_setxy(30,0); ofs = 0; line = 0x40;
if(wen==1) Lwr_ico(Ico_wait);
else{
if(wen==2) Lwr_ico(Ico_del);
else Lwr_icob(7);
}
L5_CE = 1;
}
void at_onewr(uchar hdat)
{
if(flg_sign && at_id<512){
L5_AtWr(1);
C64_buf[0] = hdat;
AT24C64_WrPage(at_id*16);
at_id++; L5_FileN();
}
else L5_AtWr(2);
}
uchar var_rec=0;
void L5_recty(void)
{
L5_setxy(0,2); ofs = 0;
if(var_rec==0){ line = 0x00; Lwr_icob(6); Lwr_ico('H'); Lwr_icob(7);}
else{ line = 0x20; Lwr_ico('A'); Lwr_dec(var_rec); Lwr_ico('s');}
L5_CE = 1;
}
void rec_add(void)
{
switch(var_rec){
case 0: var_rec = 90; break;
case 90: var_rec = 60; break;
case 60: var_rec = 30; break;
case 30: var_rec = 10; break;
default: var_rec = 0; break;
}
L5_recty();
}
void Lgps_disp_dt(void)
{
//第1行
L5_setxy(56,1); ofs = 0; line = 0x00; Lwr_icoh("----.-m"); L5_CE = 1;
//第2行
L5_setxy(52,2); Lwr_icoh("---.-k"); L5_CE = 1;
//第3行
L5_setxy(0,3); L5_wr_chr('N');
L5_setxy(12,3); L5_wr_chrh("--"); Lwr_ico(chr_degree); L5_wr_chrh("--");
Lwr_ico(chr_point); L5_wr_chrh("----"); Lwr_ico(chr_min); L5_CE = 1;
L5_setxy(74,3); Lwr_icoh("-.-"); L5_CE = 1;
//第4行
L5_setxy(0,4); L5_wr_chrh("E---"); Lwr_ico(chr_degree); L5_wr_chrh("--");
Lwr_ico(chr_point); L5_wr_chrh("----"); Lwr_ico(chr_min); L5_CE = 1;
L5_setxy(74,4); Lwr_icoh("0D"); L5_CE = 1;
//第2行
L5_recty();
}
void Lgps_disp_init(void)
{
L5_clear();
L5_setxy(0,0); ofs = 0; line = 0x40;
Lwr_ico(NoSignal); Lwr_icoh("00"); Lwr_icob(19);
Lwr_ico(file); Lwr_icoh("000/512"); Lwr_icob(4);
Lwr_ico(Bat_empt); L5_CE = 1;
Lgps_disp_dt();
L5_setxy(0,5); ofs = 0; line = 0x02; Lwr_ico(Ico_gps);
Lwr_icob(2); Lwr_ico(Sata_run); Lwr_icob(4); ofs = 3;
Lwr_icoh("00-00"); Lwr_icob(4); Lwr_icoh("--:--:--");
L5_CE = 1;
at_getid();
}
unsigned char code g_sign[] = {0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
void L5_GSV(void)
{
uchar tp_j,tp_jk,tp_g,tp_n;
tp_n = buf_gps[8]-48;
ofs = 2; line = 0x01;
for(tp_j=0;tp_j<4;tp_j++){
if(tp_n==1) L5_setxy(tp_j*14,2);
else{
if(tp_n==2){
if(tp_j<2) L5_setxy((tp_j+4)*14,2);
else L5_setxy((tp_j-2)*14,4);
}
else L5_setxy((tp_j+2)*14,4);
}
Lwr_icob(2);
tp_jk = tp_j*4+3;
if(var_seg[tp_jk+1]>(var_seg[tp_jk]+1)) Lwr_icos(var_seg[tp_jk]+1,2);
else Lwr_icoh("--");
Lwr_icob(4);
}
for(tp_j=0;tp_j<4;tp_j++){
tp_jk = tp_j*4+6;
if(var_seg[tp_jk+1]>(var_seg[tp_jk]+1)) tp_g = chr_dec(var_seg[tp_jk]+1);
else tp_g = 0;
if(tp_n==1) L5_setxy(tp_j*14,1);
else{
if(tp_n==2){
if(tp_j<2) L5_setxy((tp_j+4)*14,1);
else L5_setxy((tp_j-2)*14,3);
}
else L5_setxy((tp_j+2)*14,3);
}
line = g_sign[tp_g/12]; Lwr_icob(4);
line = 0x00; Lwr_dec(tp_g);
}
L5_CE = 1;
}
作者: 13583076505 時(shí)間: 2013-7-5 13:23
為什么你的GPS軌跡記錄PC端及程序不能運(yùn)行?51hei有你更精彩!!
作者: h333 時(shí)間: 2013-7-7 02:29
我這可以運(yùn)行啊 可能是你的電腦缺少某些庫文件
作者: heicad 時(shí)間: 2013-7-8 16:26
液晶屏上刮掉的是什么?
作者: jiaren 時(shí)間: 2013-7-8 16:30
刮掉的是樓主家的坐標(biāo)位置。。知道這個(gè)。。基本誤差不超過10米就可以找到樓主了。他怕怕呀。。
作者: xiaojuan 時(shí)間: 2013-7-8 17:35
是啊,特別是靜止一段時(shí)間,坐標(biāo)非常準(zhǔn)。
我在一個(gè)公園的廣場上做過靜止實(shí)驗(yàn),廣場上是用大塊的不同顏色的石板鋪設(shè)的,
我把GPS放在其中一塊石板的一角,放在那10分鐘,記下一個(gè)坐標(biāo),后來在Google Earth上看,幾乎就在那個(gè)角上,誤差肯定在1m內(nèi)!!
作者: a110 時(shí)間: 2013-7-8 18:38
樓主,電池可以續(xù)航多久啊?
作者: xiaojuan 時(shí)間: 2013-7-8 19:40
880mah的手機(jī)電池連續(xù)用了6小時(shí),還有3.5V,不過已經(jīng)到了我設(shè)置的下限(停止)值了,
2600mah的鋰電池,充了一次電后,斷斷續(xù)續(xù)用了12個(gè)小時(shí)以上了,電量還很足,電壓3.75左右。
作者: a110 時(shí)間: 2013-7-8 19:42
個(gè)人覺得VENUS634L模塊還不錯(cuò),樓主的上位機(jī)軟件不錯(cuò),能否說下在GOOGLE里怎么樣打開數(shù)據(jù)圖。
作者: xiaojuan 時(shí)間: 2013-7-8 19:53
個(gè)人覺得venus634l模塊還不錯(cuò),樓主的上位機(jī)軟件不錯(cuò),能否說下在google里怎么樣打開數(shù)據(jù)圖。
-----------------------------------------------------------------------
上位機(jī)軟件生成kml文件,在google earth的文件菜單里就有打開kml文件的選項(xiàng)。
kml的格式在google map上有說明!百度一下就出來了
作者: xiaojuan 時(shí)間: 2013-7-8 20:06
原理圖忘記了上傳了:
1.JPG (66.71 KB, 下載次數(shù): 1594)
下載附件
2013-7-8 20:06 上傳
作者: ccd 時(shí)間: 2013-7-8 20:13
---------------
請教,我做出來的接收器有個(gè)問題。
電路都完全按照上面的來做的,
存儲也是用AT24C64 保存數(shù)據(jù)沒問題 ( 重啟后數(shù)據(jù)讀出還在證明OK)
但是連接上位機(jī)PC端讀取軟件(用樓主的),怎么讀都讀不出數(shù)據(jù)來,哎,郁悶了。。。
手動(dòng)發(fā)送‘#’也沒有讀取動(dòng)作,,,,,,,,
求教 指導(dǎo)指導(dǎo)~!!
作者: xiaojuan 時(shí)間: 2013-7-8 21:14
你按暫停沒有?上傳數(shù)據(jù)是在暫停狀態(tài)下的!還有手動(dòng)發(fā)送'#'時(shí),是以字符格式發(fā)送!
作者: ccd 時(shí)間: 2013-7-8 21:17
哈哈,在沒看回復(fù)前搞定了,確實(shí)是要按暫停才能上傳,犯了低級錯(cuò)誤~。!
作者: nanguoguangzi 時(shí)間: 2013-7-9 05:46
我本來也打算做一個(gè)類似的東西呢,不錯(cuò)
作者: 盟主最好 時(shí)間: 2013-7-13 20:17
厲害的緊
作者: 1156615097 時(shí)間: 2013-7-23 22:35
有套件賣嗎?我要
作者: xueyikuan712 時(shí)間: 2013-8-11 20:15
新手求指導(dǎo)
作者: zjh 時(shí)間: 2013-8-12 15:44
很酷
作者: tan0327 時(shí)間: 2013-8-21 18:33
你好,你是完全按照樓主的那個(gè)做的么?程序是不是也是他上面上傳的程序?硬件部分也是一樣的么?
作者: 老虎不吃人 時(shí)間: 2013-8-22 13:40
樓主好{:soso_e113:},我最近也是想做一個(gè)類似的東西,但是我是希望能夠?qū)⒔?jīng)緯度直接通過谷歌地球轉(zhuǎn)化成具體地名,然后通過MG323發(fā)送到手機(jī)上,僅通過單片機(jī)肯定不行,所以我這兩天正在學(xué)習(xí)VB, 但是對到時(shí)候怎么完成跟谷歌地球的接口還是很迷茫,不知道樓主能不能指點(diǎn)一下,多謝了
作者: 老虎不吃人 時(shí)間: 2013-8-23 10:13
{:soso_e154:}樓主大大,求VB源碼~~
作者: Unknowc 時(shí)間: 2013-9-23 18:44
好強(qiáng)悍。

作者: zb247558826 時(shí)間: 2013-10-8 18:50
感謝樓主~正在學(xué)習(xí)單片機(jī),作為實(shí)例很好
作者: hyhstephen 時(shí)間: 2013-10-10 18:16
大神啊
作者: xiaoafei 時(shí)間: 2013-10-12 10:02
好好學(xué)習(xí),天天向上
作者: bglhf 時(shí)間: 2013-10-27 15:28
嗯,很實(shí)用
作者: lin0308 時(shí)間: 2013-10-28 20:38
下載來看看
作者: jldqc 時(shí)間: 2013-11-1 11:15
下載來看看
作者: ilymaf 時(shí)間: 2013-11-28 17:20
不錯(cuò),
作者: epwdh 時(shí)間: 2013-12-5 14:07
厲害,強(qiáng)大
作者: 光輝歲月 時(shí)間: 2013-12-11 18:45
真不錯(cuò)!!
作者: xindaodan 時(shí)間: 2013-12-31 20:10
厲害~~~~~~~
作者: T9U8KNNE 時(shí)間: 2014-2-28 18:36
請問成品可以直接購買嗎?
作者: 鬼谷子 時(shí)間: 2014-3-14 13:02
好東西 謝謝分享
作者: a651738901 時(shí)間: 2014-4-28 22:20
謝謝樓主慷慨,謝謝了
作者: kingwin 時(shí)間: 2014-5-15 14:25

作者: 稻草人hi 時(shí)間: 2014-5-23 09:02
謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝謝
作者: 稻草人hi 時(shí)間: 2014-5-23 09:02
謝謝謝謝謝謝謝謝謝
作者: 361435885 時(shí)間: 2014-6-2 22:17
樓主太強(qiáng)了 真不是一般地強(qiáng)啊 哈哈
作者: cjhk 時(shí)間: 2014-6-3 13:10
很不錯(cuò)的東西
作者: cjhk 時(shí)間: 2014-6-3 13:12
樓主 真的很謝謝你啊 確實(shí)很強(qiáng)大
作者: luojun123456 時(shí)間: 2014-6-17 07:59
樓主,我按附件文件編譯出了hex,但為什么5110沒有顯示
作者: 凌豪 時(shí)間: 2014-6-17 16:33
挺有想法的,加油
作者: xiaozhi_cc 時(shí)間: 2014-7-4 22:40
給力,必須頂啊
作者: openpppp2008 時(shí)間: 2014-7-5 17:29
好東西 謝謝分享
作者: meilidianzhi 時(shí)間: 2014-7-15 18:52




作者: admin 時(shí)間: 2014-7-18 03:17
很牛啊
作者: liangjdong 時(shí)間: 2014-8-13 09:18
學(xué)習(xí)。
作者: 289106801 時(shí)間: 2014-8-18 11:54
學(xué)習(xí)了
作者: jst 時(shí)間: 2014-8-21 16:30
太強(qiáng)悍了,人才呀
作者: NB沒B 時(shí)間: 2014-8-22 10:04
好帖就應(yīng)該回復(fù)
作者: marsistjl 時(shí)間: 2014-8-29 23:15
好東西,支持樓主!
作者: sxf_snoopy 時(shí)間: 2014-9-11 13:22
好東西啊
作者: xy972853 時(shí)間: 2014-9-28 20:06
不錯(cuò)的啊、、、、、、、、、、、、、、、、、、、
作者: xinshijue 時(shí)間: 2014-10-1 10:28
厲害 這東西可要花不少腦筋吧
作者: xinshijue 時(shí)間: 2014-10-1 10:29
芯片焊接真是不容易哦
作者: syunshi 時(shí)間: 2014-10-9 21:29
好東西必須頂
作者: veteran 時(shí)間: 2014-10-10 17:35
好資料,學(xué)習(xí)了
作者: flash3g 時(shí)間: 2014-10-14 16:53
STC 還能這么玩
作者: jyj889901 時(shí)間: 2014-10-19 20:14
請問成品可以直接購買嗎
作者: blacklcj 時(shí)間: 2014-10-19 21:55
很棒,很強(qiáng)大,下下來好好學(xué)習(xí)下~~
作者: fcatq 時(shí)間: 2014-10-24 21:46
大神,學(xué)習(xí)了
作者: sunx51hei 時(shí)間: 2014-10-30 23:24
感謝分享,學(xué)習(xí)一下
作者: 2468416253 時(shí)間: 2014-11-3 12:21
謝謝分享
作者: 1730467916 時(shí)間: 2014-11-13 19:33
你太強(qiáng)悍了,人才呀
作者: zjf110 時(shí)間: 2014-11-25 02:12
很好 學(xué)習(xí) 謝謝
作者: 77408187 時(shí)間: 2014-11-25 20:29
太好了
作者: 淋╭淋, 時(shí)間: 2014-11-28 22:40
單片機(jī)居然可以做這么多東西,
作者: hwfwy 時(shí)間: 2014-12-6 16:23
學(xué)習(xí)了
作者: mycookie 時(shí)間: 2014-12-9 10:47
厲害~~~~~~~
作者: 士走L 時(shí)間: 2014-12-10 09:19
可不可以問下樓主,你的晶振是幾M的,謝謝了
作者: HSL199345 時(shí)間: 2014-12-10 12:18
學(xué)習(xí)了 謝謝分享~~~~~~~~~~~
作者: 吉野 時(shí)間: 2014-12-10 20:29
樓主厲害~!
作者: yujiangcheng 時(shí)間: 2014-12-15 00:05
非常感謝樓主的分享,原理圖好模糊,樓主能發(fā)一份給我嗎,523297395@qq.com,自己也想弄一個(gè)呢。
作者: pps111 時(shí)間: 2014-12-19 13:54
我頂~~~非常好啊~~學(xué)習(xí)了
作者: pps111 時(shí)間: 2014-12-19 13:54
馬上測試
作者: 1250455243 時(shí)間: 2014-12-21 20:46
很好 樓主大神級人物
作者: 1250455243 時(shí)間: 2014-12-21 20:47
膜拜中。。
作者: wuhantuantuan 時(shí)間: 2014-12-30 23:14
謝謝分享
作者: mycookie 時(shí)間: 2014-12-31 13:27
樓主,好喜歡你的東西,能否把原理圖也發(fā)給我一份么,網(wǎng)站上的太模糊了,41105854@qq.com,謝謝!
作者: gnez 時(shí)間: 2014-12-31 14:46
感謝樓主分享。。
作者: seeking1005 時(shí)間: 2015-1-21 01:20
51Hei(51黑)論壇有你更精彩
作者: lankeqiaosu 時(shí)間: 2015-1-21 20:22
餓啊餓安慰安慰
作者: xudaxi 時(shí)間: 2015-1-27 13:07
謝謝樓主慷慨,謝謝了
作者: xudaxi 時(shí)間: 2015-1-27 13:07
謝謝樓主慷慨,謝謝了
作者: 為珂奮斗 時(shí)間: 2015-2-4 19:43
長見識了
作者: 為珂奮斗 時(shí)間: 2015-2-4 19:43
謝謝謝謝謝謝
作者: xdl2599 時(shí)間: 2015-2-5 01:35
向你學(xué)習(xí)!
作者: ad_up 時(shí)間: 2015-2-10 09:02
專門注冊來學(xué)習(xí)了!樓主麻煩給我發(fā)一份高清原理圖,編譯后的主程序來一份?con_by@qq.com
作者: ztflove51 時(shí)間: 2015-2-10 09:27
大神啊膜拜
作者: ztflove51 時(shí)間: 2015-2-10 09:28
你應(yīng)該為軍隊(duì)搞研發(fā)啊。太牛了想知道樓主今年幾歲了?
作者: lulus 時(shí)間: 2015-3-9 09:24
不錯(cuò),很好的想法
作者: 老大好 時(shí)間: 2015-3-10 21:42
當(dāng)然是樓主的坐標(biāo)咯
作者: 老大好 時(shí)間: 2015-3-10 21:47
10米,真的,電路圖能給我看看嗎?
作者: boss654321 時(shí)間: 2015-3-15 05:38
一直想做個(gè)這方面的東西,樓主真是雪中送碳。环浅8兄x
作者: a15274555994 時(shí)間: 2015-3-21 17:27
不錯(cuò)的東西~!
作者: chinajoan0 時(shí)間: 2015-3-22 14:05
樓主,你的上位機(jī)是怎么編的,有源程序嗎
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
91在线视频免费观看
|
亚洲视频二|
男女视频免费
|
国产福利视频导航
|
国产欧美精品一区二区色综合朱莉
|
伊人久久一区二区
|
精品国产一二三区
|
夜夜爽夜夜操
|
欧美久久天堂
|
亚洲aⅴ一区二区
|
国产免费一区二区三区最新6
|
永久网站
|
成人av免费
|
精品美女在线观看视频在线观看
|
青青99|
一区二区三区国产好的精
|
日本三级在线视频
|
超碰一区二区
|
婷婷色网
|
婷婷激情综合
|
中文字幕乱码视频32
|
一区二区三区欧美
|
国产黄色大片
|
在线播放国产视频
|
全部免费毛片在线播放网站
|
国产精久久久久久
|
久久精品超碰
|
高清色|
欧美激情精品久久久久久变态
|
99re在线视频
|
亚洲国产成人av好男人在线观看
|
久久久久国产精品一区二区
|
av天空|
蜜桃视频成人
|
亚洲a网|
精品乱码一区二区三四区视频
|
一级全黄少妇性色生活免费看
|
久久久久久国产精品
|
成人国产精品免费观看
|
久久久久久国产
|
国产在线精品一区二区三区
|