现在能实现的功能:测量温度
OLED显示时间和日期
通过蓝牙发送数据给手机
后期还要加上重量
有需要的朋友自行下载
单片机源程序如下:
- #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)
|