📄 demotx.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 + -