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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5146|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色综合视频 | av在线一区二区 | 亚洲欧洲在线观看视频 | 中文字幕亚洲欧美 | 精品婷婷 | 97精品国产97久久久久久免费 | 久久国产精品偷 | 亚洲电影中文字幕 | 精品三级| 国产精品久久久久久52avav | 中文字幕国产精品视频 | 夜夜爽99久久国产综合精品女不卡 | 国产成人一区二区三区精 | 一区视频 | 亚洲综合二区 | 在线一区观看 | 男女激情网站免费 | 逼逼网 | 亚洲精品久久久久久久久久久 | 欧美精品片 | 成年人在线观看 | 欧美高清一区 | 黄色网址在线播放 | 国产精品久久久久久久久久久久 | 黄色网络在线观看 | 一级毛片免费视频 | 99精品一区二区三区 | 亚洲国产高清高潮精品美女 | caoporn视频 | 成人av电影在线观看 | 日韩一区二区三区视频 | 一区二区三区韩国 | 色婷婷av777| 亚洲中午字幕 | 中文字幕一区二区三区在线观看 | 亚洲中午字幕 | 欧美a区 | 欧美三级视频在线观看 | 国产精品一区二区在线 | 久久一| 日韩精品一区在线 |