按键控制led灯亮灭编写程序_51单片机+语音控制+蓝牙控制+按键+LED灯

还是用最简单的语言,粗暴记录制作的过程,三种模式控制一个灯。

准备材料:

51单片机STC89C52RC1个
蓝牙模块HC-05 1个
语音控制模块MR3201个
继电器模块两路继电器1个
LED灯3mm灯珠1个
电阻330Ω1个
杜邦线公对母+公对公n条

语音模块购买地址:

https://detail.tmall.com/item.htm?id=620989335511&spm=a1z09.2.0.0.6a0a2e8dvYlEdP&_u=j1rgp58kd5ae

实现功能:

蓝牙模式:手机端采用蓝牙调试串口软件,发送相应指令,实现控制灯的亮灭。

语音模式:直接对和语音模块的麦克风喊出识别词条的内容,即可发送出相应指令,控制灯的亮灭。

代码:

#include "reg52.h"sbit floor_led1 = P2^0;   sbit mode = P0^1;   //蓝牙和语音模式选择端口void delay(uchar i){  uchar j,k;  for(j=i;j>0;j--)  for(k=125;k>0;k--);} void init(){  TMOD=0x20;      //设定T1定时器工作方式2  TH1=0xfd;       //T1定时器装初值  TL1=0xfd;       //  TR1=1;          //启动T1定时器  REN=1;          //允许串口接收  SM0=0;          //设定串口工作方式1  SM1=1;          //设定串口工作方式1  EA=1;           //开总中断  ES=1;           //开串口中断 } void main(){  init();  while(1)  {  }} void ser() interrupt 4 {   unsigned char receiveData;    receiveData=SBUF;   RI = 0;             SBUF=receiveData;   while(!TI);        TI=0;      if(mode == 0)  {    switch(receiveData)    {      case 'a':                  floor_led1 = ~floor_led1;  //地板灯            break;         default :        break;      }  }  else  {    switch(receiveData)    {      case 'a':                  floor_led1 = 0;  // 地板灯  开            break;         case 'A':                  floor_led1 = 1;  // 地板灯  关            break;        default :        break;      }  }    }

61fe496804a2cdcf7c6d94a394cf034b.png

af5a5f34aa29162074d1e9f168e192f1.png

接线:

a625567d0182198a22dc3f20096e1d06.png

扩展:

1、一定要将语音模块和蓝牙模块的电源线分别供电,否则串口会受到干扰。

2、51单片机只有一个串口,所以不能同时接受语音模块和蓝牙模块的数据,同时连接,一个串口数据也接收不到,分开则可以。

3、单片机自己串口收发时,TXD和RXD是可以接在一起的(在这地方脑子曾经短路过)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值