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

📄 copy.src

📁 EEPROM局部抄写软件,可以任意设置地址,抄写一段数据,数据由母片提供.
💻 SRC
📖 第 1 页 / 共 5 页
字号:
			; 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:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -