最近在考研調(diào)劑沒有學(xué)校要, 找工作又找不到, 快崩潰了。剛想找點(diǎn)樂子,忘掉煩惱。開了一下自己的工具箱,發(fā)現(xiàn)以前買了一塊二手的車載GPS,因?yàn)橐恢睕]有資料就放在那沒有用。
本文引用地址:http://m.butianyuan.cn/article/201611/321738.htm仔細(xì)看了一下GPS發(fā)現(xiàn)芯片的LOGO和型號(hào)還是看得出來的,這是一塊用了索尼CXD2931R作為接收GPS信號(hào)的芯片,本來想到網(wǎng)上看看有沒有現(xiàn)成的作品,可是很遺憾沒能找到(可能已經(jīng)別淘汰了),沒辦法只能到ALLDATASHEET上下了這份芯片的手冊(cè), 看了下手冊(cè),發(fā)現(xiàn)sony的這款GPS芯片很高檔呀:集成32位處理器、DSP、RAM和ROM的容量也很大(怪不得GPS價(jià)格這么貴)。
原來GPS使用串口來給主機(jī)發(fā)送信息的,這塊GPS的通信速率是4800bit/s,了解這么多就差不多了,現(xiàn)在只要找找到串口和電源線在哪就行了,對(duì)著手冊(cè)找的確就是方便。
接好線,用一下comdebug軟件看看GPS會(huì)不會(huì)發(fā)信息,結(jié)果很好,看到了所謂的NMEA碼,但是沒有定位到, 可能是在室內(nèi)的緣故,很是高興呀。
本來想用AVR,可是芯片都被同學(xué)借走了,而pic的仿真器找不到了,(悲劇的時(shí)候什么都悲劇) 只能用51了,51很久沒有用了,又只能求助書本了,這樣下來半天的時(shí)間就沒了;搞電子的確很不容易,雖然原理說起來很簡(jiǎn)單。 下載分享一下成果:
#include
#include 12864.h>
sbit light = P1^0;
#define light_on()light=1
#define light_off()light=0
void init_serial(void);
void disp();
unsigned char ch;
unsigned char str[65]={"$GPRMC,"};
unsigned char read_flag= 0;
bit rev_flag = 0;
bit cur_rev = 0;
void main()
{
unsigned int i=0;
//unsigned char ff=0;
light_off();
str[64] =