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

📄 hong2.lst

📁 51单片机遥控程序
💻 LST
字号:
C51 COMPILER V8.02   HONG2                                                                 03/16/2009 22:48:17 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE HONG2
OBJECT MODULE PLACED IN hong2.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL\C51\BIN\C51.EXE hong2.C BROWSE DEBUG OBJECTEXTEND

line level    source

*** WARNING C500 IN LINE 1 OF HONG2.C: LICENSE ERROR (R201: INVALID LICENSE ID CODE (LIC))

   1          #include <reg52.h>
   2          #define c(x) (x*110592/120000)
   3          sbit Ir_Pin=P3^2;
   4          unsigned char code Led_Tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,
   5          0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; //共阳极数码显示码0-F.
   6          unsigned char code Led_Sel[]={0xfe,0xfd,0xfb,0xf7};
   7          
   8          unsigned char Led_Buf[4]; //显示缓冲区
   9          
  10          char Led_Index; //位选
  11          
  12          unsigned char Ir_Buf[4]; //用于保存解码结果
  13          
  14          
  15          //==============================================================
  16          
  17          //数码管扫描
  18          
  19          timer0() interrupt 1 using 1
  20          
  21          {
  22   1      
  23   1              TL0=65536-1000;
  24   1              TH0=(65536-1000)/256; //定时器0设定约1000us中断一次,用于数码管扫描
  25   1              P2=0;
  26   1              P0=Led_Tab[Led_Buf[0]]; //段选
  27   1              //P2=Led_Tab[Led_Buf[Led_Index]]; //段选
  28   1              if(++Led_Index>3) Led_Index=0; //四个扫描完了,到第一个数码管
  29   1      
  30   1      }
  31          
  32          //==============================================================
  33          
  34          unsigned int Ir_Get_Low()
  35          
  36          {
  37   1      
  38   1              TL1=0;  
  39   1              TH1=0;  
  40   1              TR1=1;  
  41   1              while(!Ir_Pin && (TH1&0x80)==0);        
  42   1              TR1=0;  
  43   1              return TH1*256+TL1;
  44   1      
  45   1      }
  46          
  47          //=============================================================
  48          
  49          unsigned int Ir_Get_High()
  50          
  51          {
  52   1      
  53   1              TL1=0;  
  54   1              TH1=0;  
C51 COMPILER V8.02   HONG2                                                                 03/16/2009 22:48:17 PAGE 2   

  55   1              TR1=1;  
  56   1              while(Ir_Pin && (TH1&0x80)==0); 
  57   1              TR1=0;  
  58   1              return TH1*256+TL1;
  59   1      
  60   1      }
  61          
  62          //==============================================================
  63          
  64          main()
  65          
  66          {
  67   1      
  68   1              unsigned int temp;
  69   1              char i,j;
  70   1              Led_Index=1;
  71   1              TMOD=0x11;
  72   1              TL0=65536-1000;
  73   1              TH0=(65536-1000)/256; //定时器0设定约1000us中断一次,用于数码管扫描
  74   1              EA=1;
  75   1              ET0=1;
  76   1              TR0=1;
  77   1              Led_Buf[0]=0;
  78   1              Led_Buf[1]=0;
  79   1              Led_Buf[2]=0;
  80   1              Led_Buf[3]=0; //显示区设成0
  81   1      
  82   1              do{
  83   2      
  84   2      restart:
  85   2      
  86   2                      while(Ir_Pin);
  87   2                      temp=Ir_Get_Low();
  88   2                      if(temp<c(8500) || temp>c(9500)) continue;//引导脉冲低电平9000
  89   2                      temp=Ir_Get_High();
  90   2                      if(temp<c(4000) || temp>c(5000)) continue;//引导脉冲高电平4500
  91   2                      for(i=0;i<4;i++) //4个字节
  92   2                      for(j=0;j<8;j++) //每个字节8位
  93   2      
  94   2                      {
  95   3                      
  96   3                                      temp=Ir_Get_Low();                              
  97   3                                      if(temp<c(200) || temp>c(800)) goto restart;                    
  98   3                                      temp=Ir_Get_High();                             
  99   3                                      if(temp<c(200) || temp>c(2000)) goto restart;                   
 100   3                                      Ir_Buf[i]>>=1;                  
 101   3                                      if(temp>c(1120)) Ir_Buf[i]|=0x80;
 102   3                      
 103   3                      }
 104   2      
 105   2              Led_Buf[0]=Ir_Buf[2]&0xf;
 106   2      //      Led_Buf[1]=(Ir_Buf[2]/16)&0xf;
 107   2      //      Led_Buf[2]=Ir_Buf[3]&0xf;
 108   2      //      Led_Buf[3]=(Ir_Buf[3]/16)&0xf; //显示结果
 109   2          }
 110   1            while(1);
 111   1               
 112   1               
 113   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V8.02   HONG2                                                                 03/16/2009 22:48:17 PAGE 3   

   CODE SIZE        =    401    ----
   CONSTANT SIZE    =     20    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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