?? copy.src
字號(hào):
; SOURCE LINE # 316
LCALL jubuStopI2c
; return (1);
; SOURCE LINE # 317
SETB C
; }
; SOURCE LINE # 318
?C0046:
RET
; END OF _jubuSendStr16K
; bit jubuSendStr32K( uchar sla, uint suba, uchar *s, uchar no )
RSEG ?PR?_jubuSendStr32K?COPY
_jubuSendStr32K:
USING 0
; SOURCE LINE # 319
;---- Variable 'sla?1066' assigned to Register 'R7' ----
;---- Variable 's?1068' assigned to Register 'R1/R2/R3' ----
;---- Variable 'suba?1067' assigned to Register 'R4/R5' ----
; {
; SOURCE LINE # 320
; uchar i;
; jubuStartI2c();
; SOURCE LINE # 322
LCALL jubuStartI2c
; jubuSend_byte(sla);
; SOURCE LINE # 323
LCALL _jubuSend_byte
; if(ack == 0)return (0);
; SOURCE LINE # 324
JB ack,?C0052
CLR C
RET
?C0052:
; jubuSend_byte(suba / 256); // the high byte address
; SOURCE LINE # 325
MOV R7,AR4
LCALL _jubuSend_byte
; if(ack == 0)return (0);
; SOURCE LINE # 326
JB ack,?C0054
CLR C
RET
?C0054:
; jubuSend_byte(suba % 256); // the low byte address
; SOURCE LINE # 327
MOV R7,AR5
LCALL _jubuSend_byte
; if(ack == 0)return (0);
; SOURCE LINE # 328
JB ack,?C0055
CLR C
RET
?C0055:
; for( i = 0; i < no-1 ;i ++)
; SOURCE LINE # 329
;---- Variable 'i?1070' assigned to Register 'R5' ----
CLR A
MOV R5,A
?C0056:
MOV A,no?1069
DEC A
MOV R7,A
MOV A,R5
CLR C
SUBB A,R7
JNC ?C0057
; {
; SOURCE LINE # 330
; jubuSend_byte(*s);
; SOURCE LINE # 331
LCALL L?0298
; if(ack == 0)return (0);
; SOURCE LINE # 332
JB ack,?C0059
CLR C
RET
?C0059:
; s++;
; SOURCE LINE # 333
MOV A,#01H
ADD A,R1
MOV R1,A
CLR A
ADDC A,R2
MOV R2,A
; }
; SOURCE LINE # 334
INC R5
SJMP ?C0056
?C0057:
; jubuSend_byte(*s);
; SOURCE LINE # 335
LCALL L?0299
; jubuStopI2c();
; SOURCE LINE # 336
LCALL jubuStopI2c
;
; return (1);
; SOURCE LINE # 338
SETB C
; }
; SOURCE LINE # 339
?C0053:
RET
; END OF _jubuSendStr32K
; //////////////////////////////////////////////
; void feedStartI2c( )
RSEG ?PR?feedStartI2c?COPY
feedStartI2c:
; SOURCE LINE # 341
; {
; SOURCE LINE # 342
;
; SDA9 = 1;
; SOURCE LINE # 344
SETB SDA9
; _Nop();
; SOURCE LINE # 345
NOP
; _Nop();
; SOURCE LINE # 346
NOP
; _Nop();
; SOURCE LINE # 347
NOP
; SCL = 1;
; SOURCE LINE # 348
SETB SCL
; _Nop(); // after stop must wait > 4.7 can to new start
; SOURCE LINE # 349
NOP
; _Nop();
; SOURCE LINE # 350
NOP
; _Nop();
; SOURCE LINE # 351
NOP
; _Nop();
; SOURCE LINE # 352
NOP
; _Nop();
; SOURCE LINE # 353
NOP
; _Nop();
; SOURCE LINE # 354
NOP
; _Nop();
; SOURCE LINE # 355
NOP
; SDA9 = 0;
; SOURCE LINE # 356
CLR SDA9
; _Nop(); // the start signal keep up to > 4.0
; SOURCE LINE # 357
NOP
; _Nop();
; SOURCE LINE # 358
NOP
; _Nop();
; SOURCE LINE # 359
NOP
; _Nop();
; SOURCE LINE # 360
NOP
; _Nop();
; SOURCE LINE # 361
NOP
; _Nop();
; SOURCE LINE # 362
NOP
; _Nop();
; SOURCE LINE # 363
NOP
; SCL = 0;
; SOURCE LINE # 364
CLR SCL
; _Nop(); // T_low > 4.7
; SOURCE LINE # 365
NOP
; _Nop();
; SOURCE LINE # 366
NOP
; _Nop();
; SOURCE LINE # 367
NOP
; _Nop();
; SOURCE LINE # 368
NOP
; _Nop();
; SOURCE LINE # 369
NOP
; _Nop();
; SOURCE LINE # 370
NOP
; _Nop();
; SOURCE LINE # 371
NOP
;
; }
; SOURCE LINE # 373
RET
; END OF feedStartI2c
;
; void feedStopI2c()
RSEG ?PR?feedStopI2c?COPY
feedStopI2c:
; SOURCE LINE # 375
; {
; SOURCE LINE # 376
; SDA9 = 0;
; SOURCE LINE # 377
CLR SDA9
; _Nop();
; SOURCE LINE # 378
NOP
; _Nop();
; SOURCE LINE # 379
NOP
; SCL = 1;
; SOURCE LINE # 380
SETB SCL
; _Nop();
; SOURCE LINE # 381
NOP
; _Nop();
; SOURCE LINE # 382
NOP
; _Nop();
; SOURCE LINE # 383
NOP
; _Nop();
; SOURCE LINE # 384
NOP
; _Nop();
; SOURCE LINE # 385
NOP
; _Nop();
; SOURCE LINE # 386
NOP
; _Nop();
; SOURCE LINE # 387
NOP
; SDA9 = 1;
; SOURCE LINE # 388
SETB SDA9
; _Nop();
; SOURCE LINE # 389
NOP
; _Nop();
; SOURCE LINE # 390
NOP
; _Nop();
; SOURCE LINE # 391
NOP
; _Nop();
; SOURCE LINE # 392
NOP
; _Nop();
; SOURCE LINE # 393
NOP
; }
; SOURCE LINE # 394
RET
; END OF feedStopI2c
;
; void feedSend_byte( uchar c )
RSEG ?PR?_feedSend_byte?COPY
L?0300:
USING 0
L?0301:
LCALL ?C?CLDPTR
MOV R7,A
_feedSend_byte:
USING 0
; SOURCE LINE # 396
;---- Variable 'c?1371' assigned to Register 'R7' ----
; {
; SOURCE LINE # 397
; uchar BitCnt;
; for( BitCnt = 0; BitCnt < 8; BitCnt ++ )
; SOURCE LINE # 399
;---- Variable 'BitCnt?1372' assigned to Register 'R6' ----
CLR A
MOV R6,A
?C0062:
; {
; SOURCE LINE # 400
; if((c << BitCnt) & 0x80) SDA9 = 1;
; SOURCE LINE # 401
MOV A,R7
MOV R0,AR6
INC R0
SJMP ?C0261
?C0260:
CLR C
RLC A
?C0261:
DJNZ R0,?C0260
JNB ACC.7,?C0065
SETB SDA9
SJMP ?C0066
?C0065:
; else SDA9 = 0;
; SOURCE LINE # 402
CLR SDA9
?C0066:
; _Nop();
; SOURCE LINE # 403
NOP
; _Nop();
; SOURCE LINE # 404
NOP
; _Nop();
; SOURCE LINE # 405
NOP
; SCL = 1;
; SOURCE LINE # 406
SETB SCL
; _Nop();
; SOURCE LINE # 407
NOP
; _Nop();
; SOURCE LINE # 408
NOP
; _Nop();
; SOURCE LINE # 409
NOP
; _Nop();
; SOURCE LINE # 410
NOP
; _Nop();
; SOURCE LINE # 411
NOP
; _Nop();
; SOURCE LINE # 412
NOP
; _Nop();
; SOURCE LINE # 413
NOP
; SCL = 0;
; SOURCE LINE # 414
CLR SCL
; _Nop();
; SOURCE LINE # 415
NOP
; _Nop();
; SOURCE LINE # 416
NOP
; _Nop();
; SOURCE LINE # 417
NOP
; }
; SOURCE LINE # 418
INC R6
CJNE R6,#08H,?C0062
?C0063:
; _Nop();
; SOURCE LINE # 419
NOP
; _Nop();
; SOURCE LINE # 420
NOP
; _Nop();
; SOURCE LINE # 421
NOP
; SDA9 = 1;
; SOURCE LINE # 422
SETB SDA9
; _Nop();
; SOURCE LINE # 423
NOP
; _Nop();
; SOURCE LINE # 424
NOP
; _Nop();
; SOURCE LINE # 425
NOP
; SCL = 1;
; SOURCE LINE # 426
SETB SCL
; _Nop();
; SOURCE LINE # 427
NOP
; _Nop();
; SOURCE LINE # 428
NOP
; _Nop();
; SOURCE LINE # 429
NOP
; _Nop();
; SOURCE LINE # 430
NOP
; _Nop();
; SOURCE LINE # 431
NOP
; _Nop();
; SOURCE LINE # 432
NOP
; if (SDA9 == 1) ack =0;
; SOURCE LINE # 433
JNB SDA9,?C0067
CLR ack
SJMP ?C0068
?C0067:
; else ack = 1;
; SOURCE LINE # 434
SETB ack
?C0068:
; SCL = 0;
; SOURCE LINE # 435
CLR SCL
; _Nop();
; SOURCE LINE # 436
NOP
; _Nop();
; SOURCE LINE # 437
NOP
; _Nop();
; SOURCE LINE # 438
NOP
; _Nop();
; SOURCE LINE # 439
NOP
; }
; SOURCE LINE # 440
RET
; END OF _feedSend_byte
;
; uchar feedRcv_byte()
RSEG ?PR?feedRcv_byte?COPY
feedRcv_byte:
USING 0
; SOURCE LINE # 442
; {
; SOURCE LINE # 443
; uchar retc;
; uchar BitCnt;
;
; retc = 0;
; SOURCE LINE # 447
;---- Variable 'retc?1473' assigned to Register 'R7' ----
CLR A
MOV R7,A
; SDA9 = 1;
; SOURCE LINE # 448
SETB SDA9
; for( BitCnt = 0 ; BitCnt < 8; BitCnt ++)
; SOURCE LINE # 449
;---- Variable 'BitCnt?1474' assigned to Register 'R6' ----
MOV R6,A
?C0070:
; {
; SOURCE LINE # 450
; _Nop();
; SOURCE LINE # 451
NOP
; _Nop();
; SOURCE LINE # 452
NOP
; _Nop();
; SOURCE LINE # 453
NOP
; SCL = 0;
; SOURCE LINE # 454
CLR SCL
; _Nop();
; SOURCE LINE # 455
NOP
; _Nop();
; SOURCE LINE # 456
NOP
; _Nop();
; SOURCE LINE # 457
NOP
; _Nop();
; SOURCE LINE # 458
NOP
; _Nop();
; SOURCE LINE # 459
NOP
; _Nop();
; SOURCE LINE # 460
NOP
; _Nop();
; SOURCE LINE # 461
NOP
; SCL = 1;
; SOURCE LINE # 462
SETB SCL
; _Nop();
; SOURCE LINE # 463
NOP
; _Nop();
; SOURCE LINE # 464
NOP
; _Nop();
; SOURCE LINE # 465
NOP
; _Nop();
; SOURCE LINE # 466
NOP
; _Nop();
; SOURCE LINE # 467
NOP
; _Nop();
; SOURCE LINE # 468
NOP
; _Nop();
; SOURCE LINE # 469
NOP
; retc = retc << 1;
; SOURCE LINE # 470
MOV A,R7
ADD A,ACC
MOV R7,A
; if (SDA9 == 1) retc= retc +1;
; SOURCE LINE # 471
JNB SDA9,?C0073
INC R7
?C0073:
; _Nop();
; SOURCE LINE # 472
NOP
; _Nop();
; SOURCE LINE # 473
NOP
; _Nop();
; SOURCE LINE # 474
NOP
; _Nop();
; SOURCE LINE # 475
NOP
; }
; SOURCE LINE # 476
INC R6
CJNE R6,#08H,?C0070
?C0071:
; SCL = 0;
; SOURCE LINE # 477
CLR SCL
; _Nop();
; SOURCE LINE # 478
NOP
; _Nop();
; SOURCE LINE # 479
NOP
; _Nop();
; SOURCE LINE # 480
NOP
; _Nop();
; SOURCE LINE # 481
NOP
; return(retc);
; SOURCE LINE # 482
; }
; SOURCE LINE # 483
?C0074:
RET
; END OF feedRcv_byte
;
; void feedAckI2c( bit a )
RSEG ?PR?feedAckI2c?COPY
L?0297:
USING 0
LCALL feedRcv_byte
MOV A,R7
LCALL ?C?CSTPTR
CLR ?feedAckI2c?BIT
feedAckI2c:
; SOURCE LINE # 485
; {
; SOURCE LINE # 486
; if ( a == 0) SDA9 = 0;
; SOURCE LINE # 487
JB a?1575,?C0075
CLR SDA9
SJMP ?C0076
?C0075:
; else SDA9 = 1;
; SOURCE LINE # 488
SETB SDA9
?C0076:
; _Nop();
; SOURCE LINE # 489
NOP
; _Nop();
; SOURCE LINE # 490
NOP
; _Nop();
; SOURCE LINE # 491
NOP
; _Nop();
; SOURCE LINE # 492
NOP
; _Nop();
; SOURCE LINE # 493
NOP
; SCL = 1;
; SOURCE LINE # 494
SETB SCL
; _Nop();
; SOURCE LINE # 495
NOP
; _Nop();
; SOURCE LINE # 496
NOP
; _Nop();
; SOURCE LINE # 497
NOP
; _Nop();
; SOURCE LINE # 498
NOP
; _Nop();
; SOURCE LINE # 499
NOP
; _Nop();
; SOURCE LINE # 500
NOP
; SCL = 0;
; SOURCE LINE # 501
CLR SCL
; _Nop();
; SOURCE LINE # 502
NOP
; _Nop();
; SOURCE LINE # 503
NOP
; _Nop();
; SOURCE LINE # 504
NOP
; }
; SOURCE LINE # 505
RET
; END OF feedAckI2c
;
; bit fed_RS16K ( uchar sla, uchar suba, uchar *s, uchar no )
RSEG ?PR?_fed_RS16K?COPY
_fed_RS16K:
USING 0
; SOURCE LINE # 507
;---- Variable 'sla?1676' assigned to Register 'R4' ----
MOV R4,AR7
;---- Variable 's?1678' assigned to Register 'R1/R2/R3' ----
;---- Variable 'suba?1677' assigned to Register 'R5' ----
; {
; SOURCE LINE # 508
; uchar i;
; feedStartI2c ();
; SOURCE LINE # 510
LCALL feedStartI2c
; feedSend_byte (sla);
; SOURCE LINE # 511
LCALL _feedSend_byte
; if( ack == 0 ) return (0);
; SOURCE LINE # 512
JB ack,?C0078
CLR C
RET
?C0078:
; feedSend_byte (suba);
; SOURCE LINE # 513
MOV R7,AR5
LCALL _feedSend_byte
; if (ack == 0 ) return (0);
; SOURCE LINE # 514
JB ack,?C0080
CLR C
RET
?C0080:
; feedStartI2c();
; SOURCE LINE # 515
LCALL feedStartI2c
; feedSend_byte(sla + 1);
; SOURCE LINE # 516
MOV A,R4
INC A
MOV R7,A
LCALL _feedSend_byte
; if ( ack == 0) return ( 0 );
; SOURCE LINE # 517
JB ack,?C0081
CLR C
RET
?C0081:
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -