現在能實現的功能:測量溫度
OLED顯示時間和日期
通過藍牙發送數據給手機
后期還要加上重量
有需要的朋友自行下載
IMG_20191222_095202.jpg (4.98 MB, 下載次數: 78)
下載附件
2019-12-22 09:58 上傳
單片機源程序如下:
- #include "reg52.h"
- #include "oled.h"
- #include "bmp.h"
- #include "ds18b20.h"
- #include <stdio.h>
- #include "ds1302.h"
- sbit key_s2 = P2^0;//獨立按鍵S2
- //串口初始化
- void UARTInit()
- {
- SM0 = 0; SM1 = 1;//串口工作方式1,8位UART波特率可變
- TR1 = 1;//啟動定時器1
- TMOD |= 0x20;//定時器1,工作模式2 8位自動重裝
- TH1 = 0xfd;
- TL1 = 0xfd;//設置比特率9600
- }
- int main(void)
- {
- extern uint temp_ds; //傳遞當前溫度值
-
- OLED_Init(); //初始化OLED
- OLED_Clear(); //OLED清屏
- UARTInit(); //串口初始化
- DS1302Init(); //DS1302初始化
- OLED_ShowCHinese(0,6,0); //溫
- OLED_ShowCHinese(16,6,1); //度
- OLED_ShowString(32,6,":",16);
- OLED_ShowCHinese(88,6,2); //℃
-
- OLED_ShowCHinese(0,4,5); //重
- OLED_ShowCHinese(16,4,6); //量
- OLED_ShowString(32,4,":",16);
- while(1)
- {
- if(key_s2 == 0)//判斷S2是否被按下
- {
- delay_ms(20);//按鍵消抖
- if(key_s2 == 0)
- {
- TI = 1;
- printf("temp is %d.%d C\n",temp_ds/10,temp_ds%10); //檢測有誤按鍵按下 輸出當前溫度值給手機APP
- while(!TI);
- TI = 0;
- while(!key_s2);//松手檢測
- }
- }
- Test_Temp(); //溫度顯示
- Test_Time(); //時間顯示
- }
-
- }
復制代碼
所有資料51hei提供下載:
51.zip
(83.25 KB, 下載次數: 308)
2019-12-22 09:57 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|