欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: GPS(日期+時間)+溫度(3溫度)+LCD2004(IIC 顯示模塊)+STC12C5A60S2+22.1184MH... [打印本頁]

作者: ynzsc001    時間: 2020-1-30 09:58
標題: GPS(日期+時間)+溫度(3溫度)+LCD2004(IIC 顯示模塊)+STC12C5A60S2+22.1184MH...
GPS(日期+時間)+溫度(3溫度)+LCD2004(IIC 顯示模塊)+STC12C5A60S2+22.1184MHz+串口1+串口2
綜合性那么高的資料網上應該時找不到了吧!反正是花了我好久好久的時間才弄出來的。反正我是被折磨的快瘋掉了!!!

初學者可以看看,高手可以幫忙指正!




單片機源程序如下:
  1. #include "GPS.h"

  2. unsigned char RX_Buffer[68];                //此數組用于直接儲存來自GPS的原始數據
  3. unsigned char RX_Count = 0;

  4. bit Flag_GPS_OK = 0;


  5. void Uart_Init()                                                                     
  6. {
  7.         SCON = 0X50;  //UART方式1;8位UART
  8.         REN  = 1;     //允許串行口接收數據
  9.         PCON = 0x00;  //SMOD=0;波特率不加倍
  10.         TMOD = 0x20;  //T1方式2,用于產生波特率
  11.         TH1  = 0xFD;  //裝初值
  12.         TL1  = 0xFD;
  13.         TR1  = 1;     //啟動定時器1
  14.         EA   = 1;     //打開全局中斷控制
  15.         ES   = 1;     //打開串行口中斷        
  16. }



  17. void RECEIVE_DATA(void) interrupt 4 using 3                  //串口中斷函數,收到GPS的數據時進入此中斷        
  18. {
  19.         unsigned char temp = 0;
  20.         ES=0;                                                                                //先關閉串行口中斷
  21.         temp = SBUF;                                                                //接收SBUF中的數據
  22.         RI = 0;                                                                                //接收完成的標志位清零
  23. //        LED1 = ~LED1;
  24.         
  25.         if(temp == '*******************************************************************************

  26. 此程序使用  22.1184MHz  晶振

  27. *******************************************************************************/
  28. #include "STC12C5A60S2.h"
  29. #include "1602IIC.h"
  30. #include "GPS.h"
  31. #include "18b20.h"

  32. uchar code table1[]={0x00,0x00,0x10,0x07,0x08,0x08,0x07,0x00};//字符℃



  33. //****************************************************
  34. //                        主函數                   ***
  35. //****************************************************
  36. void main()
  37. {
  38.                 unsigned char num;
  39.                 Init_Lcd();                                                                                        //LCD初始化
  40.                 Uart2_Init();                                                                        //串口初始化
  41.                 LCD_write_command(0xc0);                                       
  42.                 LCD_write_word("Welcome to use GPS..");
  43.                 Delay1ms();
  44.                 LCD_write_command(0x01);
  45.         

  46.                 LCD_write_command(0x80);                                       
  47.                 LCD_write_word("n:");
  48.                 LCD_write_command(0xc0);                                       
  49.                 LCD_write_word("w:");
  50.                 LCD_write_command(0x94);                                       
  51.                 LCD_write_word("s:");
  52.                 LCD_write_command(0x8a);                                       
  53.                 LCD_write_word("D:");
  54.                 LCD_write_command(0xca);                                       
  55.                 LCD_write_word("T:");
  56.         
  57.         
  58.                 Write_LCD(5,0,".");
  59.                 Write_LCD(5,1,".");        
  60.                 LCD_write_command(0x99);
  61.                 LCD_write_word(".");
  62.         
  63.                 LCD_write_command(0x9E);                                       
  64.                 LCD_write_word("*:");        
  65.                
  66.                 LCD_write_command(0x40); //自建字符的第一個指令地址
  67.                 for(num=0;num<8;num++)
  68.                         {
  69.         LCD_write_data(table1[num]);
  70.                         }
  71.                 LCD_write_command(0x87);   //自建字符顯示位置
  72.                 LCD_write_data(0X00);     //自建字符的第一個數據地址(1602 總共可以自建8個字符)
  73.                 LCD_write_command(0xc7);   //自建字符顯示位置
  74.                 LCD_write_data(0X00);     //自建字符的第一個數據地址(1602 總共可以自建8個字符)
  75.                 LCD_write_command(0x9b);   //自建字符顯示位置
  76.                 LCD_write_data(0X00);     //自建字符的第一個數據地址(1602 總共可以自建8個字符)               

  77.         while(1)
  78.         {
  79.                
  80.                 unsigned int t;        
  81.                 qian_OK=0;                                                                        // 標志變量歸零
  82.                 k=0;                                                                                    // 累計量歸零
  83.                 P2=0x00;
  84.                 //for(t=0;t<60000;t++)                                // 此數值小于5000則GPS數據更新太慢,甚至不正常;大于7000則會讓溫度更新時間超過三秒。
  85.                         {               
  86.                                 GPS_JieXi();
  87. P2=0xff;
  88. delay1(10);                                
  89.                         }
  90.                         
  91.         
  92.                         //datapros(Ds18b20ReadTemp());           //溫度數據處理函數        
  93.                         //dataprosN(Ds18b20ReadTempN());         //溫度數據處理函數        
  94.                         //dataprosS(Ds18b20ReadTempS());         //溫度數據處理函數
  95.                
  96.         
  97.         }
  98. }



  99. )                                                                //若是統一的數據頭,則作為數組第一個元素
  100.         {
  101.                 RX_Count = 0;
  102.                 Flag_GPS_OK = 0;               
  103.         }

  104.         RX_Buffer[RX_Count++] = temp;                                //收到的數據放到數組中

  105.         if(RX_Count >= 66)                                                        //序號大于66的數據無用,統一放到第66位覆蓋掉
  106.         {
  107.                 RX_Count = 66;
  108.         }

  109.         if(temp == '*')                                                                //收到*,則完成一幀數據的接收,不管是否完整有效
  110.         {
  111.                 Flag_GPS_OK = 1;                                                //標志變量置為1
  112.         }

  113.         ES=1;                                                                                 //重新打開串行口中斷
  114. }
復制代碼
  1. /*******************************************************************************

  2. 此程序使用  22.1184MHz  晶振

  3. *******************************************************************************/
  4. #include "STC12C5A60S2.h"
  5. #include "1602IIC.h"
  6. #include "GPS.h"
  7. #include "18b20.h"

  8. uchar code table1[]={0x00,0x00,0x10,0x07,0x08,0x08,0x07,0x00};//字符℃



  9. //****************************************************
  10. //                        主函數                   ***
  11. //****************************************************
  12. void main()
  13. {
  14.                 unsigned char num;
  15.                 Init_Lcd();                                                                                        //LCD初始化
  16.                 Uart2_Init();                                                                        //串口初始化
  17.                 LCD_write_command(0xc0);                                       
  18.                 LCD_write_word("Welcome to use GPS..");
  19.                 Delay1ms();
  20.                 LCD_write_command(0x01);
  21.         

  22.                 LCD_write_command(0x80);                                       
  23.                 LCD_write_word("n:");
  24.                 LCD_write_command(0xc0);                                       
  25.                 LCD_write_word("w:");
  26.                 LCD_write_command(0x94);                                       
  27.                 LCD_write_word("s:");
  28.                 LCD_write_command(0x8a);                                       
  29.                 LCD_write_word("D:");
  30.                 LCD_write_command(0xca);                                       
  31.                 LCD_write_word("T:");
  32.         
  33.         
  34.                 Write_LCD(5,0,".");
  35.                 Write_LCD(5,1,".");        
  36.                 LCD_write_command(0x99);
  37.                 LCD_write_word(".");
  38.         
  39.                 LCD_write_command(0x9E);                                       
  40.                 LCD_write_word("*:");        
  41.                
  42.                 LCD_write_command(0x40); //自建字符的第一個指令地址
  43.                 for(num=0;num&lt;8;num++)
  44.                         {
  45.         LCD_write_data(table1[num]);
  46.                         }
  47.                 LCD_write_command(0x87);   //自建字符顯示位置
  48.                 LCD_write_data(0X00);     //自建字符的第一個數據地址(1602 總共可以自建8個字符)
  49.                 LCD_write_command(0xc7);   //自建字符顯示位置
  50.                 LCD_write_data(0X00);     //自建字符的第一個數據地址(1602 總共可以自建8個字符)
  51.                 LCD_write_command(0x9b);   //自建字符顯示位置
  52.                 LCD_write_data(0X00);     //自建字符的第一個數據地址(1602 總共可以自建8個字符)               

  53.         while(1)
  54.         {
  55.                
  56.                 unsigned int t;        
  57.                 qian_OK=0;                                                                        // 標志變量歸零
  58.                 k=0;                                                                                    // 累計量歸零
  59.                 P2=0x00;
  60.                 //for(t=0;t&lt;60000;t++)                                // 此數值小于5000則GPS數據更新太慢,甚至不正常;大于7000則會讓溫度更新時間超過三秒。
  61.                         {               
  62.                                 GPS_JieXi();
  63. P2=0xff;
  64. delay1(10);                                
  65.                         }
  66.                         
  67.         
  68.                         //datapros(Ds18b20ReadTemp());           //溫度數據處理函數        
  69.                         //dataprosN(Ds18b20ReadTempN());         //溫度數據處理函數        
  70.                         //dataprosS(Ds18b20ReadTempS());         //溫度數據處理函數
  71.                
  72.         
  73.         }
  74. }


復制代碼


所有資料51hei提供下載:
22.1184MHz版本-最終版本IIC-GPS+1602+C52-日期、時間、速度、3溫度 - (GPS接串口2).7z (40.08 KB, 下載次數: 175)






作者: ynzsc001    時間: 2020-1-30 09:59
“A”  是代表有效數據,“V”是代表無效數據
作者: 93mxt    時間: 2020-2-1 00:24
樓主,這個有衛星數顯示嗎
作者: ynzsc001    時間: 2020-2-1 23:32
93mxt 發表于 2020-2-1 00:24
樓主,這個有衛星數顯示嗎

之前的版本有,這個版本被我刪了。
作者: 93mxt    時間: 2020-2-14 21:29
樓主你好,能做一個在12864屏上顯示衛星的數據就好了,粗體字更可愛
作者: pull1121    時間: 2020-2-23 12:55
不錯哈 雖然目前不用這方面 還是感謝分享
作者: 93mxt    時間: 2020-12-27 21:46
gps波特率是多少
作者: 13503412974    時間: 2020-12-28 23:18
別的東西都有,就差一個顯示屏。先保存下來
作者: chjchj816    時間: 2020-12-30 17:02
先保存下來 以后再學
作者: 448lop    時間: 2021-12-13 11:14
13503412974 發表于 2020-12-28 23:18
別的東西都有,就差一個顯示屏。先保存下來

是哪個型號的gps模塊,請問下
作者: cba_cba    時間: 2021-12-13 18:15
    先下載了, 到時要用再來學習。
作者: ge52    時間: 2022-12-11 18:30
收藏、下載了
作者: SORALuminary    時間: 2024-4-2 14:12
感謝分享,請問這個LCD2004模塊的iic通信是怎么樣連接的,采用的四位MCU和pcf8574連接嗎?




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