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

📄 osdtimer.lst

📁 采用台湾MRT晶捷公司的MRT4方案的液晶电视的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
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 + -