📄 osdtimer.lst
字号:
C51 COMPILER V6.23a OSDTIMER 09/10/2004 16:09:05 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE OSDTIMER
OBJECT MODULE PLACED IN OSDTIMER.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE OSDTIMER.C OPTIMIZE(6,SIZE) ORDER DEFINE(DEBUGMSG=0,DEBUGTOOL=0) DEBUG OBJE
-CTEXTEND CODE SYMBOLS
stmt level source
1 /************************************************
2 * *
3 * OSDETIMER.C: Timer control routines. *
4 * *
5 *************************************************/
6 #include <reg51.h>
7 #include "mascot.h"
8 #include "OSD.h"
9 #include "global.h"
10
11
12 #if USE_TIMER0
13 /**************************************************************
14 * Timer interrupt service routine *
15 * it should be executed automatically when TIMER 0 overflows. *
16 ***************************************************************/
17
18 static void timer0_isr(void) interrupt 1
19 {
20 1 TL0 = (TIMER0_COUNT & 0x00FF);
21 1 TH0 = (TIMER0_COUNT >> 8);
22 1
23 1 TimerCnt++;
24 1
25 1 if(TimerCnt == 10)
26 1 {
27 2 TimerCnt = 0;
28 2 if(CurrentTimerSet > 0)
29 2 {
30 3 CurrentTimerSet--;
31 3 if(CurrentTimerSet == 0)
32 3 TimerOver = 1;
33 3 }
34 2 if(MoveCnt > 0)
35 2 MoveCnt--;
36 2
37 2 if(PanelOnFlag)// by seven 030717 PotTimerFlag)
38 2 {
39 3 CurrentTimerSet2--;
40 3 if(CurrentTimerSet2 == 0)
41 3 {
42 4 TimerOver2 = 1;
43 4 CurrentTimerSet2 = 10 * 60 * 30;
44 4 }
45 3
46 3 }
47 2 }
48 1 }
49
50
51 /****************************************
52 * Timer interrupt initialization *
53 *****************************************/
54 void timer0_init(void)
C51 COMPILER V6.23a OSDTIMER 09/10/2004 16:09:05 PAGE 2
55 {
56 1
57 1 /* set timer 0 mode as software control interrupt and run on 16-bit mode */
58 1 TMOD &= 0xF0; TMOD |= 0x01;
59 1
60 1 TL0 = (TIMER0_COUNT & 0x00FF);
61 1 TH0 = (TIMER0_COUNT >> 8);
62 1
63 1 /* enable timer 0 interrupt globly and stop timer running */
64 1 ET0 = 1;
65 1 TR0 = 0;
66 1
67 1 /* Clean timer flag */
68 1 TimerOver = 0;
69 1 TimerCnt = 0;
70 1 CurrentTimerSet = 0;
71 1 }
72
73 /****************************************
74 * Start Timer *
75 *****************************************/
76 void timer0_start (void)
77 {
78 1 TR0 = 1;
79 1 }
80
81 /****************************************
82 * Stop Timer *
83 *****************************************/
84 /*
85 void timer0_stop (void)
86 {
87 TR0 = 0;
88 TimerCnt = 0;
89 }
90 */
91
92 #endif
C51 COMPILER V6.23a OSDTIMER 09/10/2004 16:09:05 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION timer0_isr (BEGIN)
0000 C0E0 PUSH ACC
0002 C0D0 PUSH PSW
0004 75D000 MOV PSW,#00H
0007 C000 PUSH AR0
; SOURCE LINE # 18
; SOURCE LINE # 20
0009 758AF0 MOV TL0,#0F0H
; SOURCE LINE # 21
000C 758CD8 MOV TH0,#0D8H
; SOURCE LINE # 23
000F 0500 E INC TimerCnt+01H
0011 E500 E MOV A,TimerCnt+01H
0013 7002 JNZ ?C0010
0015 0500 E INC TimerCnt
0017 ?C0010:
; SOURCE LINE # 25
0017 640A XRL A,#0AH
0019 4500 E ORL A,TimerCnt
001B 7043 JNZ ?C0007
; SOURCE LINE # 26
; SOURCE LINE # 27
001D F500 E MOV TimerCnt,A
001F F500 E MOV TimerCnt+01H,A
; SOURCE LINE # 28
0021 D3 SETB C
0022 E500 E MOV A,CurrentTimerSet+01H
0024 9400 SUBB A,#00H
0026 E500 E MOV A,CurrentTimerSet
0028 6480 XRL A,#080H
002A 9480 SUBB A,#080H
002C 4010 JC ?C0002
; SOURCE LINE # 29
; SOURCE LINE # 30
002E E500 E MOV A,CurrentTimerSet+01H
0030 1500 E DEC CurrentTimerSet+01H
0032 7002 JNZ ?C0011
0034 1500 E DEC CurrentTimerSet
0036 ?C0011:
; SOURCE LINE # 31
0036 E500 E MOV A,CurrentTimerSet+01H
0038 4500 E ORL A,CurrentTimerSet
003A 7002 JNZ ?C0002
; SOURCE LINE # 32
003C D200 E SETB TimerOver
; SOURCE LINE # 33
003E ?C0002:
; SOURCE LINE # 34
003E 7800 E MOV R0,#LOW MoveCnt
0040 E6 MOV A,@R0
0041 D3 SETB C
0042 9400 SUBB A,#00H
0044 4001 JC ?C0004
; SOURCE LINE # 35
0046 16 DEC @R0
0047 ?C0004:
; SOURCE LINE # 37
0047 300016 E JNB PanelOnFlag,?C0007
; SOURCE LINE # 38
C51 COMPILER V6.23a OSDTIMER 09/10/2004 16:09:05 PAGE 4
; SOURCE LINE # 39
004A E500 E MOV A,CurrentTimerSet2+01H
004C 1500 E DEC CurrentTimerSet2+01H
004E 7002 JNZ ?C0012
0050 1500 E DEC CurrentTimerSet2
0052 ?C0012:
; SOURCE LINE # 40
0052 E500 E MOV A,CurrentTimerSet2+01H
0054 4500 E ORL A,CurrentTimerSet2
0056 7008 JNZ ?C0007
; SOURCE LINE # 41
; SOURCE LINE # 42
0058 D200 E SETB TimerOver2
; SOURCE LINE # 43
005A 750046 E MOV CurrentTimerSet2,#046H
005D 750050 E MOV CurrentTimerSet2+01H,#050H
; SOURCE LINE # 44
; SOURCE LINE # 46
; SOURCE LINE # 47
; SOURCE LINE # 48
0060 ?C0007:
0060 D000 POP AR0
0062 D0D0 POP PSW
0064 D0E0 POP ACC
0066 32 RETI
; FUNCTION timer0_isr (END)
; FUNCTION timer0_init (BEGIN)
; SOURCE LINE # 54
; SOURCE LINE # 55
; SOURCE LINE # 58
0000 5389F0 ANL TMOD,#0F0H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -