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

📄 irm.lst

📁 基于Mini51板的数字示波器设计
💻 LST
字号:
C51 COMPILER V8.02   IRM                                                                   01/15/2009 20:17:46 PAGE 1   


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

line level    source

   1          #include "irm.h"
   2          
   3          unsigned char irm_code;//红外解码键值返回全局变量
   4          bit  flag  ;// 上一位编码位     
   5          
   6          void int2_init(void)
   7          {
   8   1              EA = 1;
   9   1              IT2 = 1;        //下降沿中断
  10   1              EX2 = 1;
  11   1      }
  12          
  13          static unsigned char check_bit(unsigned char bit_num)
  14          {
  15   1          //最大检测7位    
  16   1              unsigned char irm_code0 = 0;
  17   1              unsigned char i ;
  18   1              unsigned int  count ;
  19   1              #define  ERROR  0x10;
  20   1              for(i=0;i<bit_num;i++)
  21   1               {
  22   2                  count = 0 ;
  23   2                      irm_code0 = irm_code0<<1 ;
  24   2                  if(flag)
  25   2                      {
  26   3                         while(IRM_DQ)if(count++>10000) return ERROR;
  27   3                         if(count>150)
  28   3                         {
  29   4                            flag = 0  ;//  结束码为 10                                          
  30   4                         }
  31   3                         else
  32   3                         {
  33   4                            flag = 1  ;//  结束码为 01
  34   4                                irm_code0 |= 0x01;
  35   4                                while(!IRM_DQ)if(count++>10000) return ERROR;
  36   4                         }
  37   3                      }
  38   2                      else   //  结束码为 10
  39   2                      {
  40   3                         while(!IRM_DQ)if(count++>10000) return ERROR;
  41   3                         if(count>150)
  42   3                         {
  43   4                            flag = 1  ;//  结束码为 01
  44   4                                irm_code0 |= 0x01;
  45   4                         }
  46   3                         else
  47   3                         {
  48   4                            flag = 0  ;//  结束码为 10
  49   4                                while(IRM_DQ)if(count++>10000) return ERROR;                    
  50   4                         }
  51   3                      }  
  52   2                }       
  53   1                return irm_code0  ;  //解码成功 !!
  54   1      }                                         
  55          
C51 COMPILER V8.02   IRM                                                                   01/15/2009 20:17:46 PAGE 2   

  56          
  57          //STC单片机特有的外部中断INT2实现红外解码
  58          //解码结果由数据缓冲区返回
  59          void IRMint(void) interrupt 6
  60          {               
  61   1              unsigned int  count;
  62   1              unsigned char temp_code[2];
  63   1              
  64   1              EA = 0;/*解码过程禁止其它中断发生*/
  65   1          IRM_DQ = 1 ;
  66   1              {/*跳过1.5bit 起始码*/
  67   2               count = 0;
  68   2               while(!IRM_DQ)if(count++>1000) goto return_main;
  69   2               count = 0;
  70   2               while(IRM_DQ)if(count++>1000) goto return_main;
  71   2              }
  72   1          {/*跳过1bit控制码和5bit用户码*/
  73   2               flag = 0 ;  //起始码以10结束
  74   2               temp_code[0] = check_bit(6);    
  75   2              } 
  76   1              /*数据码*/
  77   1              temp_code[1] = check_bit(6);     
  78   1              irm_code = temp_code[1] ; //返回键值
  79   1              return_main:
  80   1              IE2 = 0 ;//清除中断标志位
  81   1              EA = 1;
  82   1      }
  83          
  84          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    271    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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