android端蓝牙控制单片机,android 蓝牙控制继电器——单片机控制端

一直没怎么写博客,贴一个比较简单小例子(以前做的 android 通过wifi实现万能遥控器 中拆分出来的小案例):

android客户端通过蓝牙协议,控制继电器(想控制其他玩意,自己设计)

图示:

27065a765f75b94a37c8545782f122dd.png

今晚,先说硬件电路以及单片机部分。

e75709e906f42bbcfb31a15508dd0b34.png

最小单片机系统板以及外围电路,这个电路非常简单(注意继电器的接法),不做过多介绍。

单片机端程序(蓝牙模块做串口使用):

/***********************************************************

C52与蓝牙连线:

单片机程序需要复位一次 才能有效接收

注意对比特率的设置

蓝牙模块接法

蓝牙 51

RXD TXD

TXD RXD

unsigned int tmp=0x00; //初始tmp定义 主要表明tmp接收的是16进制数据

unsigned char tmp 表明tmp接收的字符型数据

其他连线:

P11接一个继电器

蓝牙模块做串口使用

***********************************************************/

#include #include unsigned int tmp=0x00; //初始tmp定义 主要表明tmp接收的是16进制数据

//unsigned char tmp 表明tmp接收的字符型数据

sbit ji=P1^1; //继电器

void init(); //初始化

void delay(unsigned int i); //延时函数

void ctrl(); //根据接受信息做出操作

void main()

{

init();

ji=0;

while(1)

{

//RI 用来接收和发送的标志位RI==1,表示接收到了 RI==0,表示发送出去了

if(RI==1) // 是否有数据到来

{

tmp = SBUF;

RI = 0; // 暂存接收到的数据

ctrl(); //根据接受信息做出操作

}

}

}

void init() //初始化

{

TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率

TH1=0xFD;

TL1=0xFD; // 波特率9600

SCON = 0x50; // 设定串行口工作方式1 允许接收,相当于下面三句

PCON =0x00; // 波特率不倍增

TR1 = 1;

EA=1;

ES=1;

}

void delay(unsigned int i)

{

unsigned char j;

for(i; i > 0; i--)

for(j = 200; j > 0; j--) ;

}

void ctrl() //根据接受信息做出对应操作

{

switch(tmp) //已经把SBUF中的数据赋值到tmp中了

{

case 0x01:

ji=1; //收到字符1,继电器0关

break;

case 0x02: //收到字符2,继电器开

ji=0;

break;

default:

break;

}

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值