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

📄 main.lst

📁 nfr2401的图和程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.08   MAIN                                                                  04/13/2006 17:24:35 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <string.h>
   2          #include <reg52.h>
   3          #include <intrins.h>
   4          
   5          #define         INT8U           unsigned char 
   6          #define         INT16U          unsigned int
   7          
   8          #define         FOSC            11059200        
   9          #define         BAUD            9600
  10          #define         TIMER1          0XFD    //256-(110592/(12*32*96))
  11          #define         TIMER0H         (65535-3*FOSC/12/1000)/256
  12          #define         TIMER0L         (65535-3*FOSC/12/1000)%256                      //定时3MSVR
  13          //--------------------------------------------------------------------------------------------------------
             ---
  14          //内部寄存器定义
  15          //--------------------------------------------------------------------------------------------------------
             ---
  16          sfr     P4              =       0xc0;   
  17          sfr     ADC_CONTR       =       0xC5;
  18          sfr     AUXR            =       0x8E;
  19          sfr     ADC_DATA        =       0xC6;
  20          sfr     P1_ADC_EN       =       0x97;
  21          //定义I/O口
  22          sbit    POW_UP  =       P3^5;
  23          sbit    CE      =       P3^4;
  24          sbit    DR2     =       P3^3;
  25          sbit    SCK2    =       P3^2;
  26          sbit    MOSI    =       P4^3;
  27          sbit    MISO    =       P1^7;
  28          sbit    SCK     =       P1^6;
  29          sbit    DOUT2   =       P1^5;
  30          sbit    CS      =       P1^4;
  31          sbit    DR1     =       P4^2;
  32          sbit    LED1    =       P4^1;
  33          sbit    LED2    =       P4^0;
  34          
  35          
  36          /********************* I/O define end*****************************************************/
  37          
  38          
  39          #define         FRESELE         0x28            //频道选择
  40          #define         DATANUM         4               //有效数据位数
  41          
  42          #define time0h (65535-3000)/256
  43          #define time0l (65535-3000)%256                 //定时3MS
  44          
  45          
  46          
  47          
  48          INT8U CofigBuf[15]=
  49                          {
  50                          0x00,                           //接收频道二有效数据长度
  51                          
  52                          40,                             //接收频道一有效数据长度
  53                          
C51 COMPILER V7.08   MAIN                                                                  04/13/2006 17:24:35 PAGE 2   

  54                          0x00,0x00,0x00,0x00,0x00,       //接收频道二地址
  55                          
  56                          0x00,0xcd,0xef,0x12,0xaa,       //接收频道一地址
  57                          
  58                          0x83,                           //32位地址,16位CRC,使能CRC
  59                                                          //bit7~2:ADDR_W,最大40位
  60                                                          
  61                                                          //bit1:CRC_L
  62                                                          //Logic 0: 8 bit CRC    
  63                                                          //Logic 1: 16 bit CRC
  64                                                          
  65                                                          
  66                                                          //BIT0:CRC_EN
  67                                                          //Logic 0: On-chip CRC generation/checking disabled
  68                                                          //Logic 1: On-chip CRC generation/checking enabled
  69                                                          
  70                                                          
  71                          0x4f,                           //ShockBurst模式,250 kbps,16M晶振,0dBm最大功率
  72                          
  73                                                          //Bit 15:RX2_EN
  74                                                          //Logic 0: One channel receive
  75                                                          //Logic 1: Two channels receive
  76                                                          
  77                                                          //Bit 14:
  78                                                          //Communication Mode:
  79                                                          //Logic 0: nRF2401 operates in direct mode.
  80                                                          //Logic 1: nRF2401 operates in ShockBurst. mode
  81          
  82                                                          //Bit 13:
  83                                                          //RF Data Rate:
  84                                                          //Logic 0: 250 kbps
  85                                                          //Logic 1: 1 Mbps
  86                                                          
  87                                                          //Bit 12-10:Selects the nRF2401 crystal frequency to be used:
  88                                                          //      D12     D11     D10     Crystal Frequency [MHz]
  89                                                          //      0       0       0               4
  90                                                          //      0       0       1               8
  91                                                          //      0       1       0               12
  92                                                          //      0       1       1               16
  93                                                          //      1       0       0               20
  94                                                          
  95                                                          //Bit 9-8:RF_PWR: Sets nRF2401 RF output power in transmit mode:
  96                                                          //      D9      D8      P [dBm]
  97                                                          //      0       0       -20
  98                                                          //      0       1       -10
  99                                                          //      1       0       -5
 100                                                          //      1       1       0
 101                                                          
 102                                                          
 103                                                          
 104                          0x50                    //2400+4*1=2404MHZ=2.404G,发送模式
 105                          
 106                                                          //Bit 7 – 1:RF_CH#: Sets the frequency channel the nRF2401 operates on.
 107                                                          //Channelrf = 2400MHZ + RF_CH# * 1.0MHZ
 108                                                          
 109                                                          //Bit 0:Set active mode:
 110                                                          //Logic 0: transmit mode
 111                                                          //Logic 1: receive mode
 112                          };
 113                          
 114                          
 115          INT8U AddrCofig[4]={0xcd, 0xef, 0x12, 0xaa};                            //地址
