找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7538|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

51單片機測量溫度 顯示時間和日期 OLED顯示 通過藍牙發(fā)送數(shù)據(jù)給手機

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:316776 發(fā)表于 2019-12-22 09:59 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
現(xiàn)在能實現(xiàn)的功能:測量溫度
OLED顯示時間和日期
通過藍牙發(fā)送數(shù)據(jù)給手機
后期還要加上重量
有需要的朋友自行下載


單片機源程序如下:
  1. #include "reg52.h"
  2. #include "oled.h"
  3. #include "bmp.h"
  4. #include "ds18b20.h"
  5. #include <stdio.h>
  6. #include "ds1302.h"



  7. sbit key_s2 = P2^0;//獨立按鍵S2



  8. //串口初始化
  9. void UARTInit()
  10. {
  11.         SM0 = 0;        SM1 = 1;//串口工作方式1,8位UART波特率可變
  12.         TR1 = 1;//啟動定時器1
  13.         TMOD |= 0x20;//定時器1,工作模式2 8位自動重裝
  14.         TH1 = 0xfd;
  15.         TL1 = 0xfd;//設(shè)置比特率9600
  16. }




  17. int main(void)
  18. {       
  19.         extern uint temp_ds;  //傳遞當(dāng)前溫度值
  20.        
  21.         OLED_Init();                        //初始化OLED  
  22.         OLED_Clear();                         //OLED清屏
  23.         UARTInit();                         //串口初始化

  24.         DS1302Init();                          //DS1302初始化
  25.         OLED_ShowCHinese(0,6,0);           //溫
  26.         OLED_ShowCHinese(16,6,1);           //度
  27.         OLED_ShowString(32,6,":",16);
  28.         OLED_ShowCHinese(88,6,2);           //℃
  29.                                          
  30.         OLED_ShowCHinese(0,4,5);           //重
  31.         OLED_ShowCHinese(16,4,6);           //量
  32.         OLED_ShowString(32,4,":",16);



  33.         while(1)
  34.         {               

  35.                 if(key_s2 == 0)//判斷S2是否被按下
  36.                 {
  37.                         delay_ms(20);//按鍵消抖
  38.                         if(key_s2 == 0)
  39.                         {
  40.                                 TI = 1;
  41.                                 printf("temp is  %d.%d C\n",temp_ds/10,temp_ds%10);                //檢測有誤按鍵按下 輸出當(dāng)前溫度值給手機APP
  42.                                 while(!TI);
  43.                                 TI = 0;
  44.                                 while(!key_s2);//松手檢測
  45.                         }       
  46.                 }

  47.                 Test_Temp();         //溫度顯示
  48.                 Test_Time();          //時間顯示

  49.         }          
  50.        
  51. }
復(fù)制代碼

所有資料51hei提供下載:
51.zip (83.25 KB, 下載次數(shù): 308)

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

使用道具 舉報

沙發(fā)
ID:663519 發(fā)表于 2019-12-29 22:08 | 只看該作者
樓主 請問OLED的列選值 第八位 高八位什么 意思 列值怎么設(shè)置
回復(fù)

使用道具 舉報

板凳
ID:726491 發(fā)表于 2020-5-7 09:55 來自手機 | 只看該作者
感謝樓主
回復(fù)

使用道具 舉報

地板
ID:612563 發(fā)表于 2020-5-13 14:57 來自手機 | 只看該作者
里面有仿真文件嗎?
回復(fù)

使用道具 舉報

5#
ID:839398 發(fā)表于 2020-11-14 10:18 來自手機 | 只看該作者
這個  printf  輸出函數(shù)沒有定義
回復(fù)

使用道具 舉報

6#
ID:839398 發(fā)表于 2020-11-14 10:18 來自手機 | 只看該作者
就是藍牙發(fā)送這一串的函數(shù),沒有定義
回復(fù)

使用道具 舉報

7#
ID:829884 發(fā)表于 2020-12-6 20:32 | 只看該作者
我想問下藍牙模塊是已經(jīng)用了RXD TXD口了吧,那單片機下載用什么串口
回復(fù)

使用道具 舉報

8#
ID:378548 發(fā)表于 2021-3-9 17:30 | 只看該作者
手機藍牙APP沒有啊,藍牙型號能說下是多少嗎
回復(fù)

使用道具 舉報

9#
ID:895124 發(fā)表于 2021-3-24 08:36 來自手機 | 只看該作者
xiay 發(fā)表于 2020-12-6 20:32
我想問下藍牙模塊是已經(jīng)用了RXD TXD口了吧,那單片機下載用什么串口

下載時先不接藍牙
回復(fù)

使用道具 舉報

10#
ID:505058 發(fā)表于 2021-4-13 00:29 | 只看該作者
雅痞老板娘 發(fā)表于 2021-3-9 17:30
手機藍牙APP沒有啊,藍牙型號能說下是多少嗎

藍牙都一樣的啊,管他什么型號,串口程序都是一樣的
回復(fù)

使用道具 舉報

11#
ID:28992 發(fā)表于 2021-4-13 08:49 | 只看該作者
great job, thank you Sir!
回復(fù)

使用道具 舉報

12#
ID:836950 發(fā)表于 2021-9-9 08:22 | 只看該作者
大佬,有無原理圖,我想把這個畫出來
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表