标题: 51单片机蓝牙点灯程序 [打印本页]

作者: 我叫小大打    时间: 2020-9-8 21:43
标题: 51单片机蓝牙点灯程序
适用于:stc15f2k60s2型号单片机(其它型号的51单片机如果想用这个程序,就得修改程序的波特率和某一些的地方才能用)
蓝牙模块:hc-05模块

你用手机给蓝牙发个0,led灯亮,发个1,led灯灭。



单片机源程序如下:
  1. #include <stc15f2k60s2.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int       
  5. uchar receiveData;

  6. sbit led=P0^0;


  7. void UartInit(void)                //9600bps@ 11.0592MHz
  8. {
  9.         PCON &= 0x7F;                //波特率不倍速
  10.         SCON = 0x50;                //8位数据,可变波特率
  11.         AUXR |= 0x40;                //定时器1时钟为Fosc,即1T
  12.         AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
  13.         TMOD &= 0x0F;                //清除定时器1模式位
  14.         TMOD |= 0x20;                //设定定时器1为8位自动重装方式
  15.         TL1 = 0xDC;                //设定定时初值
  16.         TH1 = 0xDC;                //设定定时器重装值
  17.         ET1 = 0;                //禁止定时器1中断
  18.         TR1 = 1;                                //启动定时器1
  19.         EA=1;                                                //打开总中断
  20.         ES=1;                                                //打开接收中断
  21.        
  22. }
  23. void send1_Byte(unsigned char byte)//发送字符
  24. {
  25.         SBUF = byte;
  26.     while(TI==0);                //发送完会自动置1
  27.     TI=0;                                //手动清零
  28. }

  29. void Send1_String(char *str)        //发送字符串
  30. {
  31.         while (*str!='\0')                        //检测字符串结束标志
  32.                 {                  
  33.             send1_Byte(*str++);
  34.                 }
  35. }

  36. void Usart() interrupt 4                //串口中断函数接收程序
  37. {      
  38.        
  39.         if (RI==1)
  40.                 {            
  41.                   receiveData = SBUF;
  42.                         RI=0;  
  43.                        
  44.                 }                       
  45. }       

  46. void working()
  47. {
  48.         if(receiveData == '0')       //发现有数据输入0
  49.         {
  50.                 send1_Byte('0');  led=0 ;
  51.        
  52.       receiveData = 'A';}
  53.        
  54.   if(receiveData == '1')      
  55.         {
  56.                 send1_Byte('1');
  57.                 led=1 ;
  58.         receiveData = 'A';}
  59. }

  60. int main()
  61. {
  62.                 UartInit();

  63.                 while(1)
  64.                 {
  65.                 working();
  66.                 }
  67. }
复制代码

所有资料51hei提供下载:
51单片机hc-05蓝牙点灯程序.zip (257.03 KB, 下载次数: 67)




作者: 七禾页    时间: 2020-9-30 11:58
怎么接线

作者: 我叫小大打    时间: 2020-10-4 19:19
七禾页 发表于 2020-9-30 11:58
怎么接线


单片机P30--蓝牙模块TXD

单片机P31--蓝牙模块RXD




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1