找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6300|回复: 8
收起左侧

蓝牙定时开关APP软件(附51单片机参考程序)

  [复制链接]
ID:130231 发表于 2018-9-27 21:01 | 显示全部楼层 |阅读模式
本帖最后由 zqy181818 于 2018-9-30 22:59 编辑

APP发送字符“1”至“7”数字。比如第一组定时发送的是字符“1”。第二组定时发送字符“2”.....一共7组。可用串口助手测试,电脑与蓝牙模块通信连接,如图1.所示。

图1.PNG 成功发送字符.PNG 图片2.PNG.thumb.jpg

单片机源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar tmp;
  6. uint c=0;
  7. sbit led1=P1^0;                    //指示灯0
  8. sbit led2=P1^1;                        //指示灯1
  9. sbit led3=P1^2;                        //指示灯3
  10. sbit led7=P1^7;                        //指示灯3

  11. sbit P2_0 = P2^0;
  12. sbit P2_1 = P2^1;
  13. sbit P2_2 = P2^2;
  14. sbit P2_3 = P2^3;

  15. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
  16.                         0xf8,0x80,0x90};

  17. void delay1(uint z)//1ms
  18. {
  19.         uint x,y;
  20.         for(x=z;x>0;x--)
  21.                 for(y=120;y>0;y--);        
  22. }
  23. void display(uchar value)
  24. {
  25.     uchar shu1,value1;
  26.         value1=value-48;
  27.         //bai=value1/16;
  28.         shu1=value1%16;


  29.    P0=table[shu1];
  30.    P2_0 = 0;
  31.    delay1(1);
  32.    P2_0 = 1;
  33. }        
  34.          
  35. void init();   //串口初始化
  36. void send(unsigned char a);        //单字节发送函数
  37. void ctrl(); //接收处理函数

  38. void main()
  39. {
  40.                 init();
  41.           while(1)
  42.           {         
  43.                   display(SBUF);
  44.                                   if(RI==1)                     // 是否有数据到来
  45.                   {
  46.                    RI = 0;
  47.                                   ctrl();
  48.                                   }      
  49.           }
  50. }

  51. void init()        //串口初始化
  52. {
  53.                    ES=0;                                                                  //关中断
  54.                   SCON = 0x50;                        // REN=1允许串行接受状态,串口工作模式1,
  55.                                                                                           //10位UART(1位起始位,8位数据位,1位停止位,无奇偶校验),波特率可变

  56.                   TMOD = 0x20;                        // 定时器1工作于方式2,8位自动重载模式, 用于产生波特率
  57.           TH1=TL1=0xFD;                       // 波特率9600 (本次测试采用晶振为11.0592)
  58.          
  59.           PCON &= 0x7f;                       // 波特率不倍增
  60.           TR1 = 1;                                                          //定时器1开始工作,产生波特率
  61.                                                                                           //发送标志位置0
  62.                   TI=0;                                                                  //接收标志位置0
  63.                   RI=0;
  64.                   
  65.                   //EA=0;
  66.               ES=1;
  67. }
  68.    
  69. void send(unsigned char a)        //单字节数据发送
  70. {                                                        //注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻
  71.         TI=0;        
  72.         SBUF=a;
  73.         while(TI==0);
  74.         TI=0;

  75.         if(c%2)                                        //发送指示灯标志,每接收一次,此灯亮灭交替
  76.          led7=1;
  77.         else
  78.          led7=0;
  79.         c++;
  80. }

  81. void ctrl()                            //接收处理函数
  82. {
  83.                                     switch(tmp)
  84.                                   {
  85.                                           case '1':
  86.                                                 led1=1;                                   //收到字符1,指示灯0灭
  87.                                                 send(tmp);
  88.                                                 break;                                       
  89.                                         case '2':                                         //收到字符2,指示灯1灭
  90.                                                  led2=1;
  91.                                                  send(tmp);
  92.                                                  break;
  93.                                         case '3':                                    //收到字符3,指示灯0、1亮
  94.                                                  led1=0;
  95.                                                  led2=0;
  96.                                                  send(tmp);
  97.                                                  break;
  98.                                         case '4':                                        //收到字符4,指示灯0、1灭
  99.                                                   led1=1;
  100.                                                   led2=1;
  101.                                                   send(tmp);
  102.                                                   break;
  103.                                         case '5':                                        //收到字符5,指示灯3亮
  104.                                                 led3=0;
  105.                                                 send(tmp);
  106.                                                 break;
  107.                                         default:                   //其他,灯全灭
  108.                                                   led1=1;
  109.                                                   led2=1;
  110.                                                   led3=1;
  111.                                                   send(tmp);
  112.                                   }
  113. }
复制代码

0.png

所有资料51hei提供下载:
蓝牙定时开关APP软件(附51单片机参考程序).zip (1.54 MB, 下载次数: 123)

评分

参与人数 1黑币 +15 收起 理由
zbfdyw + 15 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:138119 发表于 2018-11-28 10:14 | 显示全部楼层
谢谢共享!了解一下!
回复

使用道具 举报

ID:434853 发表于 2018-11-28 11:58 来自手机 | 显示全部楼层
我也想看看
回复

使用道具 举报

ID:451500 发表于 2018-12-21 13:51 | 显示全部楼层
谢谢分享,好强大
回复

使用道具 举报

ID:273035 发表于 2019-1-23 14:40 来自手机 | 显示全部楼层
学习一下!!
回复

使用道具 举报

ID:473471 发表于 2019-7-8 00:36 | 显示全部楼层
好资料谢谢分享
回复

使用道具 举报

ID:266277 发表于 2019-11-8 09:17 | 显示全部楼层
谢谢支持
回复

使用道具 举报

ID:417385 发表于 2019-12-2 11:00 | 显示全部楼层
你好,请问app是用什么写的
回复

使用道具 举报

ID:130231 发表于 2020-2-11 16:13 | 显示全部楼层
木舟侧 发表于 2019-12-2 11:00
你好,请问app是用什么写的

E4A软件
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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