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

📄 nrf905.lst

📁 nrf905串口收发等资源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   NRF905                                                                03/24/2007 09:42:31 PAGE 1   


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

stmt 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.tianyi-dz.com
   9          * 官方论坛: http://www.tianyi-dz.com/bbs
  10          ****************
  11          ***TY Tech**
  12          ***bai chun yu **
  13          ***qq:472230383 328997835  **
  14          ***Email:baichunyu1232000@163.com  **
  15          ****************
  16          /*******************************************************************************************/
  17          #include<at89x51.h>
  18          #include<intrins.h>
  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                  unsigned char  n;
  31                  unsigned char  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          /*
  40          10--------------------------------10 register
  41          0x01------------------------------CH_NO=1  fRF = ( 422.4 + CH_NOd /10)*(1+HFREQ_PLLd) MHz=422.4
  42          0x0c------------------------------HFREQ_PLLd=0 ,433MHZ,Reduced power,6db 
  43          0x44------------------------------rx tx address width is 4 Bytes
  44          0x20------------------------------rx payload width
  45          0x20------------------------------tx payload width
  46          0xcc, 0xcc, 0xcc,0xcc-------------receive address
  47          0x58 -----------------------------Disable Extern Clock;Fosc=16MHZ 8 Bits CRC And enable 
  48          */
  49          // The content of this struct is nRF905's initialize data.初始化数据
  50          // CH_NO=1;433MHZ;Normal Opration,No Retrans;RX,TX Address is 4 Bytes
  51          // RX TX Payload Width is 32 Bytes;Disable Extern Clock;Fosc=16MHZ
  52          // 8 Bits CRC And enable
  53          /*******************************************************************************************/
  54          unsigned char  data TxBuf[32];
  55          unsigned char  data RxBuf[32];
C51 COMPILER V7.06   NRF905                                                                03/24/2007 09:42:31 PAGE 2   

  56          /*******************************************************************************************/
  57          unsigned char key;
  58          unsigned char temp1;
  59          unsigned char rsbrf;//receive uart data 
  60          unsigned char delayf;
  61          unsigned char tf;
  62          /*******************************************************************************************/
  63          unsigned char  bdata DATA_BUF;
  64          sbit    flag    =DATA_BUF^7;
  65          sbit    flag1   =DATA_BUF^0;
  66          /*******************************************************************************************/
  67          /*sbit  TX_EN   =P2^6;
  68          sbit    TRX_CE  =P2^5;
  69          sbit    PWR_UP  =P2^4;
  70          sbit    MISO    =P2^3;
  71          sbit    MOSI    =P2^2;
  72          sbit    SCK     =P2^1;
  73          sbit    CSN     =P2^0;
  74          
  75          sbit    AM      =P3^2;
  76          sbit    DR      =P3^3;
  77          sbit    CD      =P3^5;old*/
  78          sbit    TX_EN   =P1^0;
  79          sbit    TRX_CE  =P1^1;
  80          sbit    PWR_UP  =P1^2;
  81          sbit    MISO    =P1^7;
  82          sbit    MOSI    =P3^2;
  83          sbit    SCK     =P3^3;
  84          sbit    CSN     =P3^4;
  85          
  86          sbit    AM      =P1^5;
  87          sbit    DR      =P1^6;
  88          sbit    CD      =P1^4;//new
  89          /*******************************************************************************************/
  90          void InitIO(void);                      // Initialize IO port
  91          void Inituart(void);                    // initialize 232 uart
  92          void Config905(void);                   // Config nRF905 module配置NRF905模式
  93          void SetTxMode(void);                   // Set nRF905 in Tx mode
  94          void SetRxMode(void);                   // Set nRF905 in Rx mode
  95          void TxPacket(void);                    // Send data by nRF905
  96          void RxPacket(void);                    // Recive data by nRF905
  97          void SpiWrite(unsigned char );                  // Write data to nRF905
  98          unsigned char  SpiRead(void);                   // Read data to nRF905
  99          void Delay(unsigned char  n);                   // Delay 100us
 100          void Scankey(void);                             // Scan key
 101          void TxData (unsigned char  x);                 // Send key_value to CRT display
 102          void comdebug(void);
 103          
 104          #define KEY1 0xfd
 105          #define KEY2 0xf7
 106          #define KEY3 0xdf
 107          #define KEY4 0x7f
 108          
 109          #define LED1 0xfe
 110          #define LED2 0xfb
 111          #define LED3 0xef
 112          #define LED4 0xbf
 113          /*******************************************************************************************/
 114          void TxData (unsigned char x)
 115          {
 116   1              SBUF=x; 
 117   1              while(TI==0);
C51 COMPILER V7.06   NRF905                                                                03/24/2007 09:42:31 PAGE 3   

 118   1                      TI=0;
 119   1      }
 120          /*******************************************************************************************/
 121          //function Delay100us();Delay 100us
 122          /*******************************************************************************************/
 123          void Delay(unsigned char  n)
 124          {
 125   1              unsigned int i;
 126   1              while(n--)
 127   1              for(i=0;i<80;i++);      
 128   1      }
 129          /*******************************************************************************************/
 130          void serial () interrupt 4
 131          {  
 132   1          unsigned char temp;
 133   1           if(RI)
 134   1             { 
 135   2                          
 136   2                      temp=SBUF;
 137   2                      rsbrf=temp;
 138   2                      RI=0;
 139   2              }                               
 140   1      }
 141          /*******************************************************************************************/
 142          void main()
 143          {
 144   1          unsigned int cyc=0;
 145   1          unsigned int distan=0;
 146   1      
 147   1          SCON=0x50;  //模式1
 148   1          TMOD=0x21;  //定时模式2
 149   1          IE=0x90;
 150   1      
 151   1          //=====9600=======设置串口通讯寄存器
 152   1          PCON=0x00;   //波特率9600BPS,晶振11.0592MHZ
 153   1          TH1=0xFD;  //
 154   1          TL1=0xFD;  //计数器初值
 155   1          //================NRF905初始化
 156   1              CSN=1;                                          // Spi  disable                                         
 157   1              SCK=0;                                          // Spi clock line init high
 158   1              DR=1;                                           // Init DR for input
 159   1              AM=1;                                           // Init AM for input
 160   1              PWR_UP=1;                                       // nRF905 power on
 161   1              TRX_CE=0;                                       // Set nRF905 in standby mode
 162   1              TX_EN=0;                                        // set radio in Rx mode 
 163   1      
 164   1          TI = 0;//串行中断标志位清零
 165   1          TR1 = 1;//打开计数器1  
 166   1              //================
 167   1              Config905();                            // Config nRF905 module
 168   1              SetTxMode();                            // Set Tx Mode
 169   1              TxPacket();                                 // Transmit Tx buffer data
 170   1              P0=0x00;                    // led open
 171   1              Delay(500);                                 // delay for led light      
 172   1              P0=0xff;                                    // led close
 173   1              SetRxMode();                            // Set nRF905 in Rx mode
 174   1      
 175   1      while(1)
 176   1      {
 177   2               //=====================从键盘获得数据
 178   2                temp1=P0;
 179   2                switch(P0)
C51 COMPILER V7.06   NRF905                                                                03/24/2007 09:42:31 PAGE 4   

 180   2                  {
 181   3                    case KEY1:P0=LED1;TxBuf[0]=LED1;tf=1;break;
 182   3                        case KEY2:P0=LED2;TxBuf[0]=LED2;tf=1;break;
 183   3                        case KEY3:P0=LED3;TxBuf[0]=LED3;tf=1;break;
 184   3                        case KEY4:P0=LED4;TxBuf[0]=LED4;tf=1;break;
 185   3                        //default:P0=0xff;TxBuf[0]=0xff; 
 186   3                       } 
 187   2                 if (tf==1)
 188   2                   {  
 189   3                              //==============向串口发送相应的按键
 190   3                                switch(TxBuf[0])
 191   3                                  {
 192   4                                    case LED1:TxData('A');break;
 193   4                                    case LED2:TxData('B');break;
 194   4                                    case LED3:TxData('C');break;

⌨️ 快捷键说明

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