久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3405|回復: 1
打印 上一主題 下一主題
收起左側

藍牙模塊發送接收

[復制鏈接]
跳轉到指定樓層
樓主
ID:88783 發表于 2015-8-24 09:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
/***********按鍵聲明************/
sbit key_0=P0^0;
sbit key_1=P0^1;
sbit key_2=P0^2;
sbit key_3=P0^3;
sbit key_4=P0^4;
sbit key_5=P0^5;
sbit key_6=P0^6;
sbit key_7=P0^7;
uint Transmit_data=0;          //傳輸數據
bit TXDflag=0;                          //發送標志位,等于1時發送
/*****************************
        1ms基準延時程序
*****************************/
void delay_ms(unsigned int i)
{
        uchar j;
        while(i--)
        {
                for(j=0;j<125;j++)          
                {
                        ;
                }
        }  
}
/*****************************
        函數聲明
*****************************/
void Init_serial(); //串口初始化
void Key_test();         //按鍵檢測

/**********************************

        主函數

***********************************/
void main()
{
        Init_serial();
//        P0=0xff;
        P1=0xff;                                        //按鍵初始化
        while (1)
        {          
          Key_test();
        }
}

/**********************************************

        函數名: 按鍵檢測

        功能: 輪流檢測按鍵, 并發送相應的鍵碼

**********************************************/
void Key_test()
{
        if(P0!=0xff)
          {
           delay_ms(10);
           if(P0!=0xff)
           {
                if(key_0==0)
                  Transmit_data= 'a';
                else if(key_1==0)
                  Transmit_data= 'b';
                else if(key_2==0)
                  Transmit_data= 'c';
                else if(key_3==0)
                  Transmit_data= 'd';
                else if(key_4==0)
                  Transmit_data= 'e';
                else if(key_5==0)
                  Transmit_data= 'f';
                else if(key_6==0)
                  Transmit_data= 'g';
                else if(key_7==0)
                  Transmit_data= 'h';
           }
           while(P1!=0xff);
           TXDflag=1;
          }
          if(TXDflag==1)
          {                                  
           SBUF=Transmit_data;
           TXDflag=0;
          }       
}

/**********************************************

        函數名: 串口初始化
       
        功能: 設置串口通訊相關的寄存器, 只發送, 不使用中斷功能

**********************************************/
void Init_serial()
{
        TMOD = 0x20;
        TH1 = 0xfd;
        TL1 = 0xfd;
        SCON = 0x40;
        TR1 = 1;
}












#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char

uint Received_data=0; //接收數據

/*****************************
        函數聲明
*****************************/
void Init_serial();        //串口中斷 寄存器準備               
void Process_data(); //數據處理函數

/**************************************

  主函數

***************************************/
void main()
{
        Init_serial(); //串口中斷 寄存器準備
        while (1)
        {
                Process_data();         //數據處理
        }
}


/****************************************************************

  函數名: 數據處理函數

  功能: 判斷接收到的字符, 并作出對應的處理

*****************************************************************/
void Process_data()
{
        if(Received_data==0)
         P0=0xff;
        else if(Received_data=='a')
         P0=0xfe;
        else if(Received_data=='b')
         P0=0xfd;
        else if(Received_data=='c')
         P0=0xfb;
        else if(Received_data=='d')
         P0=0xf7;
        else if(Received_data=='e')
         P0=0xef;
        else if(Received_data=='f')
         P0=0xdf;
        else if(Received_data=='g')
         P0=0xbf;
        else if(Received_data=='h')
         P0=0x7f;                       

}


/*****************************************************************

  函數名:串口通訊初始化

  功能: 設置串口通訊相關的寄存器

******************************************************************/
void Init_serial()
{
        EA = 1;                                //開總中斷
        ES = 1;                                //開串口中斷
        SCON = 0x40;                //串口通信方式1
        REN = 1;                        //允許接受位
        TMOD |= 0x20;                //定時器1用于產生波特率,八位自動重裝模式, 用與運算, 不至于干擾定時器0的設置
        TH1 = TL1 = 0xfd;        //9600波特率初值
        TR1 = 1;                        //注意千萬不要使用定時器1,  不然會與串口沖突
}


/*****************************************************************

  函數名:串口中斷執行函數

  功能:接收主控機發的字符并儲存

******************************************************************/
void Serial() interrupt 4
{
        if (RI) RI = 0;                 //中斷標志位清零
        Received_data = SBUF; //保存接收的字符
}



評分

參與人數 1黑幣 +5 收起 理由
be1008611 + 5 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:74784 發表于 2015-8-24 19:47 | 只看該作者
你這個是2個藍牙之間
再用單片機控制的發射和接收嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一区二区av | 亚洲精品国产电影 | 国产在线精品一区二区 | 操操日| 亚洲国产精品一区二区久久 | 色综合久 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 久久成人精品视频 | 免费在线看黄视频 | 亚洲精品乱码久久久久久按摩观 | 夜操 | 超级黄色一级片 | 99久久精品免费 | 伊人狠狠干 | 国产精品一区二区欧美 | av无遮挡 | 国产一二三区免费视频 | 久久精品亚洲 | 欧美一区二区三区 | 国产精品一区二区在线播放 | 中文字幕第十一页 | 欧美xxxx黑人又粗又长 | av国产精品 | 97精品国产一区二区三区 | 成人精品国产 | 天天插日日操 | 欧美午夜在线 | 日本一区二区在线视频 | 欧美二区在线 | 在线视频91 | 国产欧美视频一区二区三区 | 亚洲精品一区二区 | 成人精品国产免费网站 | 久久久久国产一区二区三区四区 | 中文字幕91| 罗宾被扒开腿做同人网站 | 天天色综| 成人欧美一区二区三区黑人孕妇 | 天天看逼 | 古装三级在线播放 | 成人免费大片黄在线播放 |