前段時(shí)間受朋友影響,決定買個(gè)GPS模塊學(xué)習(xí)一下這東西怎么用,寫這帖子是為了和大家共同學(xué)習(xí)這模塊,為了控制這模塊搭建了一套簡(jiǎn)單的測(cè)試電路,希望能給也想了解這模塊的朋友來個(gè)參考,廢話不多說,有圖有真相;在使用12864的時(shí)候發(fā)現(xiàn)點(diǎn)問題,請(qǐng)教高人,12864檢測(cè)忙的時(shí)候就是不好使,總忙為啥呢?無奈換套路用延時(shí),我每次給12864送指令都需要延時(shí);還有個(gè)問題就是我在12864顯示的時(shí)候 最早用STC89C58正常,但是換STC12C5A60S2的時(shí)候,屏幕會(huì)閃的很厲害(相應(yīng)延時(shí)已由12T的調(diào)整為1T的),調(diào)整延時(shí)后還是閃,最后在main里添加延時(shí)后好多了,但是程序一變化相應(yīng)的延時(shí)也得變,有啥辦法能讓屏幕不閃呢,是因?yàn)?T的單片機(jī)太快了,12864跟不上節(jié)奏嗎? 請(qǐng)高人指點(diǎn) 謝謝
應(yīng)大家要求 做下說明:
本系統(tǒng)初衷是本人為了 了解GPS模塊而做的測(cè)試,GPS模塊用的是上文提到的REB3571,其實(shí)我覺得市面上賣的GPS模塊基本都遵循NMEA0183協(xié)議,所以在整體設(shè)計(jì)的時(shí)候只要為單片機(jī)留出串口就行了,一般的GPS模塊都會(huì)引出TTL電平的TXD和RXD引腳,我用的GPS模塊采用5V供電,跟51供電相同所以不用電壓轉(zhuǎn)換;單片機(jī)其實(shí)最早我用的是AT89S52,但是因?yàn)槌绦蚓幾g后大概20K左右,所以放棄了52選用STC的89C58,買芯片的時(shí)候發(fā)現(xiàn)STC89C58和STC12C5A60S2一個(gè)價(jià),所以就一樣買了一片(在電子市場(chǎng)買的,賣家比較黑一片要我12塊錢),源程序在58上進(jìn)行的測(cè)試,后來移植到1T的STC12C5A60S2上,因?yàn)镾TC12C5A60S2有倆串口,以后可以擴(kuò)展,所以果斷棄掉58轉(zhuǎn)投STC12C5A60S2;液晶方面用的是12864(控制器芯片 ST7920 ),我也是剛知道LCD還有控制器芯片;最初的測(cè)試是用的USB供電,但是做完之后只能在電腦旁測(cè)試也沒速度;就想了個(gè)招用4節(jié)5號(hào)電池的電池盒(一般的1元錢4節(jié)的電池,4節(jié)加一起都能達(dá)到6.8V,為了供電穩(wěn)定可以考慮串1n4007,或是上7805穩(wěn)壓,我覺得1117的5V芯片挺好使,其間也試過LM317),最后還是采用了18650(這就是筆記本的電芯,一般都2000mh以上),加個(gè)一個(gè)升壓模塊(模塊上有可調(diào)的電位器,自己調(diào)整電壓感覺需要比5V高點(diǎn),因?yàn)闇y(cè)試的時(shí)候沒接負(fù)載呢,也不知道這么想對(duì)不?哈哈希望高人指點(diǎn)謝謝);我整理一下 回頭上傳電路圖。
各位論壇的好朋友實(shí)在抱歉,由于一些原因好長(zhǎng)、好長(zhǎng)時(shí)間都沒碰單片機(jī)了,差點(diǎn)就放棄這個(gè)專業(yè)了,
附上解碼的程序 大家共同學(xué)習(xí)研究,有需要電路圖的朋友請(qǐng)留言,我得好好找找都不知道放哪里了。
int GPS_RMC_Parse(char *line,GPS_INFO *GPS)
{
uchar ch, status, tmp;
float lati_cent_tmp, lati_second_tmp;
float long_cent_tmp, long_second_tmp;
float speed_tmp;
char *buf = line;
ch = buf[5];
status = buf[GetComma(2, buf)];
if (ch == 'C') //如果第五個(gè)字符是C,($GPRMC)
{
if (status == 'A') //如果數(shù)據(jù)有效,則分析
{
GPS -> NS = buf[GetComma(4, buf)];
GPS -> EW = buf[GetComma(6, buf)];
GPS->latitude = Get_Double_Number(&buf[GetComma(3, buf)]);
GPS->longitude = Get_Double_Number(&buf[GetComma( 5, buf)]);
GPS->latitude_Degree = (int)GPS->latitude / 100; //分離緯度
lati_cent_tmp = (GPS->latitude - GPS->latitude_Degree * 100);
GPS->latitude_Cent = (int)lati_cent_tmp;
lati_second_tmp = (lati_cent_tmp - GPS->latitude_Cent) * 60;
GPS->latitude_Second = (int)lati_second_tmp;
GPS->longitude_Degree = (int)GPS->longitude / 100; //分離經(jīng)度
long_cent_tmp = (GPS->longitude - GPS->longitude_Degree * 100);
GPS->longitude_Cent = (int)long_cent_tmp;
long_second_tmp = (long_cent_tmp - GPS->longitude_Cent) * 60;
GPS->longitude_Second = (int)long_second_tmp;
speed_tmp = Get_Float_Number(&buf[GetComma(7, buf)]); //速度(單位:海里/時(shí))
GPS->speed = speed_tmp * 1.85; //1海里=1.85公里
GPS->direction = Get_Float_Number(&buf[GetComma(8, buf)]); //角度
GPS->D.hour = (buf[7] - '0') * 10 + (buf[8] - '0'); //時(shí)間
GPS->D.minute = (buf[9] - '0') * 10 + (buf[10] - '0');
GPS->D.second = (buf[11] - '0') * 10 + (buf[12] - '0');
tmp = GetComma(9, buf);
GPS->D.day = (buf[tmp + 0] - '0') * 10 + (buf[tmp + 1] - '0'); //日期
GPS->D.month = (buf[tmp + 2] - '0') * 10 + (buf[tmp + 3] - '0');
GPS->D.year = (buf[tmp + 4] - '0') * 10 + (buf[tmp + 5] - '0')+2000;
UTC2BTC(&GPS->D);
return 1;
}
}
return 0;
}
int GPS_GGA_Parse(char *line,GPS_INFO *GPS)
{
uchar ch, status;
char *buf = line;
ch = buf[4];
status = buf[GetComma(2, buf)];
if (ch == 'G') //$GPGGA
{
if (status != ',')
{
GPS->height_sea = Get_Float_Number(&buf[GetComma(9, buf)]);
// GPS->height_ground = Get_Float_Number(&buf[GetComma(11, buf)]);
GPS->height_ground = Get_Float_Number(&buf[GetComma(10, buf)]); //要的是大地水平高度,應(yīng)該解析第10個(gè)逗號(hào)之后的數(shù)據(jù)
return 1;
}
}
return 0;
}
093821gdxsgoqg020dgdsg.jpg.thumb.jpg (40.09 KB, 下載次數(shù): 267)
下載附件
2014-12-17 16:54 上傳
液晶部分 焊?jìng)(gè)電位器 調(diào)對(duì)比度
094002p4wljxo9vlxo8zoa.jpg.thumb.jpg (38.04 KB, 下載次數(shù): 257)
下載附件
2014-12-17 16:54 上傳
電源部分 為了到戶外測(cè)試方便 加個(gè)18650和升壓模塊
094040ohzzrry0coiy0rbr.jpg.thumb.jpg (36.38 KB, 下載次數(shù): 295)
下載附件
2014-12-17 16:54 上傳
初始化狀態(tài)
094313y7xf7k7ggrxtexz7.jpg.thumb.jpg (49.69 KB, 下載次數(shù): 254)
下載附件
2014-12-17 16:54 上傳
測(cè)試的結(jié)果
0943462ubo2pwobob03c9c.jpg.thumb.jpg (48.31 KB, 下載次數(shù): 254)
下載附件
2014-12-17 16:54 上傳
0944066v71kz89rs9kx2v7.jpg.thumb.jpg (48.7 KB, 下載次數(shù): 284)
下載附件
2014-12-17 16:54 上傳
|