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

📄 decode.lst

📁 红外控制程序
💻 LST
字号:
C51 COMPILER V8.02   DECODE                                                                03/14/2008 18:26:33 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE DECODE
OBJECT MODULE PLACED IN decode.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE decode.c BROWSE DEBUG OBJECTEXTEND SRC(.\decode.SRC)

line level    source

   1          void decode()
   2          {
   3   1      #pragma asm                                                                                              
   4   1          MAIN:
   5   1              JNB P3.4,IR ;遥控扫描
   6   1              LJMP  MAIN  ;主循环
   7   1          IR: ;解码开始
   8   1              MOV R6,#10
   9   1          IR_SB:
  10   1              ACALL  DELAY882;延时882微秒
  11   1              JB  P3.4,IR_ERROR;数据错误退出解码
  12   1              DJNZ R6,IR_SB;重复10次检测
  13   1              ;识别连发码
  14   1              JNB P3.4,$;等待高电平避开9MS低电平引导脉冲
  15   1              ACALL DELAY2400
  16   1              JNB P3.4,IR_RP;这里为低电平,认为是连发码
  17   1              ACALL DELAY2400 ;延时4.74MS避开4.5MS的结果码
  18   1              ;读取32位数据码
  19   1              MOV R1,#1AH;存放数据的起始地址
  20   1              MOV R2,#4
  21   1          IR_4BYTE:
  22   1              MOV R3,#8
  23   1          IR_8BIT:  
  24   1              JNB P3.4,$;等待地址码第一位的高电平信号
  25   1              LCALL  DELAY882;高电平来后开始延时882uS
  26   1              MOV   C,P3.4
  27   1              JNC IR_8BIT_0;延时后为为低电平则跳到IR_8BIT_0
  28   1              LCALL DELAY1000
  29   1          IR_8BIT_0:
  30   1              MOV A,@R1;将R1中的地址给累加器A
  31   1              RRC A;将C移入A的最低位
  32   1              MOV @R1,A;保存A中的值到RAM中
  33   1              DJNZ R3,IR_8BIT;接收地址码的高8位
  34   1              INC  R1;下一地址
  35   1              DJNZ  R2,IR_4BYTE;接收完成8位数据,8位数据码和16位地址码
  36   1              JMP  IR_GOTO ;解码结束
  37   1           IR_RP:
  38   1              JMP  IR_GOTO
  39   1           IR_ERROR:
  40   1              LJMP MAIN
  41   1           IR_GOTO:    ;执行部分
  42   1              MOV  A,1CH
  43   1              CPL  A
  44   1              CJNE A,1DH,IR_ERROR
  45   1              MOV 1EH,1CH;口     
  46   1                      MOV 1AH,#00H   ;接收区清0
  47   1              MOV 1BH,#00H
  48   1              MOV 1CH,#00H
  49   1              MOV 1DH,#00H
  50   1           DELAY882:  ;延时函数
  51   1              MOV R7,#202
  52   1           DELAY882_A:;882us延时
  53   1              NOP
  54   1              NOP
  55   1              DJNZ R7,DELAY882_A
C51 COMPILER V8.02   DECODE                                                                03/14/2008 18:26:33 PAGE 2   

  56   1           RET
  57   1           DELAY1000:
  58   1              MOV R7,#229
  59   1           DELAY1000_A:
  60   1              NOP
  61   1              NOP
  62   1              DJNZ  R7,DELAY1000_A
  63   1           RET
  64   1           DELAY2400:
  65   1              MOV R7,#245
  66   1           DELAY2400_A:
  67   1              NOP
  68   1              NOP
  69   1              NOP
  70   1              NOP
  71   1              NOP
  72   1              NOP
  73   1              NOP
  74   1              DJNZ  R7,DELAY2400_A
  75   1            RET       
  76   1      #pragma endasm
  77   1      
  78   1      }
  79          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    217    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -