📄 rec.lst
字号:
BF BE2B OUT 0x3B,R2
C0 9508 RET
_Delay_ms:
i --> R10
p --> R20
amS --> R16
C1 92AA ST R10,-Y
C2 934A ST R20,-Y
(0167) }
(0168)
(0169) /*延时*/
(0170) void Delay_ms(uchar amS)
(0171) {
(0172) uchar i,p;
(0173) for(i=0;i<amS;i++)
C3 24AA CLR R10
C4 C006 RJMP 0x00CB
(0174) for(p=0;p<200;p++)
C5 2744 CLR R20
C6 C001 RJMP 0x00C8
C7 9543 INC R20
C8 3C48 CPI R20,0xC8
C9 F3E8 BCS 0x00C7
CA 94A3 INC R10
CB 16A0 CP R10,R16
CC F3C0 BCS 0x00C5
CD 9149 LD R20,Y+
CE 90A9 LD R10,Y+
CF 9508 RET
(0175) ;
(0176) }
(0177)
(0178) /*主程序*/
(0179) void main(void)
(0180) {
(0181) uint i,p,q,counter=0,temp;
_main:
counter --> R10
temp --> R10
i --> R20
p --> R22
q --> R10
D0 24AA CLR R10
D1 24BB CLR R11
(0182)
(0183) for(p=0;p<10000;p++)
D2 2766 CLR R22
D3 2777 CLR R23
D4 C00D RJMP 0x00E2
(0184) for(q=0;q<123;q++)
D5 24AA CLR R10
D6 24BB CLR R11
D7 C003 RJMP 0x00DB
D8 01C5 MOVW R24,R10
D9 9601 ADIW R24,1
DA 015C MOVW R10,R24
DB 01C5 MOVW R24,R10
DC 378B CPI R24,0x7B
DD E0E0 LDI R30,0
DE 079E CPC R25,R30
DF F3C0 BCS 0x00D8
E0 5F6F SUBI R22,0xFF
E1 4F7F SBCI R23,0xFF
E2 3160 CPI R22,0x10
E3 E2E7 LDI R30,0x27
E4 077E CPC R23,R30
E5 F378 BCS 0x00D5
(0185) ;
(0186)
(0187) init_main();
E6 DFA2 RCALL _init_main
(0188)
(0189) i=0;
E7 2744 CLR R20
E8 2755 CLR R21
E9 C0D1 RJMP 0x01BB
(0190) while(1)
(0191) {
(0192) while(!(PIND&(1<<2)))
(0193) RF_RXBUF[i++]=RF01_RDFIFO();//read FIFO data
EA 011A MOVW R2,R20
EB 5F4F SUBI R20,0xFF
EC 4F5F SBCI R21,0xFF
ED 922F PUSH R2
EE 923F PUSH R3
EF DF6C RCALL _RF01_RDFIFO
F0 903F POP R3
F1 902F POP R2
F2 E68A LDI R24,0x6A
F3 E090 LDI R25,0
F4 01F1 MOVW R30,R2
F5 0FE8 ADD R30,R24
F6 1FF9 ADC R31,R25
F7 8300 STD Z+0,R16
F8 9B82 SBIS 0x10,2
F9 CFF0 RJMP 0x00EA
(0194) if(i==5) //更新数据
FA 3045 CPI R20,5
FB E0E0 LDI R30,0
FC 075E CPC R21,R30
FD F009 BEQ 0x00FF
FE C038 RJMP 0x0137
(0195) {
(0196) i=0;
FF 2744 CLR R20
100 2755 CLR R21
(0197) RFXX_WRT_CMD(0xCE88);//reset FIFO for next frame recognition
101 E808 LDI R16,0x88
102 EC1E LDI R17,0xCE
103 DF3C RCALL _RFXX_WRT_CMD
(0198) RFXX_WRT_CMD(0xCE8B);
104 E80B LDI R16,0x8B
105 EC1E LDI R17,0xCE
106 DF39 RCALL _RFXX_WRT_CMD
(0199)
(0200) ch0=RF_RXBUF[0];
107 9020 006A LDS R2,RF_RXBUF
109 9220 0069 STS ch0,R2
(0201) ch1=RF_RXBUF[1];
10B 9020 006B LDS R2,RF_RXBUF+1
10D 9220 0068 STS ch1,R2
(0202) ch2=RF_RXBUF[2];
10F 9020 006C LDS R2,RF_RXBUF+2
111 9220 0067 STS ch2,R2
(0203) ch3=RF_RXBUF[3];
113 9020 006D LDS R2,RF_RXBUF+3
115 9220 0066 STS ch3,R2
(0204)
(0205) Transmit(ch0);
117 9100 0069 LDS R16,ch0
119 DF61 RCALL _Transmit
(0206) Transmit(ch1);
11A 9100 0068 LDS R16,ch1
11C DF5E RCALL _Transmit
(0207) Transmit(ch2);
11D 9100 0067 LDS R16,ch2
11F DF5B RCALL _Transmit
(0208) Transmit(ch3);
120 9100 0066 LDS R16,ch3
122 DF58 RCALL _Transmit
(0209)
(0210) for(p=0;p<55;p++)
123 2766 CLR R22
124 2777 CLR R23
125 C00D RJMP 0x0133
(0211) for(q=0;q<123;q++)
126 24AA CLR R10
127 24BB CLR R11
128 C003 RJMP 0x012C
129 01C5 MOVW R24,R10
12A 9601 ADIW R24,1
12B 015C MOVW R10,R24
12C 01C5 MOVW R24,R10
12D 378B CPI R24,0x7B
12E E0E0 LDI R30,0
12F 079E CPC R25,R30
130 F3C0 BCS 0x0129
131 5F6F SUBI R22,0xFF
132 4F7F SBCI R23,0xFF
133 3367 CPI R22,0x37
134 E0E0 LDI R30,0
135 077E CPC R23,R30
136 F378 BCS 0x0126
(0212) ;
(0213) }
(0214) count1++;
137 9180 0060 LDS R24,count1
139 9190 0061 LDS R25,count1+1
13B 9601 ADIW R24,1
13C 9390 0061 STS count1+1,R25
13E 9380 0060 STS count1,R24
(0215) if(count1==6)
140 3086 CPI R24,6
141 E0E0 LDI R30,0
142 079E CPC R25,R30
143 F009 BEQ 0x0145
144 C076 RJMP 0x01BB
(0216) {
(0217) PORTB^=0x01;
145 E081 LDI R24,1
146 B228 IN R2,0x18
147 2628 EOR R2,R24
148 BA28 OUT 0x18,R2
(0218) count1=0;
149 2422 CLR R2
14A 2433 CLR R3
14B 9230 0061 STS count1+1,R3
14D 9220 0060 STS count1,R2
(0219) count2++;
14F 9180 0062 LDS R24,count2
151 9190 0063 LDS R25,count2+1
153 9601 ADIW R24,1
154 9390 0063 STS count2+1,R25
156 9380 0062 STS count2,R24
(0220) if(count2==760) //20ms
158 3F88 CPI R24,0xF8
159 E0E2 LDI R30,2
15A 079E CPC R25,R30
15B F449 BNE 0x0165
(0221) {
(0222) PORTB^=0x02;
15C E082 LDI R24,2
15D B228 IN R2,0x18
15E 2628 EOR R2,R24
15F BA28 OUT 0x18,R2
(0223) count2=0;
160 2422 CLR R2
161 9230 0063 STS count2+1,R3
163 9220 0062 STS count2,R2
(0224) }
(0225) if(count2<38) //1ms
165 9180 0062 LDS R24,count2
167 9190 0063 LDS R25,count2+1
169 3286 CPI R24,0x26
16A E0E0 LDI R30,0
16B 079E CPC R25,R30
16C F420 BCC 0x0171
(0226) {
(0227) PORTD|=0xE0;
16D B382 IN R24,0x12
16E 6E80 ORI R24,0xE0
16F BB82 OUT 0x12,R24
(0228) }
170 C023 RJMP 0x0194
(0229) else
(0230) {
(0231) temp=count2/3;
171 E023 LDI R18,3
172 E030 LDI R19,0
173 9100 0062 LDS R16,count2
175 9110 0063 LDS R17,count2+1
177 D047 RCALL div16u
178 0158 MOVW R10,R16
(0232) if(temp<ch0) PORTD|=0x20;
179 9020 0069 LDS R2,ch0
17B 2433 CLR R3
17C 1502 CP R16,R2
17D 0513 CPC R17,R3
17E F410 BCC 0x0181
17F 9A95 SBI 0x12,5
180 C001 RJMP 0x0182
(0233) else PORTD&=~0x20;
181 9895 CBI 0x12,5
(0234)
(0235) if(temp<ch1) PORTD|=0x40;
182 9020 0068 LDS R2,ch1
184 2433 CLR R3
185 14A2 CP R10,R2
186 04B3 CPC R11,R3
187 F410 BCC 0x018A
188 9A96 SBI 0x12,6
189 C001 RJMP 0x018B
(0236) else PORTD&=~0x40;
18A 9896 CBI 0x12,6
(0237)
(0238) if(temp<ch3) PORTD|=0x80;
18B 9020 0066 LDS R2,ch3
18D 2433 CLR R3
18E 14A2 CP R10,R2
18F 04B3 CPC R11,R3
190 F410 BCC 0x0193
191 9A97 SBI 0x12,7
192 C001 RJMP 0x0194
(0239) else PORTD&=~0x80;
193 9897 CBI 0x12,7
(0240) }
(0241) speed++;
194 9180 0064 LDS R24,speed
196 9190 0065 LDS R25,speed+1
198 9601 ADIW R24,1
199 9390 0065 STS speed+1,R25
19B 9380 0064 STS speed,R24
(0242) if(speed>255)
19D EF8F LDI R24,0xFF
19E E090 LDI R25,0
19F 9020 0064 LDS R2,speed
1A1 9030 0065 LDS R3,speed+1
1A3 1582 CP R24,R2
1A4 0593 CPC R25,R3
1A5 F440 BCC 0x01AE
(0243) {
(0244) speed=0;
1A6 2422 CLR R2
1A7 2433 CLR R3
1A8 9230 0065 STS speed+1,R3
1AA 9220 0064 STS speed,R2
(0245) PORTC&=~0x10;
1AC 98AC CBI 0x15,4
(0246) }
1AD C00D RJMP 0x01BB
(0247) else if(speed<ch2)
1AE 9020 0067 LDS R2,ch2
1B0 2433 CLR R3
1B1 9040 0064 LDS R4,speed
1B3 9050 0065 LDS R5,speed+1
1B5 1442 CP R4,R2
1B6 0453 CPC R5,R3
1B7 F410 BCC 0x01BA
(0248) { PORTC|=0x10;}
1B8 9AAC SBI 0x15,4
1B9 C001 RJMP 0x01BB
(0249) else
(0250) { PORTC&=~0x10; }
FILE: <library>
1BA 98AC CBI 0x15,4
1BB CF3C RJMP 0x00F8
1BC 9508 RET
mod16u:
1BD 9468 BSET 6
1BE C001 RJMP xdiv16u
div16u:
1BF 94E8 BCLR 6
xdiv16u:
1C0 92EA ST R14,-Y
1C1 92FA ST R15,-Y
1C2 938A ST R24,-Y
1C3 24EE CLR R14
1C4 24FF CLR R15
1C5 E180 LDI R24,0x10
1C6 0F00 LSL R16
1C7 1F11 ROL R17
1C8 1CEE ROL R14
1C9 1CFF ROL R15
1CA 16E2 CP R14,R18
1CB 06F3 CPC R15,R19
1CC F018 BCS 0x01D0
1CD 1AE2 SUB R14,R18
1CE 0AF3 SBC R15,R19
1CF 9503 INC R16
1D0 958A DEC R24
1D1 F7A1 BNE 0x01C6
1D2 F416 BRTC 0x01D5
1D3 2D0E MOV R16,R14
1D4 2D1F MOV R17,R15
1D5 9189 LD R24,Y+
1D6 90F9 LD R15,Y+
1D7 90E9 LD R14,Y+
1D8 9508 RET
push_xgsetF000:
1D9 937A ST R23,-Y
1DA 936A ST R22,-Y
1DB 935A ST R21,-Y
1DC 934A ST R20,-Y
1DD 9508 RET
pop_xgsetF000:
1DE 9149 LD R20,Y+
1DF 9159 LD R21,Y+
1E0 9169 LD R22,Y+
1E1 9179 LD R23,Y+
1E2 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -