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

📄 demotx.lst

📁 无线龙ZigBee模块CC1010的接收-发送程序。
💻 LST
字号:
C51 COMPILER V7.06   DEMOTX                                                                04/13/2005 12:55:53 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DEMOTX
OBJECT MODULE PLACED IN demotx.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE demotx.c OMF2 BROWSE INCDIR(..\..\..\..\Include;..\..\..\..\lib) DEFINE(FRE
                    -Q433) DEBUG

stmt level    source

   1          
   2          
   3          #include <chipcon/cc1010eb.h>
   4          #include <chipcon/cul.h>
   5          #include <stdlib.h> 
   6          
   7          #define TEST_DATA_LENGTH    128                 //包长度
   8          #define INT8U unsigned char
   9          
  10          #define MY_ADDRESS          3                   //我的地址
  11          #define DEST_ADDRESS        3           //目标地址0
  12          void DelayUs(unsigned int dd);
  13          void SendUART0(INT8U ch);
  14          
  15          SPP_SETTINGS xdata sppSettings;
  16          
  17          unsigned int TIME0 = 0;                         //定时器
  18          
  19          /*****************************************************************************
  20                  主程序
  21          *****************************************************************************/
  22          void main() {
  23   1      
  24   1      //    int n;
  25   1              unsigned int ii;
  26   1                  SPP_RX_INFO xdata RXI;
  27   1          SPP_TX_INFO xdata TXI;
  28   1          byte xdata pRXData[TEST_DATA_LENGTH];
  29   1          byte xdata pTXData[TEST_DATA_LENGTH] = {"成都无线龙通讯科技有限责任公司\nCC1010仿真测试软件\n"};
  30   1      
  31   1      
  32   1      #ifdef FREQ868
              
              // X-tal frequency: 14.745600 MHz
              // RF frequency A: 868.277200 MHz       Rx
              // RF frequency B: 868.277200 MHz       Tx
              // RX Mode: Low side LO
              // Frequency separation: 64 kHz
              // Data rate: 19.2 kBaud
              // Data Format: NRZ
              // RF output power: 4 dBm
              // IF/RSSI: RSSI Enabled
              
              RF_RXTXPAIR_SETTINGS code RF_SETTINGS = {
                  0xA3, 0x2F, 0x15,    // Modem 0, 1 and 2
                  0x75, 0xA0, 0x00,    // Freq A
                  0x58, 0x32, 0x8D,    // Freq B
                  0x01, 0xAB,          // FSEP 1 and 0
                  0x40,                // PLL_RX
                  0x30,                // PLL_TX
                  0x6C,                // CURRENT_RX
                  0xF3,                // CURRENT_TX
                  0x32,                // FREND
                  0xFF,                // PA_POW
C51 COMPILER V7.06   DEMOTX                                                                04/13/2005 12:55:53 PAGE 2   

                  0x00,                // MATCH
                  0x00,                // PRESCALER
                  };
              
              #endif
  60   1      
  61   1      #ifdef FREQ915
              
              // X-tal frequency: 14.745600 MHz
              // RF frequency A: 915.027455 MHz       Rx
              // RF frequency B: 915.027455 MHz       Tx
              // RX Mode: Low side LO
              // Frequency separation: 64 kHz
              // Data rate: 19.2 kBaud
              // Data Format: NRZ
              // RF output power: 4 dBm
              // IF/RSSI: RSSI Enabled
              
              RF_RXTXPAIR_SETTINGS code RF_SETTINGS = {
                  0xA3, 0x2F, 0x15,    // Modem 0, 1 and 2
                  0xAA, 0x80, 0x00,    // Freq A
                  0x5C, 0xF4, 0x02,    // Freq B
                  0x01, 0xAB,          // FSEP 1 and 0
                  0x58,                // PLL_RX
                  0x30,                // PLL_TX
                  0x6C,                // CURRENT_RX
                  0xF3,                // CURRENT_TX
                  0x32,                // FREND
                  0xFF,                // PA_POW
                  0x00,                // MATCH
                  0x00,                // PRESCALER
                  };
              
              
              #endif
  90   1      
  91   1      #ifdef FREQ433
  92   1      
  93   1      
  94   1      // X-tal frequency: 14.745600 MHz
  95   1      // RF frequency A: 433.302000 MHz       Rx
  96   1      // RF frequency B: 433.302000 MHz       Tx
  97   1      // RX Mode: Low side LO
  98   1      // Frequency separation: 64 kHz
  99   1      // Data rate: 19.2 kBaud
 100   1      // Data Format: NRZ
 101   1      // RF output power: 10 dBm
 102   1      // IF/RSSI: RSSI Enabled
 103   1      
 104   1      RF_RXTXPAIR_SETTINGS code RF_SETTINGS = {
 105   1          0xA3, 0x2F, 0x0E,    // Modem 0, 1 and 2
 106   1          0x58, 0x00, 0x00,    // Freq A
 107   1          0x41, 0xFC, 0x9C,    // Freq B
 108   1          0x02, 0x80,          // FSEP 1 and 0
 109   1          0x60,                // PLL_RX
 110   1          0x48,                // PLL_TX
 111   1          0x44,                // CURRENT_RX
 112   1          0x81,                // CURRENT_TX
 113   1          0x0A,                // FREND
 114   1          0xFF,                // PA_POW
 115   1          0xC0,                // MATCH
 116   1          0x00,                // PRESCALER
C51 COMPILER V7.06   DEMOTX                                                                04/13/2005 12:55:53 PAGE 3   

 117   1          };
 118   1      
 119   1      #endif
 120   1      
 121   1      
 122   1          // Calibration data
 123   1          RF_RXTXPAIR_CALDATA xdata RF_CALDATA;
 124   1      
 125   1      
 126   1          // Startup macros for speed and low power consumption
 127   1          MEM_NO_WAIT_STATES();
 128   1          FLASH_SET_POWER_MODE(FLASH_STANDBY_BETWEEN_READS);
 129   1      
 130   1          // Initialize peripherals
 131   1          WDT_ENABLE(FALSE);
 132   1          RLED_OE(TRUE);
 133   1          YLED_OE(TRUE);
 134   1          GLED_OE(TRUE);
 135   1          BLED_OE(TRUE);
 136   1      
 137   1      
 138   1              EA = 1;
 139   1              ET0 = 1;
 140   1              TH0 = 0x10;
 141   1              TL0 = 0x00;
 142   1              TR0 = 1;
 143   1              TIME0 = 0;
 144   1              
 145   1              while(TIME0 < 200){                     //闪动10秒
 146   2      
 147   2                      halWait(500, CC1010EB_CLKFREQ);                 //延时  
 148   2                      RLED = LED_OFF;
 149   2                      halWait(500, CC1010EB_CLKFREQ);                 //延时  
 150   2                      RLED = LED_ON;
 151   2              }
 152   1      
 153   1          // Set optimum settings for speed and low power consumption
 154   1          MEM_NO_WAIT_STATES();
 155   1          FLASH_SET_POWER_MODE(FLASH_STANDBY_BETWEEN_READS);
 156   1      
 157   1          // Local settings
 158   1          sppSettings.myAddress = MY_ADDRESS;
 159   1          sppSettings.rxTimeout = 30;
 160   1          sppSettings.txAckTimeout = 2;
 161   1          sppSettings.txAttempts = 4;
 162   1          sppSettings.txPreambleByteCount = 7;
 163   1      
 164   1          // RF setup
 165   1          sppSetupRF(&RF_SETTINGS, &RF_CALDATA, CC1010EB_CLKFREQ, TRUE);
 166   1      
 167   1              
 168   1          // Prepare TX data
 169   1       //   srand(0x1234);
 170   1         // for (n = 0; n < TEST_DATA_LENGTH; n++) { 
 171   1         //     pTXData[n] = rand();
 172   1         // }
 173   1      
 174   1          TXI.flags = 0x00;
 175   1      
 176   1          // Test loop:
 177   1        
 178   1        
C51 COMPILER V7.06   DEMOTX                                                                04/13/2005 12:55:53 PAGE 4   

 179   1                  // 准备传送
 180   1              TIME0 = 0;
 181   1      
 182   1              while(TIME0 < 2400){                            //发送30秒
 183   2      
 184   2                      TXI.destination = DEST_ADDRESS;
 185   2              TXI.flags &= ~SPP_ACK_REQ;                      //不要求回送
 186   2              TXI.pDataBuffer = pTXData;
 187   2              TXI.dataLen = TEST_DATA_LENGTH;
 188   2      
 189   2              if (sppSend(&TXI) == SPP_TX_STARTED) {
 190   3                
 191   3                      while (SPP_STATUS() != SPP_IDLE_MODE);          //等待
 192   3      
 193   3                      if (TXI.status == SPP_TX_ACK_INVALID) {
 194   4      
 195   4                            //RLED = LED_ON;
 196   4                  }
 197   3                      else if (TXI.status == SPP_TX_ACK_TIMEOUT) {
 198   4      
 199   4                                       // YLED = LED_ON;
 200   4                      } else if (TXI.status == SPP_TX_FINISHED) {
 201   4      
 202   4                        YLED = LED_ON;
 203   4                  }
 204   3             } 
 205   2                      
 206   2              halWait(20, CC1010EB_CLKFREQ);                  //延时
 207   2             // GLED = LED_OFF;                                                       //关闭指示灯
 208   2             // RLED = LED_OFF;
 209   2              YLED = LED_OFF;
 210   2              //      BLED = LED_OFF;
 211   2               }
 212   1              YLED = LED_ON;
 213   1                while (TRUE) {                                //进入接收循环
 214   2                  // 准备接收
 215   2             RXI.pDataBuffer = pRXData;
 216   2             RXI.maxDataLen = TEST_DATA_LENGTH;                       
 217   2             if (sppReceive(&RXI) == SPP_RX_STARTED) {
 218   3                     
 219   3                 do { /* nothing */ } while (SPP_STATUS() != SPP_IDLE_MODE);
 220   3                      if (RXI.status == SPP_RX_TIMEOUT) {
 221   4                         // YLED = LED_ON;
 222   4                      }
 223   3                                  else if (RXI.status == SPP_RX_TOO_LONG) {
 224   4                         // RLED = LED_ON;
 225   4                      }
 226   3                                  else if (RXI.status == SPP_RX_FINISHED) {
 227   4                          GLED = LED_ON;
 228   4                                              for(ii = 0 ; ii < TEST_DATA_LENGTH ; ii++){
 229   5                                                      SendUART0(pRXData[ii]);
 230   5      
 231   5                                              }                    
 232   4                                              if (RXI.flags & SPP_SEQUENCE_BIT) {
 233   5                                                              BLED = LED_ON;
 234   5                                              }
 235   4                  } 
 236   3              }      
 237   2      
 238   2              // Wait, then turn off LEDs
 239   2              halWait(20, CC1010EB_CLKFREQ);
 240   2              GLED = LED_OFF;
C51 COMPILER V7.06   DEMOTX                                                                04/13/2005 12:55:53 PAGE 5   

 241   2              //RLED = LED_OFF;
 242   2             // YLED = LED_OFF;
 243   2      
 244   2              }   
 245   1      } 
 246          //串口发送程序
 247          void SendUART0(INT8U ch){
 248   1              ES = 0;
 249   1              SBUF0 = ch;
 250   1              while(!TI);
 251   1              TI = 0;
 252   1              ES = 1;
 253   1      }
 254          
 255          void init_timer0(void)  interrupt 1
 256          {
 257   1              TIME0 += 1;
 258   1              TH0 = 0x10;
 259   1              TL0 = 0x00;
 260   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    402    ----
   CONSTANT SIZE    =    147    ----
   XDATA SIZE       =      7     272
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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