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

📄 cc1100_rx.lst

📁 cc1100 rf init 如何初始化cc1100的发送与接受寄存器
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.01  CC1100_RX                                                              09/13/2006 17:53:03 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE CC1100_RX
OBJECT MODULE PLACED IN CC1100_RX.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE CC1100_RX.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h>
   2          #include <intrins.h>
   3          #include "CC1100.h"
   4          
   5          
   6          #define         INT8U                           unsigned char
   7          #define         INT16U                          unsigned int
   8          
   9          #define         time0h                  (65535-1000)/256
  10          #define         time0l                  (65535-1000)%256                        //定时1MS
  11          #define         WRITE_BURST             0x40                                            //连续写入
  12          #define         READ_SINGLE             0x80                                            //读
  13          #define         READ_BURST              0xC0                                            //连续读
  14          #define         BYTES_IN_RXFIFO     0x7F                                                //接收缓冲区的有效字节数
  15          #define         CRC_OK              0x80                                                //CRC校验通过位标志
  16          
  17          
  18          
  19          #define         INT8U           unsigned char 
  20          #define         INT16U          unsigned int
  21          
  22          #define         FOSC            11059200        
  23          #define         BAUD            9600
  24          #define         TIMER1          0XFD    //256-(110592/(12*32*96))
  25          #define         TIMER0H         (65535-3*FOSC/12/1000)/256
  26          #define         TIMER0L         (65535-3*FOSC/12/1000)%256                      //定时3MSVR
  27          
  28          //--------------------------------------------------------------------------------------------------------
             ---
  29          //内部寄存器定义
  30          //--------------------------------------------------------------------------------------------------------
             ---
  31          //sfr           P4                      =       0xc0;   
  32          sfr     ADC_CONTR       =       0xC5;
  33          sfr     AUXR            =       0x8E;
  34          sfr     ADC_DATA        =       0xC6;
  35          sfr     P1_ADC_EN       =       0x97;
  36          sbit    GDO0    =       P3^3;//GDO1
  37          sbit    GDO2    =       P3^2;//GDO2
  38          //sbit  DAT3    =       P3^3;
  39          sbit    CSN     =P1^2;//CSN
  40          sbit    MOSI=P1^5;//MOSI
  41          sbit    MISO=P1^6;//MISO
  42          sbit    SCK     =P1^7;//SCK
  43          //sbit  DAT8    =       P1^5;
  44          //sbit  DAT9    =       P1^4;
  45          //sbit  DAT10   =       P4^2;  
  46          
  47          //定义CC1100模块接口
  48          
  49          /*
  50          #define GDO1    DAT1
  51          #define GDO2    DAT2
  52          #define CSN             DAT4
  53          #define MOSI    DAT5
C51 COMPILER V7.01  CC1100_RX                                                              09/13/2006 17:53:03 PAGE 2   

  54          #define MISO    DAT6
  55          #define SCK             DAT7
  56          */
  57          //sbit  LED1    =       P4^1;
  58          //sbit  LED2    =       P4^0;
  59          
  60          /****************************************************************************************
  61          //全局变量定义
  62          /****************************************************************************************/
  63          INT16U TimeOutCount[2]={0,0};                                                   //超时计数器
  64          INT8U PaTabel[8] = {0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0};
  65          
  66          
  67          //*****************************************************************************************
  68          //函数名:delay(unsigned int s)
  69          //输入:时间
  70          //输出:无
  71          //功能描述:普通廷时
  72          //*****************************************************************************************             
  73          delay(unsigned int s)
  74          {
  75   1              unsigned int i;
  76   1              for(i=0; i<s; i++);
  77   1              for(i=0; i<s; i++);
  78   1      }
  79          
  80          
  81          void halWait(INT16U timeout) {
  82   1          do {
  83   2              _nop_();
  84   2                      _nop_();
  85   2                      _nop_();
  86   2                      _nop_();
  87   2                      _nop_();
  88   2                      _nop_();
  89   2                      _nop_();
  90   2                      _nop_();
  91   2                      _nop_();
  92   2                      _nop_();
  93   2                      _nop_();
  94   2                      _nop_();
  95   2                      _nop_();
  96   2                      _nop_();
  97   2                      _nop_(); 
  98   2          } while (--timeout);
  99   1      }
 100          
 101          /*****************************************************************************************
 102          //函数名:UartInit()
 103          //输入:无
 104          //输出:无
 105          //功能描述:串口初始化程序
 106          /*****************************************************************************************/
 107          void UartInit(void)
 108          {
 109   1              SCON = 0x50;            //串口方式1,允许接收
 110   1              TMOD = 0x21;            //定时器1工作方式2,定时器0工作方式1
 111   1              TH1 = TIMER1;   
 112   1              TL1 = TIMER1;   
 113   1              TR1 = 1;                //启动定时器1
 114   1      }
 115          
