手机与单片机通过蓝牙通信----手机控制灯

 

如需转载请标明出处:http://blog.csdn.net/itas109 

QQ技术交流群:129518033

 

 

 

环境   1、普中科技HC6800-EM3 v2.2 单片机开发实验仪(芯片STC90C516RD+)
          2、无线蓝牙串口透传模块 HC-06从机
          3、windows xp操作系统
          4、Android手机(蓝牙串口通信助手软件)

注意:蓝牙部分连线图与实物图不符。可以参照下图接蓝牙(2013年05月31日改)

          上拉电阻的阻值有人问我,我当时用的是1KΩ。

手机与单片机通过蓝牙通信----手机控制灯_第1张图片

蓝牙开发初级实例,用手机控制灯的亮灭。

 实物连线图:

手机与单片机通过蓝牙通信----手机控制灯_第2张图片

 

单片机代码

  /***********************************************************
STC89C52与蓝牙连线:
 蓝牙  51
 RXD    TXD
 TXD    RXD
其他连线:
 P2.0、P2.1、P2.3分别接一个指示灯
手机采用蓝牙串口通信助手
***********************************************************/
#include 
#include 
unsigned char tmp;
sbit led1=P2^0;     //指示灯0
sbit led2=P2^1;   //指示灯1
sbit led3=P2^3;   //指示灯3
void init();
void delay(unsigned int i);
void send(); //发送回馈信息,目前无效不知道什么原因
void ctrl();
void main()
{
  init();
          while(1)
          {
          
                  if(RI==1)                     // 是否有数据到来
                  {
                   RI = 0;
                  tmp = SBUF;                   // 暂存接收到的数据
      ctrl();
      }          
          }
}
 void init() //初始化
 {
  TMOD = 0x20;                        // 定时器1工作于8位自动重载模式, 用于产生波特率
          TH1=TL1=0xFD;                                // 波特率9600
          
          SCON = 0x50;                        // 设定串行口工作方式1 允许接收,相当于下面三句
        //SM0=0;
       //SM1=1;
        //REN=1;
               PCON =0x00;                        // 波特率不倍增
          TR1 = 1;
    EA=1;
        ES=1;
          led1=0;                            //初始化设置3个指示灯全亮
    led2=0;
    led3=0;
 }
void delay(unsigned int i)
{
 unsigned char j;
 for(i; i > 0; i--)
  for(j = 200; j > 0; j--) ;
}
void send() //发送回馈信息,目前无效不知道什么原因
{
 unsigned char a;
 a=tmp;
 TI=0;
 SBUF=a;
 while(TI==0);
 TI=0;
 led3=1;
 //delay(1000);
}
void ctrl()   //根据接受信息做出操作
{
        switch(tmp)
      {
       case '1':
      led1=1;              //收到字符1,指示灯0灭
      send();
      break;     
     case '2':      //收到字符2,指示灯1灭
       led2=1; 
       send();
       break;
     case '3':        //收到字符3,指示灯0、1亮
       led1=0;
       led2=0;
       send();
       break;
     case '4':     //收到字符4,指示灯0、1灭
        led1=1;
        led2=1;
        send();
        break;
     case '5':     //收到字符5,指示灯3亮
      led3=0;
      break;
     default:                   //其他,灯全灭
        led1=1;
        led2=1;
        led3=1;
        send();
      }
}


手机通过蓝牙串口助手操作:

手机与单片机通过蓝牙通信----手机控制灯_第3张图片

 

觉得文章对你有帮助,可以扫描二维码捐赠给博主,谢谢!

如需转载请标明出处:http://blog.csdn.net/itas109 

QQ技术交流群:129518033


 

你可能感兴趣的:(蓝牙通讯)