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

📄 demotx.lst

📁 无线龙ZigBee模块CC1010的接收-发送程序。
💻 LST
字号:
C51 COMPILER V7.08   DEMOTX                                                                11/25/2008 21:39:43 PAGE 1   


C51 COMPILER V7.08, 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;D:\KEIL\C51
                    -\BIN\;D:\Keil\C51\LIB\) DEFINE(FREQ433) DEBUG

line 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] = {"基于ZigBee计数的无线温、湿度系统的设计与实现\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.08   DEMOTX                                                                11/25/2008 21:39:43 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.08   DEMOTX                                                                11/25/2008 21:39:43 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              EA = 1;
 138   1              ET0 = 1;
 139   1              TH0 = 0x10;
 140   1              TL0 = 0x00;
 141   1              TR0 = 1;
 142   1              TIME0 = 0;      
 143   1      
 144   1          // Set optimum settings for speed and low power consumption
 145   1          MEM_NO_WAIT_STATES();
 146   1          FLASH_SET_POWER_MODE(FLASH_STANDBY_BETWEEN_READS);
 147   1      
 148   1          // Local settings
 149   1          sppSettings.myAddress = MY_ADDRESS;
 150   1          sppSettings.rxTimeout = 30;
 151   1          sppSettings.txAckTimeout = 2;
 152   1          sppSettings.txAttempts = 4;
 153   1          sppSettings.txPreambleByteCount = 7;
 154   1      
 155   1          // RF setup
 156   1          sppSetupRF(&RF_SETTINGS, &RF_CALDATA, CC1010EB_CLKFREQ, TRUE);
 157   1      
 158   1      
 159   1          TXI.flags = 0x00;
 160   1      
 161   1          // Test loop:
 162   1        
 163   1        
 164   1                  // 准备传送
 165   1              TIME0 = 0;
 166   1      
 167   1              while (TIME0 < 3600) {                          //接收从机传送1分钟
 168   2                                                                               // 准备接收
 169   2             RXI.pDataBuffer = pRXData;
 170   2             RXI.maxDataLen = TEST_DATA_LENGTH;                       
 171   2             if (sppReceive(&RXI) == SPP_RX_STARTED) {
 172   3                     
 173   3                 do { /* nothing */ } while (SPP_STATUS() != SPP_IDLE_MODE);
 174   3      
 175   3                      if (RXI.status == SPP_RX_TIMEOUT) {                     //接收失败
 176   4                          YLED = LED_ON;
 177   4                      }
 178   3                                  else if (RXI.status == SPP_RX_TOO_LONG) {
C51 COMPILER V7.08   DEMOTX                                                                11/25/2008 21:39:43 PAGE 4   

 179   4                         // RLED = LED_ON;
 180   4                      }
 181   3                                  else if (RXI.status == SPP_RX_FINISHED) {           //接收成功
 182   4                          GLED = LED_ON;
 183   4                                              for(ii = 0 ; ii < TEST_DATA_LENGTH ; ii++){
 184   5                                                      SendUART0(pRXData[ii]);
 185   5      
 186   5                                              }                    
 187   4                                              if (RXI.flags & SPP_SEQUENCE_BIT) {
 188   5                                                              BLED = LED_ON;
 189   5                                              }
 190   4                  } 
 191   3              }      
 192   2      
 193   2              // Wait, then turn off LEDs
 194   2              halWait(20, CC1010EB_CLKFREQ);
 195   2              GLED = LED_OFF;
 196   2              RLED = LED_OFF;
 197   2              YLED = LED_OFF;
 198   2                 }   
 199   1              GLED = LED_ON;
 200   1      
 201   1              while(TRUE){                            //连续发送
 202   2      
 203   2                      TXI.destination = DEST_ADDRESS;
 204   2              TXI.flags &= ~SPP_ACK_REQ;                      //不要求回送
 205   2              TXI.pDataBuffer = pTXData;
 206   2              TXI.dataLen = TEST_DATA_LENGTH;
 207   2      
 208   2              if (sppSend(&TXI) == SPP_TX_STARTED) {
 209   3                
 210   3                      while (SPP_STATUS() != SPP_IDLE_MODE);          //等待
 211   3      
 212   3                      if (TXI.status == SPP_TX_ACK_INVALID) {
 213   4      
 214   4                            //RLED = LED_ON;
 215   4                  }
 216   3                      else if (TXI.status == SPP_TX_ACK_TIMEOUT) {
 217   4      
 218   4                                       RLED = LED_ON;
 219   4                      } else if (TXI.status == SPP_TX_FINISHED) {
 220   4      
 221   4                        YLED = LED_ON;
 222   4                  }
 223   3             } 
 224   2                      
 225   2              halWait(20, CC1010EB_CLKFREQ);                  //延时
 226   2             // GLED = LED_OFF;                                                       //关闭指示灯
 227   2             RLED = LED_OFF;
 228   2              YLED = LED_OFF;
 229   2              //      BLED = LED_OFF;
 230   2               }
 231   1      } 
 232          //串口发送程序
 233          void SendUART0(INT8U ch){
 234   1              ES = 0;
 235   1              SBUF0 = ch;
 236   1              while(!TI);
 237   1              TI = 0;
 238   1              ES = 1;
 239   1      }
 240          
C51 COMPILER V7.08   DEMOTX                                                                11/25/2008 21:39:43 PAGE 5   

 241          void init_timer0(void)  interrupt 1
 242          {
 243   1              TIME0 += 1;
 244   1              TH0 = 0x10;
 245   1              TL0 = 0x00;
 246   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    380    ----
   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 + -