乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      調(diào)試51+nrf905無(wú)線模塊,可以保證穩(wěn)定的收發(fā),正在完善中。。 (www.ouravr...

       liukai007 2009-07-16
      下面把接收部分的代碼發(fā)上來(lái):
      #include <reg52.h>
      #include <ABSACC.h>
      #include <intrins.h>
      #include <stdio.h>
      #define  uchar unsigned char 
      #define uint unsigned int 
      sbit Led1=P2^0;
      sbit Led2=P2^1;
      sbit Key=P3^7;
      uchar count;
      uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                              0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //0~~F段碼

      //--------------------------------------------------------------------------------------------------------------
      #define BYTE_BIT0        0x01
      #define BYTE_BIT1        0x02
      #define BYTE_BIT2        0x04
      #define BYTE_BIT3        0x08
      #define BYTE_BIT4        0x10
      #define BYTE_BIT5        0x20
      #define BYTE_BIT6        0x40
      #define BYTE_BIT7        0x80

      bdata unsigned  char DATA_BUF;
      #define DATA7        ((DATA_BUF&BYTE_BIT7) != 0)
      #define DATA0   ((DATA_BUF&BYTE_BIT0) != 0)
      sbit        flag        =DATA_BUF^7;
      sbit        flag1        =DATA_BUF^0;
      //--------------------------------------------------------------------------------------------------------------
      #define TxRxBuf_Len 4
      unsigned char TxRxBuffer[TxRxBuf_Len];
      //-----------------------------------------------------NRF905端口配置-------------------------------------------
      sbit        TXEN=P1^0;
      sbit        TRX_CE=P3^2;
      sbit        PWR=P1^1;
      sbit        MISO=P1^6;
      sbit        MOSI=P1^5;
      sbit        SCK=P1^7;
      sbit        CSN=P1^3;
      sbit        AM=P1^4;
      sbit        DR=P3^3;
      sbit        CD=P1^2;
      //----------------------------------------------------數(shù)碼管位選IO---------------------------------------------
      sbit        led1=P2^1;
      sbit        led0=P2^0;
      sbit        led2=P2^2;
      sbit        led3=P2^3;
      //--------------------------------------------------------------------------------------------------------------
      //uchar seg[10]={0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};         //0~~9段碼
      //---------------------------------------------------------------------------------------------------------------
      #define WC                0x00
      #define RC                0x10
      #define WTP                0x20
      #define RTP                0x21
      #define WTA                0x22
      #define RTA                0x23
      #define RRP                0x24
      //--------------------------------------------NRF905寄存器配置--------------------------------------------------
      unsigned char idata RFConf[11]=
      {
                0x00,                             //配置命令//
               0x4c,
              0x0c,
              0x44,0x04,0x04,
              0xcc,0xcc,0xcc,0xcc,
              0x58,                            //CRC充許,8位CRC校驗(yàn),外部時(shí)鐘信號(hào)不使能,16M晶振
      };
      //----------------------------------------------延時(shí)---------------------------------------------------------------
      void Delay(uchar n)
      {
              uint k;
              while(n--)
              for(k=0;k<8;k++);
      }
      //-----------------------------------------------------------------------------------------------------------------
      void delay1(uint i)
      {
              for(;i>0;i--);   
      }
      //---------------------------------------------------SPI讀函數(shù)-----------------------------------------------------
      unsigned char SpiRead(void)
      {
              unsigned char j;
              for (j=0;j<8;j++)
              {
              DATA_BUF=DATA_BUF<<1;
                      SCK=1;
                      if (MISO)        //讀取最高位,保存至最末尾,通過(guò)左移位完成整個(gè)字節(jié)
                      {
                              DATA_BUF|=BYTE_BIT0;
                      }
                      else
                      {
                              DATA_BUF&=~BYTE_BIT0;
                      }
                      SCK=0;
               }
               return DATA_BUF;
      }
      //---------------------------------------------------SPI寫函數(shù)----------------------------------------------------
      void SpiWrite(unsigned char send)
      {
              unsigned char i;
              DATA_BUF=send;
              for (i=0;i<8;i++)
              {
                      if (DATA7)        //總是發(fā)送最高位
                      {
                              MOSI=1;
                      }
                      else
                      {
                              MOSI=0;
                      }
                      SCK=1;
                      DATA_BUF=DATA_BUF<<1;
                      SCK=0;
              }
      }
      //-----------------------------------------------初始化nRF905-----------------------------------------------------
      void nRF905Init(void)
      {
         CSN=1;                                                // Spi         disable
              SCK=0;                                                // Spi clock line init low
              DR=0;                                                // Init DR for input
              AM=0;                                                // Init AM for input
              CD=0;                                                // Init CD for input
              PWR=1;                                        // nRF905 power on
              TRX_CE=0;                                        // Set nRF905 in standby mode
              TXEN=0;                                        // set radio in Rx mode
      }
      //-----------------------------------------------NRF905初始化寄存器-----------------------------------------------------
      void Config905(void)
      {
              uchar i;
              CSN=0;                                                // Spi enable for write a spi command
              //SpiWrite(WC);                                // Write config command寫放配置命令
              for (i=0;i<11;i++)        // Write configration words  寫放配置字
              {
                 SpiWrite(RFConf[i]);
              }
              CSN=1;                                        // Disable Spi
      }
      //-----------------------------------------------設(shè)置發(fā)送狀態(tài)---------------------------------------------------
      void SetRxMode(void)
      {
              TXEN=0;
              TRX_CE=1;
              Delay(1);                                         // delay for mode change(>=650us)
      }
      //-------------------------------------------------判斷數(shù)據(jù)接收狀態(tài)-----------------------------------------------------
      unsigned char CheckDR(void)                //檢查是否有新數(shù)據(jù)傳入 Data Ready
      {
              if (DR=1&&TRX_CE==1 && TXEN==0)
              {
             // Delay(50)  ;
                      return 1;
              }
              else
              {
                      return 0;
              }
      }
      //----------------------------------------------------讀NRF905接收數(shù)據(jù)------------------------------------------------------------
      void RxPacket(void)                                                
      {
              uchar i;
          Delay(1);
      //        TRX_CE=0;                                        // Set nRF905 in standby mode
          Delay(100);
          TRX_CE=0;
              CSN=0;                                                // Spi enable for write a spi command
          Delay(1);
              SpiWrite(RRP);
              for (i = 0 ;i < 4 ;i++)
              { 
                      TxRxBuffer[i]=SpiRead();                // Read data and save to buffer       
              }
              CSN=1;
                Delay(10);
              TRX_CE=1;                                                        
      }
      //--------------------------------------------------------數(shù)據(jù)接收------------------------------------------------
      void  RX(void)
      {
                SetRxMode();                        // Set nRF905 in Rx mode
                while (CheckDR()==0);
                        Delay(10);
                          RxPacket();
                        Delay(10);
      }

      //-----------------------------------------------------------------------------------------------------------------

      void delay50ms()
      {
              uchar i,j;
              for(i=5;i>0;i--)
                for(j=200;j>0;j--);
      }

      //--------------------------------顯示子函數(shù)--------------------------------------------------------------------------
      void display()
      {
              uchar highcount,lowcount;
              highcount=count/10;
              lowcount=count%10;
              P0=table[highcount];
              Led1=1;
              Led2=0;
              delay50ms();

              P0=table[lowcount];
              Led1=0;
              Led2=1;
              delay50ms();
      }

      //-----------------------------------------------------------------------------------------------------------------
      void main(void)
      {
                      uchar k;
                      count=0;
              nRF905Init();
                   Config905();
                      while(1)
                      {
                              for(k=30;k>0;k--)
                              {
                                      display();
                              }
                              RX();
                              Delay(10);
                              CSN=0;         
                              if(TxRxBuffer[0])
                              {        
                                      count=TxRxBuffer[0];
                                      display();
                              }
                      }
      }

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多