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

📄 adc.src

📁 采用台湾MRT晶捷公司的MRT4方案的液晶电视的程序
💻 SRC
📖 第 1 页 / 共 2 页
字号:
	XCH  	A,R0
	XRL  	A,R0
	MOV  	A,hTotal+01H
	SWAP 	A
	ANL  	A,#0FH
	ORL  	A,R0
	ANL  	A,#0F0H
	MOV  	R0,#buff+01H
	MOV  	@R0,A
; 			RegDataOut(0xB4, buff, 2);	
			; SOURCE LINE # 146
	MOV  	R7,#0B4H
	MOV  	R3,#00H
	MOV  	R2,#HIGH (buff)
	MOV  	R1,#LOW (buff)
	MOV  	?_RegDataOut?BYTE+04H,#00H
	MOV  	?_RegDataOut?BYTE+05H,#02H
	LCALL	_RegDataOut
; 
; 			gain = readColor(SELECTG);
			; SOURCE LINE # 148
	MOV  	R7,#02H
	LCALL	_readColor
	MOV  	gain?041,R7
; 			
; 			if ((eepData.gainG > 0x40) && (gain < 0x10))
			; SOURCE LINE # 150
	MOV  	R0,#eepData+04H
	MOV  	A,@R0
	SETB 	C
	SUBB 	A,#040H
	JC   	?C0043
	MOV  	A,gain?041
	CLR  	C
	SUBB 	A,#010H
	JC   	?_adcGainTune?g_fail
; 				goto g_fail;
			; SOURCE LINE # 151
?C0043:
; 						
; 			if (gain > GAIN_MAX)		eepData.gainG-=3;
			; SOURCE LINE # 153
	MOV  	A,gain?041
	SETB 	C
	SUBB 	A,#0FEH
	JC   	?C0044
	MOV  	R0,#eepData+04H
	DEC  	@R0
	DEC  	@R0
	DEC  	@R0
	SJMP 	?C0045
?C0044:
; 			else if (gain < GAIN_MIN-6)	eepData.gainG+=3;
			; SOURCE LINE # 154
	MOV  	A,gain?041
	CLR  	C
	SUBB 	A,#0F2H
	JNC  	?C0046
	MOV  	R0,#eepData+04H
	INC  	@R0
	INC  	@R0
	INC  	@R0
	SJMP 	?C0045
?C0046:
; 			else if (gain < GAIN_MIN)	eepData.gainG++;
			; SOURCE LINE # 155
	MOV  	A,gain?041
	CLR  	C
	SUBB 	A,#0F8H
	JNC  	?_adcGainTune?b_tune
	MOV  	R0,#eepData+04H
	INC  	@R0
; 			else						break;
			; SOURCE LINE # 156
?C0045:
; 			RegByteOut(0x15,eepData.gainG);
			; SOURCE LINE # 157
	MOV  	R7,#015H
	MOV  	R0,#eepData+04H
	MOV  	A,@R0
	MOV  	R5,A
	LCALL	_RegByteOut
; 						
; 		}
			; SOURCE LINE # 159
	LJMP 	?C0029
; #if (DEBUGMSG>=3)
;     printf("\n --------------->  gainG = %02x,clampG = %2x\n", (unsigned int)eepData.gainG,(unsigned int)eepData.clampG);
; #endif			
; 
; 	}
			; SOURCE LINE # 164
; 	goto b_tune;
			; SOURCE LINE # 165
; 
; g_fail:	
			; SOURCE LINE # 167
?_adcGainTune?g_fail:
; 	eepDataIn(EEPDATASTART+(&eepData.clampG-&eepData),(unsigned char *)&eepData.clampG, 1);
			; SOURCE LINE # 168
	MOV  	R7,#LOW (eepData)
	CLR  	C
	MOV  	A,#LOW (eepData+01H)
	SUBB 	A,#LOW (eepData)
	MOV  	R7,A
	MOV  	A,#HIGH (eepData+01H)
	SUBB 	A,#HIGH (eepData)
	XCH  	A,R7
	ADD  	A,#04H
	XCH  	A,R7
	ADDC 	A,#00H
	MOV  	R6,A
	MOV  	R3,#00H
	MOV  	R2,#HIGH (eepData+01H)
	MOV  	R1,#LOW (eepData+01H)
	MOV  	?_eepDataIn?BYTE+05H,#00H
	MOV  	?_eepDataIn?BYTE+06H,#01H
	LCALL	_eepDataIn
; 	eepDataIn(EEPDATASTART+(&eepData.gainG-&eepData),(unsigned char *)&eepData.gainG, 1);
			; SOURCE LINE # 169
	MOV  	R7,#LOW (eepData)
	CLR  	C
	MOV  	A,#LOW (eepData+04H)
	SUBB 	A,#LOW (eepData)
	MOV  	R7,A
	MOV  	A,#HIGH (eepData+04H)
	SUBB 	A,#HIGH (eepData)
	XCH  	A,R7
	ADD  	A,#04H
	XCH  	A,R7
	ADDC 	A,#00H
	MOV  	R6,A
	MOV  	R3,#00H
	MOV  	R2,#HIGH (eepData+04H)
	MOV  	R1,#LOW (eepData+04H)
	MOV  	?_eepDataIn?BYTE+05H,#00H
	MOV  	?_eepDataIn?BYTE+06H,#01H
	LCALL	_eepDataIn
; 	RegByteOut(0x14,eepData.clampG);
			; SOURCE LINE # 170
	MOV  	R7,#014H
	MOV  	R0,#eepData+01H
	MOV  	A,@R0
	MOV  	R5,A
	LCALL	_RegByteOut
; 	RegByteOut(0x15,eepData.gainG);
			; SOURCE LINE # 171
	MOV  	R7,#015H
	MOV  	R0,#eepData+04H
	MOV  	A,@R0
	MOV  	R5,A
	LCALL	_RegByteOut
; 	CalibSuccess = 0;
			; SOURCE LINE # 172
	CLR  	CalibSuccess
; #if (DEBUGMSG>=3)
; 	printf("\n    G -->  FAIL ");
; #endif						
; 
; 
; b_tune:
			; SOURCE LINE # 178
?_adcGainTune?b_tune:
; 	if (colorsel & SELECTB) 
			; SOURCE LINE # 179
	MOV  	A,colorsel?040
	JB   	ACC.2,$ + 6H
	LJMP 	?_adcGainTune?rgb_end
; 	{
			; SOURCE LINE # 180
?C0052:
; 
; 		while(1)
			; SOURCE LINE # 182
; 		{
			; SOURCE LINE # 183
; 			if (RegByteIn(0x01) & 0x01)	return;
			; SOURCE LINE # 184
	MOV  	R7,#01H
	LCALL	_RegByteIn
	MOV  	A,R7
	JNB  	ACC.0,$ + 6H
	LJMP 	?C0002
?C0054:
; 
; 			buff[0] = HCALSTART+10;           // Cal H End [7:0]
			; SOURCE LINE # 186
	MOV  	R0,#buff
	MOV  	@R0,#01EH
; 			buff[1] = ((HCALSTART>>8)&0x0F);  // Cal H Start/End [10:8]
			; SOURCE LINE # 187
	CLR  	A
	INC  	R0
	MOV  	@R0,A
; 			RegDataOut(0xB4, buff, 2);		
			; SOURCE LINE # 188
	MOV  	R7,#0B4H
	MOV  	R3,A
	MOV  	R2,#HIGH (buff)
	MOV  	R1,#LOW (buff)
	MOV  	?_RegDataOut?BYTE+04H,A
	MOV  	?_RegDataOut?BYTE+05H,#02H
	LCALL	_RegDataOut
?C0055:
; 
; 		#if (DEBUGMSG>=3)
;     		printf("\nclampB -> ");
; 		#endif		
; 				
; 			while(1)
			; SOURCE LINE # 194
; 			{
			; SOURCE LINE # 195
; 				if (RegByteIn(0x01) & 0x01)	return;
			; SOURCE LINE # 196
	MOV  	R7,#01H
	LCALL	_RegByteIn
	MOV  	A,R7
	JNB  	ACC.0,$ + 6H
	LJMP 	?C0002
?C0057:
; 				
; 				clamp = readColor(SELECTB);
			; SOURCE LINE # 198
	MOV  	R7,#04H
	LCALL	_readColor
	MOV  	clamp?042,R7
; 				if ((eepData.clampB > 0x80) && (clamp > 0x40))
			; SOURCE LINE # 199
	MOV  	R0,#eepData+02H
	MOV  	A,@R0
	SETB 	C
	SUBB 	A,#080H
	JC   	?C0058
	MOV  	A,clamp?042
	SETB 	C
	SUBB 	A,#040H
	JC   	$ + 5H
	LJMP 	?_adcGainTune?b_fail
; 					goto b_fail;
			; SOURCE LINE # 200
?C0058:
; 				if (clamp < CLAMP_MIN)			eepData.clampB-=3;
			; SOURCE LINE # 201
	MOV  	A,clamp?042
	CLR  	C
	SUBB 	A,#01H
	JNC  	?C0060
	MOV  	R0,#eepData+02H
	DEC  	@R0
	DEC  	@R0
	DEC  	@R0
	SJMP 	?C0061
?C0060:
; 				else if (clamp > CLAMP_MAX+6)	eepData.clampB+=3;
			; SOURCE LINE # 202
	MOV  	A,clamp?042
	SETB 	C
	SUBB 	A,#08H
	JC   	?C0062
	MOV  	R0,#eepData+02H
	INC  	@R0
	INC  	@R0
	INC  	@R0
	SJMP 	?C0061
?C0062:
; 				else if (clamp > CLAMP_MAX)		eepData.clampB++;
			; SOURCE LINE # 203
	MOV  	A,clamp?042
	SETB 	C
	SUBB 	A,#02H
	JC   	?C0056
	MOV  	R0,#eepData+02H
	INC  	@R0
; 				else 							break;		
			; SOURCE LINE # 204
?C0061:
; 				RegByteOut(0x16,eepData.clampB);
			; SOURCE LINE # 205
	MOV  	R7,#016H
	MOV  	R0,#eepData+02H
	MOV  	A,@R0
	MOV  	R5,A
	LCALL	_RegByteOut
; 			}	
			; SOURCE LINE # 206
	SJMP 	?C0055
?C0056:
; 		#if (DEBUGMSG>=3)
;     		printf("  -->  %02X\n", (unsigned int)eepData.clampB);
; 		#endif				
; 			
; 			buff[0] = hTotal;           // Cal H End [7:0]
			; SOURCE LINE # 211
	MOV  	R0,#buff
	MOV  	A,hTotal+01H
	MOV  	@R0,A
; 			buff[1] = ((hTotal>>4)&0xF0)+((HCALSTART>>8)&0x0F);//Cal H Start/End [10:8]
			; SOURCE LINE # 212
	MOV  	A,hTotal
	SWAP 	A
	MOV  	R0,A
	ANL  	A,#0F0H
	XCH  	A,R0
	XRL  	A,R0
	MOV  	A,hTotal+01H
	SWAP 	A
	ANL  	A,#0FH
	ORL  	A,R0
	ANL  	A,#0F0H
	MOV  	R0,#buff+01H
	MOV  	@R0,A
; 			RegDataOut(0xB4, buff, 2);		
			; SOURCE LINE # 213
	MOV  	R7,#0B4H
	MOV  	R3,#00H
	MOV  	R2,#HIGH (buff)
	MOV  	R1,#LOW (buff)
	MOV  	?_RegDataOut?BYTE+04H,#00H
	MOV  	?_RegDataOut?BYTE+05H,#02H
	LCALL	_RegDataOut
; 				
; 			gain = readColor(SELECTB);
			; SOURCE LINE # 215
	MOV  	R7,#04H
	LCALL	_readColor
	MOV  	gain?041,R7
; 			
; 			if ((eepData.gainB > 0x40) && (gain < 0x10))
			; SOURCE LINE # 217
	MOV  	R0,#eepData+05H
	MOV  	A,@R0
	SETB 	C
	SUBB 	A,#040H
	JC   	?C0066
	MOV  	A,gain?041
	CLR  	C
	SUBB 	A,#010H
	JC   	?_adcGainTune?b_fail
; 				goto b_fail;
			; SOURCE LINE # 218
?C0066:
; 
; 			if (gain > GAIN_MAX)		eepData.gainB-=3;
			; SOURCE LINE # 220
	MOV  	A,gain?041
	SETB 	C
	SUBB 	A,#0FEH
	JC   	?C0067
	MOV  	R0,#eepData+05H
	DEC  	@R0
	DEC  	@R0
	DEC  	@R0
	SJMP 	?C0068
?C0067:
; 			else if (gain < GAIN_MIN-6)	eepData.gainB+=3;
			; SOURCE LINE # 221
	MOV  	A,gain?041
	CLR  	C
	SUBB 	A,#0F2H
	JNC  	?C0069
	MOV  	R0,#eepData+05H
	INC  	@R0
	INC  	@R0
	INC  	@R0
	SJMP 	?C0068
?C0069:
; 			else if (gain < GAIN_MIN)	eepData.gainB++;
			; SOURCE LINE # 222
	MOV  	A,gain?041
	CLR  	C
	SUBB 	A,#0F8H
	JNC  	?_adcGainTune?rgb_end
	MOV  	R0,#eepData+05H
	INC  	@R0
; 			else 						break;
			; SOURCE LINE # 223
?C0068:
; 			RegBitOut(0x17,eepData.gainB,0x7f);
			; SOURCE LINE # 224
	MOV  	R7,#017H
	MOV  	R0,#eepData+05H
	MOV  	A,@R0
	MOV  	R5,A
	MOV  	R3,#07FH
	LCALL	_RegBitOut
; 						
; 		}
			; SOURCE LINE # 226
	LJMP 	?C0052
; #if (DEBUGMSG>=3)
;     printf("\n --------------->  gainB = %02x,clampB = %2x\n", (unsigned int)eepData.gainB,(unsigned int)eepData.clampB);
; #endif			
; 
; 	}
			; SOURCE LINE # 231
; 	goto rgb_end;
			; SOURCE LINE # 232
; 
; b_fail:
			; SOURCE LINE # 234
?_adcGainTune?b_fail:
; 	eepDataIn(EEPDATASTART+(&eepData.clampB-&eepData),(unsigned char *)&eepData.clampB, 1);
			; SOURCE LINE # 235
	MOV  	R7,#LOW (eepData)
	CLR  	C
	MOV  	A,#LOW (eepData+02H)
	SUBB 	A,#LOW (eepData)
	MOV  	R7,A
	MOV  	A,#HIGH (eepData+02H)
	SUBB 	A,#HIGH (eepData)
	XCH  	A,R7
	ADD  	A,#04H
	XCH  	A,R7
	ADDC 	A,#00H
	MOV  	R6,A
	MOV  	R3,#00H
	MOV  	R2,#HIGH (eepData+02H)
	MOV  	R1,#LOW (eepData+02H)
	MOV  	?_eepDataIn?BYTE+05H,#00H
	MOV  	?_eepDataIn?BYTE+06H,#01H
	LCALL	_eepDataIn
; 	eepDataIn(EEPDATASTART+(&eepData.gainB-&eepData),(unsigned char *)&eepData.gainB, 1);
			; SOURCE LINE # 236
	MOV  	R7,#LOW (eepData)
	CLR  	C
	MOV  	A,#LOW (eepData+05H)
	SUBB 	A,#LOW (eepData)
	MOV  	R7,A
	MOV  	A,#HIGH (eepData+05H)
	SUBB 	A,#HIGH (eepData)
	XCH  	A,R7
	ADD  	A,#04H
	XCH  	A,R7
	ADDC 	A,#00H
	MOV  	R6,A
	MOV  	R3,#00H
	MOV  	R2,#HIGH (eepData+05H)
	MOV  	R1,#LOW (eepData+05H)
	MOV  	?_eepDataIn?BYTE+05H,#00H
	MOV  	?_eepDataIn?BYTE+06H,#01H
	LCALL	_eepDataIn
; 	RegByteOut(0x16,eepData.clampB);
			; SOURCE LINE # 237
	MOV  	R7,#016H
	MOV  	R0,#eepData+02H
	MOV  	A,@R0
	MOV  	R5,A
	LCALL	_RegByteOut
; 	RegBitOut(0x17,eepData.gainB,0x7f);
			; SOURCE LINE # 238
	MOV  	R7,#017H
	MOV  	R0,#eepData+05H
	MOV  	A,@R0
	MOV  	R5,A
	MOV  	R3,#07FH
	LCALL	_RegBitOut
; 	CalibSuccess = 0;
			; SOURCE LINE # 239
	CLR  	CalibSuccess
; #if (DEBUGMSG>=3)
; 	printf("\n    B -->  FAIL ");
; #endif						
; 
; rgb_end:						
			; SOURCE LINE # 244
?_adcGainTune?rgb_end:
; 	eepDataOut(EEPDATASTART+(&eepData.clampR-&eepData),(unsigned char *)&eepData.clampR, 6);
			; SOURCE LINE # 245
	MOV  	R7,#LOW (eepData)
	CLR  	A
	MOV  	R7,A
	XCH  	A,R7
	ADD  	A,#04H
	XCH  	A,R7
	RLC  	A
	MOV  	R6,A
	MOV  	R3,#00H
	MOV  	R2,#HIGH (eepData)
	MOV  	R1,#LOW (eepData)
	MOV  	?_eepDataOut?BYTE+05H,#00H
	MOV  	?_eepDataOut?BYTE+06H,#06H
	LCALL	_eepDataOut
; 	
; #if DEBUGMSG
;     printf("RClamp=%2X GClamp=%2X BClamp=%2X\n",
;         (unsigned int)eepData.clampR,(unsigned int)eepData.clampG,(unsigned int)eepData.clampB);
;     printf("RGain=%2X GGain=%2X BGain=%2X\n",
;         (unsigned int)eepData.gainR,(unsigned int)eepData.gainG,(unsigned int)eepData.gainB);
; #endif	
; }
			; SOURCE LINE # 253
?C0002:
	RET  	
; END OF _adcGainTune

; unsigned char readColor(unsigned char colorsel )

	RSEG  ?PR?_readColor?ADC
	USING	0
_readColor:
	MOV  	colorsel?143,R7
			; SOURCE LINE # 254
; {
			; SOURCE LINE # 255
; 	
; 	unsigned char color;
; 
; 	if (colorsel & SELECTR) {
			; SOURCE LINE # 259
	MOV  	A,colorsel?143
	JNB  	ACC.0,?C0074
; 
;     	RegByteOut(0xB1, 0x04);     // select component R
			; SOURCE LINE # 261
	MOV  	R7,#0B1H
	MOV  	R5,#04H
	LCALL	_RegByteOut
;     	RegByteOut(0xB2, 0xFF);
			; SOURCE LINE # 262
	MOV  	R7,#0B2H
	MOV  	R5,#0FFH
	LCALL	_RegByteOut
; 		RegByteOut(0xB0, 0x20);     // Enable color calibration
			; SOURCE LINE # 263
	MOV  	R7,#0B0H
	MOV  	R5,#020H
	LCALL	_RegByteOut
;     	RegByteOut(0x00, 0x00);     // Clear the calibration status reg
			; SOURCE LINE # 264
	CLR  	A
	MOV  	R7,A
	MOV  	R5,A
	LCALL	_RegByteOut
;     	waitCalibReady(0x40);   
			; SOURCE LINE # 265
	MOV  	R7,#040H
	LCALL	_waitCalibReady
;     	color = RegByteIn(0xDB);
			; SOURCE LINE # 266
	MOV  	R7,#0DBH
	LCALL	_RegByteIn
	MOV  	color?144,R7
; 	}
			; SOURCE LINE # 267
?C0074:
; 	
; 	if (colorsel & SELECTG) {
			; SOURCE LINE # 269
	MOV  	A,colorsel?143
	JNB  	ACC.1,?C0075
; 
;     	RegByteOut(0xB1, 0x02);     // select component G
			; SOURCE LINE # 271
	MOV  	R7,#0B1H
	MOV  	R5,#02H
	LCALL	_RegByteOut
; 		RegByteOut(0xB2, 0xFF);
			; SOURCE LINE # 272
	MOV  	R7,#0B2H
	MOV  	R5,#0FFH
	LCALL	_RegByteOut
; 		RegByteOut(0xB0, 0x20);     // Enable color calibration
			; SOURCE LINE # 273
	MOV  	R7,#0B0H
	MOV  	R5,#020H
	LCALL	_RegByteOut
;     	RegByteOut(0x00, 0x00);     // Clear the calibration status reg
			; SOURCE LINE # 274
	CLR  	A
	MOV  	R7,A
	MOV  	R5,A
	LCALL	_RegByteOut
;     	waitCalibReady(0x40);    
			; SOURCE LINE # 275
	MOV  	R7,#040H
	LCALL	_waitCalibReady
;     	color = RegByteIn(0xDC);
			; SOURCE LINE # 276
	MOV  	R7,#0DCH
	LCALL	_RegByteIn
	MOV  	color?144,R7
;     }
			; SOURCE LINE # 277
?C0075:
;     
; 	if (colorsel & SELECTB) {
			; SOURCE LINE # 279
	MOV  	A,colorsel?143
	JNB  	ACC.2,?C0076
;     
;     	RegByteOut(0xB1, 0x01);     // select component B
			; SOURCE LINE # 281
	MOV  	R7,#0B1H
	MOV  	R5,#01H
	LCALL	_RegByteOut
; 		RegByteOut(0xB2, 0xFF);
			; SOURCE LINE # 282
	MOV  	R7,#0B2H
	MOV  	R5,#0FFH
	LCALL	_RegByteOut
; 		RegByteOut(0xB0, 0x20);     // Enable color calibration
			; SOURCE LINE # 283
	MOV  	R7,#0B0H
	MOV  	R5,#020H
	LCALL	_RegByteOut
;     	RegByteOut(0x00, 0x00);     // Clear the calibration status reg
			; SOURCE LINE # 284
	CLR  	A
	MOV  	R7,A
	MOV  	R5,A
	LCALL	_RegByteOut
;     	waitCalibReady(0x40);    
			; SOURCE LINE # 285
	MOV  	R7,#040H
	LCALL	_waitCalibReady
;     	color = RegByteIn(0xDD);
			; SOURCE LINE # 286
	MOV  	R7,#0DDH
	LCALL	_RegByteIn
	MOV  	color?144,R7
; 	}
			; SOURCE LINE # 287
?C0076:
; 	
; #if (DEBUGMSG>=3)
;     printf("   %02X", (unsigned int)color);
; #endif
; 	
; 	return color;
			; SOURCE LINE # 293
	MOV  	R7,color?144
; 
; }
			; SOURCE LINE # 295
?C0077:
	RET  	
; END OF _readColor

	END

⌨️ 快捷键说明

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