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

📄 copy.src

📁 EEPROM局部抄写软件,可以任意设置地址,抄写一段数据,数据由母片提供.
💻 SRC
📖 第 1 页 / 共 5 页
字号:
	NOP  	
;     	_Nop();
			; SOURCE LINE # 134
	NOP  	
;     	_Nop();
			; SOURCE LINE # 135
	NOP  	
; 	_Nop();
			; SOURCE LINE # 136
	NOP  	
; 	SDA1 = 1;
			; SOURCE LINE # 137
	SETB 	SDA1
; 	_Nop();
			; SOURCE LINE # 138
	NOP  	
; 	_Nop();
			; SOURCE LINE # 139
	NOP  	
; 	_Nop();
			; SOURCE LINE # 140
	NOP  	
; 	_Nop();
			; SOURCE LINE # 141
	NOP  	
; 	_Nop();
			; SOURCE LINE # 142
	NOP  	
; }
			; SOURCE LINE # 143
	RET  	
; END OF jubuStopI2c

; 
; void jubuSend_byte( uchar c )

	RSEG  ?PR?_jubuSend_byte?COPY
L?0298:
	USING	0
L?0299:
	LCALL	?C?CLDPTR
	MOV  	R7,A
_jubuSend_byte:
	USING	0
			; SOURCE LINE # 145
;---- Variable 'c?446' assigned to Register 'R7' ----
; {
			; SOURCE LINE # 146
; 	uchar BitCnt;
; 	for( BitCnt = 0; BitCnt < 8; BitCnt ++ )
			; SOURCE LINE # 148
;---- Variable 'BitCnt?447' assigned to Register 'R6' ----
	CLR  	A
	MOV  	R6,A
?C0014:
; 	{
			; SOURCE LINE # 149
; 		if((c << BitCnt) & 0x80) SDA1 = 1;
			; SOURCE LINE # 150
	MOV  	A,R7
	MOV  	R0,AR6
	INC  	R0
	SJMP 	?C0259
?C0258:
	CLR  	C
	RLC  	A
?C0259:
	DJNZ 	R0,?C0258
	JNB  	ACC.7,?C0017
	SETB 	SDA1
	SJMP 	?C0018
?C0017:
; 		else SDA1 = 0;
			; SOURCE LINE # 151
	CLR  	SDA1
?C0018:
; 		_Nop();
			; SOURCE LINE # 152
	NOP  	
; 		_Nop();
			; SOURCE LINE # 153
	NOP  	
; 		_Nop();
			; SOURCE LINE # 154
	NOP  	
; 		SCL = 1;
			; SOURCE LINE # 155
	SETB 	SCL
;    	    	_Nop();
			; SOURCE LINE # 156
	NOP  	
; 		_Nop();
			; SOURCE LINE # 157
	NOP  	
; 		_Nop();
			; SOURCE LINE # 158
	NOP  	
;         	_Nop();
			; SOURCE LINE # 159
	NOP  	
;         	_Nop();
			; SOURCE LINE # 160
	NOP  	
; 		_Nop();
			; SOURCE LINE # 161
	NOP  	
; 		_Nop();
			; SOURCE LINE # 162
	NOP  	
; 		SCL = 0;
			; SOURCE LINE # 163
	CLR  	SCL
; 		_Nop();
			; SOURCE LINE # 164
	NOP  	
; 		_Nop();
			; SOURCE LINE # 165
	NOP  	
;                _Nop();
			; SOURCE LINE # 166
	NOP  	
; 	}
			; SOURCE LINE # 167
	INC  	R6
	CJNE 	R6,#08H,?C0014
?C0015:
; 	_Nop();
			; SOURCE LINE # 168
	NOP  	
; 	_Nop();
			; SOURCE LINE # 169
	NOP  	
; 	_Nop();
			; SOURCE LINE # 170
	NOP  	
;    	SDA1 = 1;
			; SOURCE LINE # 171
	SETB 	SDA1
; 	_Nop();
			; SOURCE LINE # 172
	NOP  	
;        _Nop();
			; SOURCE LINE # 173
	NOP  	
; 	_Nop();
			; SOURCE LINE # 174
	NOP  	
; 	SCL = 1;
			; SOURCE LINE # 175
	SETB 	SCL
; 	_Nop();
			; SOURCE LINE # 176
	NOP  	
; 	_Nop();
			; SOURCE LINE # 177
	NOP  	
;        _Nop();
			; SOURCE LINE # 178
	NOP  	
; 	_Nop();
			; SOURCE LINE # 179
	NOP  	
; 	_Nop();
			; SOURCE LINE # 180
	NOP  	
;        _Nop();
			; SOURCE LINE # 181
	NOP  	
; 	if (SDA1 == 1) ack =0;
			; SOURCE LINE # 182
	JNB  	SDA1,?C0019
	CLR  	ack
	SJMP 	?C0020
?C0019:
; 	else ack = 1;
			; SOURCE LINE # 183
	SETB 	ack
?C0020:
; 	SCL = 0;
			; SOURCE LINE # 184
	CLR  	SCL
; 	_Nop();
			; SOURCE LINE # 185
	NOP  	
; 	_Nop();
			; SOURCE LINE # 186
	NOP  	
; 	_Nop();
			; SOURCE LINE # 187
	NOP  	
;     	_Nop();
			; SOURCE LINE # 188
	NOP  	
; }
			; SOURCE LINE # 189
	RET  	
