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

標(biāo)題: NRF2401單片機(jī)收發(fā)程序下載 [打印本頁]

作者: 1209793943    時(shí)間: 2016-3-17 17:43
標(biāo)題: NRF2401單片機(jī)收發(fā)程序下載
基本成功。
收到數(shù)據(jù)時(shí),能點(diǎn)亮一個(gè)led。
單片機(jī) STC12C5260S2   1T
        延時(shí)用的是51單片機(jī)小精靈 stc1T 模式編寫
1.8上午,發(fā)送程序已做部分優(yōu)化,優(yōu)化了延時(shí),使延時(shí)更加短。
1.8下午,接收程序已做部分優(yōu)化,優(yōu)化了延時(shí),使延時(shí)更加短。


發(fā)送主要程序(完整版請(qǐng)下載附件: nrf2401—基本驅(qū)動(dòng)程序.rar (89 KB, 下載次數(shù): 71) ):
  1. #include "delay.h"
  2. #include "nrf2401.h"

  3. uchar TxRxBuff[32]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,
  4.                                         0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20,0x21,
  5.                                         0x22,0x23,0x24,0x25,0x26};
  6. uint i;
  7. void init_uart()          //串口初始化           2400
  8. {
  9.         TMOD=0X20;
  10.         SCON=0X50;
  11.         TH1=0XF3;
  12.         TL1=0XF3;
  13.         PCON=0X00;
  14.         EA=1;
  15.         ES=1;
  16.         TR1=1;
  17. }

  18. void serve_zd() interrupt 4
  19. {
  20.         if(RI)
  21.         {
  22.                 RI=0;
  23.        
  24.         }
  25.                 else
  26.         {
  27.                 TI=0;
  28.         }       
  29. }       



  30. void main()
  31. {
  32.         bit flag=1;
  33.         uint i,j;
  34.         init_uart();
  35.         Config2401();
  36.         delay_600us();
  37.         SetTxMode();        //設(shè)置為發(fā)送模式
  38.                                         // 初始化后,為發(fā)送模式
  39.         while(1)
  40.         {       
  41.                   for(i=0;i<30;i++)                  //延時(shí)一會(huì)兒
  42.                           for(j=0;j<30;j++);
  43.                  ///////////////
  44.                  /// 模式設(shè)置        ///               
  45.                  //key1按下一次,設(shè)置為發(fā)送模式,按下key2,發(fā)送數(shù)據(jù),        //亮一個(gè)led
  46.                  //key1按下兩次,設(shè)置為接收模式,按下key3,將數(shù)據(jù)傳至mcu。//亮兩個(gè)led
  47.                
  48.                 if(key1==0)                 //去抖檢測
  49.                 delay10ms();
  50.                  if(key1==0)
  51.                 {
  52.                            while(key1==0);
  53.                         if(key1==1)          //松手檢測
  54.                         delay10ms();
  55.                         if(key1==1)
  56.                         {
  57.                                 if(!flag)
  58.                                 {
  59.                                         flag=1;                //置標(biāo)志位,為下次按鍵準(zhǔn)備
  60.                                         led1=0;         //        燈測試
  61.                                         delay1ms(1000);           //指示燈亮一秒
  62.                                         SetTxMode();        //設(shè)置為發(fā)送模式
  63.                                         led1=1;                                      //燈滅,說明已設(shè)置好
  64.                                 }
  65.                                 if(flag)                //第二次按鍵判斷 ,設(shè)置為接收模式
  66.                                 {
  67.                                         led1=0;                                   //指示燈亮
  68.                                         led2=0;
  69.                                         delay1ms(1000);
  70.                                         SetRxMode();        //設(shè)置為接收模式
  71.                                         led1=1;
  72.                                         led2=1;                                        //指示燈滅,說明已設(shè)置好
  73.                                         flag=0;                                        //復(fù)位標(biāo)志符
  74.                                 }
  75.                         }
  76.                 }
  77.         ////////////////////////////////////////////////////
  78.         //////////////////////////////////////////////////
  79.                 if(key2==0)                 //去抖檢測
  80.                 delay10ms();
  81.                  if(key2==0)
  82.                 {
  83.                            while(key2==0);
  84.                         if(key2==1)          //松手檢測
  85.                         delay10ms();
  86.                         if(key2==1)
  87.                         {
  88.                                 if(!flag)
  89.                                 {
  90.                                         led3=0;
  91.                                         nRF2401_TxPacket(TxRxBuff);        //發(fā)送數(shù)組TxBuf[]內(nèi)的數(shù)據(jù)
  92.                                         delay1ms(1000);
  93.                                         led3=1;
  94.                                 }

  95.                                 if(flag)
  96.                                 {
  97.                                         
  98.                                         if(nRF2401_RxPacket(TxRxBuff)==1);//檢查是否有數(shù)據(jù)要收,若有,則存在數(shù)組RxBuf中
  99.                                                                                                         //并返回  1;沒有則返回  0;
  100.                                    {       
  101.                                             led3=0;
  102.                                                 led4=0;
  103.                                                 delay1ms(2000);
  104.                                                led3=1;
  105.                                                 led4=1;
  106.                                    }
  107.                                
  108.                                 }
  109.                         }
  110.                 }
  111.          ///////////////////////////////////////////////////
  112.          ////////////////////////////////////////////////////
  113.                 if(key3==0)                 //去抖檢測
  114.                 delay10ms();
  115.                  if(key3==0)
  116.                 {
  117.                            while(key3==0);
  118.                         if(key3==1)          //松手檢測
  119.                         delay10ms();
  120.                         if(key3==1)
  121.                         {
  122.                                 led3=0;
  123.                                 delay1ms(1000);
  124.                                 i=0;
  125.                                 while(TxRxBuff[i]!='\0')
  126.                                 {
  127.                                         SBUF=TxRxBuff[i];
  128.                                         i++;
  129.                                         delay_600us();
  130.                                 }
  131.                         }

  132.                 }
  133.          //////////////////////////////////////
  134.         ///////////////////////////////////////////////
  135.         /*
  136.           此處添加顯示程序



  137.                                 */
  138.         }
  139.                        
  140.                                                                

  141.                
  142.                
  143. }
  144.        
