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

📄 nrf905.lst

📁 nRF905开发板的调试程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   NRF905                                                                08/28/2006 20:53:29 PAGE 1   


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

line level    source

   1          /*******************************************************************************************
   2          *nrf905_demo.c
   3          *
   4          *This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTYT; 
   5          *
   6          *uart:9600BPS
   7          *****************
   8          * 官方网址: http://www.newmsg.com
   9          * 官方论坛: http://www.newmsg.com/bbs
  10          ****************
  11          ***NewMsg Tech**
  12          ****************
  13          /*******************************************************************************************/
  14          #include<at89x51.h>
  15          #include<intrins.h>
  16          
  17          #define uchar unsigned char 
  18          #define uint  unsigned int
  19          
  20          #define WC              0x00                    // Write configuration register command
  21          #define RC              0x10                    // Read  configuration register command
  22          #define WTP             0x20                    // Write TX Payload  command
  23          #define RTP             0x21                    // Read  TX Payload  command
  24          #define WTA             0x22                    // Write TX Address  command
  25          #define RTA             0x23                    // Read  TX Address  command
  26          #define RRP             0x24                    // Read  RX Payload  command
  27          /*******************************************************************************************/
  28          typedef struct RFConfig
  29          {
  30                  uchar n;
  31                  uchar buf[10];
  32          }RFConfig;
  33          
  34          code RFConfig RxTxConf =
  35          {
  36                  10,
  37                  0x01, 0x0c, 0x44, 0x20, 0x20, 0xcc, 0xcc, 0xcc,0xcc, 0x58       
  38          };
  39          // The content of this struct is nRF905's initialize data.初始化数据
  40          // CH_NO=1;433MHZ;Normal Opration,No Retrans;RX,TX Address is 4 Bytes
  41          // RX TX Payload Width is 32 Bytes;Disable Extern Clock;Fosc=16MHZ
  42          // 8 Bits CRC And enable
  43          /*******************************************************************************************/
  44          uchar data TxBuf[32];
  45          uchar data RxBuf[32];
  46          /*******************************************************************************************/
  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   =P2^6;
  54          sbit    TRX_CE  =P2^5;
  55          sbit    PWR_UP  =P2^4;
