⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 access.src

📁 Realtek 公司的RTD2523A芯片原厂source code,没有被修改过的。
💻 SRC
📖 第 1 页 / 共 4 页
字号:
			; 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 + -