標(biāo)題: 單片機(jī)+GPS獲取時(shí)間1602實(shí)時(shí)顯示程序 [打印本頁(yè)]

作者: a1208082536    時(shí)間: 2020-4-11 18:44
標(biāo)題: 單片機(jī)+GPS獲取時(shí)間1602實(shí)時(shí)顯示程序
我用的開(kāi)發(fā)板,進(jìn)行的測(cè)試,對(duì)GPS信息的獲取進(jìn)行了簡(jiǎn)化,僅進(jìn)行時(shí)間的獲取更好理解。
在調(diào)試程序的時(shí)候要注意晶振的選擇。需要用11.0592MZ的。12MZ的需要更換;蛘邔(duì)GPS和單片機(jī)都進(jìn)行比特率的調(diào)節(jié)。

單片機(jī)源程序如下:
  1. #include "main.h"
  2. #include "LCD1602.h"
  3. #include "GPS.h"


  4. unsigned char KEY_NUM = 0;
  5. bit Page = 0;
  6. unsigned char xdata Display_GPGGA_Buffer[68];
  7. bit Flag_OV = 0;
  8. bit Flag_Calc_GPGGA_OK = 0;
  9. bit Flag_Calc_GPRMC_OK = 0;

  10. //****************************************************
  11. //Ö÷oˉêy
  12. //****************************************************
  13. void main()
  14. {
  15.         unsigned char i = 0;
  16.         Init_LCD1602();
  17.         LCD1602_write_com(0x80);   
  18.         LCD1602_write_word("Welcome to use!");

  19.         Delay_ms(100);


  20.         Uart_Init();

  21.         while(1)
  22.         {
  23.                 //Scan_Key();
  24.                 if(Flag_GPS_OK == 1 && RX_Buffer[4] == 'G' && RX_Buffer[6] == ',' && RX_Buffer[13] == '.')                        //è·¶¨êÇ·ñêÕμ½"GPGGA"Õaò»Ö¡êy¾Y
  25.                 {
  26.                         for( i = 0; i < 68 ; i++)
  27.                         {
  28.                                 Display_GPGGA_Buffer[i] = RX_Buffer[i];        
  29.                         }
  30.                           Hour = (Display_GPGGA_Buffer[7]-0x30)*10+(Display_GPGGA_Buffer[8]-0x30)+8;                        
  31.                         if( Hour >= 24)      
  32.                         {
  33.                                 Hour %= 24;   
  34.                                 Flag_OV = 1;     
  35.                         }
  36.                         else
  37.                         {
  38.                                 Flag_OV = 0;
  39.                         }

  40.                         Min_High = Display_GPGGA_Buffer[9];
  41.                         Min_Low = Display_GPGGA_Buffer[10];
  42.         
  43.                         Sec_High = Display_GPGGA_Buffer[11];
  44.                         Sec_Low = Display_GPGGA_Buffer[12];

  45.                         Flag_Calc_GPGGA_OK = 1;
  46.                 }

  47.                 if(Page == 0 && Flag_Calc_GPGGA_OK == 1)
  48.                 {
  49.                         LED1 = ~LED1;
  50.                         Flag_Calc_GPGGA_OK = 0;
  51.                         LCD1602_write_com(0x01);
  52.                         LCD1602_write_com(0x80);  
  53.                         LCD1602_write_data(Hour/10+0x30);
  54.                         LCD1602_write_data(Hour%10+0x30);

  55.                         LCD1602_write_data(':');

  56.                         LCD1602_write_data(Min_High);
  57.                         LCD1602_write_data(Min_Low);

  58.                         LCD1602_write_data(':');
  59.         
  60.                         LCD1602_write_data(Sec_High);
  61.                         LCD1602_write_data(Sec_Low);}
  62.         }
  63. }
  64. //****************************************************
  65. //MSÑóê±oˉêy(12M¾§ÕñÏÂ2aêÔ)
  66. //****************************************************
  67. void Delay_ms(unsigned int n)
  68. {
  69.         unsigned int  i,j;
  70.         for(i=0;i<n;i++)
  71.         for(j=0;j<123;j++);
  72. }
復(fù)制代碼


GPS時(shí)間獲取.zip

189.49 KB, 下載次數(shù): 51, 下載積分: 黑幣 -5

源文件

模塊配置工具.zip

363.88 KB, 下載次數(shù): 32, 下載積分: 黑幣 -5

調(diào)節(jié)GPS比特率


作者: 麥麥123    時(shí)間: 2021-3-4 10:23
樓主你好,為什么顯示不了呢?gps能定位,

image.jpg (937.37 KB, 下載次數(shù): 101)

image.jpg

作者: liu--2019    時(shí)間: 2021-4-13 17:24
好東西 ,我要好好學(xué)習(xí)學(xué)習(xí)




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1