復(fù)制代碼

接受部分主程序:
  1. #include "delay.h"
  2. #include "nrf2401.h"

  3. uchar TxRxBuff[32]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,
  4.                                         0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20,0x21,
  5.                                         0x22,0x23,0x24,0x25,0x26};
  6. uint i;
  7. void init_uart()          //串口初始化           2400
  8. {
  9.         TMOD=0X20;
  10.         SCON=0X50;
  11.         TH1=0XF3;
  12.         TL1=0XF3;
  13.         PCON=0X00;
  14.         EA=1;
  15.         ES=1;
  16.         TR1=1;
  17. }

  18. void serve_zd() interrupt 4
  19. {
  20.         if(RI)
  21.         {
  22.                 RI=0;
  23.        
  24.         }
  25.                 else
  26.         {
  27.                 TI=0;
  28.         }       
  29. }       



  30. void main()
  31. {
  32.         bit flag=1;
  33.         uint i,j;
  34.         init_uart();
  35.         Config2401();
  36.         delay_600us();
  37.         SetTxMode();        //設(shè)置為發(fā)送模式
  38.                                         // 初始化后,為發(fā)送模式
  39.         while(1)
  40.         {       
  41.                   for(i=0;i<30;i++)                  //延時(shí)一會(huì)兒
  42.                           for(j=0;j<30;j++);
  43.                  ///////////////
  44.                  /// 模式設(shè)置        ///               
  45.                  //key1按下一次,設(shè)置為發(fā)送模式,按下key2,發(fā)送數(shù)據(jù),        //亮一個(gè)led
  46.                  //key1按下兩次,設(shè)置為接收模式,按下key3,將數(shù)據(jù)傳至mcu。//亮兩個(gè)led
  47.                
  48.                 if(key1==0)                 //去抖檢測
  49.                 delay10ms();
  50.                  if(key1==0)
  51.                 {
  52.                            while(key1==0);
  53.                         if(key1==1)          //松手檢測
  54.                         delay10ms();
  55.                         if(key1==1)
  56.                         {
  57.                                 if(!flag)
  58.                                 {
  59.                                         flag=1;                //置標(biāo)志位,為下次按鍵準(zhǔn)備
  60.                                         led1=0;         //        燈測試
  61.                                         delay1ms(1000);           //指示燈亮一秒
  62.                                         SetTxMode();        //設(shè)置為發(fā)送模式
  63.                                         led1=1;                                      //燈滅,說明已設(shè)置好
  64.                                 }
  65.                                 if(flag)                //第二次按鍵判斷 ,設(shè)置為接收模式
  66.                                 {
  67.                                         led1=0;                                   //指示燈亮
  68.                                         led2=0;
  69.                                         delay1ms(1000);
  70.                                         SetRxMode();        //設(shè)置為接收模式
  71.                                         led1=1;
  72.                                         led2=1;                                        //指示燈滅,說明已設(shè)置好
  73.                                         flag=0;                                        //復(fù)位標(biāo)志符
  74.                                 }
  75.                         }
  76.                 }
  77.         ////////////////////////////////////////////////////
  78.         //////////////////////////////////////////////////
  79.                 if(key2==0)                 //去抖檢測
  80.                 delay10ms();
  81.                  if(key2==0)
  82.                 {
  83.                            while(key2==0);
  84.                         if(key2==1)          //松手檢測
  85.                         delay10ms();
  86.                         if(key2==1)
  87.                         {
  88.                                 if(!flag)
  89.                                 {
  90.                                         led3=0;
  91.                                         nRF2401_TxPacket(TxRxBuff);        //發(fā)送數(shù)組TxBuf[]內(nèi)的數(shù)據(jù)
  92.                                         delay1ms(1000);
  93.                                         led3=1;
  94.                                 }

  95.                                 if(flag)
  96.                                 {
  97.                                         
  98.                                         if(nRF2401_RxPacket(TxRxBuff)==1);//檢查是否有數(shù)據(jù)要收,若有,則存在數(shù)組RxBuf中
  99.                                                                                                         //并返回  1;沒有則返回  0;
  100.                                    {       
  101.                                             led3=0;
  102.                                                 led4=0;
  103.                                                 delay1ms(2000);
  104.                                                led3=1;
  105.                                                 led4=1;
  106.                                    }
  107.                                
  108.                                 }
  109.                         }
  110.                 }
  111.          ///////////////////////////////////////////////////
  112.          ////////////////////////////////////////////////////
  113.                 if(key3==0)                 //去抖檢測
  114.                 delay10ms();
  115.                  if(key3==0)
  116.                 {
  117.                            while(key3==0);
  118.                         if(key3==1)          //松手檢測
  119.                         delay10ms();
  120.                         if(key3==1)
  121.                         {
  122.                                 led3=0;
  123.                                 delay1ms(1000);
  124.                                 i=0;
  125.                                 while(TxRxBuff[i]!='\0')
  126.                                 {
  127.                                         SBUF=TxRxBuff[i];
  128.                                         i++;
  129.                                         delay_600us();
  130.                                 }
  131.                         }

  132.                 }
  133.          //////////////////////////////////////
  134.         ///////////////////////////////////////////////
  135.         /*
  136.           此處添加顯示程序



  137.                                 */
  138.         }
  139.                        
  140.                                                                

  141.                
  142.                
  143. }
  144.        
