📄 main.lst
字号:
158 1
159 1 SPICLK = 0; // Max SPI clock
160 1 SPI_CTRL = 0x02; // Connect internal SPI controller to Radio
161 1
162 1 // Switch to 16MHz clock:
163 1 RACSN = 0;
164 1 SpiReadWrite(RRC | 0x09);
165 1 cklf = SpiReadWrite(0) | 0x04;
166 1 RACSN = 1;
167 1 RACSN = 0;
168 1 SpiReadWrite(WRC | 0x09);
169 1 SpiReadWrite(cklf);
170 1 RACSN = 1;
171 1
172 1 P0_DIR=P0_DIR&0x1F; //led p0.6 p0.5 P0.7 output
173 1 LEDR=0;
174 1 LEDG=0;
175 1 P0_DIR |= 0x18; // P0.4 /3 is input
176 1 P0_DIR &= 0xf6;
177 1
178 1 InitTimer();
179 1 EA = 1;
C51 COMPILER V7.50 MAIN 04/29/2006 22:59:04 PAGE 4
180 1 }
181
182 /*****************************************************************************************
183 //函数名:void Init9E5(void)
184 //输入:无
185 //输出:无
186 //功能描述:Nrf9e5初始化,这里我们配置成32位地址。
187 /*****************************************************************************************/
188 void Init9E5(void)
189 {
190 1 int8u i;
191 1
192 1 TRX_CE = 0;
193 1 TXEN = 0; //配置模式
194 1
195 1 RACSN = 0;
196 1 SpiReadWrite(WRC);
197 1
198 1 for(i = 0; i < 10; i++)
199 1 {
200 2 SpiReadWrite(Nrf9e5Config[i]);
201 2 }
202 1
203 1 RACSN = 1;
204 1 }
205
206
207 /*****************************************************************************************
208 //函数名:int8u Recepacket(void)
209 //输入:接收数据缓冲区
210 //输出:成功返回1,否则返回0
211 //功能描述:接收数据存在缓冲区内
212 /*****************************************************************************************/
213 int8u Recepacket(void)
214 {
215 1 int8u i;
216 1 TXEN = 0;
217 1 TRX_CE = 1;
218 1 ResetTimer(1);
219 1 while(DR == 0)
220 1 {
221 2 if(GetTimer(1) > 300)
222 2 {
223 3 TRX_CE = 0;
224 3 return 0;
225 3 }
226 2
227 2 }
228 1 TRX_CE = 0;
229 1
230 1 RACSN = 0;
231 1 SpiReadWrite(RRP);
232 1 i = 0;
233 1
234 1 for(i = 0; i < 15; i++)
235 1 {
236 2 Rxbuf[i] = SpiReadWrite(0);
237 2 }
238 1
239 1 while(DR)
240 1 {
241 2 SpiReadWrite(0);
C51 COMPILER V7.50 MAIN 04/29/2006 22:59:04 PAGE 5
242 2 }
243 1
244 1 RACSN = 1;
245 1
246 1 return 1;
247 1
248 1 }
249
250
251
252
253 /******************************************************************************************
254 *******************************************************************************************
255 ************************************中断服务程序*********************************************
256 *******************************************************************************************
257 ******************************************************************************************/
258 void Timer0ISR (void) interrupt 1
259 {
260 1 EA = 0;
261 1
262 1 TH0 = T0HREL; // Reload Timer0 high byte
263 1 TL0 = T0LREL; // Reload Timer0 low byte
264 1 timer[0]++; // Increment timer[0]
265 1 timer[1]++;
266 1
267 1 EA = 1;
268 1 }
269
270
271
272
273 /******************************************************************************************
274 *******************************************************************************************
275 ******************************************主程序********************************************
276 *******************************************************************************************
277 ******************************************************************************************/
278 main()
279 {
280 1
281 1 int8u temp;
282 1 InitCpu();
283 1 delay(5000);
284 1
285 1 Init9E5();
286 1
287 1 LEDR = 1;
288 1 LEDG = 1;
289 1
290 1
291 1 while(1)
292 1 {
293 2 temp = Recepacket();
294 2
295 2 if(temp == 1)
296 2 {
297 3 LEDR = 0;
298 3 LEDG = 0;
299 3 delay(20000);
300 3 LEDR = 1;
301 3 LEDG = 1;
302 3 delay(20000);
303 3 }
C51 COMPILER V7.50 MAIN 04/29/2006 22:59:04 PAGE 6
304 2 }
305 1
306 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 316 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 51 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -