📄 i2c_m.ls1
字号:
396 ; case MR_LDATA_ACK: //0x58
397 ; SOURCE LINE # 83
00B9 398 ?C0013:
399 ; transreg(MR_LDATA_ACK);
400 ; SOURCE LINE # 84
00B9 7F58 401 MOV R7,#058H
00BB 120000 F 402 LCALL _transreg
403 ; SDATA[num]=S1DAT;
404 ; SOURCE LINE # 85
00BE 7400 F 405 MOV A,#LOW (SDATA)
00C0 2500 F 406 ADD A,num
00C2 F8 407 MOV R0,A
00C3 A6DA 408 MOV @R0,S1DAT
409 ; num++;
410 ; SOURCE LINE # 86
00C5 0500 F 411 INC num
412 ; S1CON=SEND_STOP_ACK;
413 ; SOURCE LINE # 87
00C7 414 ?C0031:
415 ; break;
416 ; SOURCE LINE # 88
00C7 8005 417 SJMP ?C0034
418 ; //--------------------------
419 ; case MR_SLAVE_NONACK: //0x48
420 ; SOURCE LINE # 90
00C9 421 ?C0014:
422 ; transreg(MR_SLAVE_NONACK);
423 ; SOURCE LINE # 91
00C9 7F48 424 MOV R7,#048H
00CB 120000 F 425 LCALL _transreg
426 ; S1CON=SEND_STOP_ACK;
427 ; SOURCE LINE # 92
00CE 428 ?C0034:
00CE 75D8D6 429 MOV S1CON,#0D6H
430 ; break;
431 ; SOURCE LINE # 93
00D1 8072 432 SJMP ?C0025
433 ; //==========================================
434 ;
435 ; //=====SLAVE RECEIVE mode===================
436 ; case SR_SLAW_ACK: //0x60
437 ; SOURCE LINE # 97
00D3 438 ?C0015:
439 ; transreg(SR_SLAW_ACK);
440 ; SOURCE LINE # 98
00D3 7F60 441 MOV R7,#060H
00D5 120000 F 442 LCALL _transreg
443 ; num = 0;
444 ; SOURCE LINE # 99
00D8 445 ?C0032:
00D8 750000 F 446 MOV num,#00H
447 ; S1CON=RELEASE_BUS_ACK;
448 ; SOURCE LINE # 100
449 ; break;
450 ; SOURCE LINE # 101
00DB 805E 451 SJMP ?C0036
452 ;
A51 MACRO ASSEMBLER I2C_M 12/18/2003 11:19:19 PAGE 8
453 ; case SR_SLAW_NONACK: //0x68
454 ; SOURCE LINE # 103
00DD 455 ?C0016:
456 ; transreg(SR_SLAW_NONACK);
457 ; SOURCE LINE # 104
00DD 7F68 458 MOV R7,#068H
00DF 120000 F 459 LCALL _transreg
460 ; num=0;
461 ; SOURCE LINE # 105
00E2 750000 F 462 MOV num,#00H
463 ; S1CON=RELEASE_BUS_NONACK;
464 ; SOURCE LINE # 106
00E5 75D8C2 465 MOV S1CON,#0C2H
466 ;
467 ; case SR_DATA_ACK: //0x80
468 ; SOURCE LINE # 108
00E8 469 ?C0017:
470 ; transreg(SR_DATA_ACK);
471 ; SOURCE LINE # 109
00E8 7F80 472 MOV R7,#080H
00EA 473 ?C0033:
00EA 120000 F 474 LCALL _transreg
475 ; SDATA[num]=S1DAT;
476 ; SOURCE LINE # 110
00ED 7400 F 477 MOV A,#LOW (SDATA)
00EF 2500 F 478 ADD A,num
00F1 F8 479 MOV R0,A
00F2 A6DA 480 MOV @R0,S1DAT
481 ; num++;
482 ; SOURCE LINE # 111
00F4 0500 F 483 INC num
484 ; S1CON=RELEASE_BUS_ACK;
485 ; SOURCE LINE # 112
00F6 486 ?C0035:
487 ; break;
488 ; SOURCE LINE # 113
00F6 8043 489 SJMP ?C0036
490 ;
491 ; case SR_DATA_NONACK: //0x88
492 ; SOURCE LINE # 115
00F8 493 ?C0018:
494 ; transreg(SR_DATA_NONACK);
495 ; SOURCE LINE # 116
00F8 7F88 496 MOV R7,#088H
00FA 120000 F 497 LCALL _transreg
498 ; SDATA[num]=S1DAT;
499 ; SOURCE LINE # 117
00FD 7400 F 500 MOV A,#LOW (SDATA)
00FF 2500 F 501 ADD A,num
0101 F8 502 MOV R0,A
0102 A6DA 503 MOV @R0,S1DAT
504 ; num++;
505 ; SOURCE LINE # 118
0104 0500 F 506 INC num
507 ; S1CON=RELEASE_BUS_NONACK;
508 ; SOURCE LINE # 119
0106 75D8C2 509 MOV S1CON,#0C2H
510 ; break;
511 ; SOURCE LINE # 120
0109 803A 512 SJMP ?C0025
513 ;
514 ; case SR_STOP_ACK: //0xA0 receive has done
515 ; SOURCE LINE # 122
010B 516 ?C0019:
517 ; transreg(SR_STOP_ACK);
518 ; SOURCE LINE # 123
A51 MACRO ASSEMBLER I2C_M 12/18/2003 11:19:19 PAGE 9
010B 7FA0 519 MOV R7,#0A0H
010D 120000 F 520 LCALL _transreg
521 ; S1CON=RELEASE_BUS_ACK;
522 ; SOURCE LINE # 124
0110 75D8C6 523 MOV S1CON,#0C6H
524 ; FReceive_Done = 1;
525 ; SOURCE LINE # 125
0113 7800 F 526 MOV R0,#LOW (FReceive_Done)
0115 7601 527 MOV @R0,#01H
528 ; break;
529 ; SOURCE LINE # 126
0117 802C 530 SJMP ?C0025
531 ; //==========================================
532 ; //=====SLAVE TRANSMITTER mode===============
533 ; case ST_SLAR_ACK: //0xA8
534 ; SOURCE LINE # 129
0119 535 ?C0020:
536 ; transreg(ST_SLAR_ACK);
537 ; SOURCE LINE # 130
0119 7FA8 538 MOV R7,#0A8H
011B 120000 F 539 LCALL _transreg
540 ; num=0;
541 ; SOURCE LINE # 131
011E 750000 F 542 MOV num,#00H
543 ; S1DAT = DATA[num];
544 ; SOURCE LINE # 132
545 ; num++;
546 ; SOURCE LINE # 133
547 ; S1CON=RELEASE_BUS_ACK;
548 ; SOURCE LINE # 134
549 ;
550 ; break;
551 ; SOURCE LINE # 136
0121 800C 552 SJMP ?C0037
553 ;
554 ; case ST_DATA_ACK: //0xB8
555 ; SOURCE LINE # 138
0123 556 ?C0021:
557 ; transreg(ST_DATA_ACK);
558 ; SOURCE LINE # 139
0123 7FB8 559 MOV R7,#0B8H
0125 120000 F 560 LCALL _transreg
561 ; if(num<4)
562 ; SOURCE LINE # 140
0128 E500 F 563 MOV A,num
012A C3 564 CLR C
012B 9404 565 SUBB A,#04H
012D 500C 566 JNC ?C0022
567 ; {
568 ; SOURCE LINE # 141
569 ; S1DAT=DATA[num];
570 ; SOURCE LINE # 142
012F 571 ?C0028:
012F 572 ?C0037:
012F E500 F 573 MOV A,num
0131 900000 F 574 MOV DPTR,#DATA?
0134 93 575 MOVC A,@A+DPTR
0135 F5DA 576 MOV S1DAT,A
577 ; num++;
578 ; SOURCE LINE # 143
0137 0500 F 579 INC num
580 ; S1CON = RELEASE_BUS_ACK;
581 ; SOURCE LINE # 144
582 ; }
583 ; SOURCE LINE # 145
0139 8007 584 SJMP ?C0039
A51 MACRO ASSEMBLER I2C_M 12/18/2003 11:19:19 PAGE 10
013B 585 ?C0022:
586 ; else
587 ; {
588 ; SOURCE LINE # 147
589 ; S1CON = RELEASE_BUS_ACK;
590 ; SOURCE LINE # 148
013B 591 ?C0036:
013B 592 ?C0038:
593 ; }
594 ; SOURCE LINE # 149
595 ;
596 ; break;
597 ; SOURCE LINE # 151
013B 8005 598 SJMP ?C0039
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -