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

標題: 求51單片機眼藍牙模塊HC05與手機相連控制一盞LED燈的亮滅的程序 [打印本頁]

作者: yangguanzongzai    時間: 2017-6-18 13:42
標題: 求51單片機眼藍牙模塊HC05與手機相連控制一盞LED燈的亮滅的程序
求51單片機眼藍牙模塊HC05與手機相連控制一盞LED燈的亮滅的程序

作者: SHLH    時間: 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);     //單字節發送函數  void ctrl(); //接收處理函數     void main()  {                 init();                while(1)                {                                     if(RI==1)       //是否有數據到來                   {                                RI = 0;                                tmp = SBUF;  //暫存接收到的數據                               ctrl();                            }                        } }      void init()        //串口初始化   {                 ES=0;      //關中斷                 SCON = 0x50;          // REN=1允許串行接受狀態,串口工作模式1,10                            //位UART(1位起始位,8位數據位,1位停止位,                                      //無奇偶校驗),波特可變                 TMOD = 0x20;         //定時器1工作于方式2,8位自動重載模式,用                            //于產生波特率                 TH1=TL1=0xFD;         //波特率9600 (本次測試采用晶振為11.0592)         PCON &= 0x7f;         //波特率不倍增                 TR1 = 1;              //定時器1開始工作,產生波特率                             //發送標志位置1                TI=0;                 //接收標志位置0                RI=0;                EA=0;                ES=1;                 led1=0;               //初始化設置3個指示燈全亮                led2=0;                led3=0;  }     void send(unsigned char a)      //單字節數據發送   {    //注意:若單片機TXD(P3.1)無上拉能力,必須在P3.1端接上拉電阻。本次測試需要接上拉電阻                  TI=0;                         SBUF=a;                while(TI==0);                     TI=0;                        if(c%2)          //發送指示燈標志,每接收一次,此燈亮滅交替                          led7=1;                       else                           led7=0;                           c++;   }      void ctrl()                  //接收處理函數  {             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);             }   }
作者: stc0079    時間: 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);     //單字節發送函數  void ctrl(); //接收處理函數     void main()  {                 init();                while(1)                {                                     if(RI==1)       //是否有數據到來                   {                                RI = 0;                                tmp = SBUF;  //暫存接收到的數據                               ctrl();                            }                        } }      void init()        //串口初始化   {                 ES=0;      //關中斷                 SCON = 0x50;          // REN=1允許串行接受狀態,串口工作模式1,10                            //位UART(1位起始位,8位數據位,1位停止位,                                      //無奇偶校驗),波特可變                 TMOD = 0x20;         //定時器1工作于方式2,8位自動重載模式,用                            //于產生波特率                 TH1=TL1=0xFD;         //波特率9600 (本次測試采用晶振為11.0592)         PCON &= 0x7f;         //波特率不倍增                 TR1 = 1;              //定時器1開始工作,產生波特率                             //發送標志位置1                TI=0;                 //接收標志位置0                RI=0;                EA=0;                ES=1;                 led1=0;               //初始化設置3個指示燈全亮                led2=0;                led3=0;  }     void send(unsigned char a)      //單字節數據發送   {    //注意:若單片機TXD(P3.1)無上拉能力,必須在P3.1端接上拉電阻。本次測試需要接上拉電阻                  TI=0;                         SBUF=a;                while(TI==0);                     TI=0;                        if(c%2)          //發送指示燈標志,每接收一次,此燈亮滅交替                          led7=1;                       else                           led7=0;                           c++;   }      void ctrl()                  //接收處理函數  {             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);             }   }
復制代碼





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1