📄 osdtimer.src
字号:
; OSDTIMER.SRC generated from: OSDTIMER.C
$NOMOD51
NAME OSDTIMER
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?timer0_isr?OSDTIMER SEGMENT CODE
?PR?timer0_init?OSDTIMER SEGMENT CODE
?PR?timer0_start?OSDTIMER SEGMENT CODE
?PR?timer0_stop?OSDTIMER SEGMENT CODE
EXTRN BIT (TimerOver)
EXTRN DATA (TimerCnt)
EXTRN DATA (CurrentTimerSet)
PUBLIC timer0_stop
PUBLIC timer0_start
PUBLIC timer0_init
; /************************************************
; * *
; * OSDETIMER.C: Timer control routines. *
; * *
; *************************************************/
; #include <reg51.h>
; #include "mosaic.h"
; #include "OSD.h"
; #include "global.h"
;
;
; #if USE_TIMER0
; /**************************************************************
; * Timer interrupt service routine *
; * it should be executed automatically when TIMER 0 overflows. *
; ***************************************************************/
;
CSEG AT 0000BH
LJMP timer0_isr
; static void timer0_isr(void) interrupt 1
RSEG ?PR?timer0_isr?OSDTIMER
USING 0
timer0_isr:
PUSH ACC
; SOURCE LINE # 18
; {
;
; if(TimerCnt == CurrentTimerSet)
; SOURCE LINE # 21
MOV A,TimerCnt+01H
XRL A,CurrentTimerSet+01H
JNZ ?C0007
MOV A,TimerCnt
XRL A,CurrentTimerSet
?C0007:
JNZ ?C0001
; /* Set the Disable OSD frame flag */
; TimerOver = 1;
; SOURCE LINE # 23
SETB TimerOver
SJMP ?C0003
?C0001:
; else
; TimerCnt++;
; SOURCE LINE # 25
INC TimerCnt+01H
MOV A,TimerCnt+01H
JNZ ?C0008
INC TimerCnt
?C0008:
;
;
; }
; SOURCE LINE # 28
?C0003:
POP ACC
RETI
; END OF timer0_isr
;
;
; /****************************************
; * Timer interrupt initialization *
; *****************************************/
; void timer0_init(void)
RSEG ?PR?timer0_init?OSDTIMER
USING 0
timer0_init:
; SOURCE LINE # 34
; {
; SOURCE LINE # 35
;
; TimerCnt = 0;
; SOURCE LINE # 37
CLR A
MOV TimerCnt,A
MOV TimerCnt+01H,A
;
; /* set timer 0 mode as software control interrupt and run on 16-bit mode */
; TMOD &= 0xF0; TMOD |= 0x01;
; SOURCE LINE # 40
ANL TMOD,#0F0H
ORL TMOD,#01H
;
; TL0 = (TIMER0_COUNT & 0x00FF);
; SOURCE LINE # 42
MOV TL0,#01H
; TH0 = (TIMER0_COUNT >> 8);
; SOURCE LINE # 43
MOV TH0,A
;
; /* enable timer 0 interrupt globly and stop timer running */
; ET0 = 1;
; SOURCE LINE # 46
SETB ET0
; TR0 = 0;
; SOURCE LINE # 47
CLR TR0
;
; /* Clean timer flag */
; TimerOver = 0;
; SOURCE LINE # 50
CLR TimerOver
;
; }
; SOURCE LINE # 52
RET
; END OF timer0_init
;
; /****************************************
; * Start Timer *
; *****************************************/
; void timer0_start (void)
RSEG ?PR?timer0_start?OSDTIMER
USING 0
timer0_start:
; SOURCE LINE # 57
; {
; SOURCE LINE # 58
;
;
; /* load timer */
;
; #if (CPUCLOCK == 12)
; /* 1000000 US / 65536 US = 15 */
; CurrentTimerSet = DEF_osdTiming * 15;
; SOURCE LINE # 65
MOV CurrentTimerSet,#01H
MOV CurrentTimerSet+01H,#0C2H
; #else
; CurrentTimerSet = DEF_osdTiming * 30;
; #endif
;
; TR0 = 1;
; SOURCE LINE # 70
SETB TR0
;
;
;
; }
; SOURCE LINE # 74
RET
; END OF timer0_start
;
; /****************************************
; * Stop Timer *
; *****************************************/
; void timer0_stop (void)
RSEG ?PR?timer0_stop?OSDTIMER
USING 0
timer0_stop:
; SOURCE LINE # 79
; {
; SOURCE LINE # 80
; /* stop timer 0 */
; TR0 = 0;
; SOURCE LINE # 82
CLR TR0
; TimerCnt = 0;
; SOURCE LINE # 83
CLR A
MOV TimerCnt,A
MOV TimerCnt+01H,A
; }
; SOURCE LINE # 84
RET
; END OF timer0_stop
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -