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

標(biāo)題: 藍(lán)牙溫度計(jì) 安卓app源碼和單片機(jī)源碼都有 還帶溫度監(jiān)測(cè)系統(tǒng)原理圖 [打印本頁(yè)]

作者: 123456nba    時(shí)間: 2017-5-4 23:11
標(biāo)題: 藍(lán)牙溫度計(jì) 安卓app源碼和單片機(jī)源碼都有 還帶溫度監(jiān)測(cè)系統(tǒng)原理圖
基于51單片機(jī)與藍(lán)牙Android溫度監(jiān)測(cè)系統(tǒng),提供安卓app的源碼和下位機(jī)單片機(jī)端的代碼

下面是原理圖:



單片機(jī)源碼如下:

  1. /*****************************************************************
  2. * 此部分為主程序
  3. *控制數(shù)碼管的顯示 以及定義發(fā)向串口的函數(shù)
  4. *!!!
  5. *此程序只能與上位機(jī)程序配合使用,或者修改相應(yīng)上位機(jī)代碼
  6. ******************************************************************/
  7. #include <reg52.H>

  8. extern GetTemp();                                                                           //聲明引用外部函數(shù)
  9. extern unsigned int  idata Temperature;                      // 聲明引用外部變量
  10.                                                                  
  11. extern STC_send_bluetooth(unsigned char a);                          //聲明外部函數(shù),與串口相關(guān)
  12. extern Serial_port_init();
  13. extern ctrl();

  14. extern unsigned char tmp;
  15. extern void Init18b20(void);
  16. extern bit  flag;//DS18B20是否損壞標(biāo)志位,1為完好


  17. void send();//處理18B20發(fā)來(lái)的溫度值,將各個(gè)位分別存儲(chǔ),并控制發(fā)向串口
  18. void delay(unsigned int i);//延時(shí)程序

  19. //138的C、B、A端 用于數(shù)碼管的位選
  20. sbit    LS138A=P2^2;       //管腳定義
  21. sbit    LS138B=P2^3;
  22. sbit    LS138C=P2^4;
  23. sbit    PowerDown=P2^1;           //若18B20損壞,指示燈滅





  24. //此表為 LED 的字模, 共陰數(shù)碼管 0-9  -
  25. unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
  26. unsigned long  LedOut[3],LedNumVal;

  27. unsigned char num[3];
  28. unsigned char end_char;                         //定義串口發(fā)送結(jié)束符


  29. unsigned char ARQFlag=0;//請(qǐng)求重發(fā)標(biāo)志位,若為0,表示不重發(fā)
  30. unsigned char AutoSendFlag=0;//為了減小硬件帶來(lái)的誤差,單片機(jī)用于重新發(fā)送給上位機(jī)的標(biāo)志位

  31. /********************************
  32. *判斷18B20是否損壞或未連接
  33. *若損壞或未連接,發(fā)給上位機(jī)FF作為提示
  34. *************************************/
  35. bit Is_18B20()
  36. {
  37.         Init18b20();
  38.         if(!flag)
  39.         {
  40.           STC_send_bluetooth(0x46);        //字符F

  41.           delay(500);                                         //發(fā)送完一個(gè)字符加一定的延時(shí)

  42.           STC_send_bluetooth(0x46);

  43.           delay(500);

  44.           STC_send_bluetooth(0x43);                  //字符C的ASCII碼,作為此次發(fā)送完畢的結(jié)束標(biāo)?
  45.          
  46.           delay(5000);                                          //稍微延長(zhǎng)延時(shí),等待發(fā)送完畢

  47.           PowerDown=1;                                          //指示燈滅

  48.           PCON |= 0x02;                                          //單片機(jī)進(jìn)入停機(jī)模式,此時(shí)內(nèi)部晶振停振,只能靠外部INT0~3引腳喚醒或復(fù)位

  49.           return 0;
  50.         }
  51.         return 1;
  52. }

  53. /********************************
  54. *定時(shí)器中斷相關(guān)初始化
  55. *********************************/
  56. void system_Init()
  57. {
  58.         TMOD&=0xF0;
  59.     TMOD|= 0x01;
  60.     TH0 = 0xD8;    //10ms
  61.     TL0 = 0xF0;               
  62.     TR0  = 1;
  63.         ET0=1;
  64.         EA=1;

  65. }

  66. /************************************************************************************
  67. *主函數(shù),用于定時(shí)器中斷,波特率發(fā)生器初始化,處理串口數(shù)據(jù),以及數(shù)碼管的顯示
  68. ************************************************************************************/
  69. void main()
  70. {
  71.         unsigned char i;
  72.         end_char='C';
  73.         Serial_port_init();
  74.     system_Init();
  75.         //delay(1050);         
  76. //        1000           19.57ms
  77. //800 15.67
  78. //1200 23.49
  79. //1100 21.52
  80. //1050 20.55
  81. if(Is_18B20())                  //若18B20沒(méi)有損壞,則繼續(xù)執(zhí)行
  82. {
  83.     while(1)
  84.    {
  85.                    if(RI==1)                     // 是否有數(shù)據(jù)到來(lái)
  86.         {
  87.            RI = 0;
  88.            tmp = SBUF;                   // 暫存接收到的數(shù)據(jù)
  89.                    ctrl();                                                 //根據(jù)接收的字符做出相應(yīng)的處理
  90.                 }
  91.           GetTemp();                                                 //獲取溫度

  92.              /********以下將讀18b20的數(shù)據(jù)送到LED數(shù)碼管顯示*************/

  93.      for(i=0; i<2; i++)  
  94.           {               
  95.                  P0 = LedOut[i] ;
  96.                                             
  97.                 switch(i)                                          
  98.          {                      //138譯碼                    
  99.             case 0:LS138C=0;LS138B=0;LS138A=0;   break;
  100.             case 1:LS138C=0;LS138B=0;LS138A=1;   break;  //001B 表示位選第一個(gè)數(shù)碼管
  101.                         //case 2:LS138C=0;LS138B=1;LS138A=0;   break;
  102.          }
  103.                  
  104.                 delay(100);
  105.           }
  106.          
  107.           P0 = 0;  
  108.   
  109.     }
  110. }
  111. }

  112. /**********************************************
  113. *延時(shí)程序
  114. **********************************************/
  115. void delay(unsigned int i)
  116. {
  117.     char j;
  118.     for(i; i > 0; i--)
  119.         for(j = 200; j > 0; j--);
  120. }

  121. /******************************************
  122. *單片機(jī)串口發(fā)送函數(shù)
  123. ******************************************/
  124. void send()
  125. {
  126.         if(AutoSendFlag==20)                                  //當(dāng)單片機(jī)有20秒沒(méi)有發(fā)送數(shù)據(jù)給上位機(jī)時(shí),發(fā)送一次數(shù)據(jù),防止硬件誤差
  127.         {
  128.                 AutoSendFlag='s';
  129.         }        
  130.          if((LedNumVal)==(Temperature) && ARQFlag==0&&AutoSendFlag!='s')  // 溫度值與上次相等并且不要求重發(fā),則不執(zhí)行send()發(fā)送到串口
  131.          {
  132.                    return;        
  133.          }
  134.         else
  135.          {
  136.           LedNumVal=Temperature;      //把實(shí)際溫度送到LedNumVal變量中

  137.          num[0]=        LedNumVal%100/10;
  138.          num[1]=        LedNumVal%10;

  139.          /* //若需要小數(shù)后一位的數(shù)據(jù)
  140.          num[0]=        (LedNumVal/100)%10;        //十位
  141.          num[1]=        (LedNumVal/10)%10;        //個(gè)位
  142.          num[2]=     LedNumVal%10;                //小數(shù)點(diǎn)后一位
  143.          */
  144.          delay(1050);

  145.          STC_send_bluetooth(num[0]+0x30);

  146.          delay(1050);                                         //發(fā)送完一個(gè)字符加一定的延時(shí)

  147.          STC_send_bluetooth(num[1]+0x30);

  148.          delay(1050);                                         //15.67ms

  149.          STC_send_bluetooth(0x43);                  //字符C的ASCII碼,作為此次發(fā)送完畢的結(jié)束標(biāo)志

  150.          delay(1050);

  151.      LedOut[0]=Disp_Tab[num[0]];         //溫度的十位
  152.      LedOut[1]=Disp_Tab[num[1]];    //溫度的個(gè)位
  153.          //LedOut[2]=Disp_Tab[num[2]];         //溫度的小數(shù)后一位


  154.          if(ARQFlag)                                  //若是上位機(jī)請(qǐng)求重發(fā)的,此時(shí)ARQFlag為1,需要手動(dòng)置0
  155.          

  156. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料打包下載:
Android的溫度采集系統(tǒng)源碼.zip (1.75 MB, 下載次數(shù): 434)



作者: q378701085    時(shí)間: 2017-5-9 00:23
正需要~!  謝謝分享
作者: rich8086    時(shí)間: 2017-5-17 20:21
我正在做個(gè)測(cè)轉(zhuǎn)速的,通過(guò)霍爾3144傳感器獲取數(shù)據(jù)在1602A上展示,同時(shí)傳送給Android端APP
作者: ABLgle    時(shí)間: 2017-9-29 22:29
謝謝樓主分享!!!!
作者: e-xp    時(shí)間: 2017-10-10 23:21
好資料
作者: ABLgle    時(shí)間: 2017-10-11 20:43
謝謝樓主分享,學(xué)習(xí)勒~~~
作者: 糖豆森    時(shí)間: 2017-11-16 20:17
辛苦了辛苦了
作者: changle11    時(shí)間: 2017-11-17 10:07
看下app碼
作者: 18907733004    時(shí)間: 2017-11-28 22:37
請(qǐng)問(wèn)打開(kāi)app 與HC-06怎么連接呢      一直連不上的
作者: 練氏    時(shí)間: 2017-11-29 10:43
兄弟  謝謝分享,還帶安卓源碼?是用易安卓寫(xiě)的???
作者: 練氏    時(shí)間: 2017-11-29 10:46
問(wèn)題是我不知道你的安卓代碼怎么用啊  老鐵
作者: elementalmas    時(shí)間: 2018-1-2 16:18
沒(méi)有黑幣 可以發(fā)一份到986394529@qq.com
作者: elementalmas    時(shí)間: 2018-1-2 16:50
非常感謝
作者: happy.    時(shí)間: 2018-1-2 16:51
設(shè)計(jì)不錯(cuò),很好 值得學(xué)習(xí)
作者: elementalmas    時(shí)間: 2018-1-4 17:18
請(qǐng)問(wèn)有pcb的庫(kù)嗎?
作者: qsc518    時(shí)間: 2018-1-17 15:45
剛好需要這個(gè)   謝謝樓主
作者: 12354785    時(shí)間: 2018-3-19 15:20
qsc518 發(fā)表于 2018-1-17 15:45
剛好需要這個(gè)   謝謝樓主

多交流問(wèn)題
作者: 12354785    時(shí)間: 2018-3-19 15:21
elementalmas 發(fā)表于 2018-1-4 17:18
請(qǐng)問(wèn)有pcb的庫(kù)嗎?

百度有很多
作者: junerver    時(shí)間: 2018-3-27 11:45
想看安卓源代碼是怎么寫(xiě)的
作者: 152101102    時(shí)間: 2018-4-20 10:02
想看安卓源代碼是怎么寫(xiě)的 發(fā)一份1216754090@qq.com
作者: hq1119418168    時(shí)間: 2018-5-9 17:10
好厲害
作者: wxc19960311    時(shí)間: 2018-5-10 16:44
樓主,無(wú)法下載,能分享一份嗎謝謝1306501801@qq.com
作者: zhousw08    時(shí)間: 2018-5-18 10:42
急需要這個(gè)資料
謝謝

作者: zhousw08    時(shí)間: 2018-5-18 10:54
怎么下不了
作者: wangjie19862    時(shí)間: 2018-7-3 20:21
感謝樓主分享
作者: songyuan    時(shí)間: 2018-7-5 16:47
學(xué)習(xí)一下
作者: 胡建人    時(shí)間: 2018-10-10 16:00
剛好需要,黑幣不夠,可以發(fā)514699340@qq.com嗎?謝謝
作者: fzy12345    時(shí)間: 2018-11-12 20:33
真好,非常有用
作者: WFX777888    時(shí)間: 2019-1-12 06:59
謝謝分享資料
作者: kongle    時(shí)間: 2019-1-15 13:34
謝謝分享,學(xué)習(xí)了
作者: vaeay    時(shí)間: 2019-2-17 17:46
很好,正好要用

作者: cbccbc    時(shí)間: 2019-4-6 22:42
謝謝樓主分享,學(xué)習(xí)勒~~~
作者: cbccbc    時(shí)間: 2019-4-6 22:43
謝謝樓主分享,學(xué)習(xí)勒~~~

作者: clytze    時(shí)間: 2019-5-17 11:07
有實(shí)物圖嘛
作者: rayin    時(shí)間: 2020-11-15 14:56
學(xué)習(xí)第一手資料




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 在线欧美视频 | 色婷婷亚洲国产女人的天堂 | 91佛爷在线观看 | 中文字幕 视频一区 | 久久精品国产一区二区 | 亚洲网站在线观看 | 国产精品区一区二区三区 | av在线成人| 自拍偷拍亚洲一区 | 黄篇网址 | 国产精品久久久久久久久免费樱桃 | 中文字幕亚洲精品 | 久久久国产精品 | 一色桃子av一区二区 | 免费久久视频 | 亚洲区一区二 | 欧美日本韩国一区二区三区 | 成人一区二区电影 | 国产精品国产 | 精品国产乱码久久久久久88av | 国产精品久久av | 亚洲欧美中文日韩在线v日本 | 福利一区二区在线 | 国产精品黄视频 | 91久久精品一区二区二区 | 最新日韩在线 | 日韩av.com | 青娱乐av| 久草成人 | 国产综合视频 | 激情五月婷婷 | 久草.com | 亚洲一区二区三区四区五区午夜 | 欧美精品久久久 | 欧美大片在线观看 | 免费成人高清在线视频 | 欧美日韩高清 | 国产va| 国产日韩欧美激情 | 在线激情视频 | 国产精品美女一区二区 |