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

📄 cc1100_tx.lst

📁 CC1100收发程序,用STC单片机对CC1100做控制
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.01  CC1100_TX                                                              09/13/2006 17:53:28 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE CC1100_TX
OBJECT MODULE PLACED IN CC1100_TX.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE CC1100_TX.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          #define         FOSC            11059200        
  19          #define         BAUD            9600
  20          #define         TIMER1          0XFD    //256-(110592/(12*32*96))
  21          #define         TIMER0H         (65535-3*FOSC/12/1000)/256
  22          #define         TIMER0L         (65535-3*FOSC/12/1000)%256                      //定时3MSVR
  23          
  24          //--------------------------------------------------------------------------------------------------------
             ---
  25          //内部寄存器定义
  26          //--------------------------------------------------------------------------------------------------------
             ---
  27          //sfr           P4                      =       0xc0;   
  28          sfr     ADC_CONTR       =       0xC5;
  29          sfr     AUXR            =       0x8E;
  30          sfr     ADC_DATA        =       0xC6;
  31          sfr     P1_ADC_EN       =       0x97;
  32          sbit    GDO0    =       P3^3;//GDO1
  33          sbit    GDO2    =       P3^2;//GDO2
  34          //sbit  DAT3    =       P3^3;
  35          sbit    CSN     =P1^2;//CSN
  36          sbit    MOSI=P1^5;//MOSI
  37          sbit    MISO=P1^6;//MISO
  38          sbit    SCK     =P1^7;//SCK
  39          //sbit  DAT8    =       P1^5;
  40          //sbit  DAT9    =       P1^4;
  41          //sbit  DAT10   =       P4^2;  
  42          
  43          //定义CC1100模块接口
  44          
  45          /*
  46          #define GDO1    DAT1
  47          #define GDO2    DAT2
  48          #define CSN             DAT4
  49          #define MOSI    DAT5
  50          #define MISO    DAT6
  51          #define SCK             DAT7
  52          */
  53          //sbit  LED1    =       P4^1;
C51 COMPILER V7.01  CC1100_TX                                                              09/13/2006 17:53:28 PAGE 2   

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

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

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

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

⌨️ 快捷键说明

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