?? yaokong.lst
字號:
02E0 2766 CLR R22
(0222) }
(0223) return;
02E1 C0FC RJMP 0x03DE
(0224) }
(0225) flag=decode();
02E2 DE45 RCALL _decode
02E3 2F60 MOV R22,R16
(0226) if(flag==1)
02E4 3001 CPI R16,1
02E5 F009 BEQ 0x02E7
02E6 C0E7 RJMP 0x03CE
(0227) {
(0228) for(i=0;i<2;++i)
02E7 2744 CLR R20
02E8 C00E RJMP 0x02F7
(0229) {
(0230) if(eeprom_read(i)!=code[i]) {flag=0xff;break;}
02E9 2F04 MOV R16,R20
02EA DE28 RCALL _eeprom_read
02EB EA86 LDI R24,0xA6
02EC E090 LDI R25,0
02ED 2FE4 MOV R30,R20
02EE 27FF CLR R31
02EF 0FE8 ADD R30,R24
02F0 1FF9 ADC R31,R25
02F1 8020 LDD R2,Z+0
02F2 1502 CP R16,R2
02F3 F011 BEQ 0x02F6
02F4 EF6F LDI R22,0xFF
02F5 C003 RJMP 0x02F9
02F6 9543 INC R20
02F7 3042 CPI R20,2
02F8 F380 BCS 0x02E9
(0231) }
(0232) if(flag==1)
02F9 3061 CPI R22,1
02FA F009 BEQ 0x02FC
02FB C0E2 RJMP 0x03DE
(0233) {
(0234) flag==0;
(0235) if(code[2]==0xc0)
02FC 918000A8 LDS R24,code+2
02FE 3C80 CPI R24,0xC0
02FF F471 BNE 0x030E
(0236) {
(0237) for(i=0;i<14;i++)
0300 2744 CLR R20
0301 C009 RJMP 0x030B
(0238) {
(0239) uart_transmit_byte(forward[i]);
0302 E684 LDI R24,0x64
0303 E090 LDI R25,0
0304 2FE4 MOV R30,R20
0305 27FF CLR R31
0306 0FE8 ADD R30,R24
0307 1FF9 ADC R31,R25
0308 8100 LDD R16,Z+0
0309 DD93 RCALL _uart_transmit_byte
030A 9543 INC R20
030B 304E CPI R20,0xE
030C F3A8 BCS 0x0302
(0240) }
(0241) }
030D C0BE RJMP 0x03CC
(0242) else if(code[2]==0x30)
030E 918000A8 LDS R24,code+2
0310 3380 CPI R24,0x30
0311 F471 BNE 0x0320
(0243) {
(0244) for(i=0;i<14;i++)
0312 2744 CLR R20
0313 C009 RJMP 0x031D
(0245) {
(0246) uart_transmit_byte(back[i]);
0314 E782 LDI R24,0x72
0315 E090 LDI R25,0
0316 2FE4 MOV R30,R20
0317 27FF CLR R31
0318 0FE8 ADD R30,R24
0319 1FF9 ADC R31,R25
031A 8100 LDD R16,Z+0
031B DD81 RCALL _uart_transmit_byte
031C 9543 INC R20
031D 304E CPI R20,0xE
031E F3A8 BCS 0x0314
(0247) }
(0248) }
031F C0AC RJMP 0x03CC
(0249) else if(code[2]==0xf0) //上
0320 918000A8 LDS R24,code+2
0322 3F80 CPI R24,0xF0
0323 F4D9 BNE 0x033F
(0250) {
(0251) for(i=0;i<7;i++)
0324 2744 CLR R20
0325 C016 RJMP 0x033C
(0252) {
(0253) uart_transmit_byte(UP[i]);
0326 E880 LDI R24,0x80
0327 E090 LDI R25,0
0328 2FE4 MOV R30,R20
0329 27FF CLR R31
032A 0FE8 ADD R30,R24
032B 1FF9 ADC R31,R25
032C 8100 LDD R16,Z+0
032D DD6F RCALL _uart_transmit_byte
(0254) code_buf[i]=UP[i];
032E E880 LDI R24,0x80
032F E090 LDI R25,0
0330 2FE4 MOV R30,R20
0331 27FF CLR R31
0332 0FE8 ADD R30,R24
0333 1FF9 ADC R31,R25
0334 8020 LDD R2,Z+0
0335 01CE MOVW R24,R28
0336 2FE4 MOV R30,R20
0337 27FF CLR R31
0338 0FE8 ADD R30,R24
0339 1FF9 ADC R31,R25
033A 8220 STD Z+0,R2
033B 9543 INC R20
033C 3047 CPI R20,7
033D F340 BCS 0x0326
(0255) }
(0256) }
033E C08D RJMP 0x03CC
(0257) else if(code[2]==0x0c)//下
033F 918000A8 LDS R24,code+2
0341 308C CPI R24,0xC
0342 F4D9 BNE 0x035E
(0258) {
(0259) for(i=0;i<7;i++)
0343 2744 CLR R20
0344 C016 RJMP 0x035B
(0260) {
(0261) uart_transmit_byte(DOWN[i]);
0345 E887 LDI R24,0x87
0346 E090 LDI R25,0
0347 2FE4 MOV R30,R20
0348 27FF CLR R31
0349 0FE8 ADD R30,R24
034A 1FF9 ADC R31,R25
034B 8100 LDD R16,Z+0
034C DD50 RCALL _uart_transmit_byte
(0262) code_buf[i]=DOWN[i];
034D E887 LDI R24,0x87
034E E090 LDI R25,0
034F 2FE4 MOV R30,R20
0350 27FF CLR R31
0351 0FE8 ADD R30,R24
0352 1FF9 ADC R31,R25
0353 8020 LDD R2,Z+0
0354 01CE MOVW R24,R28
0355 2FE4 MOV R30,R20
0356 27FF CLR R31
0357 0FE8 ADD R30,R24
0358 1FF9 ADC R31,R25
0359 8220 STD Z+0,R2
035A 9543 INC R20
035B 3047 CPI R20,7
035C F340 BCS 0x0345
(0263) }
(0264) }
035D C06E RJMP 0x03CC
(0265)
(0266) else if(code[2]==0xcc)//左
035E 918000A8 LDS R24,code+2
0360 3C8C CPI R24,0xCC
0361 F4D9 BNE 0x037D
(0267) {
(0268) for(i=0;i<7;i++)
0362 2744 CLR R20
0363 C016 RJMP 0x037A
(0269) {
(0270) uart_transmit_byte(left[i]);
0364 E88E LDI R24,0x8E
0365 E090 LDI R25,0
0366 2FE4 MOV R30,R20
0367 27FF CLR R31
0368 0FE8 ADD R30,R24
0369 1FF9 ADC R31,R25
036A 8100 LDD R16,Z+0
036B DD31 RCALL _uart_transmit_byte
(0271) code_buf[i]=left[i];
036C E88E LDI R24,0x8E
036D E090 LDI R25,0
036E 2FE4 MOV R30,R20
036F 27FF CLR R31
0370 0FE8 ADD R30,R24
0371 1FF9 ADC R31,R25
0372 8020 LDD R2,Z+0
0373 01CE MOVW R24,R28
0374 2FE4 MOV R30,R20
0375 27FF CLR R31
0376 0FE8 ADD R30,R24
0377 1FF9 ADC R31,R25
0378 8220 STD Z+0,R2
0379 9543 INC R20
037A 3047 CPI R20,7
037B F340 BCS 0x0364
(0272) }
(0273) }
037C C04F RJMP 0x03CC
(0274) else if(code[2]==0x3c)//右
037D 918000A8 LDS R24,code+2
037F 338C CPI R24,0x3C
0380 F009 BEQ 0x0382
0381 C04A RJMP 0x03CC
(0275) {
(0276) for(i=0;i<7;i++)
0382 2744 CLR R20
0383 C009 RJMP 0x038D
(0277) {
(0278) uart_transmit_byte(right[i]);
0384 E985 LDI R24,0x95
0385 E090 LDI R25,0
0386 2FE4 MOV R30,R20
0387 27FF CLR R31
0388 0FE8 ADD R30,R24
0389 1FF9 ADC R31,R25
038A 8100 LDD R16,Z+0
038B DD11 RCALL _uart_transmit_byte
038C 9543 INC R20
038D 3047 CPI R20,7
038E F3A8 BCS 0x0384
(0279) }
(0280) code_buf[i]=right[i];
038F E985 LDI R24,0x95
0390 E090 LDI R25,0
0391 2FE4 MOV R30,R20
0392 27FF CLR R31
0393 0FE8 ADD R30,R24
0394 1FF9 ADC R31,R25
0395 8020 LDD R2,Z+0
0396 01CE MOVW R24,R28
0397 2FE4 MOV R30,R20
0398 27FF CLR R31
0399 0FE8 ADD R30,R24
039A 1FF9 ADC R31,R25
039B 8220 STD Z+0,R2
(0281) }
039C C02F RJMP 0x03CC
(0282) while(1)
(0283) {
(0284) flag=decode();
039D DD8A RCALL _decode
039E 2F60 MOV R22,R16
039F C01E RJMP 0x03BE
(0285) while(flag==0xff)
(0286) {
(0287) flag=0;
03A0 2766 CLR R22
(0288) delay_nms(25);
03A1 E109 LDI R16,0x19
03A2 E010 LDI R17,0
03A3 DCD3 RCALL _delay_nms
(0289) flag=decode();
03A4 DD83 RCALL _decode
03A5 2F60 MOV R22,R16
03A6 C011 RJMP 0x03B8
(0290) while(flag==0xff)
(0291) {
(0292) for(i=0;i<7;i++)
03A7 2744 CLR R20
03A8 C009 RJMP 0x03B2
(0293) uart_transmit_byte(STOP[i]);
03A9 E98C LDI R24,0x9C
03AA E090 LDI R25,0
03AB 2FE4 MOV R30,R20
03AC 27FF CLR R31
03AD 0FE8 ADD R30,R24
03AE 1FF9 ADC R31,R25
03AF 8100 LDD R16,Z+0
03B0 DCEC RCALL _uart_transmit_byte
03B1 9543 INC R20
03B2 3047 CPI R20,7
03B3 F3A8 BCS 0x03A9
(0294) if(i==7) {flag=1;break;}
03B4 3047 CPI R20,7
03B5 F411 BNE 0x03B8
03B6 E061 LDI R22,1
03B7 C002 RJMP 0x03BA
03B8 3F6F CPI R22,0xFF
03B9 F369 BEQ 0x03A7
(0295) }
(0296) if(flag==1) {flag=0;return;}
03BA 3061 CPI R22,1
03BB F411 BNE 0x03BE
03BC 2766 CLR R22
03BD C020 RJMP 0x03DE
03BE 3F6F CPI R22,0xFF
03BF F301 BEQ 0x03A0
(0297) }
(0298) for(i=0;i<7;i++)
03C0 2744 CLR R20
03C1 C008 RJMP 0x03CA
(0299) uart_transmit_byte(code_buf[i]);
03C2 01CE MOVW R24,R28
03C3 2FE4 MOV R30,R20
03C4 27FF CLR R31
03C5 0FE8 ADD R30,R24
03C6 1FF9 ADC R31,R25
03C7 8100 LDD R16,Z+0
03C8 DCD4 RCALL _uart_transmit_byte
03C9 9543 INC R20
03CA 3047 CPI R20,7
03CB F3B0 BCS 0x03C2
03CC CFD0 RJMP 0x039D
(0300) }
(0301) }
(0302) }
03CD C010 RJMP 0x03DE
(0303) else if(flag==0xff)
03CE 3F6F CPI R22,0xFF
03CF F471 BNE 0x03DE
(0304) {
(0305) flag=0;
03D0 2766 CLR R22
(0306) for(i=0;i<7;i++)
03D1 2744 CLR R20
03D2 C009 RJMP 0x03DC
(0307) uart_transmit_byte(STOP[i]);
03D3 E98C LDI R24,0x9C
03D4 E090 LDI R25,0
03D5 2FE4 MOV R30,R20
03D6 27FF CLR R31
03D7 0FE8 ADD R30,R24
03D8 1FF9 ADC R31,R25
03D9 8100 LDD R16,Z+0
03DA DCC2 RCALL _uart_transmit_byte
03DB 9543 INC R20
03DC 3047 CPI R20,7
03DD F3A8 BCS 0x03D3
(0308) }
03DE 9627 ADIW R28,7
03DF 940E03EB CALL pop_gset2
03E1 9508 RET
(0309) }
(0310) void main()
(0311) {
(0312) init_devices();
03E2 DD3A RCALL _init_devices
(0313) //DDRA&=~(1<<wuxian_js);
(0314) // PORTA|=(1<<wuxian_js);
(0315) DDRD=0x02;
03E3 E082 LDI R24,2
03E4 BB81 OUT 0x11,R24
(0316) //DDRC|=(1<<power_led);
(0317) //PORTC&=~(1<<power_led);
(0318) DDRA |=0x40; //485使能
03E5 9AD6 SBI 0x1A,6
(0319) PORTA|=0x40; //
03E6 9ADE SBI 0x1B,6
03E7 C001 RJMP 0x03E9
(0320) while(1)
(0321) {
(0322) ana_decode();
FILE: <library>
03E8 DE9E RCALL _ana_decode
03E9 CFFE RJMP 0x03E8
03EA 9508 RET
pop_gset2:
03EB E0E2 LDI R30,2
03EC 940C03FD JMP pop
pop_gset5:
03EE 27EE CLR R30
03EF 940C03FD JMP pop
push_gset5:
03F1 92FA ST R15,-Y
03F2 92EA ST R14,-Y
push_gset4:
03F3 92DA ST R13,-Y
03F4 92CA ST R12,-Y
push_gset3:
03F5 92BA ST R11,-Y
03F6 92AA ST R10,-Y
push_gset2:
03F7 937A ST R23,-Y
03F8 936A ST R22,-Y
push_gset1:
03F9 935A ST R21,-Y
03FA 934A ST R20,-Y
03FB 9508 RET
pop_gset1:
03FC E0E1 LDI R30,1
pop:
03FD 9149 LD R20,Y+
03FE 9159 LD R21,Y+
03FF FDE0 SBRC R30,0
0400 9508 RET
0401 9169 LD R22,Y+
0402 9179 LD R23,Y+
0403 FDE1 SBRC R30,1
0404 9508 RET
0405 90A9 LD R10,Y+
0406 90B9 LD R11,Y+
0407 FDE2 SBRC R30,2
0408 9508 RET
0409 90C9 LD R12,Y+
040A 90D9 LD R13,Y+
040B FDE3 SBRC R30,3
040C 9508 RET
040D 90E9 LD R14,Y+
040E 90F9 LD R15,Y+
040F 9508 RET
lsr32:
0410 920F PUSH R0
0411 9009 LD R0,Y+
0412 2000 TST R0
0413 F031 BEQ 0x041A
0414 9536 LSR R19
0415 9527 ROR R18
0416 9517 ROR R17
0417 9507 ROR R16
0418 940A DEC R0
0419 CFF8 RJMP 0x0412
041A 900F POP R0
041B 9508 RET
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -