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

📄 nrf2401.lst

📁 基于AT89C2051的SHT11温湿度传感器嵌入式程序KEIL环境
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.00  NRF2401                                                                06/07/2007 23:38:38 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE NRF2401
OBJECT MODULE PLACED IN nRF2401.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE nRF2401.c OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /**********************************************************************************/
   2          /**********************************************************************************/
   3          // The nRF2401 2.4GHz Multi Channel Software
   4          //
   5          // This software and any related documentation is provided "as is" without any
   6          // warranty of any kind, either express or implied, including, without
   7          // limitation, the implied warranties or merchantability, fitness for a
   8          // particular purpose, and noninfringment. The entire risk arising out of use
   9          // of this software remains with you.
  10          // write time is 2006.12.20====debug time is 2006.12.20--21
  11          // copyright is 苏州天铱电子  www.tianyi-dz.com
  12          // cpu= At89S52,keilC51 compiler
  13          // tel:13862423497  15962169748
  14          //QQ:472230383
  15          /**********************************************************************************/
  16          /**********************************************************************************/
  17          #include "reg52.h"   //晶振可以用11.0592MHZ,如果用串口的话
  18                               //提示:在调试程序的时候晶振用12MHZ
  19          #include "stdio.h"
  20          #include "string.h"
  21          #include "math.h"
  22          #include "intrins.h"
  23          /**********************************************************************************/
  24          #define uchar unsigned char 
  25          #define uint  unsigned int
  26          
  27          #define Fclk    3686400
  28          #define BitRate 19200
  29          #define BRR             (Fclk/(16*Bitrate))-1
  30          
  31          #define timerdiv        1
  32          #define timerval        256-(Fclk/timerdiv)/100000                      // timeout each 10us
  33          /**********************************************************************************/
  34          uchar   InitData[15];
  35          uchar   TXData[14];
  36          uchar   RXData[10];
  37          
  38          uchar   Temp;
  39          uchar   BitCnt; 
  40          uchar   ByteCnt;
  41          uchar   Data1=  0xff;
  42          
  43          bdata   uchar   tempi;
  44          /**********************************************************************************/
  45          sbit    CLK1    =P1^7;
  46          sbit    CS              =P1^5;
  47          sbit    Data    =P3^2;
  48          sbit    CE              =P1^1;
  49          //sbit  Clk2    =P1^5;
  50          //sbit  Dout2   =P1^6;
  51          
  52          //sbit  DR2             =P3^2;
  53          sbit    DR1             =P1^6;
  54          sbit    PWR_UP  =P1^0;
  55          
C51 COMPILER V7.00  NRF2401                                                                06/07/2007 23:38:38 PAGE 2   

  56          sbit    LED1    =P0^0;
  57          sbit    LED2    =P0^2;
  58          sbit    LED3    =P0^4;
  59          sbit    LED4    =P0^6;
  60          
  61          /*sbit  CLK1    =P2^0;
  62          sbit    CS              =P2^2;
  63          sbit    Data    =P2^3;
  64          sbit    CE              =P2^4;
  65          sbit    Clk2    =P2^5;
  66          sbit    Dout2   =P2^6;
  67          
  68          sbit    DR2             =P3^2;
  69          sbit    DR1             =P3^3;
  70          sbit    PWR_UP  =P3^5;
  71          
  72          sbit    LED1    =P0^4;
  73          sbit    LED2    =P0^5;
  74          sbit    LED3    =P0^6;
  75          sbit    LED4    =P0^7;
  76          */
  77          sbit    bflag   =tempi^7;
  78          /**********************************************************************************/
  79          void    init_io();
  80          void    nRF2401_ON();
  81          void    BuildInitWord();
  82          void    InitnRF2401();
  83          void    DoSPIClock();
  84          void    CE_High();
  85          void TxData ();
  86          void    RXEN_HIGH();
  87          void    TXEN_LOW();
  88          void    delay_n(uchar n);
  89          void    BuildShockWord(Data1);
  90          void    ShockBurst();
  91          void    CheckButtons();
  92          void    ReceiveShock();
  93          void    Inituart();
  94          /*****************************************MAIN  START ******************************/
  95          /*void main(void)
  96          {       
  97                  init_io();
  98                  nRF2401_ON();
  99                  delay_n(100);///jia////////
 100                  BuildInitWord();
 101                  InitnRF2401();
 102                  Inituart();
 103                  CE_High();
 104                  RXEN_HIGH();
 105                  delay_n(100);       //delay for LED light
 106                                          
 107              P0=0xff;                            //close all LED 
 108              TXEN_LOW();                         // set TX mode
 109                  BuildShockWord(Data1);  
 110                  ShockBurst();           
 111                  delay_n(10);                            // delay for mode change
 112                  RXEN_HIGH();                             
 113                  while(1)
 114                          {
 115                                  CheckButtons(); //check if the button is pressed
 116                                  DR1=1;
 117                                  if(DR1==1)              // Check if DR1 is high (any received from nRF2401)     
C51 COMPILER V7.00  NRF2401                                                                06/07/2007 23:38:38 PAGE 3   

 118                                          ReceiveShock();                 
 119                          }               
 120          }
 121          /*************************************Rmain      END *******************************/
 122          /*************************************init_io   START ******************************/
 123          void init_io()
 124          {
 125   1              P0=0Xff;
 126   1              P1=0x00;
 127   1              P2=0xff;
 128   1              P3=0xff;
 129   1              P0=0xff;
 130   1      /*
 131   1              P0=0Xff;
 132   1              P1=0xff;
 133   1              P2=0x00;
 134   1              P3=0xff;
 135   1              P0=0x0f;
 136   1              */
 137   1      }
 138          /*************************************init_io    END *******************************/
 139          void Inituart(void)
 140          {
 141   1              TMOD = 0x20;                            //timer1 working mode 1
 142   1              TL1 = 0xfd;                                     //f7=9600 for 16mhz Fosc,and ... 
 143   1              TH1 = 0xfd;                                     //...fd=19200 for 11.0592mhz Fosc
 144   1              SCON = 0xd8;                            //uart mode 3,ren==1
 145   1              PCON = 0x80;                            //smod=0
 146   1              TR1 = 1;                                        //start timer1
 147   1      }
 148          /*************************************BuildSPIWord START****************************/
 149          void BuildInitWord()
 150          {
 151   1              InitData[0]=0x50;               //RX receiver 2, Datalength 80bit(10 byte)
 152   1              InitData[1]=0x50;               //RX receiver 1, Datalength 80bit(10 byte)
 153   1              InitData[2]=0x00;
 154   1              InitData[3]=0xcc;
 155   1              InitData[4]=0xcc;
 156   1              InitData[5]=0xcc;
 157   1              InitData[6]=0xcc;
 158   1              InitData[7]=0xcc;
 159   1              InitData[8]=0xcc;               //RX receiver 1 address   High byte
 160   1              InitData[9]=0xcc;               //RX receiver 1 address   High byte
 161   1              InitData[10]=0xcc;              //RX receiver 1 address   Low byte
 162   1              InitData[11]=0xcc;              //RX receiver 1 address   Low byte
 163   1              //InitData[12]=0x82;    //this is for 32 bit address(Bit7-Bit2), 16bit CRC(Bit1), CRC disable(Bit0) for ES c
             -hip
 164   1              InitData[12]=0x83;              //this is for 32 bit address(Bit7-Bit2), 16bit CRC(Bit1), CRC enable(Bit0) for final 
             -chip        
 165   1              InitData[13]=0x4f;              //One receiver(Bit7), shock Mode(Bit6), Datarate(Bit5) 250K, crystal(Bit4-Bit2), RF P
             -ower(Bit1-Bit0)
 166   1              //InitData[13]=0x6f;    //One receiver(Bit7), shock Mode(Bit6), Datarate(Bit5) 1M, crystal(Bit4-Bit2), RF Po
             -wer(Bit1-Bit0)
 167   1              InitData[14]=0x05;              //Channel Number(Bit7-Bit1), RX/TX mode(Bit0)
 168   1      }
 169          /*************************************BuildSPIWord END******************************/
 170          void TxData (uchar x)
 171          {
*** WARNING C236 IN LINE 171 OF NRF2401.C: '_TxData': different length of parameter lists
 172   1              SBUF=x; 
 173   1              while(TI==0);
 174   1                      TI=0;
C51 COMPILER V7.00  NRF2401                                                                06/07/2007 23:38:38 PAGE 4   

 175   1      
 176   1      }
 177          /*************************************InitnRF2401 START******************************/          
 178          void InitnRF2401()
 179          {
 180   1              CE=0;                                           //Disable CE
 181   1              CS=1;                                           //Enable CS--confige mode
 182   1              for (ByteCnt=0;ByteCnt<15;ByteCnt++)
 183   1                      {
 184   2                      tempi=InitData[ByteCnt];
 185   2                      for (BitCnt=0;BitCnt<8;BitCnt++)
 186   2                              {
 187   3                                      if (bflag==1)   //Check if first bit is HIGH
 188   3                                              Data=1;         //Set Data high
 189   3                                      else
 190   3                                              Data=0;         //Set Data low
 191   3                                      tempi=tempi<<1; //Left Shift to get next bit
 192   3                                      DoSPIClock();   //Call "DoClock" to generate a clock pulse
 193   3                              }
 194   2                      }
 195   1              CS=0;                                           //Disable CS--standby mode      
 196   1              Data=0;                                         //Set Data low
 197   1      }
 198          /*************************************InitnRF2401 END *******************************/
 199          /*************************************DoSPIClock START******************************/
 200          void DoSPIClock()
 201          {
 202   1              CLK1=1;
 203   1              _nop_();
 204   1              _nop_();
 205   1              CLK1=0;
 206   1      }       
 207          
 208          /*************************************DoSPIClock END *******************************/
 209          /*************************************CE_High   START ******************************/
 210          void CE_High()
 211          {
 212   1              CE=1;
 213   1      }
 214          /*************************************CE_High    END *******************************/
 215          /*************************************TXEN_LOW  START ******************************
 216          void CE_Low()
 217          {
 218                  CE=0;
 219          }
 220          *************************************CE_Low     END ********************************/
 221          /*************************************nRF2401_ON START******************************/
 222          void nRF2401_ON()
 223          {
 224   1              PWR_UP=1;

⌨️ 快捷键说明

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