復(fù)制代碼





作者: xcj123    時(shí)間: 2019-8-22 17:11
有用的資料  
作者: jakinhu    時(shí)間: 2019-8-25 09:43
弱弱的問下,這個(gè)是屬于51單片機(jī)控制NRF2401對(duì)吧,那NRF2401 本身程序誰提供?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 狠狠亚洲 | 久草网站 | 日韩精品免费 | 国产精品久久久久久久模特 | 成年人网站在线观看视频 | 97色在线视频 | 国产小视频在线 | 91.色 | 成人午夜激情 | 亚洲久久 | 国产色播av在线 | www.日韩| 国产色99精品9i | 欧美久久一区二区三区 | 久久久久久国产精品久久 | 夜夜艹| 亚洲精品电影 | 亚洲3p | 中文成人在线 | 欧美成人一区二区三区片免费 | 97av在线 | 亚洲精品福利在线 | 一区二区三区视频在线 | 亚洲视频在线观看 | 精品久久久久久久久久久 | 国产精品免费一区二区三区 | 欧美成人一区二区 | 欧美一区二区三区大片 | 亚洲精选一区二区 | 国产一区二区三区在线 | 国产黄色在线观看 | 亚洲二区在线观看 | 中文一区 | 精品在线免费看 | 欧美精品v| 亚洲精品视频一区 | 久久精品二区亚洲w码 | 久久久一区二区 | 亚洲毛片在线观看 | 日韩在线高清 | 青青久久久 |