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

📄 irint.lst

📁 TFT 驱动 T100DEMO程序.做protable DVD的朋友可以参考一下.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   IRINT                                                                 03/23/2005 16:17:54 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE IRINT
OBJECT MODULE PLACED IN C:\T100_S~1\IRINT.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\T100_S~1\IRINT.C DB SB OE

stmt level    source

   1          //#ifdef INTERRUPT1
   2          #include "reg51.h"
   3          #include <intrins.h>
   4          //#include "Common.h"
   5          #include "Remote.h"
   6          //#include "KeyPad.h"
   7          //#include "OSDDraw.h"
   8          //#include "TwoWire.h"
   9          //#include "T101_Util.h"
  10          
  11          //extern uWORD XCLK_MCU;
  12          extern bit ir_enable;
  13          extern uCHAR ir_data;
*** ERROR C129 IN LINE 13 OF C:\T100_S~1\IRINT.C: missing ';' before 'ir_data'
  14          uCHAR idata ir_data1;
  15          //extern uWORD count1;
  16          //extern bit IRFACTRY_Ctrl(uCHAR cCom);
  17          
  18          bit Filter13(bit le)
  19          {
  20                  bit r;
  21                  r=INT1;
  22                  if(le==1)
  23                  {
  24                          _nop_();
  25                          _nop_();
  26                          _nop_();
  27                          r&=INT1;
  28                          _nop_();
  29                          _nop_();
  30                          _nop_();
  31                          r&=INT1;
  32                  }
  33                  else
  34                  {
  35                          _nop_();
  36                          _nop_();
  37                          _nop_();
  38                          r|=INT1;
  39                          _nop_();
  40                          _nop_();
  41                          _nop_();
  42                          r|=INT1;
  43                  }
  44                  if(r==le)
  45                          return 1;
  46                  else
  47                          return 0;
  48          }
  49          /*遥控接收在此中断程序内完成
  50            数据放在ir_data内*/
  51          /************************************/
  52          /*  Interrupt for IR subroutine     */
  53          /*  external interrupt source INT0  */
  54          /************************************/
C51 COMPILER V7.06   IRINT                                                                 03/23/2005 16:17:54 PAGE 2   

  55          void int1Remote(void) interrupt 2
  56          {
  57          /*    static uWORD IR_HEAD=20000;//     =       (XCLK_MCU*3/4);//10738//9000//7500
  58                  static uWORD OFF_CODE=10000;//  =   (IR_HEAD/2);//5369//4500//3750
  59                  uWORD OFF_REP;//        =       (IR_HEAD/4);//2684//2250//      1875
  60                  uWORD REP_CODE;//       =       (IR_HEAD/16);//667//467
  61                  uWORD DELTA ;//    =    300;//250
  62                  uWORD CODE_0_TIME;//=   (IR_HEAD/16);//667//557//467
  63                  uWORD CODE_1_TIME;//=   (CODE_0_TIME*3);//2000//1670//1400*/
  64                  register BYTE i;
  65                  unsigned int count,count1;              /*计时变量*/
  66                  unsigned int  temp0,temp1,ir_code=0;
  67                  ir_enable=TRUE;
  68                  TMOD=0x11;             /*timer 0 operate in 16 bit mode*/
  69                  EX1=0;
  70                  TL0=0;
  71                  TH0=0;
  72                  TR0=1;
  73                  /************************************/
  74                  /*   Detect IR Head                 */
  75                  /************************************/
  76                  do                /*Detect IR head 9mS*/
  77                  {
  78                          count=(TL0+TH0*256);   /*count :us unit */
  79                          if(Filter13(1)==1) break;
  80                  }while(count<=(IR_HEAD+DELTA));
  81                  TR0=0;                  /*停止计时*/
  82                          count=(TL0+TH0*256);   /*count :us unit */
  83          
  84                  if(Filter13(0)==1||((count<(IR_HEAD-DELTA*25))))//&&(IR_HEAD!=0xffff)))//||count<(7000))//IR_HEAD!=0xffff
             -)       /*for some noise disturb IR*/
  85                          {
  86                          ir_enable=FALSE; /* no IR head or not suitable for Ir head*/
  87                          EX1=1;
  88                          TR0=1;
  89                          return;
  90                          }
  91                  /************************************/
  92                  /*   Detect OFF CODE     4.5mS      */
  93                  /************************************/
  94                  while(Filter13(0)==1);
  95                  TR0=0;
  96                  TL0=0;
  97                  TH0=0;
  98                  TR0=1;
  99                  do                /*Detect IR OFF CODE*/
 100                  {
 101                          count=(TL0+TH0*256);   /*count :us unit */
 102                          if(Filter13(0)==1) break;
 103                  }while(count<(OFF_CODE+DELTA));
 104                  count1=count;
 105           /*  if(IR_HEAD==0xffff)IR_HEAD =       count*2;//10738//9000//7500
 106                  OFF_CODE  =   IR_HEAD/2;//5369//4500//3750
 107                  OFF_REP =       (IR_HEAD/4);//2684//2250//      1875
 108                  REP_CODE        =       (IR_HEAD/16);//667//467
 109                  DELTA     =     300;//250
 110                  CODE_0_TIME=    (IR_HEAD/16);//667//557//467
 111                  CODE_1_TIME=    (CODE_0_TIME*3);//2000//1670//1400*/
 112                  TR0=0;
 113                  count=(TL0+TH0*256);   /*count :us unit */
 114                  if(count<=(OFF_CODE-DELTA*2))
 115                  {
C51 COMPILER V7.06   IRINT                                                                 03/23/2005 16:17:54 PAGE 3   

 116                          /*重复码OFF=2.25*/
 117                          if((count>(OFF_REP-DELTA)&&count<(OFF_REP+DELTA)))
 118                          {
 119                                  TR0=0;
 120                                  TL0=0;
 121                                  TH0=0;
 122                                  TR0=1;
 123                                  do
 124                                  {
 125                                          count=(TL0+TH0*256);   /*count :us unit */
 126                                          if(Filter13(1)==1) break;
 127                                  }while(count<=(REP_CODE+DELTA));
 128                                  TR0=0;
 129                                  count=(TL0+TH0*256);   /*count :us unit */
 130                                  if(INT1==1)
 131                                  {
 132                                          TR0=0;
 133                                          if(ir_data==REMOTE_KEY_VO_DEC||ir_data==REMOTE_KEY_VO_INC||
 134                                          ir_data==REMOTE_KEY_DECR||ir_data==REMOTE_KEY_INCR)
 135                                          {
 136                                          ir_enable=TRUE; /*注意:ir_data不变*/
 137                                          EX1=0;
 138                                          }
 139                                          else
 140                                          {
 141                                          ir_data=0;
 142                                          ir_enable=FALSE;
 143                                          EX1=1;
 144                                          TR0=1;
 145                                          }
 146                                          return;
 147                                  }
 148                          }
 149                          else
 150                          {
 151                                  ir_enable=FALSE;   /*not suitable for off code*/
 152                                  EX1=1;
 153                                  TR0=1;
 154                                  return;
 155                          }
 156                  }
 157                  /************************************/
 158                  /*   Detect 16 bit address code     */
 159                  /************************************/
 160                  if(ir_enable==TRUE)
 161                  {
 162                          TMOD=0x11;           /*counter start with INT0 and TR0*/
 163                          ir_code=0;              /*初始化变量*/
 164                          for(i=0;i<16;i++)
 165                          {
 166                                  while(INT1==0);

⌨️ 快捷键说明

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