📄 misc.src
字号:
; MISC.SRC generated from: MISC.C
$NOMOD51
NAME MISC
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?miscTurnOnPanel?MISC SEGMENT CODE
?PR?miscTurnOffBackLight?MISC SEGMENT CODE
?PR?miscTurnOnBackLight?MISC SEGMENT CODE
?PR?miscTurnOffPanel?MISC SEGMENT CODE
?PR?miscTurnOnPower?MISC SEGMENT CODE
?PR?miscEnterSleepMode?MISC SEGMENT CODE
?PR?miscExitSleepMode?MISC SEGMENT CODE
?PR?miscClkOn?MISC SEGMENT CODE
?PR?miscClkOff?MISC SEGMENT CODE
?PR?_miscDelay?MISC SEGMENT CODE
?PR?_miscSetADCPhase?MISC SEGMENT CODE
?PR?_miscSetADCPitch?MISC SEGMENT CODE
?DT?_miscSetADCPitch?MISC SEGMENT DATA OVERLAYABLE
?PR?_miscDClkUp?MISC SEGMENT CODE
?DT?_miscDClkUp?MISC SEGMENT DATA OVERLAYABLE
?PR?_miscDClkDown?MISC SEGMENT CODE
?DT?_miscDClkDown?MISC SEGMENT DATA OVERLAYABLE
?PR?_miscSwitchTCONReg?MISC SEGMENT CODE
EXTRN BIT (unMuteFlag)
EXTRN BIT (PanelOnFlag)
EXTRN BIT (SleepModeFlag)
EXTRN BIT (backlightOffFlag)
EXTRN IDATA (eepData)
EXTRN IDATA (eepModeData)
EXTRN IDATA (ival)
EXTRN IDATA (ival1)
EXTRN IDATA (ival2)
EXTRN CODE (_setVolume)
EXTRN CODE (disableOSD)
EXTRN CODE (_setBrightness)
EXTRN CODE (_RegByteIn)
EXTRN CODE (_RegByteOut)
EXTRN CODE (_RegBitOut)
EXTRN CODE (_TDAByteOut)
EXTRN CODE (_TDAByteIn)
EXTRN CODE (?C?UIDIV)
EXTRN CODE (?C?IMUL)
PUBLIC _miscSwitchTCONReg
PUBLIC _miscDClkDown
PUBLIC _miscDClkUp
PUBLIC _miscSetADCPitch
PUBLIC _miscSetADCPhase
PUBLIC _miscDelay
PUBLIC miscClkOff
PUBLIC miscClkOn
PUBLIC miscExitSleepMode
PUBLIC miscEnterSleepMode
PUBLIC miscTurnOnPower
PUBLIC miscTurnOffPanel
PUBLIC miscTurnOnBackLight
PUBLIC miscTurnOffBackLight
PUBLIC miscTurnOnPanel
RSEG ?DT?_miscSetADCPitch?MISC
?_miscSetADCPitch?BYTE:
pitch?1143: DS 2
RSEG ?DT?_miscDClkUp?MISC
?_miscDClkUp?BYTE:
delta?1245: DS 1
ORG 1
mt?1246: DS 2
M?1248: DS 1
N?1249: DS 1
i?1250: DS 1
RSEG ?DT?_miscDClkDown?MISC
?_miscDClkDown?BYTE:
delta?1351: DS 1
ORG 1
mt?1352: DS 2
M?1354: DS 1
N?1355: DS 1
i?1356: DS 1
; /************************************************
; * *
; * MISC.C: Misc. sub-routines *
; * *
; ************************************************/
; #include <reg51.h>
; #include <intrins.h>
; #include "mosaic.h"
; #include "osd.h"
; #include "global.h"
;
;
; //
; // Turn on LCD panel
; //
;
; void miscTurnOnPanel(void)
RSEG ?PR?miscTurnOnPanel?MISC
USING 0
miscTurnOnPanel:
; SOURCE LINE # 17
; {
; SOURCE LINE # 18
;
; if ( PanelOnFlag )
; SOURCE LINE # 20
JNB PanelOnFlag,?C0001
; {
; SOURCE LINE # 21
; if(unMuteFlag)
; SOURCE LINE # 22
JNB unMuteFlag,?C0002
; {
; SOURCE LINE # 23
; RegBitOut(0x40,0x00,0x70); //mute -> normal display
; SOURCE LINE # 24
MOV R7,#040H
CLR A
MOV R5,A
MOV R3,#070H
LCALL _RegBitOut
; unMuteFlag = 0;
; SOURCE LINE # 25
CLR unMuteFlag
; }
; SOURCE LINE # 26
?C0002:
; miscTurnOnBackLight();
; SOURCE LINE # 27
LCALL miscTurnOnBackLight
; setBrightness(eepData.brightness);
; SOURCE LINE # 28
MOV R0,#eepData+012H
MOV A,@R0
MOV R7,A
LCALL _setBrightness
RET
; return;
; }
; SOURCE LINE # 30
?C0001:
;
; #if DEBUGMSG
; printf(" Panel ON\n");
; #endif
;
; PanelOnFlag = 1;
; SOURCE LINE # 36
SETB PanelOnFlag
;
; #if (TATUNG_FOR_IBM_BD+SIEMENS_ANALOG17_AUDIO+SIEMENS_ANALOG17_NOAUDIO+SIEMENS_DUAL17_AUDIO+SIEMENS_DUAL17_NOAUDIO)
; RegBitOut(0x58,0x08,0x08); // turn on LCD VEE FOR LVDS
; #endif
;
; //------------------
; #if TATUNG_FOR_HP_BD
; RegBitOut(0x58,0x04,0x04); // turn on LCD VDD
; VDDD_EN = 1;
; miscDelay(5);
; INT_PWSVLCD = 1;
; VDDA_EN = 1;
; miscDelay(5);
; VDDG_EN = 1;
; #else
; #if PANEL_VDD_INVERT
; RegBitOut(0x58,0x00,0x04); // turn on LCD VDD
; PANEL_VCC_PIN = 0;
; #else
; RegBitOut(0x58,0x04,0x04); // turn on LCD VDD
; SOURCE LINE # 56
MOV R7,#058H
MOV R5,#04H
MOV R3,#04H
LCALL _RegBitOut
; PANEL_VCC_PIN = 1;
; SOURCE LINE # 57
SETB PANEL_VCC_PIN
; #endif
; #endif
; //---------------
;
; if(unMuteFlag)
; SOURCE LINE # 62
JNB unMuteFlag,?C0004
; {
; SOURCE LINE # 63
; RegBitOut(0x40,0x00,0x70); //mute -> normal display
; SOURCE LINE # 64
MOV R7,#040H
CLR A
MOV R5,A
MOV R3,#070H
LCALL _RegBitOut
; unMuteFlag = 0;
; SOURCE LINE # 65
CLR unMuteFlag
; }
; SOURCE LINE # 66
?C0004:
;
;
; #if ENABLE_TCON
; miscDelay(5);
; SOURCE LINE # 70
MOV R7,#05H
MOV R6,#00H
LCALL _miscDelay
; RegBitOut(0x24, 0x00, 0xC0); // turn on data output
; SOURCE LINE # 71
MOV R7,#024H
CLR A
MOV R5,A
MOV R3,#0C0H
LCALL _RegBitOut
; #endif
; miscDelay(10);
; SOURCE LINE # 73
MOV R7,#0AH
MOV R6,#00H
LCALL _miscDelay
; RegBitOut(0x58,0x01,0x01); // turn on data output
; SOURCE LINE # 74
MOV R7,#058H
MOV R5,#01H
MOV R3,#01H
LCALL _RegBitOut
;
;
; miscDelay(300);
; SOURCE LINE # 77
MOV R7,#02CH
MOV R6,#01H
LCALL _miscDelay
;
; miscTurnOnBackLight();
; SOURCE LINE # 79
LCALL miscTurnOnBackLight
; setBrightness(eepData.brightness);
; SOURCE LINE # 80
MOV R0,#eepData+012H
MOV A,@R0
MOV R7,A
LCALL _setBrightness
;
; #if WITH_AUDIO
; setVolume(eepData.volume);
; SOURCE LINE # 83
MOV R0,#eepData+015H
MOV A,@R0
MOV R7,A
LCALL _setVolume
; #endif
; }
; SOURCE LINE # 85
?C0003:
RET
; END OF miscTurnOnPanel
;
;
; //
; // Turn off LCD BackLight
; //
; void miscTurnOffBackLight(void)
RSEG ?PR?miscTurnOffBackLight?MISC
USING 0
miscTurnOffBackLight:
; SOURCE LINE # 91
; {
; SOURCE LINE # 92
; backlightOffFlag = 1;
; SOURCE LINE # 93
SETB backlightOffFlag
;
; #if BACK_LIGHT_INVERT
; RegBitOut(0x58,0x02,0x02); // turn off LCD Backlight
; PANEL_BKL_PIN = 1;
; #else
; RegBitOut(0x58,0x00,0x02); // turn off LCD Backlight
; SOURCE LINE # 99
MOV R7,#058H
CLR A
MOV R5,A
MOV R3,#02H
LCALL _RegBitOut
; PANEL_BKL_PIN = 0;
; SOURCE LINE # 100
CLR PANEL_BKL_PIN
; #endif
;
; #if DEBUGMSG
; printf(" BackLight off ");
; #endif
; }
; SOURCE LINE # 106
RET
; END OF miscTurnOffBackLight
;
;
;
; //
; // Turn off LCD BackLight
; //
; void miscTurnOnBackLight(void)
RSEG ?PR?miscTurnOnBackLight?MISC
USING 0
miscTurnOnBackLight:
; SOURCE LINE # 113
; {
; SOURCE LINE # 114
; backlightOffFlag = 0;
; SOURCE LINE # 115
CLR backlightOffFlag
;
; #if BACK_LIGHT_INVERT
; RegBitOut(0x58,0x00,0x02); // turn on LCD Backlight
; PANEL_BKL_PIN = 0;
; #else
; RegBitOut(0x58,0x02,0x02); // turn on LCD Backlight
; SOURCE LINE # 121
MOV R7,#058H
MOV R5,#02H
MOV R3,#02H
LCALL _RegBitOut
; PANEL_BKL_PIN = 1;
; SOURCE LINE # 122
SETB PANEL_BKL_PIN
; #endif
;
; #if DEBUGMSG
; printf(" BackLight on ");
; #endif
; }
; SOURCE LINE # 128
RET
; END OF miscTurnOnBackLight
;
;
; //
; // Turn off LCD panel
; //
; void miscTurnOffPanel(void)
RSEG ?PR?miscTurnOffPanel?MISC
USING 0
miscTurnOffPanel:
; SOURCE LINE # 134
; {
; SOURCE LINE # 135
;
; #if DEBUGMSG
; printf(" Panel off ");
; #endif
;
; if ( !PanelOnFlag )
; SOURCE LINE # 141
JNB PanelOnFlag,?C0008
?C0007:
; return;
;
; PanelOnFlag = 0;
; SOURCE LINE # 144
CLR PanelOnFlag
;
; miscTurnOffBackLight();
; SOURCE LINE # 146
LCALL miscTurnOffBackLight
;
; miscDelay(30);
; SOURCE LINE # 148
MOV R7,#01EH
MOV R6,#00H
LCALL _miscDelay
;
; #if ENABLE_TCON
; RegBitOut(0x24, 0x40, 0xC0); // turn off data output
; SOURCE LINE # 151
MOV R7,#024H
MOV R5,#040H
MOV R3,#0C0H
LCALL _RegBitOut
; miscDelay(1);
; SOURCE LINE # 152
MOV R7,#01H
MOV R6,#00H
LCALL _miscDelay
; #endif
; RegBitOut(0x58,0x00,0x01); // turn off data output
; SOURCE LINE # 154
MOV R7,#058H
CLR A
MOV R5,A
MOV R3,#01H
LCALL _RegBitOut
; miscDelay(10);
; SOURCE LINE # 155
MOV R7,#0AH
MOV R6,#00H
LCALL _miscDelay
;
;
; #if (TATUNG_FOR_IBM_BD+SIEMENS_ANALOG17_AUDIO+SIEMENS_ANALOG17_NOAUDIO+SIEMENS_DUAL17_AUDIO+SIEMENS_DUAL17_NOAUDIO)
; RegBitOut(0x58,0x00,0x08); // turn off LCD VEE FOR LVDS
; #endif
;
; //--------------------
; #if TATUNG_FOR_HP_BD
; RegBitOut(0x58,0x00,0x04); // turn off LCD VDD
; VDDD_EN = 0;
; INT_PWSVLCD = 0;
; VDDA_EN = 0;
; VDDG_EN = 0;
; #else
; #if PANEL_VDD_INVERT
; RegBitOut(0x58,0x04,0x04); // turn off LCD VDD
; PANEL_VCC_PIN = 1;
; #else
; RegBitOut(0x58,0x00,0x04); // turn off LCD VDD
; SOURCE LINE # 174
MOV R7,#058H
CLR A
MOV R5,A
MOV R3,#04H
LCALL _RegBitOut
; PANEL_VCC_PIN = 0;
; SOURCE LINE # 175
CLR PANEL_VCC_PIN
; #endif
; #endif
; //--------------------
;
; #if DEBUGMSG
; printf("OFF\n");
; #endif
; }
; SOURCE LINE # 183
?C0008:
RET
; END OF miscTurnOffPanel
;
;
; void miscTurnOnPower(void)
RSEG ?PR?miscTurnOnPower?MISC
USING 0
miscTurnOnPower:
; SOURCE LINE # 186
; {
; SOURCE LINE # 187
; miscExitSleepMode();
; SOURCE LINE # 188
LCALL miscExitSleepMode
;
; LED_G_Pin = 0; LED_O_Pin = 1;
; SOURCE LINE # 190
CLR LED_G_Pin
SETB LED_O_Pin
;
; miscTurnOnPanel();
; SOURCE LINE # 192
LCALL miscTurnOnPanel
;
; }
; SOURCE LINE # 194
RET
; END OF miscTurnOnPower
;
; //
; // Enter sleep mode
; //
; void miscEnterSleepMode()
RSEG ?PR?miscEnterSleepMode?MISC
USING 0
miscEnterSleepMode:
; SOURCE LINE # 199
; {
; SOURCE LINE # 200
; if (SleepModeFlag) return;
; SOURCE LINE # 201
JB SleepModeFlag,?C0011
?C0010:
;
; #if DEBUGMSG
; printf("Enter SleepMode\n");
; #endif
;
; SleepModeFlag = 1;
; SOURCE LINE # 207
SETB SleepModeFlag
;
; disableOSD();
; SOURCE LINE # 209
LCALL disableOSD
; miscTurnOffPanel();
; SOURCE LINE # 210
LCALL miscTurnOffPanel
;
; miscClkOff();
; SOURCE LINE # 212
LCALL miscClkOff
;
; #if WITH_AUDIO
; setVolume(0);
; SOURCE LINE # 215
CLR A
MOV R7,A
LCALL _setVolume
; #endif
; }
; SOURCE LINE # 217
?C0011:
RET
; END OF miscEnterSleepMode
;
; //
; // Exit sleep mode
; //
; void miscExitSleepMode()
RSEG ?PR?miscExitSleepMode?MISC
USING 0
miscExitSleepMode:
; SOURCE LINE # 222
; {
; SOURCE LINE # 223
; if (!SleepModeFlag) return;
; SOURCE LINE # 224
JNB SleepModeFlag,?C0013
?C0012:
;
; #if DEBUGMSG
; printf("Exit SleepMode\n");
; #endif
;
; SleepModeFlag = 0;
; SOURCE LINE # 230
CLR SleepModeFlag
;
; miscClkOn();
; SOURCE LINE # 232
LCALL miscClkOn
;
;
;
; //setBrightness(eepData.brightness);
;
;
;
; }
; SOURCE LINE # 240
?C0013:
RET
; END OF miscExitSleepMode
;
;
;
; void miscClkOn(void)
RSEG ?PR?miscClkOn?MISC
USING 0
miscClkOn:
; SOURCE LINE # 244
; {
; SOURCE LINE # 245
; #if MASCOT_V
; RegByteOut(0x25, 0xFC);
; SOURCE LINE # 247
MOV R7,#025H
MOV R5,#0FCH
LCALL _RegByteOut
; #else
; TDAByteOut(0x80, 0xFC); // Power on MRT V2
; #endif
;
; RegBitOut(0x2F, 0x00, 0x10); // SCLK on
; SOURCE LINE # 252
MOV R7,#02FH
CLR A
MOV R5,A
MOV R3,#010H
LCALL _RegBitOut
; RegBitOut(0x2E, 0x80, 0x80); // DCLK on
; SOURCE LINE # 253
MOV R7,#02EH
MOV R5,#080H
MOV R3,#080H
LCALL _RegBitOut
; #if USE_GAMMA
; RegBitOut(0x50, 0x08, 0x08); // Gamma on
; #endif
; }
; SOURCE LINE # 257
RET
; END OF miscClkOn
;
;
; void miscClkOff(void)
RSEG ?PR?miscClkOff?MISC
USING 0
miscClkOff:
; SOURCE LINE # 260
; {
; SOURCE LINE # 261
; #if MASCOT_V
; RegByteOut(0x25, 0x80);
; SOURCE LINE # 263
MOV R7,#025H
MOV R5,#080H
LCALL _RegByteOut
; #else
; TDAByteOut(0x80, 0x00); // Power off MRT V2
; #endif
; #if USE_GAMMA
; RegBitOut(0x50, 0x00, 0x08); // Gamma off
; #endif
; #if 1 //(MASCOT_VZ + MASCOT_VXZ == 0)
; RegBitOut(0x2F, 0x10, 0x10); // SCLK off
; SOURCE LINE # 271
MOV R7,#02FH
MOV R5,#010H
MOV R3,#010H
LCALL _RegBitOut
; #endif
; RegBitOut(0x2E, 0x00, 0x80); // DCLK off
; SOURCE LINE # 273
MOV R7,#02EH
CLR A
MOV R5,A
MOV R3,#080H
LCALL _RegBitOut
; }
; SOURCE LINE # 274
RET
; END OF miscClkOff
;
;
;
;
;
;
; //
; // Delay (n) ms
; //
; void miscDelay(int n)
RSEG ?PR?_miscDelay?MISC
USING 0
_miscDelay:
;---- Variable 'n?940' assigned to Register 'R6/R7' ----
;---- Variable 'i?941' assigned to Register 'R4/R5' ----
; SOURCE LINE # 284
; {
; SOURCE LINE # 285
?C0016:
; unsigned int i;
;
; while (n--) {
; SOURCE LINE # 288
MOV A,R7
DEC R7
XCH A,R2
MOV A,R6
XCH A,R2
JNZ ?C0052
DEC R6
?C0052:
ORL A,R2
JZ ?C0020
; i = 1000/11 * CPUCLOCK/12; // one loop below takes about 11 us
; SOURCE LINE # 289
MOV R4,#00H
MOV R5,#05AH
?C0018:
; while (i--);
; SOURCE LINE # 290
MOV A,R5
DEC R5
XCH A,R2
MOV A,R4
XCH A,R2
JNZ ?C0053
DEC R4
?C0053:
ORL A,R2
JZ ?C0016
SJMP ?C0018
; }
; SOURCE LINE # 291
; }
; SOURCE LINE # 292
?C0020:
RET
; END OF _miscDelay
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -