📄 main.lis
字号:
036A .dbline 139
036A A895 wdr
036C .dbline 139
036C 81E0 ldi R24,1
036E 80930100 sts _JS,R24
0372 .dbline 140
0372 ; if(Counter>1500){Counter=0;JS=0;DisFlag=1;cx=0;goto END;}
0372 8CED ldi R24,1500
0374 95E0 ldi R25,5
0376 20901300 lds R2,_Counter
037A 30901400 lds R3,_Counter+1
037E 8215 cp R24,R2
0380 9305 cpc R25,R3
0382 80F4 brsh L35
0384 .dbline 140
0384 .dbline 140
0384 2224 clr R2
0386 3324 clr R3
0388 30921400 sts _Counter+1,R3
038C 20921300 sts _Counter,R2
0390 .dbline 140
0390 20920100 sts _JS,R2
0394 .dbline 140
0394 81E0 ldi R24,1
0396 80930200 sts _DisFlag,R24
039A .dbline 140
039A 30920A00 sts _cx+1,R3
039E 20920900 sts _cx,R2
03A2 .dbline 140
03A2 0AC0 xjmp L37
03A4 L35:
03A4 .dbline 141
03A4 ; }
03A4 L33:
03A4 .dbline 142
03A4 ; while(temp==0x04);
03A4 8A2D mov R24,R10
03A6 8430 cpi R24,4
03A8 E9F2 breq L32
03AA .dbline 143
03AA ; BeginFlag=1;Start=1;GICR=0x40;//重开INT0
03AA 81E0 ldi R24,1
03AC 80930300 sts _BeginFlag,R24
03B0 .dbline 143
03B0 80930000 sts _Start,R24
03B4 .dbline 143
03B4 80E4 ldi R24,64
03B6 8BBF out 0x3b,R24
03B8 L37:
03B8 .dbline 144
03B8 ; END:;
03B8 .dbline 145
03B8 ; }
03B8 L20:
03B8 .dbline 146
03B8 L17:
03B8 .dbline 120
03B8 9CCE xjmp L16
03BA X0:
03BA .dbline -2
03BA L15:
03BA 2D96 adiw R28,13
03BC .dbline 0 ; func end
03BC 0895 ret
03BE .dbsym l time 9 D
03BE .dbsym l count 5 D
03BE .dbsym l x 1 D
03BE .dbsym r temp 10 c
03BE .dbend
.area vector(rom, abs)
.org 16
0010 0C94DF01 jmp _timer2_ovf_isr
.area text(rom, con, rel)
03BE .dbfile d:\MYDOCU~1\ac19-1\main.c
03BE .dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
.even
03BE _timer2_ovf_isr::
03BE 2A92 st -y,R2
03C0 3A92 st -y,R3
03C2 8A93 st -y,R24
03C4 9A93 st -y,R25
03C6 EA93 st -y,R30
03C8 2FB6 in R2,0x3f
03CA 2A92 st -y,R2
03CC .dbline -1
03CC .dbline 151
03CC ; }
03CC ; }
03CC ;
03CC ; #pragma interrupt_handler timer2_ovf_isr:5
03CC ; void timer2_ovf_isr(void)
03CC ; {
03CC .dbline 152
03CC ; TCNT2 = 0x83; //reload counter value
03CC 83E8 ldi R24,131
03CE 84BD out 0x24,R24
03D0 .dbline 153
03D0 ; SEI();
03D0 7894 sei
03D2 .dbline 154
03D2 ; if(BeginFlag==1)
03D2 80910300 lds R24,_BeginFlag
03D6 8130 cpi R24,1
03D8 E9F4 brne L39
03DA .dbline 155
03DA ; {
03DA .dbline 156
03DA ; DisTime++;
03DA 80911500 lds R24,_DisTime
03DE 90911600 lds R25,_DisTime+1
03E2 0196 adiw R24,1
03E4 90931600 sts _DisTime+1,R25
03E8 80931500 sts _DisTime,R24
03EC .dbline 157
03EC ; if(DisTime>1300){DisFlag=1;DisTime=0;BeginFlag=0;} //开显示
03EC 84E1 ldi R24,1300
03EE 95E0 ldi R25,5
03F0 20901500 lds R2,_DisTime
03F4 30901600 lds R3,_DisTime+1
03F8 8215 cp R24,R2
03FA 9305 cpc R25,R3
03FC 58F4 brsh L41
03FE .dbline 157
03FE .dbline 157
03FE 81E0 ldi R24,1
0400 80930200 sts _DisFlag,R24
0404 .dbline 157
0404 2224 clr R2
0406 3324 clr R3
0408 30921600 sts _DisTime+1,R3
040C 20921500 sts _DisTime,R2
0410 .dbline 157
0410 20920300 sts _BeginFlag,R2
0414 .dbline 157
0414 L41:
0414 .dbline 158
0414 ; }
0414 L39:
0414 .dbline 159
0414 ; if(Start==1){WorkTime++;}
0414 80910000 lds R24,_Start
0418 8130 cpi R24,1
041A 49F4 brne L43
041C .dbline 159
041C .dbline 159
041C 80911700 lds R24,_WorkTime
0420 90911800 lds R25,_WorkTime+1
0424 0196 adiw R24,1
0426 90931800 sts _WorkTime+1,R25
042A 80931700 sts _WorkTime,R24
042E .dbline 159
042E L43:
042E .dbline 160
042E ; if(WorkTime==1000){EndFlag=1;}
042E 80911700 lds R24,_WorkTime
0432 90911800 lds R25,_WorkTime+1
0436 883E cpi R24,232
0438 E3E0 ldi R30,3
043A 9E07 cpc R25,R30
043C 19F4 brne L45
043E .dbline 160
043E .dbline 160
043E 81E0 ldi R24,1
0440 80930000 sts _EndFlag,R24
0444 .dbline 160
0444 L45:
0444 .dbline 161
0444 80910100 lds R24,_JS
0448 8130 cpi R24,1
044A 49F4 brne L47
044C .dbline 161
044C 80911300 lds R24,_Counter
0450 90911400 lds R25,_Counter+1
0454 0196 adiw R24,1
0456 90931400 sts _Counter+1,R25
045A 80931300 sts _Counter,R24
045E L47:
045E .dbline -2
045E L38:
045E 2990 ld R2,y+
0460 2FBE out 0x3f,R2
0462 E991 ld R30,y+
0464 9991 ld R25,y+
0466 8991 ld R24,y+
0468 3990 ld R3,y+
046A 2990 ld R2,y+
046C .dbline 0 ; func end
046C 1895 reti
046E .dbend
.area vector(rom, abs)
.org 4
0004 0C943702 jmp _int0_isr
.area text(rom, con, rel)
046E .dbfile d:\MYDOCU~1\ac19-1\main.c
046E .dbfunc e int0_isr _int0_isr fV
046E ; y -> R16
.even
046E _int0_isr::
046E 2A92 st -y,R2
0470 3A92 st -y,R3
0472 0A93 st -y,R16
0474 8A93 st -y,R24
0476 9A93 st -y,R25
0478 2FB6 in R2,0x3f
047A 2A92 st -y,R2
047C .dbline -1
047C .dbline 167
047C ; if(JS==1)Counter++;
047C ;
047C ; }
047C ;
047C ; #pragma interrupt_handler int0_isr:2
047C ; void int0_isr(void)
047C ; {
047C .dbline 169
047C ; uchar y;
047C ; SEI();
047C 7894 sei
047E .dbline 171
047E ; //external interupt on INT0
047E ; y=PIND&0x04;
047E 00B3 in R16,0x10
0480 0470 andi R16,4
0482 .dbline 172
0482 ; JS=0;Counter=0;
0482 2224 clr R2
0484 20920100 sts _JS,R2
0488 .dbline 172
0488 3324 clr R3
048A 30921400 sts _Counter+1,R3
048E 20921300 sts _Counter,R2
0492 .dbline 173
0492 ; if((Start==1)&&(y==0x00))cnt++;
0492 80910000 lds R24,_Start
0496 8130 cpi R24,1
0498 59F4 brne L50
049A 0023 tst R16
049C 49F4 brne L50
049E .dbline 173
049E 80910F00 lds R24,_cnt
04A2 90911000 lds R25,_cnt+1
04A6 0196 adiw R24,1
04A8 90931000 sts _cnt+1,R25
04AC 80930F00 sts _cnt,R24
04B0 L50:
04B0 .dbline 175
04B0 ; //**********************
04B0 ; if((Start==1)&&(y==0x04))
04B0 80910000 lds R24,_Start
04B4 8130 cpi R24,1
04B6 29F5 brne L52
04B8 0430 cpi R16,4
04BA 19F5 brne L52
04BC .dbline 176
04BC ; {
04BC .dbline 177
04BC ; cnt++;
04BC 80910F00 lds R24,_cnt
04C0 90911000 lds R25,_cnt+1
04C4 0196 adiw R24,1
04C6 90931000 sts _cnt+1,R25
04CA 80930F00 sts _cnt,R24
04CE .dbline 178
04CE ; if(EndFlag==1){tx=WorkTime;cx=cnt;EndFlag=0;
04CE 80910000 lds R24,_EndFlag
04D2 8130 cpi R24,1
04D4 B1F4 brne L54
04D6 .dbline 178
04D6 .dbline 178
04D6 20901700 lds R2,_WorkTime
04DA 30901800 lds R3,_WorkTime+1
04DE 30920C00 sts _tx+1,R3
04E2 20920B00 sts _tx,R2
04E6 .dbline 178
04E6 20900F00 lds R2,_cnt
04EA 30901000 lds R3,_cnt+1
04EE 30920A00 sts _cx+1,R3
04F2 20920900 sts _cx,R2
04F6 .dbline 178
04F6 2224 clr R2
04F8 20920000 sts _EndFlag,R2
04FC .dbline 179
04FC ; Start=0;GICR=0x00;}//关闭INT0中断
04FC 20920000 sts _Start,R2
0500 .dbline 179
0500 2BBE out 0x3b,R2
0502 .dbline 179
0502 L54:
0502 .dbline 180
0502 L52:
0502 .dbline -2
0502 L49:
0502 2990 ld R2,y+
0504 2FBE out 0x3f,R2
0506 9991 ld R25,y+
0508 8991 ld R24,y+
050A 0991 ld R16,y+
050C 3990 ld R3,y+
050E 2990 ld R2,y+
0510 .dbline 0 ; func end
0510 1895 reti
0512 .dbsym r y 16 c
0512 .dbend
.area bss(ram, con, rel)
0000 .dbfile d:\MYDOCU~1\ac19-1\main.c
0000 _EndFlag::
0000 .blkb 1
0001 .dbsym e EndFlag _EndFlag c
0001 _disx::
0001 .blkb 8
0009 .dbsym e disx _disx A[8:4]i
0009 _cx::
0009 .blkb 2
000B .dbsym e cx _cx i
000B _tx::
000B .blkb 2
000D .dbsym e tx _tx i
000D _IntFlag::
000D .blkb 1
000E .dbsym e IntFlag _IntFlag c
000E _Flag::
000E .blkb 1
000F .dbsym e Flag _Flag c
000F _cnt::
000F .blkb 2
0011 .dbsym e cnt _cnt i
0011 _DisVal::
0011 .blkb 2
0013 .dbsym e DisVal _DisVal i
0013 _Counter::
0013 .blkb 2
0015 .dbsym e Counter _Counter i
0015 _DisTime::
0015 .blkb 2
0017 .dbsym e DisTime _DisTime i
0017 _WorkTime::
0017 .blkb 2
0019 .dbsym e WorkTime _WorkTime i
0019 _WorkFlag::
0019 .blkb 1
001A .dbsym e WorkFlag _WorkFlag c
.area lit(rom, con, rel)
0024 L25:
0024 00000047 .word 0x0,0x4700
0028 L22:
0028 0060EA46 .word 0x6000,0x46ea
002C L21:
002C 00000040 .word 0x0,0x4000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -