51单片机通过蓝牙控制led小灯

51单片机通过蓝牙控制led小灯

本人第一次接触蓝牙模块,暂时从基础的地方做起。
目录@TOC
1.材料
2.接线
3.程序
4.展示结果

**

材料

**:①hc-05蓝牙模块(淘宝上有很便宜),hc-06应该也可以。
在这里插入图片描述
在这里插入图片描述

  ②主控:普中科技的stc89c52单片机开发板(51系列各种开发板大同小异不必过于担心和我的开发板不同)

在这里插入图片描述

③蓝牙app:spp蓝牙串口(网上有资源)
④杜邦线若干

**

接线

**
在这里插入图片描述
蓝牙RXD接单片机P3^0
蓝牙TXD接单片机P3^1
蓝牙GND接单片机GND
蓝牙vcc接单片机3.3v
配一张原理图更清楚
配一张原理图更清楚

**

程序

**

#include<reg52.h>

typedef unsigned int uint;
typedef unsigned char uchar; 
sbit led0 = P2^0;//根据各位实际的单片机上的led灯位来设置
sbit led1 = P2^1;
sbit led2 = P2^2; 
sbit led3 = P2^3; 
sbit led4 = P2^4; 
sbit led5 = P2^5; 
sbit led6 = P2^6; 
sbit led7 = P2^7; 
uint pass = 0;      //传递数据位
 

void UART_init()    //设置串行通信 本晶振为11.0592MHZ
{
      TMOD = 0x20;
      TH1 = 0xfd;
      TL1 = 0xfd;  //波特率9600
      SM0 = 0;  
      SM1 = 1;   // 串口工作方式1 10位异步
      REN = 1;  //串口允许接收
      TR1 = 1;
      EA = 1;
      ES =1 ;  //串口中断
}

int main()
{
	
	  UART_init();  //波特率9600 
while(1)
{	
	if(pass == 0x30)//0的ascaII码是48,转换为16进制是30,即0x30 蓝牙通信都是发送ASCII码 
	{
	pass++;//点亮第一个led灯0x31
	}						
  if(pass==0x39)//输入八次后返回点亮第一个灯
	{
	pass=0x31;
	}
                         

switch (pass)
{
	case 0x31:led0 = 0;break;
	case 0x32:led1 = 0;break;
	case 0x33:led2 = 0;break;
	case 0x34:led3 = 0;break;
	case 0x35:led4 = 0;break;
	case 0x36:led5 = 0;break;
	case 0x37:led6 = 0;break;
	case 0x38:led7 = 0;break;
	case 0x39:P2 = 0xfe;break;
	default:P2 = 0xff;break;//输入其他P2接口全为高电平灯全灭
}
       
               
}							 
				        
}

void UART_INTERRUPT() interrupt 4
{        
              pass = SBUF;
              RI = 0;   
              SBUF = pass;    //手机和蓝牙模块通讯时,我们可以打开电脑串口调试工具查看我们的发送值)
              while(!TI);
              TI = 0;  
}

**

展示结果

**
①打开蓝牙app
在这里插入图片描述
在这里插入图片描述
②开始通信
输入0x31
输入0x31
第一个led灯亮
第一个led灯亮
输入0x32
输入0x32
第二个led灯亮

第二个led灯亮
输入0x36
输入0x36
第六个led灯亮
第六个led灯亮

**

结束语

**
剩下的大家可自己尝试结果

蓝牙APP的软件我放在网盘里找不到的同学自取

hi,这是我用百度网盘分享的内容~复制这段内容打开「百度网盘」APP即可获取 
链接:https://pan.baidu.com/s/1odFLvr0Q7Ib4kMstBNHIkw 
提取码:9987

  • 43
    点赞
  • 306
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 47
    评论
评论 47
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞天大司马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值