⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nrf905.lst

📁 红外rf905的的应用
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   NRF905                                                                01/02/2003 09:36:17 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE NRF905
OBJECT MODULE PLACED IN nrf905.OBJ
COMPILER INVOKED BY: D:\工具\Keil\C51\BIN\C51.EXE nrf905.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /******************************************************************************************\ 
   2          ============================================================================================
   3          * T905.c
   4          *
   5          * This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTYT; 
   6          * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   7          *
   8          *
   9          * NOTES:
  10          * This program is for the nRF905 with 232 interface;
  11          * $write date: 2004.4.7 ;time 11:00$
  12          * $Revision: 1 $
  13          *
  14          /*******************************************************************************************/
  15          #include <at89x52.h>
  16          #include <intrins.h>
  17          
  18          #define uchar unsigned char 
  19          #define uint  unsigned int
  20          
  21          #define WC              0x00                    // Write configuration register command
  22          #define RC              0x10                    // Read  configuration register command
  23          #define WTP             0x20                    // Write TX Payload  command
  24          #define RTP             0x21                    // Read  TX Payload  command
  25          #define WTA             0x22                    // Write TX Address  command
  26          #define RTA             0x23                    // Read  TX Address  command
  27          #define RRP             0x24                    // Read  RX Payload  command
  28          /*******************************************************************************************/
  29          typedef struct RFConfig
  30          {
  31                  uchar n;
  32                  uchar buf[10];
  33          }RFConfig;
  34          
  35          code RFConfig RxTxConf =
  36          {
  37                  10,
  38                  0x01, 0x0c, 0x44, 0x20, 0x20, 0xcc, 0xcc, 0xcc,0xcc, 0x58       
  39          };
  40          // The content of this struct is nRF905's initialize data.初始化数据
  41          // CH_NO=1;433MHZ;Normal Opration,No Retrans;RX,TX Address is 4 Bytes
  42          // RX TX Payload Width is 32 Bytes;Disable Extern Clock;Fosc=16MHZ
  43          // 8 Bits CRC And enable
  44          /*******************************************************************************************/
  45          uchar data TxBuf[32];
  46          uchar data RxBuf[32];
  47          uchar key,rsbrf,delayf,tf;
  48          /*******************************************************************************************/
  49          uchar bdata DATA_BUF;
  50          sbit    flag    =DATA_BUF^7;
  51          sbit    flag1   =DATA_BUF^0;
  52          /*******************************************************************************************/
  53          sbit    TX_EN   =P1^7;
  54          sbit    TRX_CE  =P1^6;
  55          sbit    PWR_UP  =P1^5;
C51 COMPILER V8.02   NRF905                                                                01/02/2003 09:36:17 PAGE 2   

  56          sbit    MISO    =P1^1;
  57          sbit    MOSI    =P1^0;
  58          sbit    SCK             =P3^7;
  59          sbit    CSN             =P3^3;
  60          
  61          sbit    AM              =P1^3;
  62          sbit    DR              =P3^2;
  63          sbit    CD              =P1^4;
  64          
  65          sbit    LED1    =P3^4;
  66          sbit    LED2    =P3^5;
  67          sbit    KEY1    =P3^0;
  68          sbit    KEY2    =P3^1;
  69          
  70          /*******************************************************************************************/
  71          void InitIO(void);                              // Initialize IO port
  72          void Inituart(void);                    // initialize 232 uart
  73          void Config905(void);                   // Config nRF905 module配置NRF905模式
  74          void SetTxMode(void);                   // Set nRF905 in Tx mode
  75          void SetRxMode(void);                   // Set nRF905 in Rx mode
  76          void TxPacket(void);                    // Send data by nRF905
  77          void RxPacket(void);                    // Recive data by nRF905
  78          void SpiWrite(uchar);                   // Write data to nRF905
  79          uchar SpiRead(void);                    // Read data to nRF905
  80          void Delay(uchar n);                    // Delay 100us
  81          void Scankey(void);                             // Scan key
  82          void TxData (uchar x);                  // Send key_value to CRT display
  83          void comdebug(void);
  84          /*******************************************************************************************/
  85          void Delay(uchar n)
  86          {
  87   1              uint i;
  88   1              while(n--)
  89   1              for(i=0;i<80;i++);      
  90   1      }
  91          
  92          void main()
  93          {
  94   1              unsigned int cyc=0;
  95   1              unsigned int distan=0;
  96   1      
  97   1      
  98   1          //================NRF905初始化
  99   1              CSN=1;                                          // Spi  disable                                         
 100   1              SCK=0;                                          // Spi clock line init high
 101   1              DR=1;                                           // Init DR for input
 102   1              AM=1;                                           // Init AM for input
 103   1              PWR_UP=1;                                       // nRF905 power on
 104   1              TRX_CE=0;                                       // Set nRF905 in standby mode
 105   1              TX_EN=0;                                        // set radio in Rx mode 
 106   1      
 107   1              //================
 108   1              Config905();                            // Config nRF905 module
 109   1              TxBuf[0] = 1;
 110   1              TxBuf[1] = 1;
 111   1              SetTxMode();                            // Set Tx Mode
 112   1              TxPacket();                             // Transmit Tx buffer data
 113   1              LED1 = 0;
 114   1              LED2 = 0;
 115   1      
 116   1              Delay(500);                             // delay for led light  
 117   1              LED1 = 1;
C51 COMPILER V8.02   NRF905                                                                01/02/2003 09:36:17 PAGE 3   

 118   1              LED2 = 1;
 119   1              TxBuf[0] = 0xff;
 120   1              TxBuf[1] = 0xff;
 121   1      
 122   1                                              // led close
 123   1              SetRxMode();                            // Set nRF905 in Rx mode
 124   1      
 125   1      while(1)
 126   1      {
 127   2               //=====================从键盘获得数据
 128   2              
 129   2      
 130   2                         if(KEY1 ==0 ) {      LED1 = 0; TxBuf[0] = 1 ;tf = 1 ; }
 131   2                         if(KEY2 ==0 ) {      LED2 = 0; TxBuf[1] = 1 ;tf = 1 ; }
 132   2      
 133   2                 if (tf==1)
 134   2                   {  
 135   3                      
 136   3                        //===============NRF905发送相应的按键   
 137   3                           SetTxMode();                               // Set Tx Mode
 138   3                           TxPacket();                                // Transmit Tx buffer data
 139   3                              TxBuf[0] = 0xff;
 140   3                              TxBuf[1] = 0xff;
 141   3                              SetRxMode();                            // Set nRF905 in Rx mode
 142   3                              tf=0;
 143   3                              Delay(500);
 144   3                              LED1 = 1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -