找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8461|回复: 6
收起左侧

51单片机蓝牙通信源码

  [复制链接]
ID:351822 发表于 2018-6-14 14:40 | 显示全部楼层 |阅读模式
51单片机蓝牙通信源码
0.png 0.png 0.png

单片机源程序如下:
  1. /*********************************************************************************
  2. * 【作    者】: 清翔电子:03
  3. * 【实验平台】: QX-MINI51 单片机开发板
  4. * 【外部晶振】: 11.0592mhz       
  5. * 【主控芯片】: STC89C52
  6. * 【编译环境】: Keil μVisio3       
  7. * 【程序功能】: 蓝牙数码管显示加LED指示灯                                                                                           
  8. * 【使用说明】:

  9. STC89c52与HC-06蓝牙连线:
  10.         RXD    TXD
  11.         TXD    RXD
  12.         蓝牙连接方式请参照本文件下的图片
  13. 手机采用蓝牙串口通信助手
  14. 最后已改用Android自编蓝牙通信软件
  15. 蓝牙模块安装方法请参照本文件夹下的图片01
  16. **********************************************************************************/

  17. #include <reg52.h>
  18. #include <intrins.h>
  19. #define uchar unsigned char
  20. #define uint unsigned int
  21. uchar tmp;
  22. uint c=0;
  23. sbit led1=P1^0;                    //指示灯0
  24. sbit led2=P1^1;                        //指示灯1
  25. sbit led3=P1^2;                        //指示灯3
  26. sbit led7=P1^7;                        //指示灯3

  27. sbit P2_0 = P2^0;
  28. sbit P2_1 = P2^1;
  29. sbit P2_2 = P2^2;
  30. sbit P2_3 = P2^3;

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

  33. void delay1(uint z)//1ms
  34. {
  35.         uint x,y;
  36.         for(x=z;x>0;x--)
  37.                 for(y=120;y>0;y--);       
  38. }
  39. void display(uchar value)
  40. {
  41.     uchar shu1,value1;
  42.         value1=value-48;
  43.         //bai=value1/16;
  44.         shu1=value1%16;


  45.    P0=table[shu1];
  46.    P2_0 = 0;
  47.    delay1(1);
  48.    P2_0 = 1;
  49. }       
  50.           
  51. void init();   //串口初始化
  52. void send(unsigned char a);        //单字节发送函数
  53. void ctrl(); //接收处理函数

  54. void main()
  55. {
  56.                 init();
  57.           while(1)
  58.           {         
  59.                   display(SBUF);
  60.                                   if(RI==1)                     // 是否有数据到来
  61.                   {
  62.                    RI = 0;
  63.                                   ctrl();
  64.                                   }      
  65.           }
  66. }

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

  72.                   TMOD = 0x20;                        // 定时器1工作于方式2,8位自动重载模式, 用于产生波特率
  73.           TH1=TL1=0xFD;                       // 波特率9600 (本次测试采用晶振为11.0592)
  74.          
  75.           PCON &= 0x7f;                       // 波特率不倍增
  76.           TR1 = 1;                                                          //定时器1开始工作,产生波特率
  77.                                                                                           //发送标志位置0
  78.                   TI=0;                                                                  //接收标志位置0
  79.                   RI=0;
  80.                   
  81.                   //EA=0;
  82.               ES=1;
  83. }
  84.    
  85. void send(unsigned char a)        //单字节数据发送
  86. {                                                        //注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻
  87.         TI=0;       
  88.         SBUF=a;
  89.         while(TI==0);
  90.         TI=0;

  91.         if(c%2)                                        //发送指示灯标志,每接收一次,此灯亮灭交替
  92.          led7=1;
  93.         else
  94.          led7=0;
  95.         c++;
  96. }

  97. void ctrl()                            //接收处理函数
  98. {
  99.                                     switch(tmp)
  100.                                   {
  101.                                           case '1':
  102.                                                 led1=1;                                   //收到字符1,指示灯0灭
  103.                                                 send(tmp);
  104.                                                 break;                                       
  105.                                         case '2':                                         //收到字符2,指示灯1灭
  106.                                                  led2=1;
  107.                                                  send(tmp);
  108.                                                  break;
  109.                                         case '3':                                    //收到字符3,指示灯0、1亮
  110.                                                  led1=0;
  111.                                                  led2=0;
  112.                                                  send(tmp);
  113.                                                  break;
  114.                                         case '4':                                        //收到字符4,指示灯0、1灭
  115.                                                   led1=1;
  116.                                                   led2=1;
  117.                                                   send(tmp);
  118.                                                   break;
  119.                                         case '5':                                        //收到字符5,指示灯3亮
  120.                                                 led3=0;
  121.                                                 send(tmp);
  122.                                                 break;
  123.                                         default:                   //其他,灯全灭
  124.                                                   led1=1;
  125.                                                   led2=1;
  126.                                                   led3=1;
  127.                                                   send(tmp);
  128.                                   }
  129. }
复制代码

所有资料51hei提供下载:

蓝牙无线通信.rar (2.64 MB, 下载次数: 193)

评分

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

查看全部评分

回复

使用道具 举报

ID:581696 发表于 2019-7-15 11:07 | 显示全部楼层
请问一下,你这个手机蓝牙app是怎么做出来的?
回复

使用道具 举报

ID:625127 发表于 2019-10-19 14:18 | 显示全部楼层
想知道,是不是省略了把SBUF的值赋给tem呀
回复

使用道具 举报

ID:772623 发表于 2020-6-13 22:54 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

ID:772623 发表于 2020-6-15 10:19 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

ID:817787 发表于 2020-10-7 10:41 | 显示全部楼层
为啥我都就只有指示灯亮
回复

使用道具 举报

ID:1003871 发表于 2022-2-12 22:28 | 显示全部楼层
这个app哪里来的啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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