C51 COMPILER V7.01  CC1100_RX                                                              09/13/2006 17:53:03 PAGE 3   

 116          
 117          /*****************************************************************************************
 118          //函数名:void TimerInit(void)
 119          //输入:无
 120          //输出:无
 121          //功能描述:定时器0初始化程序
 122          /*****************************************************************************************/
 123          /*void TimerInit(void)
 124          {
 125                  TH0 = TIMER0H;
 126                  TL0 = TIMER0L;
 127                  ET0 = 1;                        //定时器0中断允许
 128                  TF0 = 0;
 129                  TR0 = 1;                        //启动定时器0
 130                  EA = 1;                         //开全局中断
 131          }*/
 132          
 133          void SpiInit(void)
 134          {
 135   1              CSN=0;
 136   1              SCK=0;
 137   1              CSN=1;
 138   1      }
 139          
 140          /*****************************************************************************************
 141          //函数名:CpuInit()
 142          //输入:无
 143          //输出:无
 144          //功能描述:SPI初始化程序
 145          /*****************************************************************************************/
 146          CpuInit(void)
 147          {
 148   1                      UartInit();
 149   1      //              TimerInit();
 150   1                      SpiInit();
 151   1                      delay(5000);
 152   1      }
 153                  
 154          /*
 155          //*****************************************************************************************
 156          //函数名:ResetTimer(INT8U n)
 157          //输入:要复位的计时器
 158          //输出:无
 159          //功能描述:复位计时器
 160          //*****************************************************************************************
 161          void ResetTimer(INT8U n)
 162          {
 163                  ET0 = 0;                                    // Disable Timer0 interrupt
 164                  timer[n & 0x01] = 0;                        // Clear timer[n]
 165                  ET0 = 1;                                    // Enable Timer0 interrupt
 166          }
 167          
 168          
 169          //*****************************************************************************************
 170          //函数名:INT16U ReadTimer(INT8U n)
 171          //输入:要读的计时器
 172          //输出:读出值
 173          //功能描述:读计时器
 174          //*****************************************************************************************
 175          INT16U ReadTimer(INT8U n)
 176          {
 177                  INT16U tmp;
C51 COMPILER V7.01  CC1100_RX                                                              09/13/2006 17:53:03 PAGE 4   

 178                  ET0 = 0;                                    // Disable Timer0 interrupt
 179                  tmp = timer[n];                             // Clear timer[n]
 180                  ET0 = 1;                                    // Enable Timer0 interrupt
 181                  return tmp;
 182          }
 183          */
 184          /*****************************************************************************************
 185          //函数名:SendCh(ch)
 186          //输入:无
 187          //输出:无
 188          //功能描述:串口发送一个字符
 189          /*****************************************************************************************/
 190          void SendCh(INT8U ch)
 191          {
 192   1              SBUF = ch;
 193   1              while(!TI);
 194   1              TI = 0;
 195   1      }
 196          
 197          
 198          /*****************************************************************************************
 199          //函数名:void SendStr(INT8U *arr)
 200          //输入:发送的字符串
 201          //输出:无
 202          //功能描述:发送一个字符串
 203          /*****************************************************************************************/
 204          void SendStr(INT8U *arr)
 205          {
 206   1              INT8U i;
 207   1              
 208   1              i = 0;
 209   1              while(arr[i] != '\0')
 210   1              {
 211   2                      SendCh(arr[i]);
 212   2                      i++;
 213   2              }
 214   1      }
 215          
 216          //*****************************************************************************************
 217          //函数名:SpisendByte(INT8U dat)
 218          //输入:发送的数据
 219          //输出:无
 220          //功能描述:SPI发送一个字节
 221          //*****************************************************************************************
 222          INT8U SpiTxRxByte(INT8U dat)
 223          {
 224   1              INT8U i,temp;
 225   1              temp = 0;
 226   1              
 227   1              SCK = 0;
 228   1              for(i=0; i<8; i++)
 229   1              {
 230   2                      if(dat & 0x80)
 231   2                      {
 232   3                              MOSI = 1;
 233   3                      }
 234   2                      else MOSI = 0;
 235   2                      dat <<= 1;
 236   2      
 237   2                      SCK = 1; 
 238   2                      _nop_();
 239   2                      _nop_();
C51 COMPILER V7.01  CC1100_RX                                                              09/13/2006 17:53:03 PAGE 5   

 240   2      
 241   2                      temp <<= 1;
 242   2                      if(MISO)temp++; 
 243   2                      SCK = 0;
 244   2                      _nop_();
 245   2                      _nop_();        
 246   2              }
 247   1              return temp;
 248   1      }
 249          
 250          //*****************************************************************************************
 251          //函数名:void RESET_CC1100(void)
 252          //输入:无
 253          //输出:无
 254          //功能描述:复位CC1100
 255          //*****************************************************************************************
 256          void RESET_CC1100(void) 
 257          {
 258   1              CSN = 0; 
 259   1              while (MISO); 
 260   1              SpiTxRxByte(CCxxx0_SRES);               //写入复位命令
 261   1              while (MISO); 
 262   1              CSN = 1; 
 263   1      }
 264          
 265          //*****************************************************************************************
 266          //函数名:void POWER_UP_RESET_CC1100(void) 
 267          //输入:无
 268          //输出:无
 269          //功能描述:上电复位CC1100
 270          //*****************************************************************************************
 271          void POWER_UP_RESET_CC1100(void) 
 272          {
 273   1              CSN = 1; 
 274   1              halWait(1); 
 275   1              CSN = 0; 
 276   1              halWait(1); 
 277   1              CSN = 1; 
 278   1              halWait(41); 
 279   1              RESET_CC1100();                 //复位CC1100
 280   1      }
 281          
 282          //*****************************************************************************************
 283          //函数名:void halSpiWriteReg(INT8U addr, INT8U value)

⌨️ 快捷键说明

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