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

📄 cc1100_tx.lst

📁 CC1100射频电路的线路板和已经调通的源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   CC1100_TX                                                             11/15/2007 11:51:04 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE CC1100_TX
OBJECT MODULE PLACED IN CC1100_TX.OBJ
COMPILER INVOKED BY: C:\silabs\IDEfiles\C51\BIN\C51.exe CC1100_TX.c DB OE

line level    source

   1          //-----------------------------------------------------------------------------
   2          // CC1100.c
   3          //-----------------------------------------------------------------------------
   4          // Copyright (C) 2005 Silicon Laboratories, Inc.
   5          //
   6          // AUTH: JS
   7          // DATE: 03 JUL 02
   8          //
   9          // This program flashes the green LED on the C8051F31x target board about 
  10          // five times a second using the interrupt handler for Timer2.
  11          //
  12          // Target: C8051F31x
  13          //
  14          // Tool chain: KEIL Eval 'c'
  15          //
  16          
  17          //-----------------------------------------------------------------------------
  18          // Includes
  19          //-----------------------------------------------------------------------------
  20          #include <c8051f310.h>                    // SFR declarations
  21          #include <intrins.h>
  22          #include <string.h>
  23          #include "CC1100.h"
  24          
  25          
  26          #define         INT8U                           unsigned char
  27          #define         INT16U                          unsigned int
  28          
  29          
  30          
  31          
  32          #define         WRITE_BURST             0x40                                            //连续写入
  33          #define         READ_SINGLE             0x80                                            //读
  34          #define         READ_BURST              0xC0                                            //连续读
  35          #define         BYTES_IN_RXFIFO     0x7F                                                //接收缓冲区的有效字节数
  36          #define         CRC_OK              0x80                                                //CRC校验通过位标志
  37          
  38          
  39          
  40          //-----------------------------------------------------------------------------
  41          // 16-bit SFR Definitions for 'F30x
  42          //-----------------------------------------------------------------------------
  43          
  44          sfr16 TMR2RL   = 0xca;                    // Timer2 reload value
  45          sfr16 TMR2     = 0xcc;                    // Timer2 counter
  46          
  47          //-----------------------------------------------------------------------------
  48          // Global CONSTANTS
  49          //-----------------------------------------------------------------------------
  50          
  51          #define   SYSCLK       24500000             // SYSCLK frequency in Hz
  52                  
  53          #define   BAUDRATE                 9600
  54          
  55          
C51 COMPILER V8.02   CC1100_TX                                                             11/15/2007 11:51:04 PAGE 2   

  56          
  57          
  58          
  59          //--------------------------------------------------------------------------------------------------------
             ---
  60          
  61          //定义CC1100模块接口
  62          sbit    SCK           = P0^0;
  63          sbit    MISO      = P0^1;
  64          
  65          sbit    MOSI      = P0^6;
  66          sbit    GDO0      = P0^7;
  67          sbit    CS_CC1100 = P2^0;
  68          sbit    GDO2      = P2^1;
  69          
  70          
  71          //定义接口
  72          sbit    TX            = P0^4;
  73          sbit    RX            = P0^5;
  74          
  75          sbit    LED       = P3^3;                          // LED='0' means ON
  76          
  77          
  78          
  79          /****************************************************************************************
  80          //全局变量定义
  81          /****************************************************************************************/
  82          INT8U PaTabel[8] = {0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0};
  83          
  84          
  85          
  86          //-----------------------------------------------------------------------------
  87          // Function PROTOTYPES
  88          //-----------------------------------------------------------------------------
  89          void SYSCLK_Init (void);
  90          void PORT_Init (void);
  91          
  92          
  93          void UART0_Init(void);
  94          void SendCh(INT8U c);
  95          
  96          
  97          void  delay(unsigned int s);
  98          INT8U SpiReadWrite(INT8U dat);
  99          void  halSpiWriteReg(INT8U addr, INT8U value);
 100          void  halSpiWriteBurstReg(INT8U addr, INT8U *buffer, INT8U count);
 101          void  halSpiStrobe(INT8U strobe);
 102          INT8U halSpiReadReg(INT8U addr); 
 103          void  halSpiReadBurstReg(INT8U addr, INT8U *buffer, INT8U count);
 104          INT8U halSpiReadStatus(INT8U addr);
 105          
 106          
 107          
 108          void halWait(INT16U timeout);
 109          void RESET_CC1100(void);
 110          void POWER_UP_RESET_CC1100(void);
 111          void halRfWriteRfSettings(void);
 112          void Init_CC1100(void);
 113          
 114          
 115          
 116          
C51 COMPILER V8.02   CC1100_TX                                                             11/15/2007 11:51:04 PAGE 3   

 117          void  halRfSendPacket(INT8U *txBuffer,INT8U size);
 118          INT8U halRfReceivePacket(INT8U *rxBuffer,INT8U length); 
 119          
 120          //-----------------------------------------------------------------------------
 121          // MAIN Routine
 122          //-----------------------------------------------------------------------------
 123          void main (void) {
 124   1      
 125   1         // INT8U TT,TT1;
 126   1              INT8U arrTx[4];
 127   1              INT8U arrRx[4]={0x55,0x22,0x65,0xAA};
 128   1         
 129   1      
 130   1          PCA0MD &= ~0x40;                       //disable watchdog timer
 131   1          PORT_Init();
 132   1          SYSCLK_Init();
 133   1              UART0_Init(); 
 134   1      
 135   1       // 
 136   1       //  TT1=SpiReadWrite(TT);
 137   1          Init_CC1100();
 138   1      
 139   1       
 140   1         //   LED = 0;
 141   1         //   
 142   1         //  SendCh(0x55);
 143   1        // halSpiWriteReg(CCxxx0_FSCTRL0,rfSettings.FSCTRL2);    
 144   1      
 145   1              arrTx[0] = 0x55;
 146   1              arrTx[1] = 0x0A;
 147   1              arrTx[2] = 0xCC;
 148   1      
 149   1              arrTx[3] = 0x33;
 150   1      
 151   1         
 152   1      
 153   1              while(1)
 154   1              {       
 155   2                   halRfSendPacket(arrTx, 4);
 156   2      
 157   2                   LED =~LED;
 158   2              
 159   2               delay(60000);
 160   2               
 161   2                      
 162   2      //       if(halRfReceivePacket(arrRx,4))
 163   2      //              {
 164   2                      
 165   2                              
 166   2                      
 167   2      //                  SendCh(arrRx[0]);
 168   2       //           SendCh(arrRx[1]);
 169   2      //                      SendCh(arrRx[2]);
 170   2       //           SendCh(arrRx[3]);
 171   2                        
 172   2      //              }
 173   2                      
 174   2              
 175   2              
 176   2                 }
 177   1      
 178   1      
C51 COMPILER V8.02   CC1100_TX                                                             11/15/2007 11:51:04 PAGE 4   

 179   1      }
 180          
 181          
 182          
 183          
 184          /*****************************************************************************************
 185          //函数名:void PORT_Init (void)
 186          //输入:无
 187          //输出:无
 188          //功能描述:
 189          /*****************************************************************************************/
 190          void PORT_Init (void)
 191          {
 192   1         P0MDOUT = 0x51;
 193   1         P2MDOUT = 0x01;
 194   1         P3MDOUT = 0x08;
 195   1         XBR0 = 0x01;
 196   1         XBR1 = 0xC0;
 197   1         
 198   1         CS_CC1100 = 1;
 199   1         SCK       = 0;
 200   1         MISO      = 1;
 201   1         MOSI      = 0;
 202   1         GDO0      = 1;  
 203   1         GDO2      = 1;
 204   1         LED       = 1;  
 205   1         CS_CC1100 = 1;
 206   1      
 207   1      }
 208          
 209          
 210          void SYSCLK_Init(void)
 211          {
 212   1         OSCICN = 0x83;
 213   1         CLKSEL = 0x00;
 214   1      
 215   1      }
 216          
 217          
 218          /*****************************************************************************************
 219          //函数名:void UART0_Init(void)
 220          //功能描述:初始化串口0,9600,8,N
 221          /*****************************************************************************************/
 222          void UART0_Init(void)
 223          {
 224   1              SCON0 = 0x10;           //串口方式1,8,允许接收
 225   1              TMOD |= 0x20;           //定时器1工作方式1,8 autoload
 226   1              TH1 = 0x96;     
 227   1              TL1 = 0x96;     
 228   1          
 229   1              TR1 = 1;                    //启动定时器1
 230   1              ES0 = 0;
 231   1      }
 232          
 233          /*****************************************************************************************
 234          //函数名:void SendCh(INT8U c)
 235          //输入:无
 236          //输出:无
 237          //功能描述:串口发送一个字符
 238          /*****************************************************************************************/
 239          void SendCh(INT8U c)
 240          {
C51 COMPILER V8.02   CC1100_TX                                                             11/15/2007 11:51:04 PAGE 5   

 241   1          EA  = 0;
 242   1      
 243   1          TI0 = 0;
 244   1              SBUF0 = c;
 245   1              while(!TI0);
 246   1              TI0 = 0;
 247   1              EA = 1;
 248   1      }
 249          
 250          
 251          
 252          
 253          //*****************************************************************************************
 254          //函数名:void delay(unsigned int s)
 255          //输入:时间
 256          //输出:无
 257          //功能描述:普通廷时
 258          //*****************************************************************************************             
 259          void delay(unsigned int s)
 260          {
 261   1              unsigned int i;
 262   1              for(i=0; i<s; i++);
 263   1              for(i=0; i<s; i++);
 264   1          for(i=0; i<s; i++);
 265   1      }
 266          
 267          
 268          //*****************************************************************************************
 269          //函数名:INT8U SpiReadWrite(INT8U dat)
 270          //输入:发送的数据
 271          //输出:无
 272          //功能描述:SPI发送一个字节
 273          //*****************************************************************************************
 274          INT8U SpiReadWrite(INT8U dat)
 275          {
 276   1              INT8U i,temp;
 277   1      
 278   1              temp = 0;       
 279   1              SCK = 0;        
 280   1              _nop_();
 281   1              for(i=0; i<8; i++)

⌨️ 快捷键说明

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