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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

車載 三溫度+GPS程序 (STC12單片機+22.114MHz+2oled+ IIC)

  [復制鏈接]
跳轉到指定樓層
樓主
閑來無聊,給小車車增加個 車載 三溫度(水溫+室內+室外)+GPS(日期+時間+海拔+定位) ,硬件(STC12+22.114MHz+2oled+ IIC)寫的不好,有待優化!


單片機源程序如下:
  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秒時間外,暫時沒有發現其他問題
  11.          
  12.          日期、時間、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; //  將溫度標志設置為“假”


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

  23. //****************************************************
  24. //                        主函數                   ***
  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);   //  顯示 福特的 進無止境
  40.                 delay_ms(3000);        
  41.           B_delay_ms(3000);
  42.           A_OLED_Clear();    //清屏
  43.           B_OLED_Clear();    //清屏

  44.          
  45.          

  46.           Timer1_Init();          // 定時器設置初始化
  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)       // 主循環開始
  53.                         {
  54.                                 
  55.                                 //for(t=0;t<600000;t++)                 /***** 溫度 部分******/        
  56.                                         //{                                
  57.                                                         if (gUpdateTempFlag)  // 如果溫度標志為 “真”,開始執行溫度讀取操作                                       
  58.                                                                 {
  59.                                                                                         gUpdateTempFlag = FALSE;  //  將溫度標志設置為“假”  ( 0 )復位
  60.                                                                                                                         
  61.                                                                                         datapros(Ds18b20ReadTemp());           //溫度數據處理函數        
  62.                                                                                         dataprosN(Ds18b20ReadTempN());         //溫度數據處理函數        
  63.                                                                                         dataprosS(Ds18b20ReadTempS());         //溫度數據處理函數
  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))  // 只要其中一條語句接受完成就執行
  75.                                                                
  76.                                                                 {
  77.                                                                         GPS_JieXi();        
  78.                                                                 }
  79.                                                                
  80.                                          //}                                 
  81.                         }
  82. }


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

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

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

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

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

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

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:408809 發表于 2021-3-5 22:36 | 只看該作者
感覺還是可以的

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

000001.jpg
回復

使用道具 舉報

板凳
ID:137349 發表于 2021-3-14 16:11 | 只看該作者
樓主厲害 !第一代顯示不好,角度小,費電。第二代就牛了!!!
回復

使用道具 舉報

地板
ID:430492 發表于 2021-3-22 15:28 | 只看該作者
顏色居然跟車內弄得一樣一樣的,不錯。
回復

使用道具 舉報

5#
ID:47032 發表于 2021-7-13 19:28 | 只看該作者
沒有分享原理圖,還是給你點贊
回復

使用道具 舉報

6#
ID:951974 發表于 2021-8-19 21:24 | 只看該作者
居然是兩個屏  厲害了
回復

使用道具 舉報

7#
ID:466595 發表于 2022-2-12 10:02 | 只看該作者
大佬,水溫數據你是接哪里讀取的?
回復

使用道具 舉報

8#
ID:386467 發表于 2022-5-20 13:28 | 只看該作者
gps.h不在文件里面
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产综合久久婷婷香蕉 | 毛片免费看 | 欧美在线观看免费观看视频 | 狠狠色狠狠色综合系列 | 99精品网站| 99一级毛片| 久草在线中文888 | 国产精品一区在线 | 最新中文字幕久久 | 日本精品视频在线观看 | 中文字幕亚洲区一区二 | 91精产国品一二三区 | 成人在线观看中文字幕 | 欧美大片久久久 | 麻豆一区一区三区四区 | 免费视频成人国产精品网站 | 久久久久国产一区二区三区 | 久久久精品综合 | 日日爽| 久久99精品久久久久久噜噜 | 国产欧美日韩综合精品一 | 毛片免费看 | 综合自拍 | 中文字幕一级 | 国产精品中文字幕一区二区三区 | 久久夜夜 | 亚洲精品久久久一区二区三区 | 夜夜干夜夜操 | 91资源在线 | 欧美激情综合色综合啪啪五月 | 久久精品一区二区三区四区 | 天天插天天搞 | 亚洲欧美精品国产一级在线 | 韩日精品一区 | 一区二区三区在线看 | 精品欧美| 国产高清视频在线观看 | 亚洲精品性视频 | 日韩成人 | 免费黄色录像片 | 成人av播放 |