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

📄 ac20-1.lis

📁 AVR单片机ATmega16(L)应用实例—红外线感应自动移门
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 041C 30905900          lds R3,_round_cnt+1
 0420 8215              cp R24,R2
 0422 9305              cpc R25,R3
 0424 08F0              brlo X22
 0426 ABC0              xjmp L39
 0428           X22:
 0428                   .dbline 204
 0428                   .dbline 204
 0428                   .dbline 204
 0428 AAC0              xjmp L39
 042A           L50:
 042A                   .dbline 205
 042A           ;               case 60:if(round_cnt>100){/*reset*/}break;
 042A 84E6              ldi R24,100
 042C 90E0              ldi R25,0
 042E 20905800          lds R2,_round_cnt
 0432 30905900          lds R3,_round_cnt+1
 0436 8215              cp R24,R2
 0438 9305              cpc R25,R3
 043A 08F0              brlo X23
 043C A0C0              xjmp L39
 043E           X23:
 043E                   .dbline 205
 043E                   .dbline 205
 043E                   .dbline 205
 043E 9FC0              xjmp L39
 0440           L53:
 0440                   .dbline 206
 0440           ;               case 70:if(round_cnt>100){/*reset*/}break;
 0440 84E6              ldi R24,100
 0442 90E0              ldi R25,0
 0444 20905800          lds R2,_round_cnt
 0448 30905900          lds R3,_round_cnt+1
 044C 8215              cp R24,R2
 044E 9305              cpc R25,R3
 0450 08F0              brlo X24
 0452 95C0              xjmp L39
 0454           X24:
 0454                   .dbline 206
 0454                   .dbline 206
 0454                   .dbline 206
 0454 94C0              xjmp L39
 0456           L56:
 0456                   .dbline 208
 0456           ;               //开门慢速状态80时,间隔500ms,分二次判断撞墙后,转状态90       
 0456           ;               case 80:{if((fst==0)&&(round_cnt>150))fst=1;
 0456                   .dbline 208
 0456 20904900          lds R2,_fst
 045A 2220              tst R2
 045C 61F4              brne L57
 045E 86E9              ldi R24,150
 0460 90E0              ldi R25,0
 0462 20905800          lds R2,_round_cnt
 0466 30905900          lds R3,_round_cnt+1
 046A 8215              cp R24,R2
 046C 9305              cpc R25,R3
 046E 18F4              brsh L57
 0470                   .dbline 208
 0470 81E0              ldi R24,1
 0472 80934900          sts _fst,R24
 0476           L57:
 0476                   .dbline 209
 0476           ;                               if((fst==2)&&(round_cnt>150))status=90;
 0476 80914900          lds R24,_fst
 047A 8230              cpi R24,2
 047C 09F0              breq X25
 047E 7FC0              xjmp L39
 0480           X25:
 0480 86E9              ldi R24,150
 0482 90E0              ldi R25,0
 0484 20905800          lds R2,_round_cnt
 0488 30905900          lds R3,_round_cnt+1
 048C 8215              cp R24,R2
 048E 9305              cpc R25,R3
 0490 08F0              brlo X26
 0492 75C0              xjmp L39
 0494           X26:
 0494                   .dbline 209
 0494 8AE5              ldi R24,90
 0496 80934C00          sts _status,R24
 049A                   .dbline 210
 049A           ;                               }break;
 049A                   .dbline 210
 049A 71C0              xjmp L39
 049C           L61:
 049C                   .dbline 212
 049C           ;               //开门慢速状态85时,间隔500ms,分二次判断撞墙后,转状态90       
 049C           ;               case 85:{if((fst==0)&&(round_cnt>200))fst=1;
 049C                   .dbline 212
 049C 20904900          lds R2,_fst
 04A0 2220              tst R2
 04A2 61F4              brne L62
 04A4 88EC              ldi R24,200
 04A6 90E0              ldi R25,0
 04A8 20905800          lds R2,_round_cnt
 04AC 30905900          lds R3,_round_cnt+1
 04B0 8215              cp R24,R2
 04B2 9305              cpc R25,R3
 04B4 18F4              brsh L62
 04B6                   .dbline 212
 04B6 81E0              ldi R24,1
 04B8 80934900          sts _fst,R24
 04BC           L62:
 04BC                   .dbline 213
 04BC           ;                               if((fst==2)&&(round_cnt>200))status=90;
 04BC 80914900          lds R24,_fst
 04C0 8230              cpi R24,2
 04C2 09F0              breq X27
 04C4 5CC0              xjmp L39
 04C6           X27:
 04C6 88EC              ldi R24,200
 04C8 90E0              ldi R25,0
 04CA 20905800          lds R2,_round_cnt
 04CE 30905900          lds R3,_round_cnt+1
 04D2 8215              cp R24,R2
 04D4 9305              cpc R25,R3
 04D6 08F0              brlo X28
 04D8 52C0              xjmp L39
 04DA           X28:
 04DA                   .dbline 213
 04DA 8AE5              ldi R24,90
 04DC 80934C00          sts _status,R24
 04E0                   .dbline 214
 04E0           ;                               }break;
 04E0                   .dbline 214
 04E0 4EC0              xjmp L39
 04E2           L66:
 04E2                   .dbline 216
 04E2           ;               //关门加速状态100时, 判断撞人后,转状态105     
 04E2           ;               case 100:if(round_cnt>300){status=105;sp_pl=0;}break;
 04E2 8CE2              ldi R24,300
 04E4 91E0              ldi R25,1
 04E6 20905800          lds R2,_round_cnt
 04EA 30905900          lds R3,_round_cnt+1
 04EE 8215              cp R24,R2
 04F0 9305              cpc R25,R3
 04F2 08F0              brlo X29
 04F4 44C0              xjmp L39
 04F6           X29:
 04F6                   .dbline 216
 04F6                   .dbline 216
 04F6 89E6              ldi R24,105
 04F8 80934C00          sts _status,R24
 04FC                   .dbline 216
 04FC 2224              clr R2
 04FE 3324              clr R3
 0500 30924F00          sts _sp_pl+1,R3
 0504 20924E00          sts _sp_pl,R2
 0508                   .dbline 216
 0508                   .dbline 216
 0508 3AC0              xjmp L39
 050A           L69:
 050A                   .dbline 218
 050A           ;               //关门全速状态110时, 判断撞人后,转状态116     
 050A           ;               case 110:if(round_cnt>30){status=116;sp_pl=0;}break;
 050A 8EE1              ldi R24,30
 050C 90E0              ldi R25,0
 050E 20905800          lds R2,_round_cnt
 0512 30905900          lds R3,_round_cnt+1
 0516 8215              cp R24,R2
 0518 9305              cpc R25,R3
 051A 88F5              brsh L39
 051C                   .dbline 218
 051C                   .dbline 218
 051C 84E7              ldi R24,116
 051E 80934C00          sts _status,R24
 0522                   .dbline 218
 0522 2224              clr R2
 0524 3324              clr R3
 0526 30924F00          sts _sp_pl+1,R3
 052A 20924E00          sts _sp_pl,R2
 052E                   .dbline 218
 052E                   .dbline 218
 052E 27C0              xjmp L39
 0530           L72:
 0530                   .dbline 219
 0530           ;               case 120:if(round_cnt>100){status=116;sp_pl=0;}break;
 0530 84E6              ldi R24,100
 0532 90E0              ldi R25,0
 0534 20905800          lds R2,_round_cnt
 0538 30905900          lds R3,_round_cnt+1
 053C 8215              cp R24,R2
 053E 9305              cpc R25,R3
 0540 F0F4              brsh L39
 0542                   .dbline 219
 0542                   .dbline 219
 0542 84E7              ldi R24,116
 0544 80934C00          sts _status,R24
 0548                   .dbline 219
 0548 2224              clr R2
 054A 3324              clr R3
 054C 30924F00          sts _sp_pl+1,R3
 0550 20924E00          sts _sp_pl,R2
 0554                   .dbline 219
 0554                   .dbline 219
 0554 14C0              xjmp L39
 0556           L75:
 0556                   .dbline 221
 0556 88E0              ldi R24,8
 0558 90E0              ldi R25,0
 055A 20905600          lds R2,_changdu
 055E 30905700          lds R3,_changdu+1
 0562 8215              cp R24,R2
 0564 9305              cpc R25,R3
 0566 5CF0              brlt L39
 0568                   .dbline 221
 0568                   .dbline 221
 0568 88EC              ldi R24,200
 056A 20905800          lds R2,_round_cnt
 056E 30905900          lds R3,_round_cnt+1
 0572 8215              cp R24,R2
 0574 9305              cpc R25,R3
 0576 18F4              brsh L39
 0578                   .dbline 221
 0578 8CE8              ldi R24,140
 057A 80934C00          sts _status,R24
 057E                   .dbline 221
 057E                   .dbline 222
 057E                   .dbline 223
 057E           L39:
 057E                   .dbline -2
 057E           L23:
 057E 0E940000          xcall pop_gset1
 0582 2990              ld R2,y+
 0584 2FBE              out 0x3f,R2
 0586 F991              ld R31,y+
 0588 E991              ld R30,y+
 058A 9991              ld R25,y+
 058C 8991              ld R24,y+
 058E 3991              ld R19,y+
 0590 2991              ld R18,y+
 0592 1991              ld R17,y+
 0594 0991              ld R16,y+
 0596 3990              ld R3,y+
 0598 2990              ld R2,y+
 059A                   .dbline 0 ; func end
 059A 1895              reti
 059C                   .dbend
                        .area vector(rom, abs)
                        .org 4
 0004 0C94CE02          jmp _ext_int0
                        .area text(rom, con, rel)
 059C                   .dbfile d:\MYDOCU~1\ac20-1\ac20-1.c
 059C                   .dbfunc e ext_int0 _ext_int0 fV
                        .even
 059C           _ext_int0::
 059C 2A92              st -y,R2
 059E 3A92              st -y,R3
 05A0 4A92              st -y,R4
 05A2 5A92              st -y,R5
 05A4 8A93              st -y,R24
 05A6 9A93              st -y,R25
 05A8 2FB6              in R2,0x3f
 05AA 2A92              st -y,R2
 05AC                   .dbline -1
 05AC                   .dbline 231
 05AC           ;               //关门慢速状态130时,门合拢后转状态140停止 
 05AC           ;               case 130:if(changdu<=8){if(round_cnt>200)status=140;}
 05AC           ;                                 break;
 05AC           ;               default:break;
 05AC           ;               }
 05AC           ; }
 05AC           ; 
 05AC           ; 
 05AC           ; /*======INT0的马达光电编码器中断=========*/
 05AC           ; #pragma interrupt_handler ext_int0:2
 05AC           ; void ext_int0(void)
 05AC           ; {SREG|=0x80;
 05AC                   .dbline 231
 05AC 7894              bset 7
 05AE                   .dbline 232
 05AE           ; round_cnt=0;
 05AE 2224              clr R2
 05B0 3324              clr R3
 05B2 30925900          sts _round_cnt+1,R3
 05B6 20925800          sts _round_cnt,R2
 05BA                   .dbline 233
 05BA           ; if(status<90)changdu++;
 05BA 80914C00          lds R24,_status
 05BE 8A35              cpi R24,90
 05C0 48F4              brsh L91
 05C2                   .dbline 233
 05C2 80915600          lds R24,_changdu
 05C6 90915700          lds R25,_changdu+1
 05CA 0196              adiw R24,1
 05CC 90935700          sts _changdu+1,R25
 05D0 80935600          sts _changdu,R24
 05D4           L91:
 05D4                   .dbline 234
 05D4           ; if(changdu>9999)changdu=9999;
 05D4 8FE0              ldi R24,9999
 05D6 97E2              ldi R25,39
 05D8 20905600          lds R2,_changdu
 05DC 30905700          lds R3,_changdu+1
 05E0 8215              cp R24,R2
 05E2 9305              cpc R25,R3
 05E4 24F4              brge L93
 05E6                   .dbline 234
 05E6 90935700          sts _changdu+1,R25
 05EA 80935600          sts _changdu,R24
 05EE           L93:
 05EE                   .dbline 235
 05EE           ; if((status>90)&&(status<140))changdu--;
 05EE 8AE5              ldi R24,90
 05F0 20904C00          lds R2,_status
 05F4 8215              cp R24,R2
 05F6 60F4              brsh L95
 05F8 822D              mov R24,R2
 05FA 8C38              cpi R24,140
 05FC 48F4              brsh L95
 05FE                   .dbline 235
 05FE 80915600          lds R24,_changdu
 0602 90915700          lds R25,_changdu+1
 0606 0197              sbiw R24,1
 0608 90935700          sts _changdu+1,R25
 060C 80935600          sts _changdu,R24
 0610           L95:
 0610                   .dbline 236
 0610           ; if(changdu<=0){changdu=0;}
 0610 2224              clr R2
 0612 3324              clr R3
 0614 40905600          lds R4,_changdu
 0618 50905700          lds R5,_changdu+1
 061C 2414              cp R2,R4
 061E 3504              cpc R3,R5
 0620 24F0              brlt L97
 0622                   .dbline 236
 0622                   .dbline 236
 0622 30925700          sts _changdu+1,R3
 0626 20925600          sts _changdu,R2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -