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

📄 yaok.lst

📁 10红外解码.rar
💻 LST
字号:
C51 COMPILER V8.02   YAOK                                                                  08/10/2007 19:44:01 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE YAOK
OBJECT MODULE PLACED IN yaok.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE yaok.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include <reg51.h>
   3          
   4          sbit Led  = P1 ^ 7;
   5          sbit P3_2 = P3 ^ 2;
   6          sbit P1_0 = P1 ^ 0;
   7          sbit P1_2 = P1 ^ 2;
   8          sbit P1_1 = P1 ^ 1;
   9          
  10          static unsigned char data IRCode[3],IRCON,IRCON2;
  11          static unsigned char data DT;
  12          
  13          /*******************************************************************************************/
  14          void timeint(void) interrupt 1 using 2//定时器0中断处理
  15          {
  16   1              TH0=0xFc;     //12M: TH0=0XFC;TL0=0XE0;11.0592:TH0=0XFD;TL0=0X1E;
  17   1              TL0=0xe0;    // 设定时值为800us  500:FE0C
  18   1      
  19   1              if (IRCON<3)
  20   1              {
  21   2                      if (IRCON2<8) //每中断一次读一次遥控接收头的状态,每二次为遥控编码中的一个位
  22   2                      {
  23   3                              IRCON2++;
  24   3                              IRCode[IRCON]=IRCode[IRCON]<<1;     //每读一次放入变量中的二进制的一个位,每次左移一位
  25   3                              IRCode[IRCON]=IRCode[IRCON] | P3_2; //每八次填满一个字节,一个字节存放遥控编码4个位
  26   3                      }
  27   2                      else
  28   2                      {
  29   3                              IRCON++;  //填满一个字节,指向下一个变量
  30   3                              IRCON2=0; //计数清零
  31   3                      }
  32   2              }
  33   1              else
  34   1              {
  35   2                      TR0 = 0; //关闭定时器
  36   2                      ET0 = 0; //定时器0中断关闭
  37   2                      if ((IRCode[1] != 0xFF) && (IRCode[2] != 0xFF))
  38   2                      {
  39   3                              if (IRCode[1] == 0x55)
  40   3                              {
  41   4                                      switch (IRCode[2]) 
  42   4                                      {
  43   5                                              case 0xAB:     //按下1键,LED1亮其他的LED灭
  44   5                                                      P1_0 = 0; P1_1 = 1;P1_2 = 1;
  45   5                                                      DT = 1;
  46   5                                                      break;
  47   5                                      case 0xAC:   //按下2键,LED2亮其他的LED灭
  48   5                                      P1_1 = 0; P1_0 = 1;P1_2= 1;
  49   5                                      DT = 1;
  50   5                                      break;
  51   5                                      case 0xAD:    //按下3键,LED3亮其他的LED灭
  52   5                                      P1_2 = 0; P1_1 = 1;P1_0 = 1;
  53   5                                      DT = 1;
  54   5                                      break;
  55   5      
C51 COMPILER V8.02   YAOK                                                                  08/10/2007 19:44:01 PAGE 2   

  56   5                                      case 0xD2: //POWER键,关闭
  57   5                                      P1 = 0xff;
  58   5                                      DT = 1;
  59   5                                      break;
  60   5                                      default :
  61   5                                      break;
  62   5                                      }//switch
  63   4                              }
  64   3                      }
  65   2              }
  66   1      }
  67          
  68          /***********************************************************************************/
  69          void INT0Fun(void) interrupt 0 using 2//INT0中断
  70          {
  71   1              EX0 = 0; //外部中断0关闭
  72   1              ET0 = 1; //定时器0中断打开
  73   1              TH0=0xFc;
  74   1              TL0=0xe0; //设定时值为800us
  75   1      
  76   1              for (IRCON=0; IRCON<3; IRCON++)
  77   1                      IRCode[IRCON] = 0;
  78   1      
  79   1              IRCON = 0;
  80   1              IRCON2 = 0; //计数清零
  81   1      
  82   1              TR0 = 1;//开始计数
  83   1      }
  84          /************************************************************************************/
  85          void main(void)
  86          {
  87   1              unsigned int de;
  88   1      
  89   1              TMOD = 0x01; //定时器0方式1
  90   1              EA = 1;      //允许CPU中断
  91   1              IT0 = 1;     //INT0下降沿有效
  92   1              EX0 = 1;     //开INT0中断
  93   1      
  94   1              P1 =  0xff;
  95   1              do
  96   1              {
  97   2                      for (de=0; de<8000; de++)
  98   2                              Led = 1;     //LED点亮
  99   2                      for (de=0; de<8000; de++)
 100   2                              Led = 0;     //LED熄灭
 101   2                      if (DT)
 102   2                      {
 103   3                              EX0=0;  //关闭外中断
 104   3                              for (de=0; de<30000; de++) //这里起到按键值正确后会有一个延时,防止重复按键
 105   3                                      Led = 1;
 106   3                              for (de=0; de<30000; de++)
 107   3                                      Led = 0;
 108   3      
 109   3                              DT = 0;
 110   3                      }
 111   2                      EX0 = 1;
 112   2              }while(1);
 113   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    270    ----
C51 COMPILER V8.02   YAOK                                                                  08/10/2007 19:44:01 PAGE 3   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6    ----
   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 + -