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

📄 intfun.lst

📁 单片机8052下红外线接收例子
💻 LST
字号:
C51 COMPILER V7.10   INTFUN                                                                12/15/2007 16:23:18 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE INTFUN
OBJECT MODULE PLACED IN Intfun.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Intfun.c OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*********************************************************************************************************
   2          **
   3          **                                  (c) Copyright 2004-2006
   4          **                                    All Rights Reserved
   5          **
   6          **
   7          **                                    版权所有:朗顿科技
   8          **                                   http://www.ldmcu.com
   9          **
  10          ********************************************************************************************************/
  11          
  12          #include <Gendef.h>
  13          #include <Val.h>
  14          #include <stdio.h>
  15          #include<intrins.h>
  16          
  17          void ErrRst(void)
  18          {
  19   1              EX0 = TRUE;
  20   1              ET0 = FALSE;
  21   1              TR0 = FALSE;
  22   1                      
  23   1              RecTem = 0;
  24   1              RecBitCoun = 0;
  25   1              RecBytCoun = 0;
  26   1              
  27   1              RecStart = FALSE;
  28   1              Recend = FALSE;
  29   1              DatRecFlag = FALSE;
  30   1              Status = RECRET0;
  31   1      }
  32          
  33          void Ex0Int(void) interrupt 0 using 1
  34          {
  35   1      
  36   1      //      P1 = ~Status;
  37   1      
  38   1              if(Status == RECRET0){
  39   2                      
  40   2                      EX0 = FALSE;
  41   2                      ET0 = TRUE;
  42   2                      
  43   2                      Status = RECRET1;
  44   2      
  45   2                      TR0 = FALSE;
  46   2                      TH0 = TimRefTH[Status];
  47   2                      TL0 = TimRefTL[Status];
  48   2                      TR0 = TRUE;
  49   2      
  50   2              }else if (Status == RECRET4){
  51   2              
  52   2                      Status++;
  53   2                      RecTem = 0x00;
  54   2                      RecBitCoun = 0x00;
  55   2                      RecBytCoun = 0x00;
C51 COMPILER V7.10   INTFUN                                                                12/15/2007 16:23:18 PAGE 2   

  56   2                      RecStart = TRUE;
  57   2                      Recend = FALSE;
  58   2                      DatRecFlag = FALSE;
  59   2      
  60   2                      TR0 = FALSE;
  61   2                      TH0 = TimRefTH[Status];
  62   2                      TL0 = TimRefTL[Status];
  63   2                      TR0 = TRUE;     
  64   2                      
  65   2              }else if(RecStart == TRUE){
  66   2      
  67   2                      {
  68   3                              INT16U RecReg;
  69   3      
  70   3                              RecReg = ((TH0<<8) & 0xFF00) | (TL0 & 0xFF);
  71   3                              RecTem >>= 1;
  72   3                              if((RecReg > ZERLOWLMT) && (RecReg < ZERHGHLMT)){                               
  73   4                                      RecTem &= 0x7F;
  74   4                              }else if((RecReg > ONELOWLMT) && (RecReg < ONEHGHLMT)){ 
  75   4                                      RecTem |= 0x80;
  76   4                              }else{
  77   4                                      ErrRst();
  78   4      
  79   4                                      TI = 0;
  80   4                                      SBUF = 'A';
  81   4                                      while(TI == 0);
  82   4                                      TI = 1;
  83   4      
  84   4                                      TI = 0;
  85   4                                      SBUF = (RecReg >> 8) & 0xFF;
  86   4                                      while(TI == 0);
  87   4                                      TI = 1;
  88   4                                      
  89   4                                      TI = 0;
  90   4                                      SBUF = RecReg & 0xFF;
  91   4                                      while(TI == 0);
  92   4                                      TI = 1;
  93   4      
  94   4                              }
  95   3                                              
  96   3                              if(++RecBitCoun >= 8){
  97   4                                      RecBitCoun = 0;
  98   4                                      DatRecBuff[RecBytCoun++] = RecTem;
  99   4      
 100   4                              }
 101   3                              if(RecBytCoun >= 4){
 102   4      
 103   4      //                              EX0 = TRUE;
 104   4                                      TR0 = FALSE;
 105   4                                      ET0 = FALSE;
 106   4                              
 107   4                                      RecTem = 0;
 108   4                                      RecBitCoun = 0;
 109   4                                      RecBytCoun = 0;
 110   4                                      
 111   4                                      RecStart = FALSE;
 112   4                                      Recend = TRUE;
 113   4                                      DatRecFlag = TRUE;
 114   4                                      Status = RECRET0;       
 115   4      
 116   4      //                              P1 = 0x0F;
 117   4      
C51 COMPILER V7.10   INTFUN                                                                12/15/2007 16:23:18 PAGE 3   

 118   4                                      {
 119   5                                              
 120   5                                              EX0 = FALSE;
 121   5                                              EA = FALSE;
 122   5      
 123   5                                              IrdaS = 1;
 124   5                                              while(IrdaS == 0);
 125   5      
 126   5                                              
 127   5                                              IrdaS = 1;
 128   5                                              while(IrdaS == 0);
 129   5      
 130   5                                              EX0 = TRUE;
 131   5                                              EA = TRUE;
 132   5                                              
 133   5                                      }
 134   4                                      
 135   4                              }
 136   3                      }
 137   2      
 138   2                      if((Recend == FALSE)&&(Status == RECRET5)){
 139   3                              TR0 = FALSE;
 140   3                              TH0 = TimRefTH[Status];
 141   3                              TL0 = TimRefTL[Status];
 142   3                              TR0 = TRUE;
 143   3                      }
 144   2      
 145   2              }else{
 146   2              
 147   2                      ErrRst();
 148   2              
 149   2              }
 150   1      }
 151          
 152          void Tim0Int(void) interrupt 1 using 1
 153          {
 154   1              Status++;
 155   1      
 156   1      //      P1 = ~Status;
 157   1      
 158   1              if(1 == Status)
 159   1              {
 160   2      //              P1 = ~0xAF;
 161   2                      while(1);
 162   2              }
 163   1      
 164   1              if(RecStart == TRUE)
 165   1              {
 166   2              
 167   2                      ErrRst();
 168   2                      
 169   2              }else{
 170   2      
 171   2                      if((Status == RECRET2)||(Status == RECRET3)){
 172   3                              
 173   3                              if(IrdaS == 1){
 174   4      
 175   4                                      ErrRst();
 176   4      
 177   4                              }
 178   3                      }
 179   2      
C51 COMPILER V7.10   INTFUN                                                                12/15/2007 16:23:18 PAGE 4   

 180   2                      if(Status == RECRET4){
 181   3      
 182   3                              if(IrdaS == 0){
 183   4                                      ErrRst();
 184   4      
 185   4                              }else{
 186   4                                      ET0 = TRUE;
 187   4                                      EX0 = TRUE;
 188   4                              }
 189   3                      }
 190   2      
 191   2                      if(Status != RECRET0)
 192   2                      {
 193   3                              TR0 = FALSE;
 194   3                              TH0 = TimRefTH[Status];
 195   3                              TL0 = TimRefTL[Status];
 196   3                              TR0 = TRUE;
 197   3                      }
 198   2      
 199   2              }
 200   1      }
 201          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    418    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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