📄 access.src
字号:
; SOURCE LINE # 169
LCALL BitDly
;
; r = (r << 1) | bIIC_SDA;
; SOURCE LINE # 171
MOV A,R6
ADD A,ACC
MOV R4,A
MOV C,bIIC_SDA
CLR A
RLC A
ORL A,R4
MOV R6,A
;
; bIIC_SCL = 0;
; SOURCE LINE # 173
CLR bIIC_SCL
; BitDly(); // Delay
; SOURCE LINE # 174
LCALL BitDly
; }
; SOURCE LINE # 175
INC R5
CJNE R5,#08H,?C0012
?C0013:
;
; // Send ACK according to 'ack'
; bIIC_SDA = (bit)(ack & 0x01);
; SOURCE LINE # 178
MOV A,R7
RRC A
; BitDly(); // Delay
; SOURCE LINE # 179
;
; bIIC_SCL = 1;
; SOURCE LINE # 181
; BitDly(); // Delay
; SOURCE LINE # 182
;
; bIIC_SCL = 0;
; SOURCE LINE # 184
LCALL L?0159
; BitDly(); // Delay
; SOURCE LINE # 185
LCALL BitDly
;
; bIIC_SDA = 1;
; SOURCE LINE # 187
SETB bIIC_SDA
;
; #else
;
; for (m = 0; m < 8; m++) // Each bit at a time, MSB first
; {
; MCU_WriteI2cScl(_HIGH);
; BitDly(); // Delay
; r = (r << 1) | MCU_ReadI2cSda();
; MCU_WriteI2cScl(_LOW);
; BitDly(); // Delay
; }
; // Send ACK according to 'ack'
; MCU_WriteI2cSda((bit)(ack & 0x01));
; BitDly(); // Delay
; MCU_WriteI2cScl(_HIGH);
; BitDly(); // Delay
; MCU_WriteI2cScl(_LOW);
; BitDly(); // Delay
; MCU_WriteI2cSda(_HIGH);
;
; #endif
;
; return (r);
; SOURCE LINE # 210
MOV R7,AR6
; }
; SOURCE LINE # 211
?C0015:
RET
; END OF _I2CGetByte
;
; void I2CSendByte(unsigned char send)
RSEG ?PR?_I2CSendByte?ACCESS
_I2CSendByte:
USING 0
; SOURCE LINE # 213
;---- Variable 'send?450' assigned to Register 'R7' ----
; {
; SOURCE LINE # 214
; unsigned char m;
;
; #if (MCU_TYPE == MCU_STD8052)
;
; for (m = 0; m < 8; m++)
; SOURCE LINE # 219
;---- Variable 'm?451' assigned to Register 'R6' ----
CLR A
MOV R6,A
?C0016:
; {
; SOURCE LINE # 220
; bIIC_SDA = (bit)(send & 0x80); // Send each bit, MSB first
; SOURCE LINE # 221
MOV A,R7
RLC A
; BitDly();
; SOURCE LINE # 222
;
; bIIC_SCL = 1;
; SOURCE LINE # 224
; BitDly();
; SOURCE LINE # 225
;
; bIIC_SCL = 0;
; SOURCE LINE # 227
LCALL L?0159
;
; send = send << 1;
; SOURCE LINE # 229
MOV A,R7
ADD A,ACC
MOV R7,A
; }
; SOURCE LINE # 230
INC R6
CJNE R6,#08H,?C0016
?C0017:
;
; bIIC_SDA = 1;
; SOURCE LINE # 232
SETB bIIC_SDA
; bIIC_SCL = 1;
; SOURCE LINE # 233
; BitDly();
; SOURCE LINE # 234
;
; bIIC_SCL = 0;
; SOURCE LINE # 236
LCALL L?0160
; BitDly();
; SOURCE LINE # 237
LJMP BitDly
; END OF _I2CSendByte
;
; #else
;
; for (m = 0; m < 8; m++)
; {
; MCU_WriteI2cSda((bit)(send & 0x80)); // Send each bit, MSB first
; BitDly();
; MCU_WriteI2cScl(_HIGH);
; BitDly();
; MCU_WriteI2cScl(_LOW);;
; send = send << 1;
; }
; MCU_WriteI2cSda(_HIGH);
; MCU_WriteI2cScl(_HIGH);
; BitDly();
; MCU_WriteI2cScl(_LOW);;
; BitDly();
;
; #endif
; }
;
; void I2CSendAddr(unsigned char addr, unsigned char index, unsigned char rd)
RSEG ?PR?_I2CSendAddr?ACCESS
_I2CSendAddr:
USING 0
; SOURCE LINE # 259
;---- Variable 'addr?552' assigned to Register 'R6' ----
MOV R6,AR7
;---- Variable 'rd?554' assigned to Register 'R3' ----
;---- Variable 'index?553' assigned to Register 'R5' ----
; {
; SOURCE LINE # 260
; #if (MCU_TYPE == MCU_STD8052)
;
; bIIC_SCL = 1;
; SOURCE LINE # 263
SETB bIIC_SCL
; bIIC_SDA = 0; // Start
; SOURCE LINE # 264
CLR bIIC_SDA
; BitDly();
; SOURCE LINE # 265
LCALL BitDly
;
; bIIC_SCL = 0;
; SOURCE LINE # 267
CLR bIIC_SCL
; I2CSendByte(addr + rd); // Send address byte
; SOURCE LINE # 268
MOV A,R6
ADD A,R3
MOV R7,A
LCALL _I2CSendByte
;
; if (0 == rd) I2CSendByte(index); // Send index byte
; SOURCE LINE # 270
MOV A,R3
JNZ ?C0021
MOV R7,AR5
LCALL _I2CSendByte
;
; #else
;
; MCU_WriteI2cScl(_HIGH);
; MCU_WriteI2cSda(_LOW); // Start
; BitDly();
; MCU_WriteI2cScl(_LOW);;
; I2CSendByte(addr + rd); // Send address byte
;
; if (0 == rd) I2CSendByte(index); // Send index byte
;
; #endif
; }
; SOURCE LINE # 283
?C0021:
RET
; END OF _I2CSendAddr
;
; void I2CSendStop(void)
RSEG ?PR?I2CSendStop?ACCESS
I2CSendStop:
; SOURCE LINE # 285
; {
; SOURCE LINE # 286
; #if (MCU_TYPE == MCU_STD8052)
;
; bIIC_SDA = 0;
; SOURCE LINE # 289
CLR bIIC_SDA
; BitDly();
; SOURCE LINE # 290
LCALL BitDly
;
; bIIC_SCL = 1;
; SOURCE LINE # 292
SETB bIIC_SCL
; BitDly();
; SOURCE LINE # 293
LCALL BitDly
;
; bIIC_SDA = 1;
; SOURCE LINE # 295
SETB bIIC_SDA
; BitDly();
; SOURCE LINE # 296
LJMP BitDly
; END OF I2CSendStop
;
; #else
;
; MCU_WriteI2cSda(_LOW);
; BitDly();
; MCU_WriteI2cScl(_HIGH);
; BitDly();
; MCU_WriteI2cSda(_HIGH);
; BitDly();
;
; #endif
; }
;
; unsigned char RTDGetByte(void)
RSEG ?PR?RTDGetByte?ACCESS
RTDGetByte:
USING 0
; SOURCE LINE # 310
; {
; SOURCE LINE # 311
; #if (PARALLEL_PORT)
;
; bRTD_SCLK = 1;
; bRTD_SCLK = 0;
;
; r0 = bRTD_SDIO_0;
; r1 = bRTD_SDIO_1;
; r2 = bRTD_SDIO_2;
; r3 = bRTD_SDIO_3;
;
; bRTD_SCLK = 1;
; bRTD_SCLK = 0;
;
; r4 = bRTD_SDIO_0;
; r5 = bRTD_SDIO_1;
; r6 = bRTD_SDIO_2;
; r7 = bRTD_SDIO_3;
;
; bRTD_SCLK = 1;
;
; /*
; bRTD_SCLK = 1;
; bRTD_SCLK = 0;
;
; Reg = P0 & 0x0f;
;
; bRTD_SCLK = 1;
; bRTD_SCLK = 0;
;
; Reg = Reg | ((P0 & 0x0f) << 4);
;
; bRTD_SCLK = 1;
; */
;
; #else // Serial port
;
;
; bRTD_SCLK = 1;
; SOURCE LINE # 349
; bRTD_SCLK = 0;
; SOURCE LINE # 350
; r0 = bRTD_SDIO_0;
; SOURCE LINE # 351
LCALL L?0151
MOV r0?,C
;
; bRTD_SCLK = 1;
; SOURCE LINE # 353
; bRTD_SCLK = 0;
; SOURCE LINE # 354
; r1 = bRTD_SDIO_0;
; SOURCE LINE # 355
LCALL L?0151
MOV r1?,C
;
; bRTD_SCLK = 1;
; SOURCE LINE # 357
; bRTD_SCLK = 0;
; SOURCE LINE # 358
; r2 = bRTD_SDIO_0;
; SOURCE LINE # 359
LCALL L?0152
MOV r2?,C
;
; bRTD_SCLK = 1;
; SOURCE LINE # 361
; bRTD_SCLK = 0;
; SOURCE LINE # 362
; r3 = bRTD_SDIO_0;
; SOURCE LINE # 363
LCALL L?0152
MOV r3?,C
;
; bRTD_SCLK = 1;
; SOURCE LINE # 365
; bRTD_SCLK = 0;
; SOURCE LINE # 366
; r4 = bRTD_SDIO_0;
; SOURCE LINE # 367
LCALL L?0152
MOV r4?,C
;
; bRTD_SCLK = 1;
; SOURCE LINE # 369
; bRTD_SCLK = 0;
; SOURCE LINE # 370
; r5 = bRTD_SDIO_0;
; SOURCE LINE # 371
LCALL L?0152
MOV r5?,C
;
; bRTD_SCLK = 1;
; SOURCE LINE # 373
; bRTD_SCLK = 0;
; SOURCE LINE # 374
; r6 = bRTD_SDIO_0;
; SOURCE LINE # 375
LCALL L?0152
MOV r6?,C
;
; bRTD_SCLK = 1;
; SOURCE LINE # 377
; bRTD_SCLK = 0;
; SOURCE LINE # 378
; r7 = bRTD_SDIO_0;
; SOURCE LINE # 379
LCALL L?0152
MOV r7?,C
;
; bRTD_SCLK = 1;
; SOURCE LINE # 381
SETB bRTD_SCLK
;
;
; /*
; #pragma asm
;
; SETB bRTD_SCLK;
; CLR bRTD_SCLK;
; MOV C,bRTD_SDIO_0;
; MOV r0,C;
;
; SETB bRTD_SCLK;
; CLR bRTD_SCLK;
; MOV r1,bRTD_SDIO_0;
;
; SETB bRTD_SCLK;
; CLR bRTD_SCLK;
; MOV r2,bRTD_SDIO_0;
;
; SETB bRTD_SCLK;
; CLR bRTD_SCLK;
; MOV r3,bRTD_SDIO_0;
;
; SETB bRTD_SCLK;
; CLR bRTD_SCLK;
; MOV r4,bRTD_SDIO_0;
;
; SETB bRTD_SCLK;
; CLR bRTD_SCLK;
; MOV r5,bRTD_SDIO_0;
;
; SETB bRTD_SCLK;
; CLR bRTD_SCLK;
; MOV r6,bRTD_SDIO_0;
;
; SETB bRTD_SCLK;
; CLR bRTD_SCLK;
; MOV r7,bRTD_SDIO_0;
;
; SETB bRTD_SCLK;
;
; #pragma endasm
; */
; #endif
;
; return Reg;
; SOURCE LINE # 426
MOV R7,Reg
; }
; SOURCE LINE # 427
?C0023:
RET
; END OF RTDGetByte
;
; void RTDSendByte(unsigned char send)
RSEG ?PR?_RTDSendByte?ACCESS
L?0153:
USING 0
L?0154:
DEC A
MOV DPL,A
MOV DPH,R6
CLR A
MOVC A,@A+DPTR
MOV R7,A
_RTDSendByte:
; SOURCE LINE # 429
;---- Variable 'send?855' assigned to Register 'R7' ----
; {
; SOURCE LINE # 430
; #if (PARALLEL_PORT)
;
; bRTD_SDIO_0 = (bit)(send & 0x01);
; bRTD_SDIO_1 = (bit)(send & 0x02);
; bRTD_SDIO_2 = (bit)(send & 0x04);
; bRTD_SDIO_3 = (bit)(send & 0x08);
; bRTD_SCLK = 1;
; bRTD_SCLK = 0;
;
; bRTD_SDIO_0 = (bit)(send & 0x10);
; bRTD_SDIO_1 = (bit)(send & 0x20);
; bRTD_SDIO_2 = (bit)(send & 0x40);
; bRTD_SDIO_3 = (bit)(send & 0x80);
; bRTD_SCLK = 1;
; bRTD_SCLK = 0;
;
; bRTD_SDIO_0 = 1;
; bRTD_SDIO_1 = 1;
; bRTD_SDIO_2 = 1;
; bRTD_SDIO_3 = 1;
; bRTD_SCLK = 1;
;
; /*
; unsigned char ucTemp;
;
; ucTemp = P0 & 0xf0;
;
; P0 = ucTemp | (send & 0x0f);
; bRTD_SCLK = 1;
; bRTD_SCLK = 0;
;
; P0 = ucTemp | (send >> 4);
;
; bRTD_SCLK = 1;
; bRTD_SCLK = 0;
;
; P0 = ucTemp | 0x0f;
; bRTD_SCLK = 1;
; */
;
; #else //serial port
;
; bRTD_SDIO_0 = (bit)(send & 0x01);
; SOURCE LINE # 473
MOV A,R7
RRC A
; bRTD_SCLK = 1;
; SOURCE LINE # 474
; bRTD_SCLK = 0;
; SOURCE LINE # 475
;
; bRTD_SDIO_0 = (bit)(send & 0x02);
; SOURCE LINE # 477
MOV A,R7
; bRTD_SCLK = 1;
; SOURCE LINE # 478
; bRTD_SCLK = 0;
; SOURCE LINE # 479
;
; bRTD_SDIO_0 = (bit)(send & 0x04);
; SOURCE LINE # 481
; bRTD_SCLK = 1;
; SOURCE LINE # 482
; bRTD_SCLK = 0;
; SOURCE LINE # 483
;
; bRTD_SDIO_0 = (bit)(send & 0x08);
; SOURCE LINE # 485
; bRTD_SCLK = 1;
; SOURCE LINE # 486
; bRTD_SCLK = 0;
; SOURCE LINE # 487
;
; bRTD_SDIO_0 = (bit)(send & 0x10);
; SOURCE LINE # 489
; bRTD_SCLK = 1;
; SOURCE LINE # 490
; bRTD_SCLK = 0;
; SOURCE LINE # 491
;
; bRTD_SDIO_0 = (bit)(send & 0x20);
; SOURCE LINE # 493
; bRTD_SCLK = 1;
; SOURCE LINE # 494
; bRTD_SCLK = 0;
; SOURCE LINE # 495
;
; bRTD_SDIO_0 = (bit)(send & 0x40);
; SOURCE LINE # 497
; bRTD_SCLK = 1;
; SOURCE LINE # 498
; bRTD_SCLK = 0;
; SOURCE LINE # 499
;
; bRTD_SDIO_0 = (bit)(send & 0x80);
; SOURCE LINE # 501
; bRTD_SCLK = 1;
; SOURCE LINE # 502
; bRTD_SCLK = 0;
; SOURCE LINE # 503
LCALL L?0142
;
; bRTD_SDIO_0 = 1;
; SOURCE LINE # 505
SETB bRTD_SDIO_0
; bRTD_SCLK = 1;
; SOURCE LINE # 506
SETB bRTD_SCLK
;
; #endif
; }
; SOURCE LINE # 509
RET
; END OF _RTDSendByte
;
; void RTDSendAddr(unsigned char addr, unsigned char rd, unsigned char inc) // rd : 0 - Write, 1 - Read
RSEG ?PR?_RTDSendAddr?ACCESS
L?0155:
USING 0
INC A
MOV R0,A
MOV A,@R0
MOV R7,A
CLR A
MOV R5,A
_RTDSendAddr:
; SOURCE LINE # 511
;---- Variable 'addr?956' assigned to Register 'R7' ----
;---- Variable 'inc?958' assigned to Register 'R3' ----
;---- Variable 'rd?957' assigned to Register 'R5' ----
; {
; SOURCE LINE # 512
; #if (PARALLEL_PORT)
;
; RTDSendByte(addr);
;
; bRTD_SDIO_0 = (bit)(rd & 0x01);
; bRTD_SDIO_1 = (bit)(inc & 0x01);
;
; bRTD_SCLK = 0;
;
; bRTD_SDIO_0 = 1;
; bRTD_SDIO_1 = 1;
; bRTD_SCLK = 1;
;
; #else // Serial port
;
; RTDSendByte(addr);
; SOURCE LINE # 528
LCALL _RTDSendByte
;
; /*
; bRTD_SDIO_0 = 1;
; bRTD_SCLK = 1;
; */
;
; bRTD_SDIO_0 = (bit)(rd & 0x01);
; SOURCE LINE # 535
MOV A,R5
RRC A
; bRTD_SCLK = 1;
; SOURCE LINE # 536
; bRTD_SCLK = 0;
; SOURCE LINE # 537
LCALL L?0143
;
; bRTD_SDIO_0 = (bit)(inc & 0x01);
; SOURCE LINE # 539
MOV A,R3
RRC A
; bRTD_SCLK = 1;
; SOURCE LINE # 540
; bRTD_SCLK = 0;
; SOURCE LINE # 541
LCALL L?0143
;
; bRTD_SDIO_0 = 1;
; SOURCE LINE # 543
SETB bRTD_SDIO_0
;
; #endif
; }
; SOURCE LINE # 546
RET
; END OF _RTDSendAddr
;
; void RTDSendStop(void)
RSEG ?PR?RTDSendStop?ACCESS
RTDSendStop:
; SOURCE LINE # 548
; {
; SOURCE LINE # 549
; bRTD_SCLK = 0;
; SOURCE LINE # 550
CLR bRTD_SCLK
; bRTD_SCLK = 1;
; SOURCE LINE # 551
SETB bRTD_SCLK
; bRTD_SCSB = 1;
; SOURCE LINE # 552
SETB bRTD_SCSB
; }
; SOURCE LINE # 553
RET
; END OF RTDSendStop
;
; void RTDRead(unsigned char index, unsigned char count, unsigned char inc)
RSEG ?PR?_RTDRead?ACCESS
_RTDRead:
USING 0
; SOURCE LINE # 555
;---- Variable 'index?1159' assigned to Register 'R6' ----
MOV R6,AR7
;---- Variable 'count?1160' assigned to Register 'R4' ----
MOV R4,AR5
;---- Variable 'inc?1161' assigned to Register 'R3' ----
; {
; SOURCE LINE # 556
; if (count)
; SOURCE LINE # 557
MOV A,R4
JZ ?C0031
; {
; SOURCE LINE # 558
; bRTD_SCSB = 0;
; SOURCE LINE # 559
CLR bRTD_SCSB
;
; RTDSendAddr(index, 1, inc);
; SOURCE LINE # 561
MOV R5,#01H
LCALL _RTDSendAddr
;
; index = 0;
; SOURCE LINE # 563
CLR A
MOV R6,A
?C0030:
; do
; {
; SOURCE LINE # 565
; Data[index++] = RTDGetByte();
; SOURCE LINE # 566
LCALL RTDGetByte
MOV R5,AR6
INC R6
MOV A,#LOW (Data?)
ADD A,R5
MOV R0,A
MOV @R0,AR7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -