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

📄 sy.lst

📁 本程序能实现一定距离的红外遥控
💻 LST
字号:
C51 COMPILER V7.50   SY                                                                    08/16/2007 20:47:59 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE SY
OBJECT MODULE PLACED IN sy.OBJ
COMPILER INVOKED BY: D:\keil uvision3\C51\BIN\C51.EXE sy.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          
   3          //------字表------------------------------
   4          unsigned char code tab[]=
   5          { 0x3F,0x06,0x5B,0x4F,    //"0","1","2","3"
   6            0x66,0x6D,0x7D,0x07,    //"4","5","6","7"
   7            0x7F,0x6F,0x77,0x7c,    //"8","9","A","B" 
   8            0x39,0x5e,0x79,0x71,    //"C","D","E","F"
   9          };
  10          
  11          unsigned char yk_flag;  
  12          unsigned int a,b; 
  13          int n ;
  14          unsigned char ch,ch_1;
  15          unsigned char key_code,key_press;
  16          sbit rec=P2^4;     //红外接收
  17          
  18          //接收遥控器信号--------------------------------------
  19          void yaokong()
  20          {  unsigned char i;
  21   1         TR0=1 ;
  22   1              n=0;
  23   1              if(yk_flag==0)
  24   1                {       
  25   2              while(rec)
  26   2              {if(n>400)      break; }                        
  27   2               n=0;                                
  28   2              while(!rec);            
  29   2          if(n>470) 
  30   2              { //buff[0]=1;                
  31   3                n=0;                    
  32   3                while(rec);                     
  33   3                if((n>175)&&(n<290))            
  34   3                      {//buff[1]=1;                     
  35   4                       n=0;
  36   4                       for(i=0;i<8;i++)
  37   4                        {     while(!rec);
  38   5                              n=0;
  39   5                              while(rec);
  40   5                              if((n>16)&&(n<58))
  41   5                                {ch=ch<<1;n=0;}
  42   5                              else if((n>70)&&(n<118))
  43   5                                      {ch=(ch<<1)|0x01;n=0;}                                              
  44   5                         }
  45   4              // buff[2]=ch>>4;
  46   4                  // buff[3]=ch&0x0f;
  47   4                   while(!rec);
  48   4                   n=0;
  49   4                   while(rec);
  50   4                   if((n>168)&&(n<282))
  51   4                      {  for(i=0;i<8;i++)
  52   5                              { while(!rec);
  53   6                                    n=0;
  54   6                                    while(rec);
  55   6                                    if((n>16)&&(n<58))
C51 COMPILER V7.50   SY                                                                    08/16/2007 20:47:59 PAGE 2   

  56   6                                     {ch_1=ch_1<<1;n=0;}
  57   6                                        else if((n>70)&&(n<118))
  58   6                                          {ch_1=(ch_1<<1)|0x01;n=0;}
  59   6                                  }
  60   5                           // buff[4]=ch_1>>4;
  61   5                           // buff[5]=ch_1&0x0f;
  62   5                                                         
  63   5                           }
  64   4                              yk_flag=2;                                                                                                                      
  65   4                      }
  66   3                      if(ch==0x43)
  67   3                       { switch(ch_1)
  68   4                               {       
  69   5                                 case  0x08 :key_code=1;key_press=1;break;
  70   5                                 case  0x88 :key_code=2;key_press=1;break;
  71   5                                 case  0x48 :key_code=3;key_press=1;break;
  72   5                                 case  0xc8 :key_code=4;key_press=1;break;
  73   5                                 case  0x28 :key_code=5;key_press=1;break;
  74   5                                 case  0xa8 :key_code=6;key_press=1;break;
  75   5                                 case  0x68 :key_code=7;key_press=1;break;
  76   5                                 case  0xe8 :key_code=8;key_press=1;break;
  77   5                                 case  0x18 :key_code=9;key_press=1;break;
  78   5                                 case  0x98 :key_code=0;key_press=1;break;    
  79   5                                 case  0x58 :key_code=0x0a;key_press=1;break;
  80   5                                 case  0xd8 :key_code=0x0b;key_press=1;break;
  81   5                                 case  0x40 :key_code=0x0c;key_press=1;break;
  82   5                                 case  0x80 :key_code=0x0d;key_press=1;break;
  83   5                             case  0x2c :key_code=0x0e;key_press=1;break;
  84   5                                 case  0x70 :key_code=0x0f;key_press=1;break;
  85   5                                 default    :break;//buff[1]=0x0f;                                                      
  86   5                            }
  87   4                        }                     
  88   3              }
  89   2                      
  90   2          n=0;
  91   2              }
  92   1              TR0=0 ;
  93   1       }
  94           
  95           
  96           void main()
  97          {
  98   1        TMOD=0x02;
  99   1        TR0=1;
 100   1        ET0=1;
 101   1        EA=1;
 102   1        TH0=0xfa; 
 103   1        TL0=0xfa; 
 104   1        while(1)
 105   1        {
 106   2         yaokong();  
 107   2         P1=tab[key_code];
 108   2         yk_flag=0;
 109   2         }  
 110   1      }
 111          
 112          void to(void) interrupt 1 using 0
 113           {
 114   1         n++;
 115   1       }              


C51 COMPILER V7.50   SY                                                                    08/16/2007 20:47:59 PAGE 3   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    507    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11    ----
   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 + -