📄 t905.lst
字号:
266 SpiWrite(0);
267 SpiWrite(0);
268 SpiWrite(0);
269 SpiWrite(0);
270
271 CSN=1; // Spi disable
272 Delay(1);
273 CSN=0; // Spi enable for write a spi command
274 SpiWrite(WTA); // Write address command
275 for (i=0;i<4;i++) // Write 4 bytes address
276 {
277 SpiWrite(RxTxConf.buf[i+5]);
278 }
279 CSN=1; // Spi disable
280 TRX_CE=1; // Set TRX_CE high,start Tx data transmission
281 Delay(1); // while (DR!=1);
282 TRX_CE=0; // Set TRX_CE low
283
284
285 }
286
287 */
288
289
290 /*******************************************************************************************/
291 //function RxPacket();
292 /*******************************************************************************************/
293 void RxPacket(void)
294 {
295 1 uchar i;
296 1 TRX_CE=0; // Set nRF905 in standby mode
297 1 CSN=0; // Spi enable for write a spi command
298 1 SpiWrite(RRP); // Read payload command
299 1 for (i=0;i<RECEIVE_LEN_RF;i++)
300 1 {
301 2
302 2 Rs232TxBuf[i]=SpiRead(); // Read data and save to buffer
303 2
C51 COMPILER V7.50 T905 03/10/2006 10:18:41 PAGE 6
304 2
305 2
306 2 }
307 1 rs232_send_flag=1;
308 1
309 1 CSN=1; // Disable spi
310 1 while(DR||AM);
311 1 TRX_CE=1;
312 1
313 1
314 1 }
315
316
317
318
319
320 /*******************************************************************************************/
321 //function SetTxMode();
322 /*******************************************************************************************/
323 void SetTxMode(void)
324 {
325 1 TX_EN=1;
326 1 TRX_CE=0;
327 1 Delay(1); // delay for mode change(>=650us)
328 1 }
329 /*******************************************************************************************/
330 //function SetRxMode();
331 /*******************************************************************************************/
332 void SetRxMode(void)
333 {
334 1 TX_EN=0;
335 1 TRX_CE=1;
336 1 Delay(1); // delay for mode change(>=650us)
337 1 }
338 /*******************************************************************************************/
339 //Functon Scankey();
340 /*******************************************************************************************/
341 /*
342 void Scankey()
343 {
344 uchar Temp,xx;
345 P0=0xff;
346 Temp=P0&0x0f; // Read key value from port P0
347 if (Temp!=0x0f)
348 { Delay(10);
349 Temp=P0&0x0f; // Read key value from port P0
350 if (Temp!=0x0f)
351 {
352 xx=Temp;
353 Temp=Temp<<4; // Left shift 4 bits
354 TxBuf[0]=Temp; // Turn On the LED
355 P0=Temp; // Save to Tx buffer[0]
356 SetTxMode(); // Set Tx Mode
357 TxPacket(); // Transmit Tx buffer data
358 TxData (xx);
359 Delay(500); // Delay for LED light
360 P0=0xff; // Close LED display
361 SetRxMode(); // Set Rx Mode
362 while((P0&0x0f)!=0x0f);
363 }
364 }
365 }
C51 COMPILER V7.50 T905 03/10/2006 10:18:41 PAGE 7
366
367 */
368
369
370
371
372
373 void rf_send_pakage(void)
374 {
375 1
376 1 if( rf_send_flag==1)
377 1
378 1 {
379 2 rf_send_flag=0;
380 2 EA=0;
381 2 SetTxMode(); // Set Tx Mode
382 2 TxPacket(); // Transmit Tx buffer data
383 2 SetRxMode(); // Set Rx Mode
384 2 EA=1;
385 2 return;
386 2 }
387 1
388 1
389 1
390 1
391 1 }
392
393
394
395
396 /*******************************************************************************************/
397 //Function TxData ();
398 /*******************************************************************************************/
399
400 void rs232_tx_pakage(void)
401 {
402 1 uchar i;
403 1 if( rs232_send_flag==1)
404 1 {
405 2 rs232_send_flag=0;
406 2 TI=0;
407 2 for (i=0;i<RECEIVE_LEN_RF;i++)
408 2 {
409 3 SBUF=Rs232TxBuf[i];
410 3 while(!TI);
411 3 TI=0;
412 3
413 3 }
414 2 }
415 1
416 1 }
417
418
419
420
421
422 /*******************************************************************************************/
423 void rs232_interrupt(void) interrupt 4 using 1
424 { int j;
425 1 uchar flag,i,sum;
426 1
427 1 if( (RI))
C51 COMPILER V7.50 T905 03/10/2006 10:18:41 PAGE 8
428 1 {
429 2 RI=0;
430 2 if( rf_send_flag==0)
431 2 {
432 3 Rs232RxBuf[0]=SBUF;
433 3 sum=1;
434 3 if( Rs232RxBuf[0]!=0x55)
435 3 {
436 4 return;
437 4
438 4 }
439 3
440 3
441 3 sum++;
442 3 flag=1;
443 3 j=0;
444 3 while(flag==1)
445 3 { j++;
446 4 if(RI!=0){flag=0;}
447 4 if(j>=5000)
448 4 {flag=0;}
449 4 }
450 3 if(j>5000)
451 3 {
452 4
453 4 rf_send_flag=0;
454 4 sum=0;
455 4 return;
456 4 }
457 3
458 3 RI=0;
459 3 Rs232RxBuf[1]=SBUF;
460 3 if( Rs232RxBuf[1]!=0xaa)
461 3 {
462 4 return;
463 4 }
464 3
465 3 for( i=2;i<SEND_LEN_RF;i++)
466 3 {
467 4 sum++;
468 4 flag=1;
469 4 j=0;
470 4 while(flag==1)
471 4 { j++;
472 5 if(RI!=0){flag=0;}
473 5 if(j>=5000)
474 5 {flag=0;}
475 5 }
476 4 if(j>5000)
477 4 {
478 5
479 5 rf_send_flag=0;
480 5 sum=0;
481 5 return;
482 5 }
483 4
484 4 RI=0;
485 4 Rs232RxBuf[i]=SBUF;
486 4
487 4 }
488 3
489 3 if(sum==SEND_LEN_RF)rf_send_flag=1;
C51 COMPILER V7.50 T905 03/10/2006 10:18:41 PAGE 9
490 3
491 3
492 3 }
493 2 }
494 1
495 1
496 1
497 1 }
498
499 void init_rxbuf(void)
500 {
501 1 uchar i;
502 1 rf_send_flag=0;rs232_send_flag=0;
503 1
504 1 // rs232_send_sum=0;
505 1 for( i=0;i< TXBUFF_LEN;i++)
506 1 {
507 2 Rs232TxBuf[i]=0;
508 2
509 2 }
510 1
511 1 for( i=0;i< RXBUFF_LEN;i++)
512 1 {
513 2 Rs232RxBuf[i]=0;
514 2
515 2 }
516 1
517 1
518 1
519 1
520 1
521 1 }
522
523
524
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 580 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 1
IDATA SIZE = 42 ----
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 + -