?? yaokong.lst
字號:
0173 902000A9 LDS R2,count1
0175 903000AA LDS R3,count1+1
0177 1542 CP R20,R2
0178 0553 CPC R21,R3
0179 0564 CPC R22,R4
017A 0575 CPC R23,R5
017B F5C8 BCC 0x01B5
017C EF0F LDI R16,0xFF
017D C105 RJMP 0x0283
(0137) while(1)
(0138) {
(0139) pin_var=PINA&(1<<wuxian_js);if(count1>250){return(0xff);}
017E B389 IN R24,0x19
017F 7088 ANDI R24,0x8
0180 2EE8 MOV R14,R24
0181 EF4A LDI R20,0xFA
0182 E050 LDI R21,0
0183 E060 LDI R22,0
0184 E070 LDI R23,0
0185 904000AB LDS R4,count1+2
0187 905000AC LDS R5,count1+3
0189 902000A9 LDS R2,count1
018B 903000AA LDS R3,count1+1
018D 1542 CP R20,R2
018E 0553 CPC R21,R3
018F 0564 CPC R22,R4
0190 0575 CPC R23,R5
0191 F410 BCC 0x0194
0192 EF0F LDI R16,0xFF
0193 C0EF RJMP 0x0283
(0140) if(pin_var!=0)
0194 20EE TST R14
0195 F0F9 BEQ 0x01B5
(0141) {
(0142) if((count>130)&&(count<155)) {flag=1;break;}
0196 E842 LDI R20,0x82
0197 E050 LDI R21,0
0198 E060 LDI R22,0
0199 E070 LDI R23,0
019A 904000AF LDS R4,count+2
019C 905000B0 LDS R5,count+3
019E 902000AD LDS R2,count
01A0 903000AE LDS R3,count+1
01A2 1542 CP R20,R2
01A3 0553 CPC R21,R3
01A4 0564 CPC R22,R4
01A5 0575 CPC R23,R5
01A6 F460 BCC 0x01B3
01A7 E94B LDI R20,0x9B
01A8 E050 LDI R21,0
01A9 E060 LDI R22,0
01AA E070 LDI R23,0
01AB 1624 CP R2,R20
01AC 0635 CPC R3,R21
01AD 0646 CPC R4,R22
01AE 0657 CPC R5,R23
01AF F418 BCC 0x01B3
01B0 24AA CLR R10
01B1 94A3 INC R10
01B2 C007 RJMP 0x01BA
(0143) else {flag=0;break;}
01B3 24AA CLR R10
01B4 C005 RJMP 0x01BA
01B5 CFC8 RJMP 0x017E
(0144) }
(0145) }
(0146) break;
01B6 C003 RJMP 0x01BA
01B7 20EE TST R14
01B8 F409 BNE 0x01BA
01B9 CFA5 RJMP 0x015F
(0147) }
(0148) if(flag==1) break;
01BA 2D8A MOV R24,R10
01BB 3081 CPI R24,1
01BC F409 BNE 0x01BE
01BD C001 RJMP 0x01BF
01BE CF85 RJMP 0x0144
(0149) }
(0150)
(0151) for(i=0;i<24;i++)
01BF 24CC CLR R12
01C0 C095 RJMP 0x0256
(0152) {
(0153)
(0154) count=0;
01C1 E040 LDI R20,0
01C2 E050 LDI R21,0
01C3 E060 LDI R22,0
01C4 E070 LDI R23,0
01C5 935000AE STS count+1,R21
01C7 934000AD STS count,R20
01C9 937000B0 STS count+3,R23
01CB 936000AF STS count+2,R22
(0155) data<<=1; //數據左移
01CD 01FE MOVW R30,R28
01CE 8020 LDD R2,Z+0
01CF 8031 LDD R3,Z+1
01D0 8042 LDD R4,Z+2
01D1 8053 LDD R5,Z+3
01D2 0C22 LSL R2
01D3 1C33 ROL R3
01D4 1C44 ROL R4
01D5 1C55 ROL R5
01D6 01FE MOVW R30,R28
01D7 8220 STD Z+0,R2
01D8 8231 STD Z+1,R3
01D9 8242 STD Z+2,R4
01DA 8253 STD Z+3,R5
01DB C019 RJMP 0x01F5
(0156) while (1) //高位計數
(0157) {
(0158) pin_var=PINA&(1<<wuxian_js);
01DC B389 IN R24,0x19
01DD 7088 ANDI R24,0x8
01DE 2EE8 MOV R14,R24
(0159) if(pin_var==0) {break;}
01DF 2388 TST R24
01E0 F409 BNE 0x01E2
01E1 C014 RJMP 0x01F6
(0160) if(count>200) return 0xff;
01E2 EC48 LDI R20,0xC8
01E3 E050 LDI R21,0
01E4 E060 LDI R22,0
01E5 E070 LDI R23,0
01E6 904000AF LDS R4,count+2
01E8 905000B0 LDS R5,count+3
01EA 902000AD LDS R2,count
01EC 903000AE LDS R3,count+1
01EE 1542 CP R20,R2
01EF 0553 CPC R21,R3
01F0 0564 CPC R22,R4
01F1 0575 CPC R23,R5
01F2 F410 BCC 0x01F5
01F3 EF0F LDI R16,0xFF
01F4 C08E RJMP 0x0283
01F5 CFE6 RJMP 0x01DC
(0161) }
(0162) if(count>1&&count<8) data+=0;
01F6 E041 LDI R20,1
01F7 E050 LDI R21,0
01F8 E060 LDI R22,0
01F9 E070 LDI R23,0
01FA 904000AF LDS R4,count+2
01FC 905000B0 LDS R5,count+3
01FE 902000AD LDS R2,count
0200 903000AE LDS R3,count+1
0202 1542 CP R20,R2
0203 0553 CPC R21,R3
0204 0564 CPC R22,R4
0205 0575 CPC R23,R5
0206 F4A0 BCC 0x021B
0207 E048 LDI R20,0x8
0208 E050 LDI R21,0
0209 E060 LDI R22,0
020A E070 LDI R23,0
020B 1624 CP R2,R20
020C 0635 CPC R3,R21
020D 0646 CPC R4,R22
020E 0657 CPC R5,R23
020F F458 BCC 0x021B
0210 01FE MOVW R30,R28
0211 8020 LDD R2,Z+0
0212 8031 LDD R3,Z+1
0213 8042 LDD R4,Z+2
0214 8053 LDD R5,Z+3
0215 01FE MOVW R30,R28
0216 8220 STD Z+0,R2
0217 8231 STD Z+1,R3
0218 8242 STD Z+2,R4
0219 8253 STD Z+3,R5
021A C012 RJMP 0x022D
(0163) else //if(count>13&&count<15)
(0164) data|=1;
021B E041 LDI R20,1
021C E050 LDI R21,0
021D E060 LDI R22,0
021E E070 LDI R23,0
021F 01FE MOVW R30,R28
0220 8020 LDD R2,Z+0
0221 8031 LDD R3,Z+1
0222 8042 LDD R4,Z+2
0223 8053 LDD R5,Z+3
0224 2A24 OR R2,R20
0225 2A35 OR R3,R21
0226 2A46 OR R4,R22
0227 2A57 OR R5,R23
0228 01FE MOVW R30,R28
0229 8220 STD Z+0,R2
022A 8231 STD Z+1,R3
022B 8242 STD Z+2,R4
022C 8253 STD Z+3,R5
(0165)
(0166) count=0;
022D E040 LDI R20,0
022E E050 LDI R21,0
022F E060 LDI R22,0
0230 E070 LDI R23,0
0231 935000AE STS count+1,R21
0233 934000AD STS count,R20
0235 937000B0 STS count+3,R23
0237 936000AF STS count+2,R22
0239 C01A RJMP 0x0254
(0167) while(1)
(0168) {
(0169) WDR();
023A 95A8 WDR
(0170) pin_var=PINA&(1<<wuxian_js);
023B B389 IN R24,0x19
023C 7088 ANDI R24,0x8
023D 2EE8 MOV R14,R24
(0171) if(pin_var!=0){break;}
023E 2388 TST R24
023F F009 BEQ 0x0241
0240 C014 RJMP 0x0255
(0172) if(count>200)
0241 EC48 LDI R20,0xC8
0242 E050 LDI R21,0
0243 E060 LDI R22,0
0244 E070 LDI R23,0
0245 904000AF LDS R4,count+2
0247 905000B0 LDS R5,count+3
0249 902000AD LDS R2,count
024B 903000AE LDS R3,count+1
024D 1542 CP R20,R2
024E 0553 CPC R21,R3
024F 0564 CPC R22,R4
0250 0575 CPC R23,R5
0251 F410 BCC 0x0254
(0173) {
(0174) return(0xff);
0252 EF0F LDI R16,0xFF
0253 C02F RJMP 0x0283
0254 CFE5 RJMP 0x023A
0255 94C3 INC R12
0256 2D8C MOV R24,R12
0257 3188 CPI R24,0x18
0258 F408 BCC 0x025A
0259 CF67 RJMP 0x01C1
(0175) }
(0176) }
(0177) }
(0178) if(i==24)
025A 3188 CPI R24,0x18
025B F531 BNE 0x0282
(0179) {
(0180) for(j=2;j>=0;j--)
025C E082 LDI R24,2
025D 2EA8 MOV R10,R24
025E C020 RJMP 0x027F
(0181) {
(0182) code[j]=data;
025F EA86 LDI R24,0xA6
0260 E090 LDI R25,0
0261 2DEA MOV R30,R10
0263 FDE7 SBRC R30,7
0264 95F0 COM R31
0265 0FE8 ADD R30,R24
0266 1FF9 ADC R31,R25
0267 01DE MOVW R26,R28
0268 902D LD R2,X+
0269 903D LD R3,X+
026A 904D LD R4,X+
026B 905C LD R5,0(X)
026C 8220 STD Z+0,R2
(0183) data>>=8;
026D E088 LDI R24,0x8
026E E090 LDI R25,0
026F 01FE MOVW R30,R28
0270 8020 LDD R2,Z+0
0271 8031 LDD R3,Z+1
0272 8042 LDD R4,Z+2
0273 8053 LDD R5,Z+3
0274 938A ST R24,-Y
0275 0181 MOVW R16,R2
0276 0192 MOVW R18,R4
0277 940E0410 CALL lsr32
0279 01FE MOVW R30,R28
027A 8300 STD Z+0,R16
027B 8311 STD Z+1,R17
027C 8322 STD Z+2,R18
027D 8333 STD Z+3,R19
027E 94AA DEC R10
027F 2D8A MOV R24,R10
0280 3080 CPI R24,0
0281 F6EC BGE 0x025F
(0184) }
(0185) }
(0186) return 1;
0282 E001 LDI R16,1
0283 9624 ADIW R28,4
0284 940E03EE CALL pop_gset5
0286 9508 RET
_ana_decode:
key_var --> R20
code_buf --> Y+0
flag --> R22
i --> R20
0287 940E03F7 CALL push_gset2
0289 9727 SBIW R28,7
(0187) }
(0188)
(0189) void ana_decode(void)
(0190) {
(0191) uchar key_var;
(0192) uchar i,flag=0;
028A 2766 CLR R22
(0193) uchar code_buf[7];
(0194) DDRC&=~(1<<study_key);PORTC|=(1<<study_key);
028B 98A1 CBI 0x14,1
028C 9AA9 SBI 0x15,1
(0195) key_var=PINC&(1<<study_key);
028D B343 IN R20,0x13
028E 7042 ANDI R20,2
(0196) if(key_var==0)
028F F009 BEQ 0x0291
0290 C051 RJMP 0x02E2
(0197) {
0291 C03C RJMP 0x02CE
(0198) while(1)
(0199) {
(0200) while(1)
(0201) {
(0202) flag=decode();
0292 DE95 RCALL _decode
0293 2F60 MOV R22,R16
(0203) if(flag==1) {flag=0;break;}
0294 3001 CPI R16,1
0295 F411 BNE 0x0298
0296 2766 CLR R22
0297 C001 RJMP 0x0299
0298 CFF9 RJMP 0x0292
(0204) }
(0205) for(i=0;i<2;++i){code1[i]=code[i];}
0299 2744 CLR R20
029A C00F RJMP 0x02AA
029B EA86 LDI R24,0xA6
029C E090 LDI R25,0
029D 2FE4 MOV R30,R20
029E 27FF CLR R31
029F 0FE8 ADD R30,R24
02A0 1FF9 ADC R31,R25
02A1 8020 LDD R2,Z+0
02A2 EA83 LDI R24,0xA3
02A3 E090 LDI R25,0
02A4 2FE4 MOV R30,R20
02A5 27FF CLR R31
02A6 0FE8 ADD R30,R24
02A7 1FF9 ADC R31,R25
02A8 8220 STD Z+0,R2
02A9 9543 INC R20
02AA 3042 CPI R20,2
02AB F378 BCS 0x029B
02AC C006 RJMP 0x02B3
(0206) while(1)
(0207) {
(0208) flag=decode();
02AD DE7A RCALL _decode
02AE 2F60 MOV R22,R16
(0209) if(flag==1) {flag=0;break;}
02AF 3001 CPI R16,1
02B0 F411 BNE 0x02B3
02B1 2766 CLR R22
02B2 C001 RJMP 0x02B4
02B3 CFF9 RJMP 0x02AD
(0210)
(0211) }
(0212) for(i=0;i<2;++i){if(code1[i]!=code[i]){break;}}
02B4 2744 CLR R20
02B5 C012 RJMP 0x02C8
02B6 EA86 LDI R24,0xA6
02B7 E090 LDI R25,0
02B8 2FE4 MOV R30,R20
02B9 27FF CLR R31
02BA 0FE8 ADD R30,R24
02BB 1FF9 ADC R31,R25
02BC 8020 LDD R2,Z+0
02BD EA83 LDI R24,0xA3
02BE E090 LDI R25,0
02BF 2FE4 MOV R30,R20
02C0 27FF CLR R31
02C1 0FE8 ADD R30,R24
02C2 1FF9 ADC R31,R25
02C3 8030 LDD R3,Z+0
02C4 1432 CP R3,R2
02C5 F009 BEQ 0x02C7
02C6 C003 RJMP 0x02CA
02C7 9543 INC R20
02C8 3042 CPI R20,2
02C9 F360 BCS 0x02B6
(0213) if(i==2){flag=1;break;}
02CA 3042 CPI R20,2
02CB F411 BNE 0x02CE
02CC E061 LDI R22,1
02CD C001 RJMP 0x02CF
02CE CFC9 RJMP 0x0298
(0214) }
(0215) if(flag==1)
02CF 3061 CPI R22,1
02D0 F009 BEQ 0x02D2
02D1 C10C RJMP 0x03DE
(0216) {
(0217) for(i=0;i<2;++i)
02D2 2744 CLR R20
02D3 C00A RJMP 0x02DE
(0218) {
(0219) eeprom_writ(i,code[i]);
02D4 EA86 LDI R24,0xA6
02D5 E090 LDI R25,0
02D6 2FE4 MOV R30,R20
02D7 27FF CLR R31
02D8 0FE8 ADD R30,R24
02D9 1FF9 ADC R31,R25
02DA 8120 LDD R18,Z+0
02DB 2F04 MOV R16,R20
02DC DE2B RCALL _eeprom_writ
02DD 9543 INC R20
02DE 3042 CPI R20,2
02DF F3A0 BCS 0x02D4
(0220) }
(0221) flag=0;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -