📄 cw1.lis
字号:
0168 .dbline 114
0168 ; MCUCR = 0x00;
0168 2224 clr R2
016A 25BE out 0x35,R2
016C .dbline 115
016C ; GICR = 0x00;
016C 2BBE out 0x3b,R2
016E .dbline 116
016E ; TIMSK = 0x40; //timer interrupt sources
016E 80E4 ldi R24,64
0170 89BF out 0x39,R24
0172 .dbline 117
0172 ; SEI(); //re-enable interrupts
0172 7894 sei
0174 .dbline -2
0174 L31:
0174 .dbline 0 ; func end
0174 0895 ret
0176 .dbend
0176 .dbfunc e decode _decode fc
0176 ; j -> R10
0176 ; i -> R12
0176 ; data -> y+0
0176 ; flag -> R10
0176 ; pin_var -> R14
.even
0176 _decode::
0176 0E940000 xcall push_gset5
017A 2497 sbiw R28,4
017C .dbline -1
017C .dbline 121
017C ; //all peripherals are now initialized
017C ; }
017C ; uchar decode(void)
017C ; {
017C .dbline 123
017C ; uchar pin_var,i;
017C ; uchar flag=0;
017C AA24 clr R10
017E .dbline 125
017E ; signed char j;
017E ; ulong data=0;
017E 40E0 ldi R20,0
0180 50E0 ldi R21,0
0182 60E0 ldi R22,0
0184 70E0 ldi R23,0
0186 FE01 movw R30,R28
0188 4083 std z+0,R20
018A 5183 std z+1,R21
018C 6283 std z+2,R22
018E 7383 std z+3,R23
0190 .dbline 126
0190 ; count1=0;
0190 40E0 ldi R20,0
0192 50E0 ldi R21,0
0194 60E0 ldi R22,0
0196 70E0 ldi R23,0
0198 50930700 sts _count1+1,R21
019C 40930600 sts _count1,R20
01A0 70930900 sts _count1+2+1,R23
01A4 60930800 sts _count1+2,R22
01A8 .dbline 127
01A8 ; DDRA&=~(1<<wuxian_js);PORTA|=(1<<wuxian_js);
01A8 D398 cbi 0x1a,3
01AA .dbline 127
01AA DB9A sbi 0x1b,3
01AC 7AC0 xjmp L34
01AE L33:
01AE .dbline 129
01AE ; while(1)
01AE ; {
01AE .dbline 130
01AE ; if(count1>250){return(0xff);}
01AE 4AEF ldi R20,250
01B0 50E0 ldi R21,0
01B2 60E0 ldi R22,0
01B4 70E0 ldi R23,0
01B6 40900800 lds R4,_count1+2
01BA 50900900 lds R5,_count1+2+1
01BE 20900600 lds R2,_count1
01C2 30900700 lds R3,_count1+1
01C6 4215 cp R20,R2
01C8 5305 cpc R21,R3
01CA 6405 cpc R22,R4
01CC 7505 cpc R23,R5
01CE 10F4 brsh L36
01D0 .dbline 130
01D0 .dbline 130
01D0 0FEF ldi R16,255
01D2 2CC1 xjmp L32
01D4 L36:
01D4 .dbline 131
01D4 ; pin_var=PINA&(1<<wuxian_js);
01D4 89B3 in R24,0x19
01D6 8870 andi R24,8
01D8 E82E mov R14,R24
01DA .dbline 132
01DA ; if(flag==1){break;}
01DA 8A2D mov R24,R10
01DC 8130 cpi R24,1
01DE 09F0 breq X1
01E0 59C0 xjmp L41
01E2 X1:
01E2 .dbline 132
01E2 .dbline 132
01E2 60C0 xjmp L35
01E4 L40:
01E4 .dbline 134
01E4 ; while(pin_var==0)
01E4 ; {
01E4 .dbline 135
01E4 ; count=0;
01E4 40E0 ldi R20,0
01E6 50E0 ldi R21,0
01E8 60E0 ldi R22,0
01EA 70E0 ldi R23,0
01EC 50930B00 sts _count+1,R21
01F0 40930A00 sts _count,R20
01F4 70930D00 sts _count+2+1,R23
01F8 60930C00 sts _count+2,R22
01FC .dbline 136
01FC ; if(count1>250){return(0xff);}
01FC 4AEF ldi R20,250
01FE 50E0 ldi R21,0
0200 60E0 ldi R22,0
0202 70E0 ldi R23,0
0204 40900800 lds R4,_count1+2
0208 50900900 lds R5,_count1+2+1
020C 20900600 lds R2,_count1
0210 30900700 lds R3,_count1+1
0214 4215 cp R20,R2
0216 5305 cpc R21,R3
0218 6405 cpc R22,R4
021A 7505 cpc R23,R5
021C C8F5 brsh L46
021E .dbline 136
021E .dbline 136
021E 0FEF ldi R16,255
0220 05C1 xjmp L32
0222 L45:
0222 .dbline 138
0222 ; while(1)
0222 ; {
0222 .dbline 139
0222 ; pin_var=PINA&(1<<wuxian_js);if(count1>250){return(0xff);}
0222 89B3 in R24,0x19
0224 8870 andi R24,8
0226 E82E mov R14,R24
0228 .dbline 139
0228 4AEF ldi R20,250
022A 50E0 ldi R21,0
022C 60E0 ldi R22,0
022E 70E0 ldi R23,0
0230 40900800 lds R4,_count1+2
0234 50900900 lds R5,_count1+2+1
0238 20900600 lds R2,_count1
023C 30900700 lds R3,_count1+1
0240 4215 cp R20,R2
0242 5305 cpc R21,R3
0244 6405 cpc R22,R4
0246 7505 cpc R23,R5
0248 10F4 brsh L48
024A .dbline 139
024A .dbline 139
024A 0FEF ldi R16,255
024C EFC0 xjmp L32
024E L48:
024E .dbline 140
024E ; if(pin_var!=0)
024E EE20 tst R14
0250 F9F0 breq L50
0252 .dbline 141
0252 ; {
0252 .dbline 142
0252 ; if((count>130)&&(count<155)) {flag=1;break;}
0252 42E8 ldi R20,130
0254 50E0 ldi R21,0
0256 60E0 ldi R22,0
0258 70E0 ldi R23,0
025A 40900C00 lds R4,_count+2
025E 50900D00 lds R5,_count+2+1
0262 20900A00 lds R2,_count
0266 30900B00 lds R3,_count+1
026A 4215 cp R20,R2
026C 5305 cpc R21,R3
026E 6405 cpc R22,R4
0270 7505 cpc R23,R5
0272 60F4 brsh L52
0274 4BE9 ldi R20,155
0276 50E0 ldi R21,0
0278 60E0 ldi R22,0
027A 70E0 ldi R23,0
027C 2416 cp R2,R20
027E 3506 cpc R3,R21
0280 4606 cpc R4,R22
0282 5706 cpc R5,R23
0284 18F4 brsh L52
0286 .dbline 142
0286 .dbline 142
0286 AA24 clr R10
0288 A394 inc R10
028A .dbline 142
028A 07C0 xjmp L42
028C L52:
028C .dbline 143
028C ; else {flag=0;break;}
028C .dbline 143
028C AA24 clr R10
028E .dbline 143
028E 05C0 xjmp L42
0290 L50:
0290 .dbline 145
0290 L46:
0290 .dbline 137
0290 C8CF xjmp L45
0292 X0:
0292 .dbline 146
0292 03C0 xjmp L42
0294 L41:
0294 .dbline 133
0294 EE20 tst R14
0296 09F4 brne X2
0298 A5CF xjmp L40
029A X2:
029A L42:
029A .dbline 148
029A ; }
029A ; }
029A ; break;
029A ; }
029A ; if(flag==1) break;
029A 8A2D mov R24,R10
029C 8130 cpi R24,1
029E 09F4 brne L54
02A0 .dbline 148
02A0 01C0 xjmp L35
02A2 L54:
02A2 .dbline 149
02A2 L34:
02A2 .dbline 128
02A2 85CF xjmp L33
02A4 L35:
02A4 .dbline 151
02A4 ; }
02A4 ;
02A4 ; for(i=0;i<24;i++)
02A4 CC24 clr R12
02A6 95C0 xjmp L59
02A8 L56:
02A8 .dbline 152
02A8 ; {
02A8 .dbline 154
02A8 ;
02A8 ; count=0;
02A8 40E0 ldi R20,0
02AA 50E0 ldi R21,0
02AC 60E0 ldi R22,0
02AE 70E0 ldi R23,0
02B0 50930B00 sts _count+1,R21
02B4 40930A00 sts _count,R20
02B8 70930D00 sts _count+2+1,R23
02BC 60930C00 sts _count+2,R22
02C0 .dbline 155
02C0 ; data<<=1; //数据左移
02C0 FE01 movw R30,R28
02C2 2080 ldd R2,z+0
02C4 3180 ldd R3,z+1
02C6 4280 ldd R4,z+2
02C8 5380 ldd R5,z+3
02CA 220C lsl R2
02CC 331C rol R3
02CE 441C rol R4
02D0 551C rol R5
02D2 FE01 movw R30,R28
02D4 2082 std z+0,R2
02D6 3182 std z+1,R3
02D8 4282 std z+2,R4
02DA 5382 std z+3,R5
02DC 19C0 xjmp L61
02DE L60:
02DE .dbline 157
02DE ; while (1) //高位计数
02DE ; {
02DE .dbline 158
02DE ; pin_var=PINA&(1<<wuxian_js);
02DE 89B3 in R24,0x19
02E0 8870 andi R24,8
02E2 E82E mov R14,R24
02E4 .dbline 159
02E4 ; if(pin_var==0) {break;}
02E4 8823 tst R24
02E6 09F4 brne L63
02E8 .dbline 159
02E8 .dbline 159
02E8 14C0 xjmp L62
02EA L63:
02EA .dbline 160
02EA ; if(count>200) return 0xff;
02EA 48EC ldi R20,200
02EC 50E0 ldi R21,0
02EE 60E0 ldi R22,0
02F0 70E0 ldi R23,0
02F2 40900C00 lds R4,_count+2
02F6 50900D00 lds R5,_count+2+1
02FA 20900A00 lds R2,_count
02FE 30900B00 lds R3,_count+1
0302 4215 cp R20,R2
0304 5305 cpc R21,R3
0306 6405 cpc R22,R4
0308 7505 cpc R23,R5
030A 10F4 brsh L65
030C .dbline 160
030C 0FEF ldi R16,255
030E 8EC0 xjmp L32
0310 L65:
0310 .dbline 161
0310 L61:
0310 .dbline 156
0310 E6CF xjmp L60
0312 L62:
0312 .dbline 162
0312 ; }
0312 ; if(count>1&&count<8) data+=0;
0312 41E0 ldi R20,1
0314 50E0 ldi R21,0
0316 60E0 ldi R22,0
0318 70E0 ldi R23,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -