欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求51單片機眼藍牙模塊HC05與手機相連控制一盞LED燈的亮滅的程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:212242 發(fā)表于 2017-6-18 13:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求51單片機眼藍牙模塊HC05與手機相連控制一盞LED燈的亮滅的程序
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:207585 發(fā)表于 2017-6-20 16:45 | 只看該作者
#include <ioCC2540.h>  #include <reg52.h>  #include <intrins.h>   unsigned char tmp;  unsigned int c=0;     sbit led1=P2^0;               //指示燈0  sbit led2=P2^1;               //指示燈1  sbit led7=P2^6;               //指示燈  sbit led3=P2^2;                                 //指示燈3    void init();   //串口初始化   void send(unsigned char a);     //單字節(jié)發(fā)送函數(shù)  void ctrl(); //接收處理函數(shù)     void main()  {                 init();                while(1)                {                                     if(RI==1)       //是否有數(shù)據(jù)到來                   {                                RI = 0;                                tmp = SBUF;  //暫存接收到的數(shù)據(jù)                               ctrl();                            }                        } }      void init()        //串口初始化   {                 ES=0;      //關中斷                 SCON = 0x50;          // REN=1允許串行接受狀態(tài),串口工作模式1,10                            //位UART(1位起始位,8位數(shù)據(jù)位,1位停止位,                                      //無奇偶校驗),波特可變                 TMOD = 0x20;         //定時器1工作于方式2,8位自動重載模式,用                            //于產(chǎn)生波特率                 TH1=TL1=0xFD;         //波特率9600 (本次測試采用晶振為11.0592)         PCON &= 0x7f;         //波特率不倍增                 TR1 = 1;              //定時器1開始工作,產(chǎn)生波特率                             //發(fā)送標志位置1                TI=0;                 //接收標志位置0                RI=0;                EA=0;                ES=1;                 led1=0;               //初始化設置3個指示燈全亮                led2=0;                led3=0;  }     void send(unsigned char a)      //單字節(jié)數(shù)據(jù)發(fā)送   {    //注意:若單片機TXD(P3.1)無上拉能力,必須在P3.1端接上拉電阻。本次測試需要接上拉電阻                  TI=0;                         SBUF=a;                while(TI==0);                     TI=0;                        if(c%2)          //發(fā)送指示燈標志,每接收一次,此燈亮滅交替                          led7=1;                       else                           led7=0;                           c++;   }      void ctrl()                  //接收處理函數(shù)  {             switch(tmp)            {                case 1:            tmp=0x01;                led1=1;                           //收到字符1,指示燈0滅           led2=0;         led3=0;                send(tmp);         break;                                                            case 2:           tmp=0x02;                        //收到字符2,指示燈1滅                  led2=1;          led1=0;         led3=0;                 send(tmp);         break;         case 3:           tmp=0x03;                        //收到字符3,指示燈0、1亮            led1=0;                  led2=0;                  send(tmp);          break;               case 4:          tmp=0x04;                         //收到字符4,指示燈0、1滅                  led1=1;                  led2=1;                  send(tmp);         break;                case 5:          tmp=0x05;                         //收到字符5,指示燈3亮                  led3=0;                   send(tmp);         break;               default:                        //其他,燈全滅                  led1=1;                  led2=1;                  led3=1;                  send(tmp);             }   }
回復

使用道具 舉報

板凳
ID:222772 發(fā)表于 2017-8-14 09:37 | 只看該作者
  1. #include <ioCC2540.h>  #include <reg52.h>  #include <intrins.h>   unsigned char tmp;  unsigned int c=0;     sbit led1=P2^0;               //指示燈0  sbit led2=P2^1;               //指示燈1  sbit led7=P2^6;               //指示燈  sbit led3=P2^2;                                 //指示燈3    void init();   //串口初始化   void send(unsigned char a);     //單字節(jié)發(fā)送函數(shù)  void ctrl(); //接收處理函數(shù)     void main()  {                 init();                while(1)                {                                     if(RI==1)       //是否有數(shù)據(jù)到來                   {                                RI = 0;                                tmp = SBUF;  //暫存接收到的數(shù)據(jù)                               ctrl();                            }                        } }      void init()        //串口初始化   {                 ES=0;      //關中斷                 SCON = 0x50;          // REN=1允許串行接受狀態(tài),串口工作模式1,10                            //位UART(1位起始位,8位數(shù)據(jù)位,1位停止位,                                      //無奇偶校驗),波特可變                 TMOD = 0x20;         //定時器1工作于方式2,8位自動重載模式,用                            //于產(chǎn)生波特率                 TH1=TL1=0xFD;         //波特率9600 (本次測試采用晶振為11.0592)         PCON &= 0x7f;         //波特率不倍增                 TR1 = 1;              //定時器1開始工作,產(chǎn)生波特率                             //發(fā)送標志位置1                TI=0;                 //接收標志位置0                RI=0;                EA=0;                ES=1;                 led1=0;               //初始化設置3個指示燈全亮                led2=0;                led3=0;  }     void send(unsigned char a)      //單字節(jié)數(shù)據(jù)發(fā)送   {    //注意:若單片機TXD(P3.1)無上拉能力,必須在P3.1端接上拉電阻。本次測試需要接上拉電阻                  TI=0;                         SBUF=a;                while(TI==0);                     TI=0;                        if(c%2)          //發(fā)送指示燈標志,每接收一次,此燈亮滅交替                          led7=1;                       else                           led7=0;                           c++;   }      void ctrl()                  //接收處理函數(shù)  {             switch(tmp)            {                case 1:            tmp=0x01;                led1=1;                           //收到字符1,指示燈0滅           led2=0;         led3=0;                send(tmp);         break;                                                            case 2:           tmp=0x02;                        //收到字符2,指示燈1滅                  led2=1;          led1=0;         led3=0;                 send(tmp);         break;         case 3:           tmp=0x03;                        //收到字符3,指示燈0、1亮            led1=0;                  led2=0;                  send(tmp);          break;               case 4:          tmp=0x04;                         //收到字符4,指示燈0、1滅                  led1=1;                  led2=1;                  send(tmp);         break;                case 5:          tmp=0x05;                         //收到字符5,指示燈3亮                  led3=0;                   send(tmp);         break;               default:                        //其他,燈全滅                  led1=1;                  led2=1;                  led3=1;                  send(tmp);             }   }
復制代碼
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表