📄 decode.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 + -