zoukankan      html  css  js  c++  java
  • HC-08蓝牙模块的基本知识

    先发点官方的文件,了解下AT的东西

    自己下载去

    http://www.hc01.com/Upload/file/download/HC-08package.rar

    里面有所有的资料,看不明白没关系

    有这么几个引脚
    RXD
    TXD
    GND
    VCC
    KEY
    STATE
    有的单片机提供了蓝牙模块的接口,直接安装就可以了
    没有提供蓝牙接口的话单片机的TXD应该连接蓝牙的RXD,交叉连接。
    然后比较重要的是
    看看手册的引脚,因为不同的引脚对应不同的通讯功能

    看看手册的引脚,因为不同的引脚对应不同的通讯功能

    看看手册的引脚,因为不同的引脚对应不同的通讯功能

    然后发一下写的程序

    #include<reg52.h>
    #include<intrins.h>
    
    #define uchar unsigned char
    #define uint  unsigned int
    
    
    //--定义使用的IO--//
    
    sbit LED=P1^3;
    
    
    //--声明全局函数--//   
    void UsartConfiguration();
    void Delay_1ms(uint i);
    
    void Com_Int(void) interrupt 4
    {
        uchar i;
      uchar receive_data;
                
            receive_data = SBUF;//接收到的数据
            RI=0;
            SBUF=receive_data;
            while(!TI);
            TI=0;
            if(receive_data == '1')     
            {
                P1=0xfe;
            }
            if(    receive_data == '2')
            {
                    P1=0xFD; //其他情况灯灭
            }
            if(    receive_data == '3')
            {
                    P1=0xFB; //其他情况灯灭
            }
            if(    receive_data == '4')
            {
                    P1=0xF7; //其他情况灯灭
            }
            if(    receive_data == '5')
            {
                    P1=0xEF; //其他情况灯灭
            }     
            if(    receive_data == '6')
            {
                    P1=0xDF; //其他情况灯灭
            }
            if(    receive_data == '7')
            {
                    P1=0xBF; //其他情况灯灭
            }
            if(    receive_data == '8')
            {
                    P1=0x00; //其他情况灯灭
            }
            if(    receive_data == '9')
            {
                    P1=0xff; //其他情况灯灭
            }
    
    }
    
    
    void main()
    {
    
        UsartConfiguration();//初始化串口
        
        while(1);    
    }
    
    
    void UsartConfiguration()
    {    
        SCON=0X50;            //设置为工作方式1,8位数据,可变波特率
        TMOD=0X20;            //设置计数器工作方式2
    //    PCON=0X00;            //波特率不加倍
        TH1=0XFd;                //计数器初始值设置,9600@11.0592MHz
        TL1=0XFd;
        TR1=1;                    //打开计数器
        ES = 1;         //开串口中断
          EA = 1;         //开总中断
        REN=1;
    }
    
    
    
    void Delay_1ms(uint i)//1ms延时
    {
      uchar x,j;
      
      for(j=0;j<i;j++)
        for(x=0;x<=110;x++);
    }
     receive_data = SBUF;//接收到的数据
            RI=0;

    这段代码是接受

     SBUF=receive_data;
            while(!TI);
            TI=0;

    这段代码是回传(可以没有)
    就这么多吧
    然后蓝牙的GND和单片机的GND必须是一起的,提供一致的电平

  • 相关阅读:
    [转载]从零开始学习OpenGL ES之一 – 基本概念
    ios中陀螺仪CoreMotion的使用
    如何在IOS中使用3D UI – CALayer的透视投影
    cocos3d加载3Dmax模型到ios中
    cocos2d 坐标系统参考
    PAT 1029 Median
    PAT 1028 List Sorting
    Linux中的进程调度(二)
    LaTeX学习(一)
    搬家
  • 原文地址:https://www.cnblogs.com/Loving-Q/p/12444613.html
Copyright © 2011-2022 走看看