⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 AVR单片机ATmega16(L)应用实例—红外线转速仪
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 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 + -