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

📄 top1838.lst

📁 1838红外编码检测程序
💻 LST
字号:
C51 COMPILER V7.06   TOP1838                                                               04/12/2009 15:30:57 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE TOP1838
OBJECT MODULE PLACED IN TOP1838.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TOP1838.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h>
   2          #include<intrins.h>
   3          #define uint unsigned int 
   4          #define uchar unsigned char 
   5          sbit wei=P2^7;
   6          sbit input=P3^2;
   7          uchar n=0,n0=0;
   8          uint  sum=0,get=0,get1=0,get0=0;shu=0x0001;
   9          uchar code table1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};
  10          uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  11          uint checkdata();
  12          void systeminitial()
  13          {
  14   1              TMOD=0x21;
  15   1              TH1=0xfd;//初值
  16   1              TL1=0xfd;
  17   1              TR1=1;//开启T1
  18   1              PCON=0x80;
  19   1              SM0=0;//波特率的方式
  20   1              SM1=1;
  21   1              IT0=1;
  22   1              EX0=1;
  23   1              EA=1;
  24   1              ET0=1;
  25   1              TH0=0x00;
  26   1              TL0=0x00;
  27   1      }
  28          void main()
  29          {
  30   1              systeminitial();
  31   1              while(1);
  32   1      }
  33          void in()interrupt 0
  34          {
  35   1                      EX0=0;
  36   1                      TR0=1;
  37   1                  while(input==0);
  38   1                      TR0=0;
  39   1              sum=TH0*256+TL0;
  40   1                      TH0=0x00;
  41   1                      TL0=0x00;
  42   1      
  43   1              if(sum>8000)
  44   1                      {
  45   2                              TR0=1;
  46   2                      while(input==1);
  47   2                      TR0=0;
  48   2                      sum=TH0*256+TL0;
  49   2                              TH0=0x00;
  50   2                              TL0=0x00;
  51   2                              
  52   2                          if(sum>3500)
  53   2                                      { 
  54   3                                              for(n=0;n<16;n++) get0=checkdata();
  55   3                                              shu=0x0001;
C51 COMPILER V7.06   TOP1838                                                               04/12/2009 15:30:57 PAGE 2   

  56   3                                              for(n=0;n<16;n++) get1=checkdata();
  57   3                                              shu=0x0001;
  58   3                                              while(input==0);
  59   3                                              get1=get1%256;
  60   3                                              wei=0;
  61   3                                              if(get1==0x56)
  62   3                                              {
  63   4                                                P0=table1[n0];
  64   4                                                n0++;
  65   4                                                if(n0==6) n0=0;
  66   4      
  67   4                                                SBUF=0x75;
  68   4                                                while(!TI);
  69   4                                                TI=0;
  70   4                                                SBUF=0x70;
  71   4                                                while(!TI);
  72   4                                                TI=0;
  73   4                                                SBUF=0x20;
  74   4                                                while(!TI);
  75   4                                                TI=0;
  76   4                                               }
  77   3                                              else if(get1==0x57)
  78   3                                              {
  79   4                                                if(n0>0) n0--;
  80   4                                                P0=table1[n0];
  81   4                                                if(n0==0) n0=6;
  82   4      
  83   4                                                SBUF=0x64;
  84   4                                                while(!TI);
  85   4                                                TI=0;
  86   4                                                SBUF=0x6f;
  87   4                                                while(!TI);
  88   4                                                TI=0;
  89   4                                                SBUF=0x77;
  90   4                                                while(!TI);
  91   4                                                TI=0;
  92   4                                                SBUF=0x6e;
  93   4                                                while(!TI);
  94   4                                                TI=0;
  95   4                                                SBUF=0x20;
  96   4                                                while(!TI);
  97   4                                                TI=0;
  98   4      
  99   4                                               }
 100   3                                              else
 101   3                                              {
 102   4                                                      get1=get1%16;
 103   4                                                      P0=table[get1];
 104   4      
 105   4                                                      SBUF=get1+0x30;
 106   4                                                      while(!TI);
 107   4                                                      TI=0;
 108   4                                                      SBUF=0x20;
 109   4                                                  while(!TI);
 110   4                                                  TI=0;
 111   4                                                      n0=0;
 112   4                                              }
 113   3                                              get=0;
 114   3                                              get0=0;
 115   3                                              get1=0;
 116   3                                      }
 117   2                      }
C51 COMPILER V7.06   TOP1838                                                               04/12/2009 15:30:57 PAGE 3   

 118   1                      IE0=0;
 119   1                      EX0=1;
 120   1      }
 121          uint checkdata()
 122          {
 123   1              while(input==0);
 124   1              TR0=1;
 125   1              while(input==1);
 126   1              TR0=0;
 127   1              sum=TH0*256+TL0;
 128   1              TH0=0x00;
 129   1              TL0=0x00;
 130   1              if(sum>1000)
 131   1                      {
 132   2                              get=get|shu;
 133   2                              shu=_irol_(shu,1);
 134   2                      }
 135   1              else    shu=_irol_(shu,1);
 136   1              return  get;
 137   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    518    ----
   CONSTANT SIZE    =     17    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12    ----
   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 + -