yaokongc.lst

来自「单片机红外解码及无线解码的应用」· LST 代码 · 共 307 行

LST
307
字号
C51 COMPILER V7.01  YAOKONGC                                                               10/30/2005 10:41:47 PAGE 1   


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

stmt level    source

   1          //dvd
   2          
   3          #include <reg51.h>
   4          #define uchar unsigned char
   5          #define uint unsigned int
   6          sbit IR=P1^7;
   7          //sbit JK1=P3^7;
   8          //sbit JK2=P3^6;
   9          
  10          //sbit JK0=P0^2;
  11          sbit JK1=P1^6;
  12          sbit JK2=P1^5;
  13          sbit JK3=P1^4;
  14          sbit JK4=P1^3;
  15          sbit JK5=P1^2;
  16          sbit JK6=P1^1;
  17          
  18          
  19          
  20          uchar datacode[5];
  21          uchar serior[4]={0xAA,0X55,0XA5,0X00};
  22          
  23          void delay0(void)
  24          {
  25   1      uchar i=145;
  26   1      while(i--);
  27   1      }
  28          
  29          void delay1(void)
  30          {
  31   1      uchar i=70;
  32   1      while(i--);
  33   1      }
  34          
  35          
  36          void delay2(void)
  37          {
  38   1      uint i=4600;
  39   1      while(i--);
  40   1      }
  41          
  42          
  43          void delay3(void)
  44          {
  45   1      uchar i=30;
  46   1      while(i--);
  47   1      }
  48          
  49          
  50          void delay(void)
  51          {
  52   1      uchar j,k;
  53   1      //for(i=0;i<1;i++)
  54   1      for (j=0;j<50;j++)
  55   1      for (k=0;k<50;k++);
C51 COMPILER V7.01  YAOKONGC                                                               10/30/2005 10:41:47 PAGE 2   

  56   1      }
  57          
  58          uchar yaokong (void)
  59          {
  60   1      uchar i,k;
  61   1      uchar bdata j;
  62   1      //uint a;
  63   1      if (IR==1)
  64   1              return(0);
  65   1      
  66   1      for (i=0;i<20;i++)//882us   0
  67   1      {
  68   2      delay1();
  69   2      if (IR==1)
  70   2              return(0);
  71   2      }
  72   1      
  73   1      while(IR==0);
  74   1      
  75   1      
  76   1      for (i=0;i<9;i++)//4700us   1
  77   1      {
  78   2      delay1();
  79   2      if (IR==0)
  80   2              return(0);
  81   2      }
  82   1      
  83   1      delay0();
  84   1      
  85   1      for (i=0;i<4;i++)
  86   1      {
  87   2      for (k=0;k<8;k++)
  88   2      {
  89   3      while(IR==0);
  90   3      delay0();
  91   3      j>>=1;
  92   3      if (IR==1)
  93   3              {
  94   4              j|=0x80;
  95   4              while(IR==1);
  96   4              }
  97   3      else
  98   3              {
  99   4              j&=0x7f;        
 100   4              }
 101   3      
 102   3      }
 103   2      datacode[i]=j;
 104   2      }
 105   1      return(1);
 106   1      }
 107          
 108          
 109          uchar lianfa (void)
 110          {
 111   1      uchar i;
 112   1      
 113   1      
 114   1      if (IR==1)
 115   1              return(0);
 116   1      else
 117   1      while(IR==0);
C51 COMPILER V7.01  YAOKONGC                                                               10/30/2005 10:41:47 PAGE 3   

 118   1      
 119   1      for (i=0;i<10;i++)//369us   1
 120   1      {
 121   2      delay3();
 122   2      if (IR==0)
 123   2              return(0);
 124   2      }
 125   1      
 126   1      delay1();
 127   1      if (IR==1)
 128   1              return(0);
 129   1      
 130   1      
 131   1      delay3();
 132   1      if (IR==1)
 133   1              return(0);
 134   1      
 135   1      if (IR==0)
 136   1      while(IR==0);
 137   1      
 138   1      for (i=0;i<107;i++)//15969us   1
 139   1      {
 140   2      delay0();
 141   2      if (IR==0)
 142   2              return(0);
 143   2      }
 144   1      
 145   1      delay0();
 146   1      delay0();
 147   1      if (IR==1)
 148   1              return(0);
 149   1      
 150   1      return(1);
 151   1      
 152   1      }
 153          
 154          void receive (void) interrupt 4
 155          {
 156   1      
 157   1      if (TI==1)
 158   1      {
 159   2      TI=0;
 160   2      }
 161   1      if (RI==1)
 162   1      
 163   1      RI=0;
 164   1      
 165   1        }
 166          
 167          initial ()
 168          {
 169   1      SCON=0X50;
 170   1      TMOD=0x20;
 171   1      TH1=0xF3;//0xF3;2400
 172   1      TL1=0xF3;
 173   1      TR1=1;
 174   1      EA=1;
 175   1      ES=1;
 176   1      
 177   1      }
 178          
 179          
C51 COMPILER V7.01  YAOKONGC                                                               10/30/2005 10:41:47 PAGE 4   

 180          void sendstring (uchar *p ,uchar len)
 181          {
 182   1      uchar i;//,temp;
 183   1      for (i=0;i<len;i++)
 184   1      {
 185   2      //temp= 0;
 186   2      SBUF=*(p++);
 187   2      delay();
 188   2      }
 189   1      }
 190          
 191          
 192          
 193          void main(void)
 194          {
 195   1      uchar i;
 196   1      initial();
 197   1      for (i=0;i<20;i++)
 198   1      datacode[i]=i;
 199   1      
 200   1      while(1)
 201   1      {
 202   2              if (yaokong()==1)
 203   2                      {
 204   3                      switch (datacode[2])
 205   3                              {
 206   4              
 207   4                              case 0x18://12
 208   4                                                      JK1=!JK1;
 209   4                                                      delay2();
 210   4                                                      while(lianfa()==1);     
 211   4                                                      break;
 212   4                              
 213   4                              case 0x1F://1B
 214   4                                                      JK2=!JK2;
 215   4                                                      delay2();
 216   4                                                      while(lianfa()==1);                                             
 217   4                                                      break;
 218   4                                                              
 219   4                              case 0x1E:
 220   4                                              JK3=!JK3;
 221   4                                                      delay2();
 222   4                                                      while(lianfa()==1);                                             
 223   4                                                      break;
 224   4                      
 225   4                              case 0x1B:
 226   4                                                      JK4=!JK4;
 227   4                                                      delay2();
 228   4                                                      while(lianfa()==1);                                             
 229   4                                                      break;
 230   4                              case 0x14:
 231   4                                                      JK5=0;
 232   4                                                      delay2();
 233   4                                                      while(lianfa()==1);
 234   4                                                      JK5=1;
 235   4                                                      break;
 236   4                              case 0x15:
 237   4                                                      JK6=0;
 238   4                                                      delay2();
 239   4                                                      while(lianfa()==1);
 240   4                                                      JK6=1;
 241   4                                                      break;
C51 COMPILER V7.01  YAOKONGC                                                               10/30/2005 10:41:47 PAGE 5   

 242   4                      
 243   4                              case 0x1D:
 244   4                                                      P1=0x80;
 245   4                                                      delay2();
 246   4                                                      while(lianfa()==1);
 247   4                                                      break;
 248   4                              case 0x1C:
 249   4                                                      P1=0xff;
 250   4                                                      delay2();
 251   4                                                      while(lianfa()==1);
 252   4                                                      break;
 253   4                              case 0x0F:
 254   4                                                      serior[3]=0x0F;//上
 255   4                                                      sendstring(serior,4);
 256   4                                                      break;
 257   4                              case 0x05:      
 258   4                                                      serior[3]=0x05;//下
 259   4                                                      sendstring(serior,4);
 260   4                                                      break;
 261   4                                              
 262   4                              case 0x0A:
 263   4                                                      serior[3]=0x0A;//左
 264   4                                                      sendstring(serior,4);
 265   4                                                      break;
 266   4                              case 0x09:
 267   4                                                      serior[3]=0x09;//右
 268   4                                                      sendstring(serior,4);
 269   4                                                      break;
 270   4                              }
 271   3                      }
 272   2      }
 273   1      }
 274          
 275                          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    518    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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