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

📄 ir.lst

📁 单片机驱动程序
💻 LST
字号:
C51 COMPILER V7.20   IR                                                                    07/13/2007 10:18:23 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE IR
OBJECT MODULE PLACED IN ir.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ir.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <REG52.H>
   2          
   3          #define  CNT 36
   4          #define  uchar unsigned char    
   5          #define  uint  unsigned int
   6          #define  NOP();  {_nop_(); _nop_(); _nop_(); _nop_();}      /* 定义空操作指令 */
   7          
   8          bit time_out=0;
   9          bit receive_ok=0;
  10          bit receive_err=0;
  11          bit key_continue=0;
  12          
  13          uchar idata recode_dat[CNT];
  14          uchar idata counter=0; 
  15          
  16           void INT0_irq(void) interrupt 0 using 3 
  17            {       
  18   1         if((TH0==TL0)&&(TL0==0)&&(counter==0)) {TR0 = 1;counter=0;}
  19   1         else 
  20   1          {   
  21   2               TR0 = 0;       
  22   2               if((TH0>=0x0f)&&(TH0<=0x10)&&(counter==0)) receive_err=1;               
  23   2               if((receive_err==1)&&(counter<=36))
  24   2                {
  25   3             recode_dat[counter]=TH0;
  26   3                 TH0 = 0;
  27   3             TL0 = 0;
  28   3                 TR0 = 1;
  29   3                 counter++;      
  30   3                 }
  31   2                else {TR0 = 0;TH0 = 0; TL0 = 0; counter=0; TR0 = 1;}  
  32   2            if((recode_dat[counter-2]==0x8f)&&(recode_dat[counter-1]>=0x07)&&(recode_dat[counter]==0x00))
  33   2                  {
  34   3               //TR0 = 0;              
  35   3                       receive_ok=1;
  36   3                       counter=0;             
  37   3                       receive_err=0;
  38   3                  }   
  39   2                }               
  40   1         }     
  41            
  42          
  43          
  44          
  45          /*------定时器中断-----------*/
  46          void T0_irq(void) interrupt 1 using 3
  47           {
  48   1        TR0=0;
  49   1        time_out=1;
  50   1        counter=0;
  51   1        TH0=TL0=0;
  52   1       }
  53          
  54          /*------系统设置程序-----------*/
  55           void system_setup(void)
C51 COMPILER V7.20   IR                                                                    07/13/2007 10:18:23 PAGE 2   

  56             {
  57   1          IE=0x83;       //使能INT0 EX0=1,ET0=1,EA=1;
  58   1          IT0 = 1;         //INT0负跳变触发    
  59   1          TMOD=0x29;      //定时器0工作在定时方式1,带INT0输入触发
  60   1          TH0 = 0;
  61   1          TL0 = 0;
  62   1         }
  63          
  64          uint  key_process()
  65           {
  66   1         uint key_value=0x0;
  67   1         uchar  i;  
  68   1        if(receive_ok )
  69   1        {   
  70   2         for(i=0;i<=15;i++)
  71   2         {
  72   3           key_value<<=1;      
  73   3               if((recode_dat[i+17]>=0x05)&&(recode_dat[i+17]<=0x07))  key_value=key_value|0x0001;      
  74   3               if((recode_dat[i+17]<=0x02)&&(recode_dat[i+17]>=0x00))  key_value=key_value|0x0000;       
  75   3          } 
  76   2         receive_ok = 0;  
  77   2        }
  78   1       return(key_value); 
  79   1      }
  80          
  81            void main(void)
  82            {  
  83   1          idata uint kk;
  84   1              idata uchar dd,dd1;
  85   1              TMOD = 0x29;    
  86   1              TL1 = 0xFD;
  87   1              TH1 = 0xFD;
  88   1              SCON = 0x40;
  89   1              PCON = 0x80;
  90   1          PX0=1;      
  91   1              TR1 = 1;
  92   1          system_setup();         
  93   1          while(1)
  94   1              {
  95   2               if(receive_ok )
  96   2               {
  97   3                kk=key_process();
  98   3                dd=(kk>>8);
  99   3                dd1=(kk&0x00ff);       
 100   3                 SBUF = dd;
 101   3                 while (TI == 0);
 102   3                 TI = 0;
 103   3                 SBUF = dd1;
 104   3                 while (TI == 0);
 105   3                 TI = 0;         
 106   3               }
 107   2          }
 108   1        }
 109          
 110          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    292    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V7.20   IR                                                                    07/13/2007 10:18:23 PAGE 3   

   DATA SIZE        =   ----    ----
   IDATA SIZE       =     37       4
   BIT SIZE         =      4    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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