久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 46464|回復: 49
打印 上一主題 下一主題
收起左側

自制1.8寸GPS授時時鐘(程序+電路圖+制作詳情)

  [復制鏈接]
跳轉到指定樓層
樓主
ID:75272 發表于 2015-3-25 13:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    利用中午午休的一些零星時間設計制作了一款1.8寸GPS授時時鐘,現將自己的制作過程和經驗教訓寫下來和大家分享和共同學習。

    提到GPS,大家現在都在使用智能手機,很快就想到了GPS定位、導航等功能。沒錯,GPS系統隨著科技的進步已經走到了你的身邊,并不是想象中的那么神秘。其實GPS收到衛星型號后會接收到相當多的衛星定位信息,比如:日期、時間、坐標經緯度、海拔高度等等數據。本時鐘就是利用GPS模塊配合GPS天線收到GPS衛星信息獲取其中的時間數據來校正和顯示當前精準的時間。
優良的GPS模塊當然價格也不菲,往往售價都在幾百元,現在網上淘得幾元錢一個的二手GPS模塊也是相當的不錯了,本時鐘選用了價格便宜的Ublox LEA-4A GPS模塊,還有GPS天線。GPS模塊和天線都是51hei提供的.
                              


   本作一物多用的原則,制作前考慮到使用4個1.8寸數碼管共陽紅(外型尺寸38x56MM),使用5V電源不能夠驅動點亮數碼管,需要9V至12V的電源,但又不想使用專用的電源接口和電源,考慮到通用性,固將電源接口采用MicroUSB接口(也就是平時智能手機常用的充電和數據線接口),電源也可使用手機的充電電源,方便靈活又不需專門配備電源,由于Ublox LEA系列的GPS模塊自帶有USB接口,即可將模塊中的USB引腳接入到這個MicroUSB電源接口上,這樣就可以將本時鐘作為具有USB接口的外部GPS模塊和電腦PC想連接,使用專門的GPS驅動和軟件,就可以在PC機上使用定位導航功能了,比如谷歌地球、高明的地圖軟件。另外可以將本時鐘添加一些常用的單元部分進行功能擴展,讓其成為一個多用途的1.8寸顯示的C51單片機實驗和學習板,增加了可玩性。加入的單元部分有:1.    C51-ISP編程接口(可以通過該接口方便的編程單片機程序);2.    DS18B20溫度集成(可以通過該探頭獲取環境溫度)3.    4個按鍵(可以根據需要編寫具有按鍵功能的時鐘)4.    VS1838紅外接收頭(可以通過編程加入紅外遙控功能)5.    24C02存儲芯片(可以編寫一些具有存儲功能的程序)6.    DS1302時鐘芯片(可以編寫時鐘程序)7.    蜂鳴器(可以編寫鬧鐘和一些聲響的程序)8.    XL6009升壓模塊(可以通過電位器調節數碼管的亮度)9.  GPS模塊的MicroUSB接口(可以通過手機數據線作為電源或和PC機聯機成為外部GPS模塊) 電路圖設計如下: PCB板背面圖

PCB板正面圖

原理圖和PCB板圖均使用Altium Designer 14軟件進行設計,在使用Altium Designer14設計時也是不斷學習的一個過程,元件圖庫、PCB元件封裝庫、3D元件庫、布局、排版等,有時一個元件的繪制都會花去你很多時間,很多元件都是我自己拿著元件測量尺寸和參照網上的封裝圖來手繪,還是很辛苦的。為了學習,這個PCB板特制作了3D效果圖:
PCB正面3D






PCB背面3D





PCB部分放大3D






    設計好后拿去PCB打樣幾塊,板子收到后,看似做工非常漂亮。

開始焊接第一塊樣板,焊接完后檢查無誤后通電測試,接下來就遇到了幾個問題:
1.  通過ISP口寫入程序后,單片機不運行程序,再次檢查焊接沒問題后,仔細查看原理圖后發現,在設計原理圖時忙于考慮各IO口的分配問題卻忽略了29腳EA/VPP,將其懸空了,應將29腳接到5V電源上,讓單片機執行內部程序。更改后單片機正常運行了。
2.  Q2工作不正常,經檢查后發現,在設計時將NPN三極管和PNP三極管都用了相同的PCB封裝庫PNP,和原理圖的NPN封裝對應腳不一樣,C、E腳剛好相反了,焊下Q2,將其反面安裝焊接,問題得到解決。
3.  Q3、Q4、Q5、Q6,這4個位驅動不起作用,由于想省掉一個ULN2003的集成,借用了1.5寸的位驅動用4個3極管,沒考慮到使用的是1.8寸的數碼管將其位電壓已經提高到9V至12V,致使這4個位驅動處于放大狀態失去了開關的作用,將這4個位驅動加一級3極管,測試位驅動正常。
4.  由于錯誤的將購買的GPS天線認為是無源天線,設計的時候按無源天線的線路設計,導致GPS模塊無法收到GPS信息,經反復的實驗測試和查閱GPS模塊參數資料,得知購買的是有源GPS天線,需要給天線加載電源天線才能有放大作用,根據有源天線原理,切斷GPS模塊12、24、19引腳的接地,將18(VCC_RF)、19(V_ANT)腳連接,使其16(RF_IN)腳天線輸入端加載3.3V左右的電壓,為有源天線提供電源。
5.  經過以上4步修改后接入GPS有源天線發現單片機還是沒能正確的接收到需要的信息,將USB線連接到電腦安裝驅動和GPS模塊測試軟件u-center7.0軟件進行聯機查看,單片機程序是來自于網友編制的,波特率設置為9600(TH1 = 0xFD;   //9600波特率的初值),而GPS模塊查看為4800的波特率,通訊協議上不一致,看到LEA-4A資料上說可以修改波特率,在軟件中將波特率修改為9600
這次可以正常收到GPS信息并把時間顯示出來了。但是將電源切斷后從新加電,又無法收到信息了,再用軟件查看模塊波特率又回到了4800,也就是說沒有保存起,再查看模塊相關資料得知LEA-4A模塊是ROM經濟型產品并無flash存儲器,無法保存設置,可以通過改變硬件方式改變波特率,為了減少硬件改動,固將單片機程序修改成波特率4800(TH1 = 0xFA; //4800波特率的初值)來適應模塊的默認4800波特率。這下終于成功了。
測試中發現:接收到的日期和時間信息比較快,快時約12秒,慢時半分鐘,這個天線擺放的位置和角度有一定關系。該天線下部帶有吸鐵,可以吸在金屬物體上,發現吸在具有大面積金屬板上接收到信息時間會縮短,也許是有反射面的緣故吧。

至于連接PC用軟件定位和導航這里就不作更多的解釋了。
最后完成

上電未接收到GPS衛星信號時,電壓5V,電流0.25A

接收到GPS衛星信號并校準顯示時間,電壓5V,電流0.16A

總結:通過以上5點故障分析,在設計電路時應做到思路清晰,小到每個零件的校對,查看元件滿足正常運行的條件,要做到每個元件、模塊功能參數熟悉,最好是經過實驗仿真后再制作PCB板,有串口通訊協議的應先考慮和確認協議的一致性,盡量少走彎路和犯低級性錯。

附言:整套 制作成本大約六十多。



這里附上單片機源程序:

#include "reg52.h"

#define LEDPORT P0

sbit D1=P3^5;
sbit D2=P3^4;
sbit D3=P3^6;
sbit D4=P3^7;
sbit LED=P0^7;

unsigned char hour,min,sec;
bit rev_start,rev_stop;

//unsigned char code tab[]={0xA0,0xBE,0x64,0x2C,0x3A,0x29,0x21,0xBC,0x20,0x28,0xff};//數碼管
//unsigned char code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//數碼管
unsigned char code tab[]={0x3F,0x0C,0x5B,0x5E,0x6C,0x76,0x77,0x1C,0x7F,0x7E,0x00};//0-9,滅

unsigned char  buf[80]; //請把GPS那貨發來的數據放到我的肚子里

void TimerInit()
{
TMOD=0x21;
TH0 = 0xF1; //4ms左右
    TL0 = 0x9A;
EA=1;
ET0=1;
TR0=1;
SCON = 0x50;//使用串行工作方式1,10位異步收發8位數據,波特率可變(由T1的溢出率控制)
//    TH1 = 0xFD;//9600波特率的初值
TH1 = 0xFA;//4800波特率的初值
    TL1 = TH1;//9600波特率的初值
    ES = 1;
    TR1 = 1;
}


void Display(unsigned char hour,min)   //數碼管顯示
{
static unsigned char i;
LEDPORT=0x00;
switch (i)
{
case 0: if(hour/16) LEDPORT=tab[hour/16]; else LEDPORT=tab[10];D1=1;D2=D3=D4=0;break;
case 1: LEDPORT=tab[hour%16];  D2=1;D1=D3=D4=0;    break;
case 2: LEDPORT=tab[min/16];D3=1;D1=D2=D4=0;break;
case 3: LEDPORT=tab[min%16];D4=1;D2=D3=D1=0;break;
}
i++;
if(i==4)i=0;
}


void main()
{

TimerInit();
while(1)
{
if((rev_stop==1)&&(buf[5]=='C'))//如果接收到GPRMC
{
ES=0;
hour= (buf [7]-0x30)* 16+ buf[8] -0x30;
min=  (buf [9]-0x30)* 16+ buf[10]-0x30;
sec=  (buf[11]-0x30)* 16+ buf[12]-0x30;
    hour=  hour / 16 * 10 + hour % 16;
LED=!LED;
hour= (hour+8) % 24;//UTC Time換算成北京時間
hour=hour/10*16+hour%10;

ES=1;
rev_stop=0;
}
   

}

}

void Timer0() interrupt 1
{
TH0 = 0xF1;
        TL0 = 0x9A;
Display(hour,min);//定時器兄弟簡單而單調的工作,很輕松的。每4ms刷新下數碼管,全年無休哦
}

/***************************************************************/
/*************************串口數據接收**************************/
/***************************************************************/
void Uart_Receive(void) interrupt 4
{
unsigned char ch,num;
ES = 0;

if (RI)//如果接收完成則進入
{
ch = SBUF;
if (ch == '$')  //如果收到字符'$',便開始接收
{
rev_start = 1;
rev_stop  = 0;  //接收停止標志
}

if (rev_start == 1)       //標志位為1,開始接收
{
buf[num++] = ch;  //字符存到數組中
if (ch == '\n')       //如果接收到換行
{
buf[num] = '\n';
rev_start = 0;
rev_stop  = 1;  //接收停止標志
num = 0;
}
}
}
RI = 0; //RI清0,重新接收
ES = 1; //串口1中斷允許
}




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏25 分享淘帖 頂3 踩
回復

使用道具 舉報

沙發
ID:74720 發表于 2015-3-25 21:27 | 只看該作者
不錯謝謝分享,,51hei有你更精彩!!
回復

使用道具 舉報

板凳
ID:74797 發表于 2015-3-27 23:40 | 只看該作者
很漂亮!想仿制!不知能否給個GPS購買鏈接?謝謝。
回復

使用道具 舉報

地板
ID:76326 發表于 2015-4-9 22:02 | 只看該作者
好貼 謝謝分享,51hei有你更精彩!!
回復

使用道具 舉報

5#
ID:67296 發表于 2015-4-11 08:08 | 只看該作者
這個有套件嗎 我也想折騰下
回復

使用道具 舉報

6#
ID:76910 發表于 2015-4-14 11:05 來自觸屏版 | 只看該作者
樓主,想模仿一下,能帶一下嗎
回復

使用道具 舉報

7#
ID:77023 發表于 2015-4-17 09:37 | 只看該作者
回復

使用道具 舉報

8#
ID:78060 發表于 2015-4-26 22:59 | 只看該作者
學習了,謝謝分享!!收藏。
回復

使用道具 舉報

9#
ID:62033 發表于 2015-5-18 13:19 | 只看該作者

我最近也在做,剛用洞洞板和最小系統DIY了一個。
不知道樓主幾塊錢的GPS模塊哪里買的?
另外除了GPS模塊以外,你板子上就沒有其他計時器件嗎?
有機會多交流一下。
回復

使用道具 舉報

10#
ID:80637 發表于 2015-5-20 22:06 | 只看該作者
不錯,so cool!
回復

使用道具 舉報

11#
ID:79034 發表于 2015-5-28 13:56 | 只看該作者
新手表示。。。沒搞懂
回復

使用道具 舉報

12#
ID:82588 發表于 2015-6-14 10:39 | 只看該作者
頂起來,不錯  
回復

使用道具 舉報

13#
ID:26229 發表于 2015-6-17 23:29 | 只看該作者
社區里哪個人會幾塊錢的GPS模塊?這不逗人玩嗎?
回復

使用道具 舉報

14#
ID:82588 發表于 2015-6-24 09:45 | 只看該作者
挺好,學習下下,正學練手萬年歷,這個思路挺好
回復

使用道具 舉報

15#
ID:84705 發表于 2015-7-6 23:34 | 只看該作者
能不能做一個簡易手持GPS定位器
回復

使用道具 舉報

16#
ID:67274 發表于 2015-7-19 21:50 | 只看該作者

本帖最后由 a461624201 于 2015-7-19 22:05 編輯

感謝樓主開源,我模仿一個,STC12LE5A60S2    4位共陽極數碼管,但是發現,有時候啟動約若干分鐘后,就會突然全部歸0,然后1秒后又自動恢復,持續3次,有時候持續7,8次,這種情況好像是偶然的,難道是GPS信號不好造成數據程序沒解調出來?請教數碼管顯示程序。
回復

使用道具 舉報

17#
ID:86421 發表于 2015-7-21 22:46 | 只看該作者
作的不錯
回復

使用道具 舉報

18#
ID:87991 發表于 2015-8-15 20:57 | 只看該作者
好厲害
回復

使用道具 舉報

19#
ID:89072 發表于 2015-8-29 23:21 | 只看該作者
學習下,做個記號先
回復

使用道具 舉報

20#
ID:59135 發表于 2015-9-13 09:35 | 只看該作者
不錯,GPS接收程序比較簡單,不知穩定性如何,自己做一個,希望成功
回復

使用道具 舉報

21#
ID:44267 發表于 2015-10-7 07:53 | 只看該作者
太漂亮了
回復

使用道具 舉報

22#
ID:86796 發表于 2015-11-19 21:45 | 只看該作者
我買的卡西歐的PROTECK T6000Y
是通過國家授時中心的電波來授時的
GPS有北斗的信號,不錯
回復

使用道具 舉報

23#
ID:86796 發表于 2015-11-19 21:48 | 只看該作者
我看這個手表是有三個傳感器
壓力傳感器
磁偏角傳感器
溫度傳感器
是否就是個掩膜單片機呢?
回復

使用道具 舉報

24#
ID:99398 發表于 2016-4-7 22:26 | 只看該作者
樓主大神,我等速來膜拜。
回復

使用道具 舉報

25#
ID:112856 發表于 2016-4-7 22:40 | 只看該作者
不錯  下次試試看
回復

使用道具 舉報

26#
ID:99398 發表于 2016-4-18 21:51 | 只看該作者
問你一個技術問題,你的串口輸入是rs232嗎?我的是TTL電平,是不是就不能直接給單片機的RX和TX管腳進行數據收發了,這樣是不是要自己再接一個TTL轉232的小芯片,因為我的是TTL電平輸出的GPS模塊。樓主或者樓上的幫忙解答一下,小弟在此拜謝了!
回復

使用道具 舉報

27#
ID:92746 發表于 2016-4-30 22:24 | 只看該作者
好貼 謝謝分享,51hei有你更精彩!!
回復

使用道具 舉報

28#
ID:117823 發表于 2016-5-1 18:31 | 只看該作者
做的不錯,花了不少心思呀。
回復

使用道具 舉報

29#
ID:26229 發表于 2016-5-10 23:18 | 只看該作者
測溫度還是沒有加上。
回復

使用道具 舉報

30#
ID:68727 發表于 2016-5-17 14:02 來自觸屏版 | 只看該作者
有套件嗎想仿個
回復

使用道具 舉報

31#
ID:121429 發表于 2016-5-17 14:11 | 只看該作者
這個夠氣派,學習
回復

使用道具 舉報

32#
ID:126469 發表于 2016-6-13 11:00 | 只看該作者
謝樓主
回復

使用道具 舉報

33#
ID:139577 發表于 2016-9-16 22:43 | 只看該作者
今天剛注冊,學習GPS技術
回復

使用道具 舉報

34#
ID:140906 發表于 2016-10-8 17:29 來自觸屏版 | 只看該作者
樓主,我也想做個,能帶嗎?給個聯系方式唄
回復

使用道具 舉報

35#
ID:177421 發表于 2017-3-23 01:36 | 只看該作者
學習了,謝謝分享!!收藏。
回復

使用道具 舉報

36#
ID:179958 發表于 2017-3-23 10:23 | 只看該作者
這個太好了,DS1302走時還是誤差很大,時鐘走時不準,要來何用呢,有GPS有精確了,給力!
回復

使用道具 舉報

37#
ID:43186 發表于 2017-3-24 09:53 | 只看該作者
樓主,我也想做個,能帶嗎?給個聯系方式行嗎?
回復

使用道具 舉報

38#
ID:170330 發表于 2017-3-26 08:14 | 只看該作者
如果用Wifi模塊進行網絡對時,就完美了。畢竟現在誰家里沒有Wifi信號啊。
回復

使用道具 舉報

39#
ID:194844 發表于 2017-5-7 05:54 | 只看該作者

好貼 謝謝分享,51hei有你更精彩!!
回復

使用道具 舉報

40#
ID:198298 發表于 2017-5-8 22:04 | 只看該作者
好貼,需要這樣的大神引領!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品欧美一区二区三区久久久 | 成人av一区| 欧美一区二区三区 | 性色视频在线观看 | 特级黄色毛片 | 一区二区三区日韩 | 在线观看av不卡 | 狠狠操狠狠操 | 四虎影院美女 | 国产男女精品 | 亚洲国产一区二区视频 | 男人天堂手机在线视频 | 久久av一区二区三区 | 国产91亚洲精品一区二区三区 | 黄色av网站免费看 | 中文字幕 国产精品 | 亚洲一区二区久久久 | 日韩精品中文字幕在线 | 欧美不卡一区二区 | 91精品国产91久久久久福利 | 日本激情视频中文字幕 | 亚洲综合成人网 | 午夜精品一区二区三区在线播放 | 九九热在线观看 | jizz亚洲人 | 网站黄色av | 午夜羞羞| 啪啪综合网 | 中文字幕视频在线观看免费 | 99re视频在线观看 | 欧美日韩精品一区二区三区四区 | 欧美一区二区三区视频 | 国产精品免费视频一区 | 伊人网综合在线观看 | 欧美精品一区二区三区蜜臀 | 91精品国产综合久久久久久丝袜 | 成人av免费 | 国产精品一区二区在线 | 国内精品久久久久久影视8 最新黄色在线观看 | 欧美一区二区在线观看 | 亚洲欧洲一区二区 |