当前位置:   article > 正文

C51单片机利用HC-05蓝牙模块实现手机点灯_蓝牙txd和p3

蓝牙txd和p3

蓝牙通信,实现手机端远程(15米)控制单片机,这听起来对于初学者的我来说,是那么不可思议,经过不断地实验,阅读其他大佬的文章,终于实现了。

在有基础的通信原理知识的前提下,知,HC-05蓝牙模块与51的通信其实很简单,就是蓝牙模块的RXD(接收端)接单片机的TXD(发送端),同样,TXD接RXD。

51单片机的P3^0为其R XD,P3^1为其TXD。

接线如图所示:

手机端我推荐使用SPP蓝牙串口,界面简单清晰,适合初次使用HC-05的同学,长这样:

给蓝牙模块接上电后就可以在这个软件上找到它的信号了,可以直接连接。(接电后未连接的情况下模块会持续闪烁,连接成功后后闪烁频率降低)。

原理图:(不好意思,画图能力有限),功能实现的原理大致就是手机端通过软件控制HC-05蓝牙模块,手机端发送数据给蓝牙模块,实际就成为蓝牙模块发送数据给单片机,同样单片机也能发送数据给蓝牙模块,即双方通过TXD,RXD都能发送和接收。

利用此原理,我们就可以这样编写代码来设计单片机:当接收到什么数据的时候,做出什么反应,就可以实现手机点灯了。

  1. dat为接收到的数据
  2. switch(dat)
  3. {
  4.     case 1:......//当dat=1时
  5.     case 2:......//当dat=2时
  6.     case 3:......//.....
  7.     .............
  8. }

数据的发送与接收是通过串口通信实现的,所以我们需对串口初始化,写中断函数。

工程总代码如下:

  1. #include <REGX52.H>
  2. #include <stdlib.h>
  3. sbit LED1=P2^0;
  4. sbit LED2=P2^1;
  5. sbit LED3=P2^2;
  6. sbit LED4=P2^3;
  7. sbit LED5=P2^4;
  8. sbit LED6=P2^5;
  9. sbit LED7=P2^6;
  10. sbit LED8=P2^7;
  11. unsigned char dat;
  12. void UART_init() //设置串行通信 本晶振为11.0592MHZ
  13. {
  14. TMOD = 0x20;
  15. TH1 = 0xfd;
  16. TL1 = 0xfd; //波特率9600
  17. SM0 = 0;
  18. SM1 = 1; // 串口工作方式1 10位异步
  19. REN = 1; //串口允许接收
  20. TR1 = 1;
  21. EA = 1;
  22. ES =1 ; //串口中断
  23. }
  24. void UART_SendByte(unsigned char Byte) //字节的发送
  25. {
  26. SBUF = Byte;
  27. while(TI == 0);//当数据发送完成时,TI会变为一
  28. TI = 0;
  29. }
  30. void main()
  31. {
  32. UART_init();
  33. LED1=1,LED2=1,LED3=1,LED4=1,LED5=1,LED6=1,LED7=1,LED8=1;
  34. while(1)
  35. {
  36. switch(dat)
  37. {
  38. case 1 :{LED1=0;break;}
  39. case 2 :{LED2=0;break;}
  40. case 3 :{LED3=0;break;}
  41. case 4 :{LED4=0;break;}
  42. case 5 :{LED5=0;break;}
  43. case 6 :{LED6=0;break;}
  44. case 7 :{LED7=0;break;}
  45. case 8 :{LED8=0;break;}
  46. }
  47. }
  48. }
  49. void UART_INTERRUPT() interrupt 4
  50. {
  51. if(RI==1)//RI=1时表示接收到了数据
  52. {
  53. dat = SBUF;//创建变量dat接收缓存区的数据,实现接收。
  54. RI = 0;
  55. UART_SendByte(SBUF);//或SBUF = dat; 将数据放于缓冲位实现发送。
  56. }
  57. }

这样就可以实现了。

现象如下:

文章如有不对的地方,期待您的指正。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/153434?site
推荐阅读
相关标签
  

闽ICP备14008679号