C51 COMPILER V7.08   MAIN                                                                  04/13/2006 17:24:35 PAGE 3   

 116          INT8U TxBuf[8]={0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00};        //发送绶冲区
 117          INT8U RxBuf[8]={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};        //接收绶冲区                                                    
 118          INT16U timer[2];                                                                //超时计数器
 119          
 120          
 121                          
 122          /*****************************************************************************************
 123          //函数名:void Delay100us(INT8U s)
 124          //输入:时间
 125          //输出:无
 126          //功能描述:廷时
 127          /*****************************************************************************************/
 128          void Delay100us(INT8U n)
 129          {
 130   1              INT8U i;
 131   1              while(n--)
 132   1              {
 133   2                      for(i=0; i<35; i++);
 134   2              }
 135   1      }
 136          /*****************************************************************************************
 137          //函数名:delay(unsigned int s)
 138          //输入:时间
 139          //输出:无
 140          //功能描述:普通廷时
 141          /*****************************************************************************************/             
 142          delay(unsigned int s)
 143          {
 144   1              unsigned int i;
 145   1              for(i=0; i<s; i++);
 146   1              for(i=0; i<s; i++);
 147   1      }
 148          /*****************************************************************************************
 149          //函数名:CpuInit()
 150          //输入:无
 151          //输出:无
 152          //功能描述:SPI初始化程序
 153          /*****************************************************************************************/
 154          CpuInit(void)
 155          {
 156   1              POW_UP = 1;
 157   1              Delay100us(40);
 158   1              CE = 0;
 159   1              CS = 0;
 160   1      //      SCK = 0;
 161   1      }
 162          
 163          /*****************************************************************************************
 164          //函数名:void TimerInit(void)
 165          //输入:无
 166          //输出:无
 167          //功能描述:定时器0初始化程序
 168          /*****************************************************************************************/
 169          void TimerInit(void)
 170          {
 171   1              TH0 = TIMER0H;
 172   1              TL0 = TIMER0L;
 173   1              ET0 = 1;                        //定时器0中断允许
 174   1              TF0 = 0;
 175   1              TR0 = 1;                        //启动定时器0
 176   1              EA = 1;                         //开全局中断
 177   1      }
C51 COMPILER V7.08   MAIN                                                                  04/13/2006 17:24:35 PAGE 4   

 178          
 179          
 180          /*****************************************************************************************
 181          //函数名:ResetTimer(INT8U n)
 182          //输入:要复位的计时器
 183          //输出:无
 184          //功能描述:复位计时器
 185          /*****************************************************************************************/
 186          void ResetTimer(INT8U n)
 187          {
 188   1              ET0 = 0;                                    // Disable Timer0 interrupt
 189   1              timer[n & 0x01] = 0;                        // Clear timer[n]
 190   1              ET0 = 1;                                    // Enable Timer0 interrupt
 191   1      }
 192          
 193          
 194          /*****************************************************************************************
 195          //函数名:INT16U ReadTimer(INT8U n)
 196          //输入:要读的计时器
 197          //输出:读出值
 198          //功能描述:读计时器
 199          /*****************************************************************************************/
 200          INT16U ReadTimer(INT8U n)
 201          {
 202   1              INT16U tmp;
 203   1              ET0 = 0;                                    // Disable Timer0 interrupt
 204   1              tmp = timer[n];                             // Clear timer[n]
 205   1              ET0 = 1;                                    // Enable Timer0 interrupt
 206   1              return tmp;
 207   1      }
 208          
 209          /*****************************************************************************************
 210          //函数名:UartInit()
 211          //输入:无
 212          //输出:无
 213          //功能描述:串口初始化程序
 214          /*****************************************************************************************/
 215          void UartInit(void)
 216          {
 217   1              SCON = 0x50;            //串口方式1,允许接收
 218   1              TMOD = 0x21;            //定时器1工作方式2,定时器0工作方式1
 219   1              TH1 = TIMER1;   
 220   1              TL1 = TIMER1;   
 221   1              TR1 = 1;                //启动定时器1
 222   1      }
 223          
 224          
 225          /*****************************************************************************************
 226          //函数名:SendCh(ch)
 227          //输入:无
 228          //输出:无
 229          //功能描述:串口发送一个字符
 230          /*****************************************************************************************/
 231          void SendCh(INT8U ch)
 232          {
 233   1              SBUF = ch;
 234   1              while(!TI);
 235   1              TI = 0;
 236   1      }
 237          
 238          
 239          /*****************************************************************************************
C51 COMPILER V7.08   MAIN                                                                  04/13/2006 17:24:35 PAGE 5   

 240          //函数名:void SpiWriteByte(INT8U dat)
 241          //输入:发送的数据
 242          //输出:无
 243          //功能描述:SPI发送一个字节
 244          /*****************************************************************************************/
 245          void SpiWriteByte(INT8U dat)
 246          {
 247   1              INT8U i;
 248   1      

⌨️ 快捷键说明

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