C51 COMPILER V8.02   NRF905                                                                08/28/2006 20:53:29 PAGE 2   

  56          sbit    MISO    =P2^3;
  57          sbit    MOSI    =P2^2;
  58          sbit    SCK     =P2^1;
  59          sbit    CSN     =P2^0;
  60          
  61          sbit    AM      =P3^2;
  62          sbit    DR      =P3^3;
  63          sbit    CD      =P3^5;
  64          /*******************************************************************************************/
  65          void InitIO(void);                      // Initialize IO port
  66          void Inituart(void);                    // initialize 232 uart
  67          void Config905(void);                   // Config nRF905 module配置NRF905模式
  68          void SetTxMode(void);                   // Set nRF905 in Tx mode
  69          void SetRxMode(void);                   // Set nRF905 in Rx mode
  70          void TxPacket(void);                    // Send data by nRF905
  71          void RxPacket(void);                    // Recive data by nRF905
  72          void SpiWrite(uchar);                   // Write data to nRF905
  73          uchar SpiRead(void);                    // Read data to nRF905
  74          void Delay(uchar n);                    // Delay 100us
  75          void Scankey(void);                             // Scan key
  76          void TxData (uchar x);                  // Send key_value to CRT display
  77          void comdebug(void);
  78          /*******************************************************************************************/
  79          void TxData (unsigned char x)
  80          {
  81   1              SBUF=x; 
  82   1              while(TI==0);
  83   1                      TI=0;
  84   1      }
  85          /*******************************************************************************************/
  86          //function Delay100us();Delay 100us
  87          /*******************************************************************************************/
  88          void Delay(uchar n)
  89          {
  90   1              uint i;
  91   1              while(n--)
  92   1              for(i=0;i<80;i++);      
  93   1      }
  94          /*******************************************************************************************/
  95          void serial () interrupt 4
  96          {  
  97   1          unsigned char temp;
  98   1           if(RI)
  99   1             { 
 100   2                          
 101   2                      temp=SBUF;
 102   2                      rsbrf=temp;
 103   2                      RI=0;
 104   2              }                               
 105   1      }
 106          /*******************************************************************************************/
 107          void main()
 108          {
 109   1      unsigned int cyc=0;
 110   1      unsigned int distan=0;
 111   1      
 112   1          SCON=0x50;  //模式1
 113   1          TMOD=0x21;  //定时模式2
 114   1          IE=0x90;
 115   1      
 116   1          //=====9600=======设置串口通讯寄存器
 117   1          PCON=0x00;   //波特率9600BPS,晶振11.0592MHZ
C51 COMPILER V8.02   NRF905                                                                08/28/2006 20:53:29 PAGE 3   

 118   1          TH1=0xFD;  //
 119   1          TL1=0xFD;  //计数器初值
 120   1          //================NRF905初始化
 121   1              CSN=1;                                          // Spi  disable                                         
 122   1              SCK=0;                                          // Spi clock line init high
 123   1              DR=1;                                           // Init DR for input
 124   1              AM=1;                                           // Init AM for input
 125   1              PWR_UP=1;                                       // nRF905 power on
 126   1              TRX_CE=0;                                       // Set nRF905 in standby mode
 127   1              TX_EN=0;                                        // set radio in Rx mode 
 128   1      
 129   1          TI = 0;//串行中断标志位清零
 130   1          TR1 = 1;//打开计数器1  
 131   1              //================
 132   1              Config905();                            // Config nRF905 module
 133   1              SetTxMode();                            // Set Tx Mode
 134   1              TxPacket();                             // Transmit Tx buffer data
 135   1              P0=0x00;
 136   1              Delay(500);                             // delay for led light  
 137   1              P0=0xff;                                // led close
 138   1              SetRxMode();                            // Set nRF905 in Rx mode
 139   1      
 140   1      while(1)
 141   1      {
 142   2               //=====================从键盘获得数据
 143   2                switch(P0)
 144   2                  {
 145   3                    case 0xfe:P0=0xef;TxBuf[0]=0xef;tf=1;break;
 146   3                        case 0xfd:P0=0xdf;TxBuf[0]=0xdf;tf=1;break;
 147   3                        case 0xfb:P0=0xbf;TxBuf[0]=0xbf;tf=1;break;
 148   3                        case 0xf7:P0=0x7f;TxBuf[0]=0x7f;tf=1;break;
 149   3                        //default:P0=0xff;TxBuf[0]=0xff; 
 150   3                       } 
 151   2                 if (tf==1)
 152   2                   {  
 153   3                              //==============向串口发送相应的按键
 154   3                                switch(TxBuf[0])
 155   3                                  {
 156   4                                    case 0xef:TxData('A');break;
 157   4                                    case 0xdf:TxData('B');break;
 158   4                                    case 0xbf:TxData('C');break;
 159   4                                    case 0x7f:TxData('D');break;
 160   4                                        //default:P0=0xff;TxBuf[0]=0xff; 
 161   4                                       } 
 162   3                              //===============NRF905发送相应的按键     
 163   3                              SetTxMode();                            // Set Tx Mode
 164   3                              TxPacket();                             // Transmit Tx buffer data
 165   3                              TxBuf[0] = 0xff;
 166   3                              SetRxMode();                            // Set nRF905 in Rx mode
 167   3                              tf=0;
 168   3                              Delay(500);
 169   3                              P0=0xff;
 170   3                       }
 171   2      
 172   2               //=====================等待NRF905接收
 173   2                 if (DR)                      // If recive data ready... 
 174   2                 RxPacket();                  // ... recive data
 175   2               //=====================从串口接收到数据
 176   2               if (rsbrf!=0)

⌨️ 快捷键说明

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