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

📄 main.lst

📁 美的遥控器解码C语言程序
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  08/04/2007 22:15:56 PAGE 1   


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

line level    source

   1          #include "STC89C51RC.H"
   2          
   3          sbit DQ  = P4^3;
   4          sbit SPK = P1^0;
   5          
   6          unsigned char irm_code[6];
   7          
   8          void delay(unsigned int t)
   9          {                          
  10   1              while(t--);     
  11   1      }
  12          void Sound(void)
  13          {
  14   1              SPK = 0;
  15   1              delay(10000);
  16   1              SPK = 1;
  17   1      }
  18          
  19          void rs232_port_init(void)
  20          {
  21   1              SCON=0x50;      //串口工作在方式1,异步模式
  22   1              PCON=0x80;      //波特率翻倍
  23   1              TMOD=0x20;  //定时器1工作在方式2                        
  24   1              TH1=0xff;       //波特率115200,晶振为22.1184MHz
  25   1              TL1=0xff;                                                       
  26   1              TR1 = 1;
  27   1              RI  = 0;
  28   1              TI  = 0;
  29   1      }
  30          
  31          void uart_putc(unsigned char c)
  32          {
  33   1              SBUF = c;
  34   1              while(!TI);
  35   1              TI = 0;
  36   1      } 
  37          
  38          //STC单片机特有的外部中断INT2实现红外解码
  39          //解码结果由数据缓冲区返回
  40          void IRMint(void) interrupt 6
  41          {               
  42   1              unsigned int temp;
  43   1              unsigned char i,j;
  44   1      
  45   1              EA = 0;/*解码过程禁止其它中断发生*/
  46   1              temp = 0;
  47   1              while(!DQ) if(temp++>0x1000) goto return_main;//防止意外死机    
  48   1              if (temp < 0x0200) goto return_main;//Max=0x0222
  49   1              /*以上完成引导码9ms的低电平检测*/
  50   1              temp = 0;
  51   1              while(DQ) if(temp++>0x1000)goto return_main;
  52   1              if (temp < 0x0150) goto return_main;//Max=0x0216
  53   1              /*以上完成引导码4.5ms的高电平检测*/
  54   1                      
  55   1              for(j=0;j<6;j++)
C51 COMPILER V8.02   MAIN                                                                  08/04/2007 22:15:56 PAGE 2   

  56   1              {
  57   2                      for(i=0;i<8;i++)
  58   2                      { 
  59   3                              irm_code[j]<<=1;
  60   3                              temp = 0;
  61   3                              while(!DQ)if(temp++>0x1000) goto return_main;//通过编码低电平
  62   3                              temp = 0;
  63   3                              while(DQ) if(temp++>0x1000) goto return_main;
  64   3                              if(temp > 0x0060) irm_code[j] |= 0x01;
  65   3                      }
  66   2              }
  67   1      
  68   1              /*将结果6字节从串口发出*/
  69   1              for(j=0;j<6;j++)
  70   1              {
  71   2                      uart_putc(irm_code[j]); 
  72   2              }
  73   1              Sound();        
  74   1              return_main:EA = 1;
  75   1      }
  76          
  77          void main()
  78          {               
  79   1              rs232_port_init();
  80   1              EA = 1;
  81   1              IT2 = 1;//下降沿中断
  82   1              EX2 = 1;
  83   1      
  84   1              while(1)
  85   1              {                               
  86   2                                                      
  87   2              }
  88   1      }       


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    281    ----
   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 + -