📄 si4421.ls1
字号:
002A 7F80 386 MOV R7,#080H
002C 7E94 387 MOV R6,#094H
002E 120000 F 388 LCALL _spisendcommand
389 ; spisendcommand(0xc22c); //;数据滤波 Clock recovery (CR) auto lock control,
if set.CR will start in fast mode.
390 ; SOURCE LINE # 20
0031 7F2C 391 MOV R7,#02CH
0033 7EC2 392 MOV R6,#0C2H
0035 120000 F 393 LCALL _spisendcommand
394 ; //;fast mode, fast attack and fast release (6 to 8 bit pr
eamble (1010...) is recommended)
395 ; //;Digital filter
396 ; spisendcommand(0xca80); //;FIFO COMMAND FIFO IT LEVEL 8 SYNCHRON PATTERN FI
FO FILL DISABLE DISABLE THE HIGHLY SEBSITIVE
397 ; SOURCE LINE # 23
0038 7F80 398 MOV R7,#080H
A51 MACRO ASSEMBLER SI4421 08/03/2009 16:57:27 PAGE 8
003A 7ECA 399 MOV R6,#0CAH
003C 120000 F 400 LCALL _spisendcommand
401 ; spisendcommand(0xc4f7); //;AFC COMMAND KEEP THE Foffset VALUE +7Fres to -8F
res
402 ; SOURCE LINE # 24
003F 7FF7 403 MOV R7,#0F7H
0041 7EC4 404 MOV R6,#0C4H
0043 120000 F 405 LCALL _spisendcommand
406 ; spisendcommand(power); //;TXCTRL bias 75KHz RELATIVE OUTPUT POWER 0dB
407 ; SOURCE LINE # 25
0046 7800 F 408 MOV R0,#LOW (power)
0048 E6 409 MOV A,@R0
0049 FE 410 MOV R6,A
004A 08 411 INC R0
004B E6 412 MOV A,@R0
004C FF 413 MOV R7,A
004D 020000 F 414 LJMP _spisendcommand
415 ; END OF ia442xinit
416
417 ;
418 ; }
419 ; /******************************************************************************
420 ; ** 函数: receive(void)
421 ; ** 入参:
422 ; ** 返回:
423 ; ** 说明: 接收
424 ; ******************************************************************************/
425 ;
426 ; bit receive(void)
427
---- 428 RSEG ?PR?receive?SI4421
0000 429 receive:
430 USING 0
431 ; SOURCE LINE # 35
432 ; {
433 ; SOURCE LINE # 36
434 ;
435 ; bit flg;
436 ;
437 ; sdi=0;
438 ; SOURCE LINE # 40
0000 C286 439 CLR sdi
440 ; nsel=0;
441 ; SOURCE LINE # 41
0002 C290 442 CLR nsel
443 ; revframe = 0;
444 ; SOURCE LINE # 42
0004 C200 F 445 CLR revframe
446 ; if(sdo)
447 ; SOURCE LINE # 43
0006 308115 448 JNB sdo,?C0002
449 ; {
450 ; SOURCE LINE # 44
451 ;
452 ; fiforxframe();
453 ; SOURCE LINE # 46
0009 120000 F 454 LCALL fiforxframe
455 ; if (revframe)
456 ; SOURCE LINE # 47
000C 30000B F 457 JNB revframe,?C0003
458 ; {
459 ; SOURCE LINE # 48
460 ; spisendcommand(0xca83);
461 ; SOURCE LINE # 49
000F 7F83 462 MOV R7,#083H
0011 7ECA 463 MOV R6,#0CAH
A51 MACRO ASSEMBLER SI4421 08/03/2009 16:57:27 PAGE 9
0013 120000 F 464 LCALL _spisendcommand
465 ; flg=1;
466 ; SOURCE LINE # 50
0016 D200 F 467 SETB flg?140
468 ;
469 ; }
470 ; SOURCE LINE # 52
0018 8006 471 SJMP ?C0005
001A 472 ?C0003:
473 ; else
474 ; {
475 ; SOURCE LINE # 54
476 ; flg=0;
477 ; SOURCE LINE # 55
001A C200 F 478 CLR flg?140
479 ; }
480 ; SOURCE LINE # 56
481 ;
482 ; }
483 ; SOURCE LINE # 58
001C 8002 484 SJMP ?C0005
001E 485 ?C0002:
486 ; else
487 ; {
488 ; SOURCE LINE # 60
489 ; flg=0;
490 ; SOURCE LINE # 61
001E C200 F 491 CLR flg?140
492 ; }
493 ; SOURCE LINE # 62
0020 494 ?C0005:
495 ;
496 ; return(flg);
497 ; SOURCE LINE # 64
0020 A200 F 498 MOV C,flg?140
499 ; }
500 ; SOURCE LINE # 65
0022 501 ?C0006:
0022 22 502 RET
503 ; END OF receive
504
505 ;
506 ; /******************************************************************************
507 ; ** 函数: fiforxframe()
508 ; ** 入参:
509 ; ** 返回:
510 ; ** 说明: ia442x接收一帧数据
511 ; ******************************************************************************/
512 ;
513 ; void fiforxframe()
514
---- 515 RSEG ?PR?fiforxframe?SI4421
0000 516 fiforxframe:
517 USING 0
518 ; SOURCE LINE # 74
519 ; {
520 ; SOURCE LINE # 75
521 ; unsigned char i;
522 ; unsigned int k;
523 ;
524 ; n = 0;
525 ; SOURCE LINE # 79
0000 E4 526 CLR A
0001 7800 F 527 MOV R0,#LOW (n)
0003 F6 528 MOV @R0,A
529 ; spirevbyte();
A51 MACRO ASSEMBLER SI4421 08/03/2009 16:57:27 PAGE 10
530 ; SOURCE LINE # 80
0004 120000 F 531 LCALL spirevbyte
532 ; spirevbyte();
533 ; SOURCE LINE # 81
0007 120000 F 534 LCALL spirevbyte
535 ; rxdata[0]=spirevbyte();
536 ; SOURCE LINE # 82
000A 120000 F 537 LCALL spirevbyte
000D 900000 F 538 MOV DPTR,#rxdata
0010 EF 539 MOV A,R7
0011 F0 540 MOVX @DPTR,A
541 ; nsel=1;
542 ; SOURCE LINE # 83
0012 D290 543 SETB nsel
544 ; if(rxdata[0]==0xfa)
545 ; SOURCE LINE # 84
0014 64FA 546 XRL A,#0FAH
0016 6003 547 JZ $ + 5H
0018 020000 F 548 LJMP ?C0007
549 ; {
550 ; SOURCE LINE # 85
551 ; sdi=0;
552 ; SOURCE LINE # 86
001B C286 553 CLR sdi
554 ; nsel=0;
555 ; SOURCE LINE # 87
001D C290 556 CLR nsel
557 ; // while(!sdo);
558 ;
559 ; for(k=0;k<6000;k++)
560 ; SOURCE LINE # 90
001F 900000 F 561 MOV DPTR,#k?242
0022 F0 562 MOVX @DPTR,A
0023 A3 563 INC DPTR
0024 F0 564 MOVX @DPTR,A
0025 565 ?C0008:
0025 900000 F 566 MOV DPTR,#k?242
0028 E0 567 MOVX A,@DPTR
0029 FE 568 MOV R6,A
002A A3 569 INC DPTR
002B E0 570 MOVX A,@DPTR
002C FF 571 MOV R7,A
002D C3 572 CLR C
002E 9470 573 SUBB A,#070H
0030 EE 574 MOV A,R6
0031 9417 575 SUBB A,#017H
0033 5013 576 JNC ?C0009
577 ; {
578 ; SOURCE LINE # 91
579 ; if(sdo)
580 ; SOURCE LINE # 92
0035 208110 581 JB sdo,?C0009
582 ; {
583 ; SOURCE LINE # 93
584 ; break;
585 ; SOURCE LINE # 94
586 ; }
587 ; SOURCE LINE # 95
588 ; }
589 ; SOURCE LINE # 96
0038 590 ?C0010:
0038 900000 F 591 MOV DPTR,#k?242+01H
003B E0 592 MOVX A,@DPTR
003C 04 593 INC A
003D F0 594 MOVX @DPTR,A
003E 70E5 595 JNZ ?C0008
A51 MACRO ASSEMBLER SI4421 08/03/2009 16:57:27 PAGE 11
0040 900000 F 596 MOV DPTR,#k?242
0043 E0 597 MOVX A,@DPTR
0044 04 598 INC A
0045 F0 599 MOVX @DPTR,A
0046 600 ?C0060:
0046 80DD 601 SJMP ?C0008
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -