📄 adc.src
字号:
; ADC.SRC generated from: ADC.C
$NOMOD51
NAME ADC
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
PSW DATA 0D0H
ACC DATA 0E0H
B DATA 0F0H
SP DATA 081H
DPL DATA 082H
DPH DATA 083H
PCON DATA 087H
TCON DATA 088H
TMOD DATA 089H
TL0 DATA 08AH
TL1 DATA 08BH
TH0 DATA 08CH
TH1 DATA 08DH
IE DATA 0A8H
IP DATA 0B8H
SCON DATA 098H
SBUF DATA 099H
CY BIT 0D0H.7
AC BIT 0D0H.6
F0 BIT 0D0H.5
RS1 BIT 0D0H.4
RS0 BIT 0D0H.3
OV BIT 0D0H.2
P BIT 0D0H.0
TF1 BIT 088H.7
TR1 BIT 088H.6
TF0 BIT 088H.5
TR0 BIT 088H.4
IE1 BIT 088H.3
IT1 BIT 088H.2
IE0 BIT 088H.1
IT0 BIT 088H.0
EA BIT 0A8H.7
ES BIT 0A8H.4
ET1 BIT 0A8H.3
EX1 BIT 0A8H.2
ET0 BIT 0A8H.1
EX0 BIT 0A8H.0
PS BIT 0B8H.4
PT1 BIT 0B8H.3
PX1 BIT 0B8H.2
PT0 BIT 0B8H.1
PX0 BIT 0B8H.0
RD BIT 0B0H.7
WR BIT 0B0H.6
T1 BIT 0B0H.5
T0 BIT 0B0H.4
INT1 BIT 0B0H.3
INT0 BIT 0B0H.2
TXD BIT 0B0H.1
RXD BIT 0B0H.0
SM0 BIT 098H.7
SM1 BIT 098H.6
SM2 BIT 098H.5
REN BIT 098H.4
TB8 BIT 098H.3
RB8 BIT 098H.2
TI BIT 098H.1
RI BIT 098H.0
SDAPin BIT 090H.6
SCLPin BIT 090H.7
WPPin BIT 090H.5
ResetPin BIT 0A0H.0
BrightnessPin BIT 0B0H.5
VGA_CON_PIN BIT 0A0H.5
LED_O_Pin BIT 080H.0
LED_G_Pin BIT 080H.1
PANEL_VCC_PIN BIT 0A0H.2
PANEL_BKL_PIN BIT 0A0H.3
POWER_BUT_PIN BIT 090H.4
MENU_BUT_PIN BIT 090H.1
RIGHT_BUT_PIN BIT 090H.2
LEFT_BUT_PIN BIT 090H.3
AUTO_BUT_PIN BIT 090H.0
?PR?_adcGainTune?ADC SEGMENT CODE
?DT?_adcGainTune?ADC SEGMENT DATA OVERLAYABLE
?PR?_readColor?ADC SEGMENT CODE
?DT?_readColor?ADC SEGMENT DATA OVERLAYABLE
EXTRN BIT (CalibSuccess)
EXTRN IDATA (eepData)
EXTRN IDATA (buff)
EXTRN DATA (hTotal)
EXTRN CODE (initCalibration)
EXTRN CODE (_waitCalibReady)
EXTRN CODE (_RegByteIn)
EXTRN CODE (_RegByteOut)
EXTRN CODE (_RegBitOut)
EXTRN CODE (_RegDataOut)
EXTRN DATA (?_RegDataOut?BYTE)
EXTRN CODE (_eepDataIn)
EXTRN DATA (?_eepDataIn?BYTE)
EXTRN CODE (_eepDataOut)
EXTRN DATA (?_eepDataOut?BYTE)
PUBLIC _readColor
PUBLIC _adcGainTune
RSEG ?DT?_adcGainTune?ADC
?_adcGainTune?BYTE:
colorsel?040: DS 1
ORG 1
gain?041: DS 1
clamp?042: DS 1
RSEG ?DT?_readColor?ADC
?_readColor?BYTE:
colorsel?143: DS 1
ORG 1
color?144: DS 1
; /************************************************
; * *
; * ADC.C: ADC sub-routines *
; * *
; ************************************************/
;
; #include <reg51.h>
; #include "mosaic.h"
; #include "osd.h"
; #include "global.h"
;
; #if NEW_GAIN_TUNE
;
;
;
; #define CLAMP_MAX 0x02
; #define CLAMP_MIN 0x01
; #define GAIN_MAX 0xFE
; #define GAIN_MIN 0xF8
;
;
; void adcGainTune(unsigned char colorsel)
RSEG ?PR?_adcGainTune?ADC
USING 0
_adcGainTune:
MOV colorsel?040,R7
; SOURCE LINE # 22
; {
; SOURCE LINE # 23
; unsigned char gain,clamp;
;
; #if DEBUGMSG
; printf("adcGainTune\n");
; #endif
;
; CalibSuccess = 0;
; SOURCE LINE # 30
CLR CalibSuccess
; initCalibration();
; SOURCE LINE # 31
LCALL initCalibration
;
; if (readColor(SELECTR) < 0xA0) return;
; SOURCE LINE # 33
MOV R7,#01H
LCALL _readColor
MOV A,R7
CLR C
SUBB A,#0A0H
JNC $ + 5H
LJMP ?C0002
?C0001:
; if (readColor(SELECTG) < 0xA0) return;
; SOURCE LINE # 34
MOV R7,#02H
LCALL _readColor
MOV A,R7
CLR C
SUBB A,#0A0H
JNC $ + 5H
LJMP ?C0002
?C0003:
; if (readColor(SELECTB) < 0xA0) return;
; SOURCE LINE # 35
MOV R7,#04H
LCALL _readColor
MOV A,R7
CLR C
SUBB A,#0A0H
JNC $ + 5H
LJMP ?C0002
?C0004:
;
; CalibSuccess = 1;
; SOURCE LINE # 37
SETB CalibSuccess
;
; //RegByteOut(0x34, (unsigned char)eepModeData.setData.hstart);
; //RegByteOut(0x35, (unsigned char)(eepModeData.setData.hstart>>8));
; //RegByteOut(0x36, eepModeData.setData.vstart);
; //RegByteOut(0x37, 0);
;
; if (colorsel & SELECTR)
; SOURCE LINE # 44
MOV A,colorsel?040
JB ACC.0,$ + 6H
LJMP ?_adcGainTune?g_tune
; {
; SOURCE LINE # 45
?C0006:
;
; while(1)
; SOURCE LINE # 47
; {
; SOURCE LINE # 48
; if (RegByteIn(0x01) & 0x01) return;
; SOURCE LINE # 49
MOV R7,#01H
LCALL _RegByteIn
MOV A,R7
JNB ACC.0,$ + 6H
LJMP ?C0002
?C0008:
;
; buff[0] = HCALSTART+10; // Cal H End [7:0]
; SOURCE LINE # 51
MOV R0,#buff
MOV @R0,#01EH
; buff[1] = ((HCALSTART>>8)&0x0F); // Cal H Start/End [10:8]
; SOURCE LINE # 52
CLR A
INC R0
MOV @R0,A
; RegDataOut(0xB4, buff, 2);
; SOURCE LINE # 53
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
?C0009:
;
; #if (DEBUGMSG>=3)
; printf("\nclampR -> ");
; #endif
;
; while(1)
; SOURCE LINE # 59
; {
; SOURCE LINE # 60
; if (RegByteIn(0x01) & 0x01) return;
; SOURCE LINE # 61
MOV R7,#01H
LCALL _RegByteIn
MOV A,R7
JNB ACC.0,$ + 6H
LJMP ?C0002
?C0011:
;
; clamp = readColor(SELECTR);
; SOURCE LINE # 63
MOV R7,#01H
LCALL _readColor
MOV clamp?042,R7
; if ((eepData.clampR > 0x80) && (clamp > 0x40))
; SOURCE LINE # 64
MOV R0,#eepData
MOV A,@R0
SETB C
SUBB A,#080H
JC ?C0012
MOV A,clamp?042
SETB C
SUBB A,#040H
JC $ + 5H
LJMP ?_adcGainTune?r_fail
; goto r_fail;
; SOURCE LINE # 65
?C0012:
; if (clamp < CLAMP_MIN) eepData.clampR-=3;
; SOURCE LINE # 66
MOV A,clamp?042
CLR C
SUBB A,#01H
JNC ?C0014
MOV R0,#eepData
DEC @R0
DEC @R0
DEC @R0
SJMP ?C0015
?C0014:
; else if (clamp > CLAMP_MAX+6) eepData.clampR+=3;
; SOURCE LINE # 67
MOV A,clamp?042
SETB C
SUBB A,#08H
JC ?C0016
MOV R0,#eepData
INC @R0
INC @R0
INC @R0
SJMP ?C0015
?C0016:
; else if (clamp > CLAMP_MAX) eepData.clampR++;
; SOURCE LINE # 68
MOV A,clamp?042
SETB C
SUBB A,#02H
JC ?C0010
MOV R0,#eepData
INC @R0
; else break;
; SOURCE LINE # 69
?C0015:
; RegByteOut(0x12,eepData.clampR);
; SOURCE LINE # 70
MOV R7,#012H
MOV R0,#eepData
MOV A,@R0
MOV R5,A
LCALL _RegByteOut
; }
; SOURCE LINE # 71
SJMP ?C0009
?C0010:
; #if (DEBUGMSG>=3)
; printf(" --> %02X\n", (unsigned int)eepData.clampR);
; #endif
;
; buff[0] = hTotal; // Cal H End [7:0]
; SOURCE LINE # 76
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 # 77
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 # 78
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(SELECTR);
; SOURCE LINE # 81
MOV R7,#01H
LCALL _readColor
MOV gain?041,R7
;
; if ((eepData.gainR > 0x40) && (gain < 0x10))
; SOURCE LINE # 83
MOV R0,#eepData+03H
MOV A,@R0
SETB C
SUBB A,#040H
JC ?C0020
MOV A,gain?041
CLR C
SUBB A,#010H
JC ?_adcGainTune?r_fail
; goto r_fail;
; SOURCE LINE # 84
?C0020:
;
; if (gain > GAIN_MAX) eepData.gainR-=3;
; SOURCE LINE # 86
MOV A,gain?041
SETB C
SUBB A,#0FEH
JC ?C0021
MOV R0,#eepData+03H
DEC @R0
DEC @R0
DEC @R0
SJMP ?C0022
?C0021:
; else if (gain < GAIN_MIN-6) eepData.gainR+=3;
; SOURCE LINE # 87
MOV A,gain?041
CLR C
SUBB A,#0F2H
JNC ?C0023
MOV R0,#eepData+03H
INC @R0
INC @R0
INC @R0
SJMP ?C0022
?C0023:
; else if (gain < GAIN_MIN) eepData.gainR++;
; SOURCE LINE # 88
MOV A,gain?041
CLR C
SUBB A,#0F8H
JNC ?_adcGainTune?g_tune
MOV R0,#eepData+03H
INC @R0
; else break;
; SOURCE LINE # 89
?C0022:
; RegByteOut(0x13,eepData.gainR);
; SOURCE LINE # 90
MOV R7,#013H
MOV R0,#eepData+03H
MOV A,@R0
MOV R5,A
LCALL _RegByteOut
;
; }
; SOURCE LINE # 92
LJMP ?C0006
; #if (DEBUGMSG>=3)
; printf("\n ---------------> gainR = %02x,clampR = %2x\n", (unsigned int)eepData.gainR,(unsigned int)eepData.clampR);
; #endif
;
; }
; SOURCE LINE # 97
; goto g_tune;
; SOURCE LINE # 98
;
; r_fail:
; SOURCE LINE # 100
?_adcGainTune?r_fail:
; eepDataIn(EEPDATASTART+(&eepData.clampR-&eepData),(unsigned char *)&eepData.clampR, 1);
; SOURCE LINE # 101
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 ?_eepDataIn?BYTE+05H,#00H
MOV ?_eepDataIn?BYTE+06H,#01H
LCALL _eepDataIn
; eepDataIn(EEPDATASTART+(&eepData.gainR-&eepData),(unsigned char *)&eepData.gainR, 1);
; SOURCE LINE # 102
MOV R7,#LOW (eepData)
CLR C
MOV A,#LOW (eepData+03H)
SUBB A,#LOW (eepData)
MOV R7,A
MOV A,#HIGH (eepData+03H)
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+03H)
MOV R1,#LOW (eepData+03H)
MOV ?_eepDataIn?BYTE+05H,#00H
MOV ?_eepDataIn?BYTE+06H,#01H
LCALL _eepDataIn
; RegByteOut(0x12,eepData.clampR);
; SOURCE LINE # 103
MOV R7,#012H
MOV R0,#eepData
MOV A,@R0
MOV R5,A
LCALL _RegByteOut
; RegByteOut(0x13,eepData.gainR);
; SOURCE LINE # 104
MOV R7,#013H
MOV R0,#eepData+03H
MOV A,@R0
MOV R5,A
LCALL _RegByteOut
; CalibSuccess = 0;
; SOURCE LINE # 105
CLR CalibSuccess
; #if (DEBUGMSG>=3)
; printf("\n R --> FAIL ");
; #endif
;
;
; g_tune:
; SOURCE LINE # 111
?_adcGainTune?g_tune:
; if (colorsel & SELECTG)
; SOURCE LINE # 112
MOV A,colorsel?040
JB ACC.1,$ + 6H
LJMP ?_adcGainTune?b_tune
; {
; SOURCE LINE # 113
?C0029:
;
; while(1)
; SOURCE LINE # 115
; {
; SOURCE LINE # 116
; if (RegByteIn(0x01) & 0x01) return;
; SOURCE LINE # 117
MOV R7,#01H
LCALL _RegByteIn
MOV A,R7
JNB ACC.0,$ + 6H
LJMP ?C0002
?C0031:
;
; buff[0] = HCALSTART+10; // Cal H End [7:0]
; SOURCE LINE # 119
MOV R0,#buff
MOV @R0,#01EH
; buff[1] = ((HCALSTART>>8)&0x0F); // Cal H Start/End [10:8]
; SOURCE LINE # 120
CLR A
INC R0
MOV @R0,A
; RegDataOut(0xB4, buff, 2);
; SOURCE LINE # 121
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
?C0032:
;
; #if (DEBUGMSG>=3)
; printf("\nclampG -> ");
; #endif
;
; while(1)
; SOURCE LINE # 127
; {
; SOURCE LINE # 128
; if (RegByteIn(0x01) & 0x01) return;
; SOURCE LINE # 129
MOV R7,#01H
LCALL _RegByteIn
MOV A,R7
JNB ACC.0,$ + 6H
LJMP ?C0002
?C0034:
;
; clamp = readColor(SELECTG);
; SOURCE LINE # 131
MOV R7,#02H
LCALL _readColor
MOV clamp?042,R7
; if ((eepData.clampG > 0x80) && (clamp > 0x40))
; SOURCE LINE # 132
MOV R0,#eepData+01H
MOV A,@R0
SETB C
SUBB A,#080H
JC ?C0035
MOV A,clamp?042
SETB C
SUBB A,#040H
JC $ + 5H
LJMP ?_adcGainTune?g_fail
; goto g_fail;
; SOURCE LINE # 133
?C0035:
; if (clamp < CLAMP_MIN) eepData.clampG-=3;
; SOURCE LINE # 134
MOV A,clamp?042
CLR C
SUBB A,#01H
JNC ?C0037
MOV R0,#eepData+01H
DEC @R0
DEC @R0
DEC @R0
SJMP ?C0038
?C0037:
; else if (clamp > CLAMP_MAX+6) eepData.clampG+=3;
; SOURCE LINE # 135
MOV A,clamp?042
SETB C
SUBB A,#08H
JC ?C0039
MOV R0,#eepData+01H
INC @R0
INC @R0
INC @R0
SJMP ?C0038
?C0039:
; else if (clamp > CLAMP_MAX) eepData.clampG++;
; SOURCE LINE # 136
MOV A,clamp?042
SETB C
SUBB A,#02H
JC ?C0033
MOV R0,#eepData+01H
INC @R0
; else break;
; SOURCE LINE # 137
?C0038:
; RegByteOut(0x14,eepData.clampG);
; SOURCE LINE # 138
MOV R7,#014H
MOV R0,#eepData+01H
MOV A,@R0
MOV R5,A
LCALL _RegByteOut
; }
; SOURCE LINE # 139
SJMP ?C0032
?C0033:
; #if (DEBUGMSG>=3)
; printf(" --> %02X\n", (unsigned int)eepData.clampG);
; #endif
;
; buff[0] = hTotal; // Cal H End [7:0]
; SOURCE LINE # 144
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 # 145
MOV A,hTotal
SWAP A
MOV R0,A
ANL A,#0F0H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -