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

📄 timer.lst

📁 mtv512mg + mx88v462 液晶电视驱动C完整程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.50   TIMER                                                                 12/14/2006 10:36:34 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TIMER
OBJECT MODULE PLACED IN .\Timer.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\Source\Timer.c LARGE DEBUG OBJECTEXTEND PRINT(.\Timer.lst) OBJECT(.\Time
                    -r.obj)

line level    source

   1          #include "..\inc\public2.h"
   2          
   3          #define  IR_CusCode     0x04
   4          
   5          code    BYTE    Key_Table[64] =
   6          {       
   7                  00,00,00,00,00,01,01,01,
   8                  01,01,01,01,01,01,01,01,
   9                  02,02,02,02,02,02,02,02,
  10                  02,02,03,03,03,03,03,03,
  11                  03,04,04,04,04,04,04,04,
  12                  04,04,04,04,05,05,05,05,
  13                  05,05,05,05,05,06,06,06,
  14                  06,0x6,0x6,0x6,0xF,0xF,0xF,0xF,
  15          };
  16          
  17          data    unsigned char   DLYTimer;
  18          data    unsigned int    OSDTimer;
  19          data    unsigned int    SleepTimer;
  20          
  21          data    BYTE    KeyTimer;
  22          data    BYTE    KeyFlag;
  23          data    BYTE    Key;
  24          
  25          data    bit             IR_INT0,IR_INT=1;
  26          
  27          data    BYTE    IR_RevCusCode;
  28          data    BYTE    IR_RevCusCode_B;
  29          
  30          data    BYTE    IR_Value = 0xFF,IR_NUM = 0xFF;
  31          
  32          data    BYTE    Key_Input0,Key_Input =0x77,Key_Value = 0xFF;
  33          
  34          data    BYTE    Key_AD1,Key_AD2;
  35          
  36          data    BYTE    IR_RevDataCode = 0xFF;
  37          data    BYTE    TMR0_CNT = 0;
  38          
  39          data    BYTE    SecTimer;
  40          data    unsigned int    NoSigTimer;
  41          
  42          data    BYTE    IR_Snd;
  43                  
  44          data    BYTE    IR_Rev_CNT;
  45          data    BYTE    IR_RevCode;
  46          data    BYTE    IR_SndDataCode;
  47          
  48          data    unsigned int    IR_TMR = 0xFFFF;
  49          
  50          data    BYTE    IR_TMP = 0;
  51          data    BYTE    IR_SndStatus = 0, IR_Snd_CNT = 0xFF, IR_SndCode_CNT, IR_SndBit_CNT;
  52          data    BYTE    TEST = 0;
  53          data    BYTE    IR_OUT = 1;
  54          
C51 COMPILER V7.50   TIMER                                                                 12/14/2006 10:36:34 PAGE 2   

  55          data    bit             IR_Pressed = 0, Key_Pressed = 0;
  56          
  57          void    IR_Send_Code();
  58          
  59          /**--------------------------------------------------------------------------
  60          * Name          void Timer_Init(void)
  61          *
  62          * Description   Init Timer,
  63          *               Timer2 for UART setting Baud rate=38400 in 27MHz
  64          *
  65          * Return
  66          * DATE          Author          Description
  67          * ===========================================================================
  68          * 2004/06/24    Eson W.
  69          * 2005/09/11    Microntek       Modified
  70          **/
  71          void Timer_Init(void)
  72          {
  73   1          SCON  = 0x50;
  74   1      
  75   1          TI = 0;                                 //Clear UART Tx and Rx
  76   1          RI = 0;
  77   1      
  78   1                                                  //************************************************
  79   1                                                  //******    Set Timer0 /Timer1              ******
  80   1                                                  //************************************************
  81   1      
  82   1          TMOD=0x21;                              //Timer0 in Mode 1, and Timer1 in Mode 2
  83   1      
  84   1              TR0 = 0;                                                                //Stop timer 0
  85   1          TH0=0xD8;                               //Timer0 working in Mode 1 and set 5m sec.
  86   1          TL0=0xF0;                               //Working Cry=24MHz 1/24M * 12 = 0.5us
  87   1                                                  //10ms = 0.5 * 10000
  88   1                                                  //TH0 = (65536 - 10000) / 256 = 0xD8
  89   1                                                  //TL0 = (65536 - 10000) % 256 = 0xF0
  90   1          TR0 = 1;                                //Enable Timer 0        
  91   1      
  92   1                                                                                              // ETimer For IR Receiving and Sending
  93   1              ETMOD = 0x00;                                                   // Count Up
  94   1              ETCTR = 0x00;                                                   // TR2 = 0
  95   1              RCAPETH = 0xFF;
  96   1              RCAPETL = 0x8F;
  97   1              THET = 0xFF;
  98   1              TLET = 0x8F;
  99   1              
 100   1              ETCTR |= 0x04;                                                  // TR2 = 1
 101   1              
 102   1              ETCTR &= 0x7F;                                                  // TF2 = 0
 103   1              
 104   1              EINT1PEN = 0x40;                                                // Enable ETimer Interrupt
 105   1                                                                                              
 106   1                                                                                              // Timer1 for BAUD RATE GENERATOR
 107   1              TR1 = 0;                                                                // Stop timer 1
 108   1          TH1 = 243;                                                          // 243 for Baud Rate 9600 bps
 109   1          TL1 = 243;                                                          //
 110   1                                                  //
 111   1          TR1 = 1; 
 112   1                                                              // Start count Timer1
 113   1          TF1 = 0;
 114   1      
 115   1              PCON = 0x80;                                                    // SMOD1 = 1 for Baud Rate Generator
 116   1      
C51 COMPILER V7.50   TIMER                                                                 12/14/2006 10:36:34 PAGE 3   

 117   1              IT0 = 1;
 118   1              IE0 = 0;
 119   1      
 120   1              IP = 0x14;      //14                                                    //  Interrupt Priority                                          //      |
 121   1                                                                                              //      bit7:Reserved                                                   //      |
 122   1                                                                                              //      bit6:TIMER2 IRQ                                                 //      |
 123   1                                                                                              //      bit5:IIC                                                                //      |
 124   1                                                                                              //      bit4:UART                               1st Priority    //      |
 125   1                                                                                              //      bit3:TIMER1 IRQ                                                 //      |
 126   1                                                                                              //      bit2:External/INT1                                              //      |
 127   1                                                                                              //      bit1:TIMER0 IRQ                                                 //      |
 128   1                                                                                              //      bit0:Enable External/INT0                               //      |
 129   1                                                                      
 130   1              IE = 0x97;                                                              //8051 Interrupt IRQ setting                            //      |
 131   1                                                                                              //      bit7:All IRQ setting,EA=1                               //      |
 132   1                                                                                              //      bit6:TIMER2 IRQ                                                 //      |
 133   1                                                                                              //      bit5:IIC                                                                //      |
 134   1                                                                                              //      bit4:UART                                                               //      |
 135   1                                                                                              //      bit3:TIMER1 IRQ                                                 //      |
 136   1                                                                                              //      bit2:External/INT1                                              //      |
 137   1                                                                                              //      bit1:TIMER0 IRQ                                                 //      |
 138   1                                                                                              //      bit0:Enable External/INT0                               //      |
 139   1      }
 140          
 141          /**--------------------------------------------------------------------------
 142          * Name          void    interrupt   Timer0()
 143          *
 144          * Description   This is a timer interrupt. It will entry when every 10ms.
 145          *               It will Dec. Interval counter when Service flag setting
 146          *
 147          * Flow Chart
 148          *
 149          * Return
 150          *
 151          * DATE          Author          Description
 152          * ===========================================================================
 153          * 2003-02-20    KM Ho           This is first time implement
 154          * 2005-09-11    Microntek       Modified
 155          **/
 156          void Timer0(void) interrupt 1 using 3
 157          {
 158   1          TR0 = 0;                                //STOP COUNT Timer0
 159   1      
 160   1              if ( DLYTimer ) DLYTimer --;
 161   1              
 162   1              TMR0_CNT = (TMR0_CNT+1)&0x1;
 163   1              
 164   1              if ( IR_TMR > 900 )
 165   1              {
 166   2                      IR_Pressed = 0;
 167   2              }
 168   1              
 169   1              Key_Input0 = Key_Input;
 170   1                              
 171   1      /*

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -