<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 用89C51驅(qū)動nRf905收發(fā)C源代碼

          用89C51驅(qū)動nRf905收發(fā)C源代碼

          作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏

          /*******************************************************************************************/
          //function SpiWrite();
          /*******************************************************************************************/
          void SpiWrite(uchar byte)
          {
          uchar i;
          DATA_BUF=byte; // Put functions parameter into a bdata variable
          for (i=0;i<8;i++) // Setup byte circulation bits
          {

          if (flag) // Put DATA_BUF.7 ondataline
          MOSI=1;
          else
          MOSI=0;
          SCK=1; // Set clock line high
          DATA_BUF=DATA_BUF<<1; // Shift DATA_BUF
          SCK=0; // Set clocklinelow
          }
          }
          /*******************************************************************************************/
          //function SpiRead();
          /*******************************************************************************************/
          uchar SpiRead(void)
          {
          uchar i;
          for (i=0;i<8;i++) // Setup byte circulation bits
          {
          DATA_BUF=DATA_BUF<<1; // Right shift DATA_BUF
          SCK=1; // Set clock line high
          if (MISO)
          flag1=1; // Readdata
          else
          flag1=0;


          SCK=0; // Set clocklinelow
          }
          return DATA_BUF; // Return function parameter
          }
          /*******************************************************************************************/
          //function TxPacket();
          /*******************************************************************************************/
          void TxPacket(void)
          {
          uchar i;
          //Config905();
          CSN=0; // Spi enable for write a spi command
          SpiWrite(WTP); // Write payload command
          for (i=0;i<32;i++)
          {
          SpiWrite(TxBuf[i]); // Write 32 bytes Txdata
          }
          CSN=1; // Spi disable
          Delay(1);
          CSN=0; // Spi enable for write a spi command
          SpiWrite(WTA); // Write address command
          for (i=0;i<4;i++) // Write 4 bytes address
          {
          SpiWrite(RxTxConf.buf[i+5]);
          }
          CSN=1; // Spi disable
          TRX_CE=1; // Set TRX_CE high,start Txdatatransmission
          Delay(1); // while (DR!=1);
          TRX_CE=0; // Set TRX_CElow
          }
          /*******************************************************************************************/
          //function RxPacket();
          /*******************************************************************************************/
          void RxPacket(void)
          {
          uchar i,xx;
          TRX_CE=0; // Set nRF905 in standby mode
          CSN=0; // Spi enable for write a spi command
          SpiWrite(RRP); // Read payload command
          for (i=0;i<32;i++)
          {
          RxBuf[i]=SpiRead(); // Readdataand save to buffer
          }
          CSN=1; // Disable spi
          while(DR||AM);
          P0= RxBuf[0]; // Buffer[0] outputfromP0 port...
          TRX_CE=1;
          xx=(RxBuf[0]>>4)&0x0f;
          TxData(xx);
          Delay(500); // ...lightled
          P0=0xff; // Close led
          }
          /*******************************************************************************************/
          //function SetTxMode();
          /*******************************************************************************************/
          void SetTxMode(void)
          {
          TX_EN=1;
          TRX_CE=0;
          Delay(1); // delay for mode change(>=650us)
          }
          /*******************************************************************************************/
          //function SetRxMode();
          /*******************************************************************************************/
          void SetRxMode(void)
          {
          TX_EN=0;
          TRX_CE=1;
          Delay(1); // delay for mode change(>=650us)
          }
          /*******************************************************************************************/
          //Functon Scankey();
          /*******************************************************************************************/
          void Scankey()
          {
          uchar Temp,xx;
          P0=0xff;
          Temp=P0&0x0f; // Read key value from port P0
          if (Temp!=0x0f)
          { Delay(10);
          Temp=P0&0x0f; // Read key valuefromport P0
          if (Temp!=0x0f)
          {
          xx=Temp;
          Temp=Temp<<4; // Left shift 4 bits
          TxBuf[0]=Temp; // Turn On the LED
          P0=Temp; // Save to Tx buffer[0]
          SetTxMode(); // Set Tx Mode
          TxPacket(); // Transmit Tx bufferdata
          TxData (xx);
          Delay(500); // Delay for LEDlight
          P0=0xff; // Close LED display
          SetRxMode(); // Set Rx Mode

          while((P0&0x0f)!=0x0f);
          }
          }
          }
          /*******************************************************************************************/
          //Function TxData ();
          /*******************************************************************************************/
          void TxData (uchar x)
          {
          SBUF=x;
          while(TI==0);
          TI=0;

          }
          /*******************************************************************************************/

          上一頁 1 2 下一頁

          關(guān)鍵詞: 89C51nRf905收

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();