; END OF _jubuSend_byte

; ///////////////
; uchar jubuRcv_byte()

	RSEG  ?PR?jubuRcv_byte?COPY
jubuRcv_byte:
	USING	0
			; SOURCE LINE # 191
; {
			; SOURCE LINE # 192
; 	uchar retc;
; 	uchar BitCnt;
; 
; 	retc = 0;
			; SOURCE LINE # 196
;---- Variable 'retc?548' assigned to Register 'R7' ----
	CLR  	A
	MOV  	R7,A
; 	SDA1 = 1;
			; SOURCE LINE # 197
	SETB 	SDA1
; 	for( BitCnt = 0 ; BitCnt < 8; BitCnt ++)
			; SOURCE LINE # 198
;---- Variable 'BitCnt?549' assigned to Register 'R6' ----
	MOV  	R6,A
?C0022:
; 	{
			; SOURCE LINE # 199
; 		_Nop();
			; SOURCE LINE # 200
	NOP  	
; 		_Nop();
			; SOURCE LINE # 201
	NOP  	
; 		_Nop();
			; SOURCE LINE # 202
	NOP  	
; 		SCL = 0;
			; SOURCE LINE # 203
	CLR  	SCL
; 		_Nop();
			; SOURCE LINE # 204
	NOP  	
; 		_Nop();
			; SOURCE LINE # 205
	NOP  	
; 		_Nop();
			; SOURCE LINE # 206
	NOP  	
; 		_Nop();
			; SOURCE LINE # 207
	NOP  	
;         	_Nop();
			; SOURCE LINE # 208
	NOP  	
; 		_Nop();
			; SOURCE LINE # 209
	NOP  	
; 		_Nop();
			; SOURCE LINE # 210
	NOP  	
;         	SCL = 1;
			; SOURCE LINE # 211
	SETB 	SCL
; 		_Nop();
			; SOURCE LINE # 212
	NOP  	
; 		_Nop();
			; SOURCE LINE # 213
	NOP  	
; 		_Nop();
			; SOURCE LINE # 214
	NOP  	
; 		_Nop();
			; SOURCE LINE # 215
	NOP  	
; 		_Nop();
			; SOURCE LINE # 216
	NOP  	
; 		_Nop();
			; SOURCE LINE # 217
	NOP  	
; 		_Nop();
			; SOURCE LINE # 218
	NOP  	
; 		retc = retc << 1;
			; SOURCE LINE # 219
	MOV  	A,R7
	ADD  	A,ACC
	MOV  	R7,A
; 		if (SDA1 == 1) retc= retc +1;
			; SOURCE LINE # 220
	JNB  	SDA1,?C0025
	INC  	R7
?C0025:
; 		_Nop();
			; SOURCE LINE # 221
	NOP  	
; 		_Nop();
			; SOURCE LINE # 222
	NOP  	
; 		_Nop();
			; SOURCE LINE # 223
	NOP  	
; 		_Nop();
			; SOURCE LINE # 224
	NOP  	
;     }
			; SOURCE LINE # 225
	INC  	R6
	CJNE 	R6,#08H,?C0022
?C0023:
; 	SCL = 0;
			; SOURCE LINE # 226
	CLR  	SCL
; 	_Nop();
			; SOURCE LINE # 227
	NOP  	
; 	_Nop();
			; SOURCE LINE # 228
	NOP  	
; 	_Nop();
			; SOURCE LINE # 229
	NOP  	
; 	_Nop();
			; SOURCE LINE # 230
	NOP  	
;    return(retc);
			; SOURCE LINE # 231
; }
			; SOURCE LINE # 232
?C0026:
	RET  	
; END OF jubuRcv_byte

; void jubuAckI2c( bit a )

	RSEG  ?PR?jubuAckI2c?COPY
L?0296:
	USING	0
	LCALL	jubuRcv_byte
	MOV  	A,R7
	LCALL	?C?CSTPTR
	CLR  	?jubuAckI2c?BIT
jubuAckI2c:
			; SOURCE LINE # 233
; {
			; SOURCE LINE # 234
; 	if ( a == 0) SDA1 = 0;
			; SOURCE LINE # 235
	JB   	a?650,?C0027
	CLR  	SDA1
	SJMP 	?C0028
?C0027:
; 	else SDA1 = 1;
			; SOURCE LINE # 236
	SETB 	SDA1
?C0028:
; 	_Nop();
			; SOURCE LINE # 237
	NOP  	
; 	_Nop();
			; SOURCE LINE # 238
	NOP  	
; 	_Nop();
			; SOURCE LINE # 239
	NOP  	
; 	_Nop();
			; SOURCE LINE # 240
	NOP  	
; 	_Nop();
			; SOURCE LINE # 241
	NOP  	
;     SCL = 1;
			; SOURCE LINE # 242
	SETB 	SCL
; 	_Nop();
			; SOURCE LINE # 243
	NOP  	
; 	_Nop();
			; SOURCE LINE # 244
	NOP  	
; 	_Nop();
			; SOURCE LINE # 245
	NOP  	
;     	_Nop();
			; SOURCE LINE # 246
	NOP  	
;     	_Nop();
			; SOURCE LINE # 247
	NOP  	
; 	_Nop();
			; SOURCE LINE # 248
	NOP  	
; 	SCL = 0;
			; SOURCE LINE # 249
	CLR  	SCL
; 	_Nop();
			; SOURCE LINE # 250
	NOP  	
; 	_Nop();
			; SOURCE LINE # 251
	NOP  	
; 	_Nop();
			; SOURCE LINE # 252
	NOP  	
; }
			; SOURCE LINE # 253
	RET  	
; END OF jubuAckI2c

; ///////////////////////////////////
; bit jubu_RS16K ( uchar sla, uchar suba, uchar *s, uchar no )

	RSEG  ?PR?_jubu_RS16K?COPY
_jubu_RS16K:
	USING	0
			; SOURCE LINE # 255
;---- Variable 'sla?751' assigned to Register 'R4' ----
	MOV  	R4,AR7
