找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 15503|回复: 18
打印 上一主题 下一主题
收起左侧

CC2541 MLT-BT05蓝牙模块与单片机的串口通信资料

  [复制链接]
跳转到指定楼层
楼主
MLT-BT05蓝牙模块(CC2541芯片)资料APP与源码,PCB封装,等都有




单片机源程序如下:
  1. #include <ioCC2540.h>
  2. #include <reg52.h>
  3. #include <intrins.h>

  4. unsigned char tmp;
  5. unsigned int c=0;  

  6. sbit led1=P2^0;               //指示灯0
  7. sbit led2=P2^1;               //指示灯1
  8. sbit led7=P2^6;               //指示灯
  9. sbit led3=P2^2;                                 //指示灯3
  10.   
  11. void init();   //串口初始化  
  12. void send(unsigned char a);     //单字节发送函数
  13. void ctrl(); //接收处理函数   

  14. void main()
  15. {        
  16.         init();      
  17.         while(1)      
  18.         {                    
  19.                 if(RI==1)       //是否有数据到来   
  20.               {               
  21.                 RI = 0;              
  22.                 tmp = SBUF;  //暂存接收到的数据              
  23.                 ctrl();           
  24.                 }               
  25.         }
  26. }   


  27. void init()        //串口初始化  
  28. {        
  29.         ES=0;      //关中断        
  30.         SCON = 0x50;          // REN=1允许串行接受状态,串口工作模式1,10                            //位UART(1位起始位,8位数据位,1位停止位,                                      //无奇偶校验),波特可变        
  31.         TMOD = 0x20;         //定时器1工作于方式2,8位自动重载模式,用                            //于产生波特率        
  32.         TH1=TL1=0xFD;         //波特率9600 (本次测试采用晶振为11.0592)
  33.         PCON &= 0x7f;         //波特率不倍增        
  34.         TR1 = 1;              //定时器1开始工作,产生波特率                             //发送标志位置1      
  35.         TI=0;                 //接收标志位置0      
  36.         RI=0;      
  37.         EA=0;      
  38.         ES=1;        
  39.         led1=0;               //初始化设置3个指示灯全亮      
  40.         led2=0;      
  41.         led3=0;
  42. }   

  43. void send(unsigned char a)      //单字节数据发送  
  44. {    //注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻         
  45.         TI=0;               
  46.         SBUF=a;      
  47.         while(TI==0);            
  48.         TI=0;               
  49.         if(c%2)          //发送指示灯标志,每接收一次,此灯亮灭交替                 
  50.         led7=1;              
  51.         else                  
  52.         led7=0;                  
  53.         c++;  
  54. }   

  55. void ctrl()                  //接收处理函数
  56. {   
  57.         switch(tmp)   
  58.         {      
  59.         case 1:
  60.           tmp=0x01;      
  61.         led1=1;                           //收到字符1,指示灯0灭  
  62.         led2=0;
  63.         led3=0;      
  64.         send(tmp);         break;                                                   
  65.         case 2:  
  66.         tmp=0x02;                        //收到字符2,指示灯1灭        
  67.         led2=1;
  68.         led1=0;
  69.         led3=0;        
  70.         send(tmp);         break;
  71.         case 3:  
  72.         tmp=0x03;                        //收到字符3,指示灯0、1亮   
  73.         led1=0;         
  74.         led2=0;         
  75.         send(tmp);          break;      
  76.         case 4:
  77.         tmp=0x04;                         //收到字符4,指示灯0、1灭         
  78.         led1=1;         
  79.         led2=1;         
  80. ……………………

  81. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
基于CC2541蓝牙模块与单片机的串口通信.rar (3.83 MB, 下载次数: 254)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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