找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6283|回复: 11
收起左侧

51单片机测量温度 显示时间和日期 OLED显示 通过蓝牙发送数据给手机

  [复制链接]
ID:316776 发表于 2019-12-22 09:59 | 显示全部楼层 |阅读模式
现在能实现的功能:测量温度
OLED显示时间和日期
通过蓝牙发送数据给手机
后期还要加上重量
有需要的朋友自行下载
IMG_20191222_095202.jpg

单片机源程序如下:
  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;//设置比特率9600
  16. }




  17. int main(void)
  18. {       
  19.         extern uint temp_ds;  //传递当前温度值
  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);                //检测有误按键按下 输出当前温度值给手机APP
  42.                                 while(!TI);
  43.                                 TI = 0;
  44.                                 while(!key_s2);//松手检测
  45.                         }       
  46.                 }

  47.                 Test_Temp();         //温度显示
  48.                 Test_Time();          //时间显示

  49.         }          
  50.        
  51. }
复制代码

所有资料51hei提供下载:
51.zip (83.25 KB, 下载次数: 306)
回复

使用道具 举报

ID:663519 发表于 2019-12-29 22:08 | 显示全部楼层
楼主 请问OLED的列选值 第八位 高八位什么 意思 列值怎么设置
回复

使用道具 举报

ID:726491 发表于 2020-5-7 09:55 来自手机 | 显示全部楼层
感谢楼主
回复

使用道具 举报

ID:612563 发表于 2020-5-13 14:57 来自手机 | 显示全部楼层
里面有仿真文件吗?
回复

使用道具 举报

ID:839398 发表于 2020-11-14 10:18 来自手机 | 显示全部楼层
这个  printf  输出函数没有定义
回复

使用道具 举报

ID:839398 发表于 2020-11-14 10:18 来自手机 | 显示全部楼层
就是蓝牙发送这一串的函数,没有定义
回复

使用道具 举报

ID:829884 发表于 2020-12-6 20:32 | 显示全部楼层
我想问下蓝牙模块是已经用了RXD TXD口了吧,那单片机下载用什么串口
回复

使用道具 举报

ID:378548 发表于 2021-3-9 17:30 | 显示全部楼层
手机蓝牙APP没有啊,蓝牙型号能说下是多少吗
回复

使用道具 举报

ID:895124 发表于 2021-3-24 08:36 来自手机 | 显示全部楼层
xiay 发表于 2020-12-6 20:32
我想问下蓝牙模块是已经用了RXD TXD口了吧,那单片机下载用什么串口

下载时先不接蓝牙
回复

使用道具 举报

ID:505058 发表于 2021-4-13 00:29 | 显示全部楼层
雅痞老板娘 发表于 2021-3-9 17:30
手机蓝牙APP没有啊,蓝牙型号能说下是多少吗

蓝牙都一样的啊,管他什么型号,串口程序都是一样的
回复

使用道具 举报

ID:28992 发表于 2021-4-13 08:49 | 显示全部楼层
great job, thank you Sir!
回复

使用道具 举报

ID:836950 发表于 2021-9-9 08:22 | 显示全部楼层
大佬,有无原理图,我想把这个画出来
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表