;---- Variable 's?753' assigned to Register 'R1/R2/R3' ----
;---- Variable 'suba?752' assigned to Register 'R5' ----
; {
			; SOURCE LINE # 256
; 	uchar i;
; 	jubuStartI2c ();
			; SOURCE LINE # 258
	LCALL	jubuStartI2c
; 	jubuSend_byte (sla);
			; SOURCE LINE # 259
	LCALL	_jubuSend_byte
;     	if( ack == 0 ) return (0);
			; SOURCE LINE # 260
	JB   	ack,?C0030
	CLR  	C
	RET  	
?C0030:
; 	jubuSend_byte (suba);
			; SOURCE LINE # 261
	MOV  	R7,AR5
	LCALL	_jubuSend_byte
; 		if (ack == 0 ) return (0);
			; SOURCE LINE # 262
	JB   	ack,?C0032
	CLR  	C
	RET  	
?C0032:
;         jubuStartI2c();
			; SOURCE LINE # 263
	LCALL	jubuStartI2c
; 	jubuSend_byte(sla + 1);
			; SOURCE LINE # 264
	MOV  	A,R4
	INC  	A
	MOV  	R7,A
	LCALL	_jubuSend_byte
; 		if ( ack == 0) return ( 0 );
			; SOURCE LINE # 265
	JB   	ack,?C0033
	CLR  	C
	RET  	
?C0033:
; 	for(i =0;i< no -1; i++)
			; SOURCE LINE # 266
;---- Variable 'i?755' assigned to Register 'R5' ----
	CLR  	A
	MOV  	R5,A
?C0034:
	MOV  	A,no?754
	DEC  	A
	MOV  	R7,A
	MOV  	A,R5
	CLR  	C
	SUBB 	A,R7
	JNC  	?C0035
; 		{
			; SOURCE LINE # 267
; 		*s = jubuRcv_byte();
			; SOURCE LINE # 268
; 		jubuAckI2c(0);
			; SOURCE LINE # 269
	LCALL	L?0296
; 		s++;
			; SOURCE LINE # 270
	MOV  	A,#01H
	ADD  	A,R1
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	MOV  	R2,A
; 		}
			; SOURCE LINE # 271
	INC  	R5
	SJMP 	?C0034
?C0035:
; 	*s = jubuRcv_byte();
			; SOURCE LINE # 272
	LCALL	jubuRcv_byte
	MOV  	A,R7
	LCALL	?C?CSTPTR
; 	jubuAckI2c(1);
			; SOURCE LINE # 273
	SETB 	?jubuAckI2c?BIT
	LCALL	jubuAckI2c
; 	jubuStopI2c();
			; SOURCE LINE # 274
	LCALL	jubuStopI2c
; 	return(1);
			; SOURCE LINE # 275
	SETB 	C
; }
			; SOURCE LINE # 276
?C0031:
	RET  	
; END OF _jubu_RS16K

; bit jubu_RS32K ( uchar sla, uint suba, uchar *s, uchar no )

	RSEG  ?PR?_jubu_RS32K?COPY
_jubu_RS32K:
	USING	0
			; SOURCE LINE # 277
	MOV  	sla?856,R7
;---- Variable 's?858' assigned to Register 'R1/R2/R3' ----
;---- Variable 'suba?857' assigned to Register 'R4/R5' ----
; {
			; SOURCE LINE # 278
; 	uchar i;
; 	jubuStartI2c ();
			; SOURCE LINE # 280
	LCALL	jubuStartI2c
;  	jubuSend_byte (sla);
			; SOURCE LINE # 281
	MOV  	R7,sla?856
	LCALL	_jubuSend_byte
;     	if( ack == 0 ) return (0);
			; SOURCE LINE # 282
	JB   	ack,?C0037
	CLR  	C
	RET  	
?C0037:
; 	jubuSend_byte (suba / 256);       // the high byte address
			; SOURCE LINE # 283
	MOV  	R7,AR4
	LCALL	_jubuSend_byte
; 		if (ack == 0 ) return (0);
			; SOURCE LINE # 284
	JB   	ack,?C0039
	CLR  	C
	RET  	
?C0039:
;         jubuSend_byte (suba % 256);       // the low byte address
			; SOURCE LINE # 285
	MOV  	R7,AR5
	LCALL	_jubuSend_byte
; 		if (ack == 0 ) return (0);
			; SOURCE LINE # 286
	JB   	ack,?C0040
	CLR  	C
	RET  	
?C0040:
; 	jubuStartI2c();
			; SOURCE LINE # 287
	LCALL	jubuStartI2c
; 	jubuSend_byte(sla + 1);
			; SOURCE LINE # 288
	MOV  	A,sla?856
	INC  	A
	MOV  	R7,A
	LCALL	_jubuSend_byte
; 		if ( ack == 0) return ( 0 );
			; SOURCE LINE # 289
	JB   	ack,?C0041
	CLR  	C
	RET  	
?C0041:
; 	for(i =0;i< no -1; i++)
			; SOURCE LINE # 290
;---- Variable 'i?860' assigned to Register 'R5' ----
	CLR  	A
	MOV  	R5,A
?C0042:
	MOV  	A,no?859
	DEC  	A
	MOV  	R7,A
	MOV  	A,R5
	CLR  	C
	SUBB 	A,R7
	JNC  	?C0043
; 		{
			; SOURCE LINE # 291
; 		*s = jubuRcv_byte();
			; SOURCE LINE # 292
; 		jubuAckI2c(0);
			; SOURCE LINE # 293
	LCALL	L?0296
; 		s++;
			; SOURCE LINE # 294
	MOV  	A,#01H
	ADD  	A,R1
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	MOV  	R2,A
; 		}
			; SOURCE LINE # 295
	INC  	R5
	SJMP 	?C0042
?C0043:
; 	*s = jubuRcv_byte();
			; SOURCE LINE # 296
	LCALL	jubuRcv_byte
	MOV  	A,R7
	LCALL	?C?CSTPTR
; 	jubuAckI2c(1);
			; SOURCE LINE # 297
	SETB 	?jubuAckI2c?BIT
	LCALL	jubuAckI2c
; 	jubuStopI2c();
			; SOURCE LINE # 298
	LCALL	jubuStopI2c
; 	return(1);
			; SOURCE LINE # 299
	SETB 	C
; }
			; SOURCE LINE # 300
?C0038:
	RET  	
; END OF _jubu_RS32K

; ////////////////////////////////
;    bit jubuSendStr16K( uchar sla, uchar suba, uchar *s, uchar no )

	RSEG  ?PR?_jubuSendStr16K?COPY
_jubuSendStr16K:
	USING	0
			; SOURCE LINE # 302
;---- Variable 'sla?961' assigned to Register 'R6' ----
	MOV  	R6,AR7
;---- Variable 's?963' assigned to Register 'R1/R2/R3' ----
;---- Variable 'suba?962' assigned to Register 'R5' ----
; {
			; SOURCE LINE # 303
;         uchar i;
;         jubuStartI2c();
			; SOURCE LINE # 305
	LCALL	jubuStartI2c
;         jubuSend_byte(sla);
			; SOURCE LINE # 306
	LCALL	_jubuSend_byte
;         if(ack == 0)return (0);
			; SOURCE LINE # 307
	JB   	ack,?C0045
	CLR  	C
	RET  	
?C0045:
;         jubuSend_byte(suba);
			; SOURCE LINE # 308
	MOV  	R7,AR5
	LCALL	_jubuSend_byte
;            if(ack == 0)return (0);
			; SOURCE LINE # 309
	JB   	ack,?C0047
	CLR  	C
	RET  	
?C0047:
;         for( i = 0; i < no ;i ++)
			; SOURCE LINE # 310
;---- Variable 'i?965' assigned to Register 'R5' ----
	CLR  	A
	MOV  	R5,A
?C0048:
	MOV  	A,R5
	CLR  	C
	SUBB 	A,no?964
	JNC  	?C0049
;         {
			; SOURCE LINE # 311
;                 jubuSend_byte(*s);
			; SOURCE LINE # 312
	LCALL	L?0298
;                 if(ack == 0)return (0);
			; SOURCE LINE # 313
	JB   	ack,?C0051
	CLR  	C
	RET  	
?C0051:
;                 s++;
			; SOURCE LINE # 314
	MOV  	A,#01H
	ADD  	A,R1
	MOV  	R1,A
	CLR  	A
	ADDC 	A,R2
	MOV  	R2,A
;          }
			; SOURCE LINE # 315
	INC  	R5
	SJMP 	?C0048
?C0049:
;          jubuStopI2c();

⌨️ 快捷键说明

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