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

📄 wash.lis

📁 because I can not get the download rights, so I uoload this file.This is a wash program, include a c
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 03A0 331C              rol R3
 03A2 30920700          sts _KP+1,R3
 03A6 20920600          sts _KP,R2
 03AA                   .dbline 171
 03AA 2224              clr R2
 03AC 3324              clr R3
 03AE 30920B00          sts _k0+1,R3
 03B2 20920A00          sts _k0,R2
 03B6                   .dbline 172
 03B6           ;               }
 03B6           L48:
 03B6                   .dbline 173
 03B6           ;               if (k_tim<KMAX0) 
 03B6 80910800          lds R24,_k_tim
 03BA 90910900          lds R25,_k_tim+1
 03BE 8431              cpi R24,20
 03C0 E0E0              ldi R30,0
 03C2 9E07              cpc R25,R30
 03C4 FCF4              brge L43
 03C6                   .dbline 174
 03C6           ;                  k0=k_val;
 03C6 10930B00          sts _k0+1,R17
 03CA 00930A00          sts _k0,R16
 03CE                   .dbline 175
 03CE           ;        }
 03CE                   .dbline 176
 03CE 1AC0              xjmp L43
 03D0           L42:
 03D0                   .dbline 176
 03D0           ;   } else {
 03D0                   .dbline 177
 03D0           ;      if (k_tim<KMAX0) 
 03D0 80910800          lds R24,_k_tim
 03D4 90910900          lds R25,_k_tim+1
 03D8 8431              cpi R24,20
 03DA E0E0              ldi R30,0
 03DC 9E07              cpc R25,R30
 03DE 44F4              brge L52
 03E0                   .dbline 178
 03E0           ;               KP = k0;
 03E0 20900A00          lds R2,_k0
 03E4 30900B00          lds R3,_k0+1
 03E8 30920700          sts _KP+1,R3
 03EC 20920600          sts _KP,R2
 03F0           L52:
 03F0                   .dbline 179
 03F0           ;        k_tim=0;
 03F0 2224              clr R2
 03F2 3324              clr R3
 03F4 30920900          sts _k_tim+1,R3
 03F8 20920800          sts _k_tim,R2
 03FC                   .dbline 180
 03FC           ;        k0=0;
 03FC 30920B00          sts _k0+1,R3
 0400 20920A00          sts _k0,R2
 0404                   .dbline 181
 0404           ;   }
 0404           L43:
 0404                   .dbline 182
 0404           ;   if (beep_num != 0) {
 0404 20900400          lds R2,_beep_num
 0408 30900500          lds R3,_beep_num+1
 040C 2220              tst R2
 040E 11F4              brne X18
 0410 3320              tst R3
 0412 51F1              breq L54
 0414           X18:
 0414                   .dbline 182
 0414                   .dbline 183
 0414           ;      if (beep_delay0!=0) {
 0414 20900000          lds R2,_beep_delay0
 0418 30900100          lds R3,_beep_delay0+1
 041C 2220              tst R2
 041E 11F4              brne X19
 0420 3320              tst R3
 0422 51F0              breq L56
 0424           X19:
 0424                   .dbline 183
 0424                   .dbline 184
 0424           ;           beep_delay0--;
 0424 80910000          lds R24,_beep_delay0
 0428 90910100          lds R25,_beep_delay0+1
 042C 0197              sbiw R24,1
 042E 90930100          sts _beep_delay0+1,R25
 0432 80930000          sts _beep_delay0,R24
 0436                   .dbline 185
 0436 18C0              xjmp L57
 0438           L56:
 0438                   .dbline 185
 0438           ;        } else {
 0438                   .dbline 186
 0438           ;           beep_num--;
 0438 80910400          lds R24,_beep_num
 043C 90910500          lds R25,_beep_num+1
 0440 0197              sbiw R24,1
 0442 90930500          sts _beep_num+1,R25
 0446 80930400          sts _beep_num,R24
 044A                   .dbline 187
 044A           ;               if (beep_num&1) 
 044A 80FF              sbrs R24,0
 044C 02C0              rjmp L58
 044E                   .dbline 188
 044E           ;                  PORTB |= 0x80; 
 044E C79A              sbi 0x18,7
 0450 03C0              xjmp L59
 0452           L58:
 0452                   .dbline 190
 0452           ;               else 
 0452           ;                  PORTB &=0x7f;
 0452 88B3              in R24,0x18
 0454 8F77              andi R24,127
 0456 88BB              out 0x18,R24
 0458           L59:
 0458                   .dbline 191
 0458           ;               beep_delay0=beep_delay;
 0458 20900200          lds R2,_beep_delay
 045C 30900300          lds R3,_beep_delay+1
 0460 30920100          sts _beep_delay0+1,R3
 0464 20920000          sts _beep_delay0,R2
 0468                   .dbline 192
 0468           ;        }
 0468           L57:
 0468                   .dbline 193
 0468           L54:
 0468                   .dbline -2
 0468           L39:
 0468 2990              ld R2,y+
 046A 2FBE              out 0x3f,R2
 046C E991              ld R30,y+
 046E 9991              ld R25,y+
 0470 8991              ld R24,y+
 0472 1991              ld R17,y+
 0474 0991              ld R16,y+
 0476 3990              ld R3,y+
 0478 2990              ld R2,y+
 047A                   .dbline 0 ; func end
 047A 1895              reti
 047C                   .dbsym r k_val 16 I
 047C                   .dbend
 047C                   .dbfunc e Beep _Beep fV
 047C           ;          delay -> R18,R19
 047C           ;            num -> R16,R17
                        .even
 047C           _Beep::
 047C                   .dbline -1
 047C                   .dbline 198
 047C           ;   } 
 047C           ; }
 047C           ; 
 047C           ; // Set freq and time, Create wave by TIMER2
 047C           ; void Beep(int num, int delay)
 047C           ; {
 047C                   .dbline 199
 047C           ;   beep_num=(num<<1);
 047C 1801              movw R2,R16
 047E 220C              lsl R2
 0480 331C              rol R3
 0482 30920500          sts _beep_num+1,R3
 0486 20920400          sts _beep_num,R2
 048A                   .dbline 200
 048A           ;   beep_delay=delay;
 048A 30930300          sts _beep_delay+1,R19
 048E 20930200          sts _beep_delay,R18
 0492                   .dbline 201
 0492           ;   beep_delay0=0;
 0492 2224              clr R2
 0494 3324              clr R3
 0496 30920100          sts _beep_delay0+1,R3
 049A 20920000          sts _beep_delay0,R2
 049E                   .dbline -2
 049E           L60:
 049E                   .dbline 0 ; func end
 049E 0895              ret
 04A0                   .dbsym r delay 18 I
 04A0                   .dbsym r num 16 I
 04A0                   .dbend
 04A0                   .dbfunc e Light _Light fV
 04A0           ;            mst -> R20,R21
 04A0           ;             st -> R16,R17
                        .even
 04A0           _Light::
 04A0 0E940000          xcall push_gset1
 04A4                   .dbline -1
 04A4                   .dbline 208
 04A4           ; }
 04A4           ; 
 04A4           ; /////////////////////////////////////////////////////////////
 04A4           ; // Light (st)
 04A4           ; // st: 1:Ready  2:Runing  3:Pause  0:Over 
 04A4           ; void Light(int st)
 04A4           ; {
 04A4                   .dbline 210
 04A4           ;    int mst;
 04A4           ;    mst=0;
 04A4 4427              clr R20
 04A6 5527              clr R21
 04A8                   .dbline 211
 04A8           ;    if (st&1) 
 04A8 00FF              sbrs R16,0
 04AA 01C0              rjmp L62
 04AC                   .dbline 212
 04AC           ;         mst |= 0x08; 
 04AC 4860              ori R20,8
 04AE           L62:
 04AE                   .dbline 213
 04AE           ;    if (st&2) 
 04AE 01FF              sbrs R16,1
 04B0 01C0              rjmp L64
 04B2                   .dbline 214
 04B2           ;         mst |= 0x40;  
 04B2 4064              ori R20,64
 04B4           L64:
 04B4                   .dbline 215
 04B4           ;    PORTB = mst;
 04B4 48BB              out 0x18,R20
 04B6                   .dbline -2
 04B6           L61:
 04B6 0E940000          xcall pop_gset1
 04BA                   .dbline 0 ; func end
 04BA 0895              ret
 04BC                   .dbsym r mst 20 I
 04BC                   .dbsym r st 16 I
 04BC                   .dbend
 04BC                   .dbfunc e ReadPara _ReadPara fI
 04BC           ;             xp -> R20,R21
 04BC           ;              s -> R22,R23
                        .even
 04BC           _ReadPara::
 04BC 0E940000          xcall push_gset2
 04C0 B801              movw R22,R16
 04C2                   .dbline -1
 04C2                   .dbline 223
 04C2           ; }
 04C2           ; 
 04C2           ; /////
 04C2           ; // InTime:3 WaitTime:2 Cishu:2 BetOnOff:1
 04C2           ; //
 04C2           ; //
 04C2           ; int ReadPara(int s)
 04C2           ; {
 04C2                   .dbline 225
 04C2           ;    int xp;
 04C2           ;    xp = ~PINA;
 04C2 49B3              in R20,0x19
 04C4 5527              clr R21
 04C6 4095              com R20
 04C8 5095              com R21
 04CA                   .dbline 226
 04CA 6030              cpi R22,0
 04CC 6707              cpc R22,R23
 04CE 69F0              breq L69
 04D0           X22:
 04D0 6130              cpi R22,1
 04D2 E0E0              ldi R30,0
 04D4 7E07              cpc R23,R30
 04D6 A1F0              breq L70
 04D8 6230              cpi R22,2
 04DA E0E0              ldi R30,0
 04DC 7E07              cpc R23,R30
 04DE F9F0              breq L71
 04E0 6330              cpi R22,3
 04E2 E0E0              ldi R30,0
 04E4 7E07              cpc R23,R30
 04E6 31F1              breq L72
 04E8 2CC0              xjmp L67
 04EA           X23:
 04EA                   .dbline 226
 04EA           ;    switch (s) {
 04EA           L69:
 04EA                   .dbline 228
 04EA           ;         case 0: //ADdOn time, x+1
 04EA           ;            xp = ( (xp&0xe0)>>5)+1; break;
 04EA 25E0              ldi R18,5
 04EC 30E0              ldi R19,0
 04EE 8A01              movw R16,R20
 04F0 007E              andi R16,224
 04F2 1070              andi R17,0
 04F4 0E940000          xcall asr16
 04F8 A801              movw R20,R16
 04FA 4F5F              subi R20,255  ; offset = 1
 04FC 5F4F              sbci R21,255
 04FE                   .dbline 228
 04FE 21C0              xjmp L68
 0500           L70:
 0500                   .dbline 230
 0500           ;         case 1: //Wait time 8<<x
 0500           ;            xp = 8<<((xp&0x18)>>3); break;
 0500 9A01              movw R18,R20
 0502 2871              andi R18,24
 0504 3070              andi R19,0
 0506 3595              asr R19
 0508 2795              ror R18
 050A 3595              asr R19
 050C 2795              ror R18
 050E 3595              asr R19
 0510 2795              ror R18
 0512 08E0              ldi R16,8
 0514 10E0              ldi R17,0
 0516 0E940000          xcall lsl16
 051A A801              movw R20,R16
 051C                   .dbline 230
 051C 12C0              xjmp L68
 051E           L71:
 051E                   .dbline 232
 051E           ;         case 2: // CiShu 8<<x
 051E           ;            xp = 8 << ((xp&0x06)>>1); break;
 051E 9A01              movw R18,R20
 0520 2670              andi R18,6
 0522 3070              andi R19,0
 0524 3595              asr R19
 0526 2795              ror R18
 0528 08E0              ldi R16,8
 052A 10E0              ldi R17,0
 052C 0E940000          xcall lsl16
 0530 A801              movw R20,R16
 0532                   .dbline 232
 0532 07C0              xjmp L68
 0534           L72:
 0534                   .dbline 234
 0534           ;         case 3: // Beteen add and on, x!=0 ? 40 : 4
 0534           ;            if (xp&1) 
 0534 40FF              sbrs R20,0
 0536 03C0              rjmp L73
 0538                   .dbline 235
 0538           ;                       xp=40; 
 0538 48E2              ldi R20,40
 053A 50E0              ldi R21,0
 053C 02C0              xjmp L68
 053E           L73:
 053E                   .dbline 237
 053E           ;                else 
 053E           ;                       xp=4; 
 053E 44E0              ldi R20,4
 0540 50E0              ldi R21,0
 0542                   .dbline 238
 0542           ;                break;
 0542           L67:
 0542           L68:
 0542                   .dbline 240
 0542           ;    }
 0542           ;    return(xp);
 0542 8A01              movw R16,R20
 0544                   .dbline -2
 0544           L66:
 0544 0E940000          xcall pop_gset2
 0548                   .dbline 0 ; func end
 0548 0895              ret
 054A                   .dbsym r xp 20 I
 054A                   .dbsym r s 22 I
 054A                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\icc\wash\wash.c
 0000           _beep_delay0::
 0000                   .blkb 2
 0002                   .dbsym e beep_delay0 _beep_delay0 I
 0002           _beep_delay::
 0002                   .blkb 2
 0004                   .dbsym e beep_delay _beep_delay I
 0004           _beep_num::
 0004                   .blkb 2
 0006                   .dbsym e beep_num _beep_num I
 0006           _KP::
 0006                   .blkb 2
 0008                   .dbsym e KP _KP I
 0008           _k_tim::
 0008                   .blkb 2
 000A                   .dbsym e k_tim _k_tim I
 000A           _k0::
 000A                   .blkb 2
 000C                   .dbsym e k0 _k0 I
 000C           _TimeCount0::
 000C                   .blkb 2
 000E                   .dbsym e TimeCount0 _TimeCount0 I
 000E           _TimeCount::
 000E                   .blkb 2
 0010                   .dbsym e TimeCount _TimeCount I
 0010           _loop_cs0::
 0010                   .blkb 2
 0012                   .dbsym e loop_cs0 _loop_cs0 I
 0012           _loop_cs::
 0012                   .blkb 2
 0014                   .dbsym e loop_cs _loop_cs I
 0014           _switchway::
 0014                   .blkb 1
 0015                   .dbfile C:\icc\wash/wash.h
 0015                   .dbsym e switchway _switchway c

⌨️ 快捷键说明

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