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

📄 ac20-1.lis

📁 AVR单片机ATmega16(L)应用实例—红外线感应自动移门
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 020C           ; {SREG|=0x80;
 020C                   .dbline 184
 020C 7894              bset 7
 020E                   .dbline 185
 020E           ; round_cnt++;
 020E 80915800          lds R24,_round_cnt
 0212 90915900          lds R25,_round_cnt+1
 0216 0196              adiw R24,1
 0218 90935900          sts _round_cnt+1,R25
 021C 80935800          sts _round_cnt,R24
 0220                   .dbline 186
 0220           ; dis_bit++;
 0220 80910300          lds R24,_dis_bit
 0224 8F5F              subi R24,255    ; addi 1
 0226 80930300          sts _dis_bit,R24
 022A                   .dbline 187
 022A           ; if(dis_bit>2)dis_bit=0;
 022A 82E0              ldi R24,2
 022C 20900300          lds R2,_dis_bit
 0230 8215              cp R24,R2
 0232 18F4              brsh L24
 0234                   .dbline 187
 0234 2224              clr R2
 0236 20920300          sts _dis_bit,R2
 023A           L24:
 023A                   .dbline 188
 023A           ; if(fst==1)cnt_500++;
 023A 80914900          lds R24,_fst
 023E 8130              cpi R24,1
 0240 49F4              brne L26
 0242                   .dbline 188
 0242 80914A00          lds R24,_cnt_500
 0246 90914B00          lds R25,_cnt_500+1
 024A 0196              adiw R24,1
 024C 90934B00          sts _cnt_500+1,R25
 0250 80934A00          sts _cnt_500,R24
 0254           L26:
 0254                   .dbline 189
 0254           ; if(cnt_500>500){fst=2;round_cnt=0;cnt_500=0;}
 0254 84EF              ldi R24,500
 0256 91E0              ldi R25,1
 0258 20904A00          lds R2,_cnt_500
 025C 30904B00          lds R3,_cnt_500+1
 0260 8215              cp R24,R2
 0262 9305              cpc R25,R3
 0264 68F4              brsh L28
 0266                   .dbline 189
 0266                   .dbline 189
 0266 82E0              ldi R24,2
 0268 80934900          sts _fst,R24
 026C                   .dbline 189
 026C 2224              clr R2
 026E 3324              clr R3
 0270 30925900          sts _round_cnt+1,R3
 0274 20925800          sts _round_cnt,R2
 0278                   .dbline 189
 0278 30924B00          sts _cnt_500+1,R3
 027C 20924A00          sts _cnt_500,R2
 0280                   .dbline 189
 0280           L28:
 0280                   .dbline 191
 0280           ; 
 0280           ; switch(dis_bit)
 0280 40910300          lds R20,_dis_bit
 0284 5527              clr R21
 0286 4030              cpi R20,0
 0288 4507              cpc R20,R21
 028A 51F0              breq L33
 028C           X0:
 028C 4130              cpi R20,1
 028E E0E0              ldi R30,0
 0290 5E07              cpc R21,R30
 0292 C9F0              breq L34
 0294 4230              cpi R20,2
 0296 E0E0              ldi R30,0
 0298 5E07              cpc R21,R30
 029A 09F4              brne X4
 029C 2BC0              xjmp L36
 029E           X4:
 029E 3CC0              xjmp L31
 02A0           X1:
 02A0                   .dbline 192
 02A0           ; {
 02A0           L33:
 02A0                   .dbline 193
 02A0           ; case 0:PORTA=seg[status%10];PORTB=act[0];break;
 02A0 2AE0              ldi R18,10
 02A2 30E0              ldi R19,0
 02A4 00914C00          lds R16,_status
 02A8 1127              clr R17
 02AA 0E940000          xcall mod16s
 02AE F801              movw R30,R16
 02B0 80E0              ldi R24,<_seg
 02B2 90E0              ldi R25,>_seg
 02B4 E80F              add R30,R24
 02B6 F91F              adc R31,R25
 02B8 E491              lpm R30,Z
 02BA EBBB              out 0x1b,R30
 02BC                   .dbline 193
 02BC E0E0              ldi R30,<_act
 02BE F0E0              ldi R31,>_act
 02C0 E491              lpm R30,Z
 02C2 E8BB              out 0x18,R30
 02C4                   .dbline 193
 02C4 29C0              xjmp L31
 02C6           L34:
 02C6                   .dbline 194
 02C6           ; case 1:PORTA=seg[(status%100)/10];PORTB=act[1];break;
 02C6 24E6              ldi R18,100
 02C8 30E0              ldi R19,0
 02CA 00914C00          lds R16,_status
 02CE 1127              clr R17
 02D0 0E940000          xcall mod16s
 02D4 2AE0              ldi R18,10
 02D6 30E0              ldi R19,0
 02D8 0E940000          xcall div16s
 02DC F801              movw R30,R16
 02DE 80E0              ldi R24,<_seg
 02E0 90E0              ldi R25,>_seg
 02E2 E80F              add R30,R24
 02E4 F91F              adc R31,R25
 02E6 E491              lpm R30,Z
 02E8 EBBB              out 0x1b,R30
 02EA                   .dbline 194
 02EA E0E0              ldi R30,<_act+1
 02EC F0E0              ldi R31,>_act+1
 02EE E491              lpm R30,Z
 02F0 E8BB              out 0x18,R30
 02F2                   .dbline 194
 02F2 12C0              xjmp L31
 02F4           L36:
 02F4                   .dbline 195
 02F4           ; case 2:PORTA=seg[status/100];PORTB=act[2];break;
 02F4 24E6              ldi R18,100
 02F6 30E0              ldi R19,0
 02F8 00914C00          lds R16,_status
 02FC 1127              clr R17
 02FE 0E940000          xcall div16s
 0302 F801              movw R30,R16
 0304 80E0              ldi R24,<_seg
 0306 90E0              ldi R25,>_seg
 0308 E80F              add R30,R24
 030A F91F              adc R31,R25
 030C E491              lpm R30,Z
 030E EBBB              out 0x1b,R30
 0310                   .dbline 195
 0310 E0E0              ldi R30,<_act+2
 0312 F0E0              ldi R31,>_act+2
 0314 E491              lpm R30,Z
 0316 E8BB              out 0x18,R30
 0318                   .dbline 195
 0318                   .dbline 196
 0318           ; default:break;
 0318           L31:
 0318                   .dbline 198
 0318           ; }
 0318           ; TCNT0=0xd9;
 0318 89ED              ldi R24,217
 031A 82BF              out 0x32,R24
 031C                   .dbline 199
 031C           ; switch (status)
 031C 40914C00          lds R20,_status
 0320 5527              clr R21
 0322 4035              cpi R20,80
 0324 E0E0              ldi R30,0
 0326 5E07              cpc R21,R30
 0328 09F4              brne X5
 032A 95C0              xjmp L56
 032C           X5:
 032C 80E5              ldi R24,80
 032E 90E0              ldi R25,0
 0330 8417              cp R24,R20
 0332 9507              cpc R25,R21
 0334 4CF1              brlt L81
 0336           L80:
 0336 4233              cpi R20,50
 0338 E0E0              ldi R30,0
 033A 5E07              cpc R21,R30
 033C 09F4              brne X6
 033E 6AC0              xjmp L47
 0340           X6:
 0340 82E3              ldi R24,50
 0342 90E0              ldi R25,0
 0344 8417              cp R24,R20
 0346 9507              cpc R25,R21
 0348 7CF0              brlt L83
 034A           L82:
 034A 4030              cpi R20,0
 034C 4507              cpc R20,R21
 034E 09F4              brne X7
 0350 45C0              xjmp L41
 0352           X7:
 0352           X2:
 0352 4030              cpi R20,0
 0354 E0E0              ldi R30,0
 0356 5E07              cpc R21,R30
 0358 0CF4              brge X8
 035A 11C1              xjmp L39
 035C           X8:
 035C           L84:
 035C 4431              cpi R20,20
 035E E0E0              ldi R30,0
 0360 5E07              cpc R21,R30
 0362 09F4              brne X9
 0364 49C0              xjmp L44
 0366           X9:
 0366 0BC1              xjmp L39
 0368           L83:
 0368 4C33              cpi R20,60
 036A E0E0              ldi R30,0
 036C 5E07              cpc R21,R30
 036E 09F4              brne X10
 0370 5CC0              xjmp L50
 0372           X10:
 0372 4C33              cpi R20,60
 0374 E0E0              ldi R30,0
 0376 5E07              cpc R21,R30
 0378 0CF4              brge X11
 037A 01C1              xjmp L39
 037C           X11:
 037C           L85:
 037C 4634              cpi R20,70
 037E E0E0              ldi R30,0
 0380 5E07              cpc R21,R30
 0382 09F4              brne X12
 0384 5DC0              xjmp L53
 0386           X12:
 0386 FBC0              xjmp L39
 0388           L81:
 0388 4E36              cpi R20,110
 038A E0E0              ldi R30,0
 038C 5E07              cpc R21,R30
 038E 09F4              brne X13
 0390 BCC0              xjmp L69
 0392           X13:
 0392 8EE6              ldi R24,110
 0394 90E0              ldi R25,0
 0396 8417              cp R24,R20
 0398 9507              cpc R25,R21
 039A 84F0              brlt L87
 039C           L86:
 039C 4535              cpi R20,85
 039E E0E0              ldi R30,0
 03A0 5E07              cpc R21,R30
 03A2 09F4              brne X14
 03A4 7BC0              xjmp L61
 03A6           X14:
 03A6 4535              cpi R20,85
 03A8 E0E0              ldi R30,0
 03AA 5E07              cpc R21,R30
 03AC 0CF4              brge X15
 03AE E7C0              xjmp L39
 03B0           X15:
 03B0           L88:
 03B0 4436              cpi R20,100
 03B2 E0E0              ldi R30,0
 03B4 5E07              cpc R21,R30
 03B6 09F4              brne X16
 03B8 94C0              xjmp L66
 03BA           X16:
 03BA E1C0              xjmp L39
 03BC           L87:
 03BC 4837              cpi R20,120
 03BE E0E0              ldi R30,0
 03C0 5E07              cpc R21,R30
 03C2 09F4              brne X17
 03C4 B5C0              xjmp L72
 03C6           X17:
 03C6 4837              cpi R20,120
 03C8 E0E0              ldi R30,0
 03CA 5E07              cpc R21,R30
 03CC 0CF4              brge X18
 03CE D7C0              xjmp L39
 03D0           X18:
 03D0           L89:
 03D0 4238              cpi R20,130
 03D2 E0E0              ldi R30,0
 03D4 5E07              cpc R21,R30
 03D6 09F4              brne X19
 03D8 BEC0              xjmp L75
 03DA           X19:
 03DA D1C0              xjmp L39
 03DC           X3:
 03DC                   .dbline 200
 03DC           ;               {       //门全开后转状态10
 03DC           L41:
 03DC                   .dbline 201
 03DC           ;               case 0:if(round_cnt>200){status=10;}break;
 03DC 88EC              ldi R24,200
 03DE 90E0              ldi R25,0
 03E0 20905800          lds R2,_round_cnt
 03E4 30905900          lds R3,_round_cnt+1
 03E8 8215              cp R24,R2
 03EA 9305              cpc R25,R3
 03EC 08F0              brlo X20
 03EE C7C0              xjmp L39
 03F0           X20:
 03F0                   .dbline 201
 03F0                   .dbline 201
 03F0 8AE0              ldi R24,10
 03F2 80934C00          sts _status,R24
 03F6                   .dbline 201
 03F6                   .dbline 201
 03F6 C3C0              xjmp L39
 03F8           L44:
 03F8                   .dbline 203
 03F8           ;                       //门全关后转状态30停止  
 03F8           ;               case 20:if(round_cnt>200){status=30;}break;
 03F8 88EC              ldi R24,200
 03FA 90E0              ldi R25,0
 03FC 20905800          lds R2,_round_cnt
 0400 30905900          lds R3,_round_cnt+1
 0404 8215              cp R24,R2
 0406 9305              cpc R25,R3
 0408 08F0              brlo X21
 040A B9C0              xjmp L39
 040C           X21:
 040C                   .dbline 203
 040C                   .dbline 203
 040C 8EE1              ldi R24,30
 040E 80934C00          sts _status,R24
 0412                   .dbline 203
 0412                   .dbline 203
 0412 B5C0              xjmp L39
 0414           L47:
 0414                   .dbline 204
 0414           ;               case 50:if(round_cnt>100){/*reset;*/}break;
 0414 84E6              ldi R24,100
 0416 90E0              ldi R25,0
 0418 20905800          lds R2,_round_cnt

⌨️ 快捷键说明

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