📄 rc5.lst
字号:
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 1
MCS-51 Family Macro Assembler A S E M - 5 1 V 1.3
=====================================================
Source File: E:\MiCrOConTroller\Coba_M-IDE\REMOTE-RC5\RC5.asm
Object File: E:\MiCrOConTroller\Coba_M-IDE\REMOTE-RC5\RC5.hex
List File: E:\MiCrOConTroller\Coba_M-IDE\REMOTE-RC5\RC5.lst
Line I Addr Code Source
1: ;-----------------------------------------------------------------------------------
2: ;* Phillips RC5 Decoding
3: ;*
4: ;* Author: Ajay Bhargav
5: ;* Email: contact@rickeyworld.info
6: ;* Website: www.8051projects.net
7: ;*
8: ;* Description: This software is for Phillips RC-5 remote
9: ;* decoding. Pin used for reception is P3.3 while
10: ;* you can use any pin as per your requiremnet.
11: ;* This program is written for 8051 MCU running
12: ;* at 11.0592MHz.
13: ;*
14: ;* Usage: After the decoding the Address is stored in the
15: ;* ADDR variable and command is stored in the CMD.
16: ;* The flip bit is also stored to check whether the
17: ;* button is pressed once or not.
18: ;*
19: ;* Addon: Small sample program to control 8 switches with
20: ;* TV remote. 1 for Swith 1, 2 for switch 2,...
21: ;* and power button to swith off all switches at once
22: ;*
23: ;* Having a Doubts? Please post at
24: ;* www.8051projects.net/forum.html
25: ;*
26: ;-----------------------------------------------------------------------------------
27:
28: R R7 VAR1 equ r7 ;Temporary Variable
29: N 0010 TEMP equ 10H ;Temp variable
30: N 0011 COUNT equ 11H ;Count
31: N 0012 ADDR equ 12H ;Device address
32: N 0013 CMD equ 13H ;Command
33: N 00 FLIP bit 00H ;Flip bit
34: N 01 TOG bit 01H ;Temp bit for flip
35: B 00B3 IR equ P3.3 ;IR Receiver connected to this pin
36: B 0090 SW1 equ P1.0 ;Switch 1 connected here
37: B 0091 SW2 equ P1.1 ;Switch 2 connected here
38: B 0092 SW3 equ P1.2 ;Switch 3 connected here
39: B 0093 SW4 equ P1.3 ;Switch 4 connected here
40: B 0094 SW5 equ P1.4 ;Switch 5 connected here
41: B 0095 SW6 equ P1.5 ;Switch 6 connected here
42: B 0096 SW7 equ P1.6 ;Switch 7 connected here
43: B 0097 SW8 equ P1.7 ;Switch 8 connected here
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: D 0090 SWport equ P1 ;Port at which switches are connected
45:
46: N 0000 org 00H ;Start of prog
47: 0000 75 90 00 mov SWport,#00H ;switch all relays off!
48: 0003 75 81 50 mov sp,#50H ;Stack pointer initialization
49: 0006 C2 01 clr TOG ;Clear temp bit
50:
51: 0008 main:
52: 0008 20 B3 FD jb IR,$ ;Wait for first bit
53: 000B 7F FF mov VAR1,#255 ;3.024mS delay
54: 000D DF FE djnz VAR1,$
55: 000F 7F FF mov VAR1,#255
56: 0011 DF FE djnz VAR1,$
57: 0013 7F FF mov VAR1,#255
58: 0015 DF FE djnz VAR1,$
59: 0017 7F FF mov VAR1,#255
60: 0019 DF FE djnz VAR1,$
61: 001B 7F FF mov VAR1,#255
62: 001D DF FE djnz VAR1,$
63: 001F 7F 64 mov VAR1,#100
64: 0021 DF FE djnz VAR1,$
65: 0023 A2 B3 mov c,IR ;Read Flip bit
66: 0025 92 00 mov FLIP,c
67: 0027 E4 clr A
68: 0028 75 11 05 mov COUNT,#5 ;Count for address
69: 002B fadd:
70: 002B 7F FF mov VAR1,#255 ;1.728mS delay for each bit
71: 002D DF FE djnz VAR1,$
72: 002F 7F FF mov VAR1,#255
73: 0031 DF FE djnz VAR1,$
74: 0033 7F FF mov VAR1,#255
75: 0035 DF FE djnz VAR1,$
76: 0037 7F 04 mov VAR1,#4
77: 0039 DF FE djnz VAR1,$
78: 003B A2 B3 mov c,IR
79: 003D 33 rlc a
80: 003E D5 11 EA djnz COUNT,fadd
81: 0041 F5 12 mov ADDR,A ;Save the address
82: 0043 E4 clr a
83: 0044 75 11 06 mov COUNT,#6 ;Count for Command
84: 0047 fcmd:
85: 0047 7F FF mov VAR1,#255 ;1.728mS Delay for each bit
86: 0049 DF FE djnz VAR1,$
87: 004B 7F FF mov VAR1,#255
88: 004D DF FE djnz VAR1,$
89: 004F 7F FF mov VAR1,#255
90: 0051 DF FE djnz VAR1,$
91: 0053 7F 04 mov VAR1,#4
92: 0055 DF FE djnz VAR1,$
93: 0057 A2 B3 mov c,IR
94: 0059 33 rlc a
95: 005A D5 11 EA djnz COUNT,fcmd
96: 005D 85 13 10 mov TEMP,CMD ;Save the old command
97: 0060 F5 13 mov CMD,a ;Save the new command
98: 0062 E5 12 mov a,ADDR ;Cheack for valid address
99: 0064 B4 00 05 cjne a,#00,nvalid
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 3
Line I Addr Code Source
100: 0067 E5 10 mov a,TEMP
101: 0069 B5 13 03 cjne a,CMD,valid ;Check for valid command
102: 006C nvalid:
103: 006C 02 00 08 ljmp main
104: 006F valid: ;Key press check
105: 006F E4 clr a
106: 0070 A2 00 mov c,FLIP
107: 0072 33 rlc a
108: 0073 F5 10 mov TEMP,a
109: 0075 E4 clr a
110: 0076 A2 01 mov c,TOG
111: 0078 33 rlc a
112: 0079 B5 10 02 cjne a,TEMP,valid1
113: 007C 80 EE sjmp nvalid
114: 007E valid1:
115: 007E A2 00 mov c,FLIP
116: 0080 92 01 mov TOG,c
117: 0082 E5 13 mov a,CMD
118: 0084 C3 clr c
119: 0085 B4 01 0D cjne a,#1,skip1 ;Check for SW1
120: 0088 20 90 05 jb SW1,isset1
121: 008B D2 90 setb SW1
122: 008D 02 00 08 ljmp main
123: 0090 isset1:
124: 0090 C2 90 clr SW1
125: 0092 02 00 08 ljmp main
126: 0095 skip1:
127: 0095 B4 02 0D cjne a,#2,skip2 ;Check for SW2
128: 0098 20 91 05 jb SW2,isset2
129: 009B D2 91 setb SW2
130: 009D 02 00 08 ljmp main
131: 00A0 isset2:
132: 00A0 C2 91 clr SW2
133: 00A2 02 00 08 ljmp main
134: 00A5 skip2:
135: 00A5 B4 03 0D cjne a,#3,skip3 ;Check for SW3
136: 00A8 20 92 05 jb SW3,isset3
137: 00AB D2 92 setb SW3
138: 00AD 02 00 08 ljmp main
139: 00B0 isset3:
140: 00B0 C2 92 clr SW3
141: 00B2 02 00 08 ljmp main
142: 00B5 skip3:
143: 00B5 B4 04 0D cjne a,#4,skip4 ;Check for SW4
144: 00B8 20 93 05 jb SW4,isset4
145: 00BB D2 93 setb SW4
146: 00BD 02 00 08 ljmp main
147: 00C0 isset4:
148: 00C0 C2 93 clr SW4
149: 00C2 02 00 08 ljmp main
150: 00C5 skip4:
151: 00C5 B4 05 0D cjne a,#5,skip5 ;Check for SW5
152: 00C8 20 94 05 jb SW5,isset5
153: 00CB D2 94 setb SW5
154: 00CD 02 00 08 ljmp main
155: 00D0 isset5:
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 4
Line I Addr Code Source
156: 00D0 C2 94 clr SW5
157: 00D2 02 00 08 ljmp main
158: 00D5 skip5:
159: 00D5 B4 06 0D cjne a,#6,skip6 ;Check for SW6
160: 00D8 20 95 05 jb SW6,isset6
161: 00DB D2 95 setb SW6
162: 00DD 02 00 08 ljmp main
163: 00E0 isset6:
164: 00E0 C2 95 clr SW6
165: 00E2 02 00 08 ljmp main
166: 00E5 skip6:
167: 00E5 B4 07 0D cjne a,#7,skip7 ;Check for SW7
168: 00E8 20 96 05 jb SW7,isset7
169: 00EB D2 96 setb SW7
170: 00ED 02 00 08 ljmp main
171: 00F0 isset7:
172: 00F0 C2 96 clr SW7
173: 00F2 02 00 08 ljmp main
174: 00F5 skip7:
175: 00F5 B4 08 0D cjne a,#8,skip8 ;Check for SW8
176: 00F8 20 97 05 jb SW8,isset8
177: 00FB D2 97 setb SW8
178: 00FD 02 00 08 ljmp main
179: 0100 isset8:
180: 0100 C2 97 clr SW8
181: 0102 02 00 08 ljmp main
182: 0105 skip8:
183: 0105 B4 0C 06 cjne a,#0CH,exit ;Check for all switches
184: 0108 75 90 00 mov SWport,#00H
185: 010B 02 00 08 ljmp main
186: 010E exit:
187: 010E 02 00 08 ljmp main
188:
189: END ;End of program
register banks used: ---
no errors
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 5
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
??ASEM_51 NUMBER 8051
??VERSION NUMBER 0130
AC BIT D6
ACC DATA E0
ADDR NUMBER 0012 31
B DATA F0
CMD NUMBER 0013 32
COUNT NUMBER 0011 30
CY BIT D7
DPH DATA 83
DPL DATA 82
EA BIT AF
ES BIT AC
ET0 BIT A9
ET1 BIT AB
EX0 BIT A8
EX1 BIT AA
EXIT CODE 010E 186
EXTI0 CODE 0003
EXTI1 CODE 0013
F0 BIT D5
FADD CODE 002B 69
FCMD CODE 0047 84
FLIP BIT 00 33
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
IP DATA B8
IR NUMBER 00B3 35
ISSET1 CODE 0090 123
ISSET2 CODE 00A0 131
ISSET3 CODE 00B0 139
ISSET4 CODE 00C0 147
ISSET5 CODE 00D0 155
ISSET6 CODE 00E0 163
ISSET7 CODE 00F0 171
ISSET8 CODE 0100 179
IT0 BIT 88
IT1 BIT 8A
MAIN CODE 0008 51
NVALID CODE 006C 102
OV BIT D2
P BIT D0
P0 DATA 80
P1 DATA 90
P2 DATA A0
P3 DATA B0
PCON DATA 87
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 6
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
PS BIT BC
PSW DATA D0
PT0 BIT B9
PT1 BIT BB
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
REN BIT 9C
RESET CODE 0000
RI BIT 98
RS0 BIT D3
RS1 BIT D4
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SINT CODE 0023
SKIP1 CODE 0095 126
SKIP2 CODE 00A5 134
SKIP3 CODE 00B5 142
SKIP4 CODE 00C5 150
SKIP5 CODE 00D5 158
SKIP6 CODE 00E5 166
SKIP7 CODE 00F5 174
SKIP8 CODE 0105 182
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
SW1 NUMBER 0090 36
SW2 NUMBER 0091 37
SW3 NUMBER 0092 38
SW4 NUMBER 0093 39
SW5 NUMBER 0094 40
SW6 NUMBER 0095 41
SW7 NUMBER 0096 42
SW8 NUMBER 0097 43
SWPORT NUMBER 0090 44
T0 BIT B4
T1 BIT B5
TB8 BIT 9B
TCON DATA 88
TEMP NUMBER 0010 29
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TOG BIT 01 34
TR0 BIT 8C
TR1 BIT 8E
ASEM-51 V1.3 Copyright (c) 2002 by W.W. Heinz PAGE 7
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
TXD BIT B1
VALID CODE 006F 104
VALID1 CODE 007E 114
VAR1 REGISTER R7 28
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -