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

標(biāo)題: 車載 三溫度+GPS程序 (STC12單片機(jī)+22.114MHz+2oled+ IIC) [打印本頁]

作者: ynzsc001    時(shí)間: 2021-3-5 10:58
標(biāo)題: 車載 三溫度+GPS程序 (STC12單片機(jī)+22.114MHz+2oled+ IIC)
閑來無聊,給小車車增加個(gè) 車載 三溫度(水溫+室內(nèi)+室外)+GPS(日期+時(shí)間+海拔+定位) ,硬件(STC12+22.114MHz+2oled+ IIC)寫的不好,有待優(yōu)化!


單片機(jī)源程序如下:
  1. /*******************************************************************************

  2.    MCU: STC12C5A60S2  
  3.    晶振: 22.1184MHz
  4.          A_OLED: 0.96寸 128*64
  5.          LCD SCL : P0^6;
  6.          LCD SDA : P0^7;
  7.          GPS : P1^2
  8.          溫度:P1^5.6.7
  9.          
  10.          說明:此版本出了偶爾跳1秒時(shí)間外,暫時(shí)沒有發(fā)現(xiàn)其他問題
  11.          
  12.          日期、時(shí)間、3溫度 、有海拔-星期-分屏顯示(GPS接串口2)

  13. *******************************************************************************/
  14. #include "STC12C5A60S2.h"
  15. #include "reDefine.h"
  16. #include "A_oled.h"
  17. #include "B_oled.h"
  18. #include "GPS.h"
  19. #include "18b20.h"
  20. #include "bmp.h"


  21. bit gUpdateTempFlag = FALSE; //  將溫度標(biāo)志設(shè)置為“假”


  22. void Timer1_Init(void);                   //定時(shí)1毫秒@22.1184MHz

  23. //****************************************************
  24. //                        主函數(shù)                   ***
  25. //****************************************************
  26. void main()
  27. {
  28.                 //unsigned long t;
  29.         
  30.           Uart2_Init();                          //串口2初始化

  31.                 A_OLED_Init();                        //初始化A_OLED
  32.                 A_OLED_Clear();     //清屏
  33.           B_OLED_Init();                        //初始化B_OLED  
  34.                 B_OLED_Clear();     //清屏
  35.         
  36.                
  37.                
  38.                 A_OLED_DrawBMP(0,0,132,8,BMP2);   //  顯示 福特的 logo
  39.           B_OLED_DrawBMP(0,0,132,8,BMP5);   //  顯示 福特的 進(jìn)無止境
  40.                 delay_ms(3000);        
  41.           B_delay_ms(3000);
  42.           A_OLED_Clear();    //清屏
  43.           B_OLED_Clear();    //清屏

  44.          
  45.          

  46.           Timer1_Init();          // 定時(shí)器設(shè)置初始化
  47.                
  48.                 A_OLED_DrawBMP(0,0,128,8,BMP1);                                                                                    //  顯示 溫度LOGO
  49.                 A_OLED_ShowString(0,0,"....The Temp....",8);                                          //  顯示溫度屏的屏頭
  50.                 B_OLED_DrawBMP(4,0,132,8,BMP3);                        //  顯示 GPS-LOGO               
  51.           B_OLED_ShowString(0,0,"....The  GPS....",8);                                          //  顯示GPS屏的屏頭

  52.         while(1)       // 主循環(huán)開始
  53.                         {
  54.                                 
  55.                                 //for(t=0;t<600000;t++)                 /***** 溫度 部分******/        
  56.                                         //{                                
  57.                                                         if (gUpdateTempFlag)  // 如果溫度標(biāo)志為 “真”,開始執(zhí)行溫度讀取操作                                       
  58.                                                                 {
  59.                                                                                         gUpdateTempFlag = FALSE;  //  將溫度標(biāo)志設(shè)置為“假”  ( 0 )復(fù)位
  60.                                                                                                                         
  61.                                                                                         datapros(Ds18b20ReadTemp());           //溫度數(shù)據(jù)處理函數(shù)        
  62.                                                                                         dataprosN(Ds18b20ReadTempN());         //溫度數(shù)據(jù)處理函數(shù)        
  63.                                                                                         dataprosS(Ds18b20ReadTempS());         //溫度數(shù)據(jù)處理函數(shù)
  64.                                                                         
  65.                                                                                         A_OLED_ShowString(3,2,"N:",16);  //(2:從第幾列開始 ,6:從6頁開始,  16:占用2頁空間顯示(32:占用1頁空間顯示)    )
  66.                                                                                         A_OLED_ShowString(3,4,"W:",16);     
  67.                                                                                         A_OLED_ShowString(3,6,"S:",16);      
  68.                                                                                        
  69.                                                                  }
  70.                                         //}
  71.                                                                

  72.                                 //for(t=0;t<1000000;t++)    /***** GPS 部分*****/        
  73.                                          //{        
  74.                                                         if ((gIsRecvGNRMC) || (gIsRecvGNZDA))  // 只要其中一條語句接受完成就執(zhí)行
  75.                                                                
  76.                                                                 {
  77.                                                                         GPS_JieXi();        
  78.                                                                 }
  79.                                                                
  80.                                          //}                                 
  81.                         }
  82. }


  83. //=======================================================================================================

  84. void Timer1_Init(void)                // 定時(shí)器設(shè)置,1毫秒@22.1184MHz   波特率9600
  85. {
  86.         AUXR |= 0x40;                //定時(shí)器時(shí)鐘1T模式
  87.         TMOD &= 0x0F;                //設(shè)置定時(shí)器模式
  88.         TL1 = 0x9A;                        //設(shè)置定時(shí)初值
  89.         TH1 = 0xA9;                        //設(shè)置定時(shí)初值
  90.         TF1 = 0;                                //清除TF1標(biāo)志
  91.         TR1 = 1;                                //定時(shí)器1開始計(jì)時(shí)
  92.         ET1 = 1;
  93. }

  94. //-------------------------------------------------------------------------------------

  95. void Timer() interrupt 3   // GPS數(shù)據(jù)接收中斷
  96. {        
  97.     static unsigned int _1msCnt = 0;    // static 是數(shù)據(jù)儲(chǔ)存類型,unsigned int 是數(shù)據(jù)類型

  98.     if(++_1msCnt >= 1000)   // 每隔1000ms,執(zhí)行1 次
  99.                         {
  100.         _1msCnt = 0;          // 將毫秒計(jì)數(shù)復(fù)位
  101.                         
  102.         gUpdateTempFlag = TRUE;    // 將溫度標(biāo)志設(shè)置為 “真”  ( 1 )
  103.                         }

  104.                 if (gRecGPSDataTimeCnt > 0)                        //GPS數(shù)據(jù)接收超時(shí)檢測
  105.                         {
  106.                                 gRecGPSDataTimeCnt --;
  107.                
  108.                                 if (gRecGPSDataTimeCnt == 0)
  109.                                         {
  110.                                                 gGPSIndex = 0;
  111.                                         }
  112.                         }
  113. }
復(fù)制代碼
程序: 2021.2.2---雙屏幕顯示-SH1106 OLED GPS 溫度 - 優(yōu)化版.7z (55.94 KB, 下載次數(shù): 121)

作者: ynzsc001    時(shí)間: 2021-3-5 22:36
感覺還是可以的

000001.jpg (1.2 MB, 下載次數(shù): 205)

000001.jpg

作者: 柳大勇    時(shí)間: 2021-3-14 16:11
樓主厲害 !第一代顯示不好,角度小,費(fèi)電。第二代就牛了!!!
作者: cooleaf    時(shí)間: 2021-3-22 15:28
顏色居然跟車內(nèi)弄得一樣一樣的,不錯(cuò)!!
作者: lixingwei0122    時(shí)間: 2021-7-13 19:28
沒有分享原理圖,還是給你點(diǎn)贊
作者: 1588848    時(shí)間: 2021-8-19 21:24
居然是兩個(gè)屏  厲害了
作者: 天使的眼淚    時(shí)間: 2022-2-12 10:02
大佬,水溫?cái)?shù)據(jù)你是接哪里讀取的?
作者: qwer1415926    時(shí)間: 2022-5-20 13:28
gps.h不在文件里面




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