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

Posted 飞天大司马

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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灯亮

**

结束语

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

以上是关于51单片机通过蓝牙控制led小灯的主要内容,如果未能解决你的问题,请参考以下文章

单片机一个接口怎么控制两个LED灯?!

STM32怎么实现单片机控制LED灯常亮10S后熄灭?

STM32点亮小灯的程序和方法

51单片机——蓝牙远程点灯

毕业设计 基于51单片机无线蓝牙APP控LED灯亮灭亮度设计

求教如何用单片机控制LED灯的亮度