找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4243|回复: 2
收起左侧

51单片机蓝牙点灯程序

[复制链接]
ID:699194 发表于 2020-9-8 21:43 | 显示全部楼层 |阅读模式
适用于:stc15f2k60s2型号单片机(其它型号的51单片机如果想用这个程序,就得修改程序的波特率和某一些的地方才能用)
蓝牙模块:hc-05模块

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

51单片机

51单片机


单片机源程序如下:
  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)

评分

参与人数 2黑币 +58 收起 理由
jialishoushi + 8 共享资料的黑币奖励!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:808634 发表于 2020-9-30 11:58 | 显示全部楼层
怎么接线
回复

使用道具 举报

ID:699194 发表于 2020-10-4 19:19 | 显示全部楼层


单片机P30--蓝牙模块TXD

单片机P31--蓝牙模块RXD
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表