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

📄 ls.lis

📁 本人编写的mega16单片机控制的 八种花样流水灯源代码
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 013E 05C0              xjmp L29
 0140           L33:
 0140                   .dbline 62
 0140           ;   case 3:PORTC=0x7E;DelayMs(100);break;
 0140 8EE7              ldi R24,126
 0142 85BB              out 0x15,R24
 0144                   .dbline 62
 0144 04E6              ldi R16,100
 0146 10E0              ldi R17,0
 0148 6DDF              xcall _DelayMs
 014A                   .dbline 62
 014A                   .dbline 63
 014A           ;   default:break;
 014A           L29:
 014A                   .dbline -2
 014A           L27:
 014A                   .dbline 0 ; func end
 014A 5991              ld R21,y+
 014C 4991              ld R20,y+
 014E 0895              ret
 0150                   .dbsym r i 20 I
 0150                   .dbend
 0150                   .dbfunc e LED_05 _LED_05 fV
 0150           ;              i -> R20,R21
                        .even
 0150           _LED_05::
 0150 4A93              st -y,R20
 0152 5A93              st -y,R21
 0154 A801              movw R20,R16
 0156                   .dbline -1
 0156                   .dbline 68
 0156           ;   }
 0156           ;  }
 0156           ;  
 0156           ; void LED_05(int i)                 //00,0F,F0,FF方式显示
 0156           ;     {
 0156                   .dbline 69
 0156           ;  switch(i)
 0156 4030              cpi R20,0
 0158 4507              cpc R20,R21
 015A 69F0              breq L37
 015C           X9:
 015C 4130              cpi R20,1
 015E E0E0              ldi R30,0
 0160 5E07              cpc R21,R30
 0162 79F0              breq L38
 0164           X10:
 0164 4230              cpi R20,2
 0166 E0E0              ldi R30,0
 0168 5E07              cpc R21,R30
 016A 89F0              breq L39
 016C           X11:
 016C 4330              cpi R20,3
 016E E0E0              ldi R30,0
 0170 5E07              cpc R21,R30
 0172 99F0              breq L40
 0174           X12:
 0174 17C0              xjmp L36
 0176           L37:
 0176                   .dbline 71
 0176           ;   {
 0176           ;   case 0:PORTC=0x00;DelayMs(100);break;    //延时100ms
 0176 2224              clr R2
 0178 25BA              out 0x15,R2
 017A                   .dbline 71
 017A 04E6              ldi R16,100
 017C 10E0              ldi R17,0
 017E 52DF              xcall _DelayMs
 0180                   .dbline 71
 0180 11C0              xjmp L36
 0182           L38:
 0182                   .dbline 72
 0182           ;   case 1:PORTC=0x0F;DelayMs(100);break;
 0182 8FE0              ldi R24,15
 0184 85BB              out 0x15,R24
 0186                   .dbline 72
 0186 04E6              ldi R16,100
 0188 10E0              ldi R17,0
 018A 4CDF              xcall _DelayMs
 018C                   .dbline 72
 018C 0BC0              xjmp L36
 018E           L39:
 018E                   .dbline 73
 018E           ;   case 2:PORTC=0xF0;DelayMs(100);break;
 018E 80EF              ldi R24,240
 0190 85BB              out 0x15,R24
 0192                   .dbline 73
 0192 04E6              ldi R16,100
 0194 10E0              ldi R17,0
 0196 46DF              xcall _DelayMs
 0198                   .dbline 73
 0198 05C0              xjmp L36
 019A           L40:
 019A                   .dbline 74
 019A           ;   case 3:PORTC=0xFF;DelayMs(100);break;
 019A 8FEF              ldi R24,255
 019C 85BB              out 0x15,R24
 019E                   .dbline 74
 019E 04E6              ldi R16,100
 01A0 10E0              ldi R17,0
 01A2 40DF              xcall _DelayMs
 01A4                   .dbline 74
 01A4                   .dbline 75
 01A4           ;   default:break;
 01A4           L36:
 01A4                   .dbline -2
 01A4           L34:
 01A4                   .dbline 0 ; func end
 01A4 5991              ld R21,y+
 01A6 4991              ld R20,y+
 01A8 0895              ret
 01AA                   .dbsym r i 20 I
 01AA                   .dbend
 01AA                   .dbfunc e LED_06 _LED_06 fV
 01AA           ;              i -> R20,R21
                        .even
 01AA           _LED_06::
 01AA 4A93              st -y,R20
 01AC 5A93              st -y,R21
 01AE A801              movw R20,R16
 01B0                   .dbline -1
 01B0                   .dbline 80
 01B0           ;   }
 01B0           ;  }
 01B0           ;  
 01B0           ; void LED_06(int i)
 01B0           ;    {
 01B0                   .dbline 81
 01B0           ;    switch(i)
 01B0 4030              cpi R20,0
 01B2 4507              cpc R20,R21
 01B4 29F0              breq L44
 01B6           X13:
 01B6 4130              cpi R20,1
 01B8 E0E0              ldi R30,0
 01BA 5E07              cpc R21,R30
 01BC 39F0              breq L45
 01BE           X14:
 01BE 0BC0              xjmp L42
 01C0           L44:
 01C0                   .dbline 83
 01C0           ;     {
 01C0           ;  case 0:PORTC=0XAA;DelayMs(100);break;
 01C0 8AEA              ldi R24,170
 01C2 85BB              out 0x15,R24
 01C4                   .dbline 83
 01C4 04E6              ldi R16,100
 01C6 10E0              ldi R17,0
 01C8 2DDF              xcall _DelayMs
 01CA                   .dbline 83
 01CA 05C0              xjmp L43
 01CC           L45:
 01CC                   .dbline 84
 01CC           ;  case 1:PORTC=0X55;DelayMs(100);break;
 01CC 85E5              ldi R24,85
 01CE 85BB              out 0x15,R24
 01D0                   .dbline 84
 01D0 04E6              ldi R16,100
 01D2 10E0              ldi R17,0
 01D4 27DF              xcall _DelayMs
 01D6                   .dbline 84
 01D6           L42:
 01D6           L43:
 01D6                   .dbline -2
 01D6           L41:
 01D6                   .dbline 0 ; func end
 01D6 5991              ld R21,y+
 01D8 4991              ld R20,y+
 01DA 0895              ret
 01DC                   .dbsym r i 20 I
 01DC                   .dbend
 01DC                   .dbfunc e main _main fV
 01DC           ;              r -> R20,R21
 01DC           ;              j -> R22,R23
 01DC           ;              s -> R22,R23
 01DC           ;              q -> R22,R23
 01DC           ;              p -> R22,R23
 01DC           ;              o -> R22,R23
 01DC           ;              n -> R22,R23
 01DC           ;              m -> R22,R23
 01DC           ;              l -> R22,R23
 01DC           ;              i -> R10,R11
                        .even
 01DC           _main::
 01DC                   .dbline -1
 01DC                   .dbline 89
 01DC           ;  }
 01DC           ;    }
 01DC           ; 
 01DC           ; void main()
 01DC           ;     {
 01DC                   .dbline 91
 01DC           ;     int l,m,n,o,p,q,r,s,i,j;
 01DC           ;  DDRA =0X00;                         //端口上拉输入
 01DC 2224              clr R2
 01DE 2ABA              out 0x1a,R2
 01E0                   .dbline 92
 01E0           ;  PORTA=0XFF;
 01E0 8FEF              ldi R24,255
 01E2 8BBB              out 0x1b,R24
 01E4                   .dbline 93
 01E4           ;     DDRB =0x00;                         //端口输出
 01E4 27BA              out 0x17,R2
 01E6                   .dbline 94
 01E6           ;     PORTB=0xFF;                         //输出高电平,LED熄灭
 01E6 88BB              out 0x18,R24
 01E8                   .dbline 95
 01E8           ;  DDRC =0XFF;
 01E8 84BB              out 0x14,R24
 01EA                   .dbline 96
 01EA           ;  PORTC=0XFF;
 01EA 85BB              out 0x15,R24
 01EC                   .dbline 97
 01EC           ;  DDRD =0X00;
 01EC 21BA              out 0x11,R2
 01EE                   .dbline 98
 01EE           ;  PORTD=0XFF;
 01EE 82BB              out 0x12,R24
 01F0                   .dbline 100
 01F0           ; 
 01F0           ;     for (r=0;r<5;r++)
 01F0 4427              clr R20
 01F2 5527              clr R21
 01F4           L47:
 01F4                   .dbline 101
 01F4           ;      {
 01F4                   .dbline 102
 01F4           ;     for(l=0;l<5;l++)               //模式1:顺序点亮
 01F4 6627              clr R22
 01F6 7727              clr R23
 01F8           L51:
 01F8                   .dbline 103
 01F8           ;           {
 01F8                   .dbline 104
 01F8           ;        for (i = 0; i < 8; i++)     //顺序单个点亮LED
 01F8 AA24              clr R10
 01FA BB24              clr R11
 01FC           L55:
 01FC                   .dbline 105
 01FC           ;                 LED_01(i);
 01FC 8501              movw R16,R10
 01FE 31DF              xcall _LED_01
 0200           L56:
 0200                   .dbline 104
 0200 C501              movw R24,R10
 0202 0196              adiw R24,1
 0204 5C01              movw R10,R24
 0206                   .dbline 104
 0206 8830              cpi R24,8
 0208 E0E0              ldi R30,0
 020A 9E07              cpc R25,R30
 020C BCF3              brlt L55
 020E           X15:
 020E                   .dbline 106
 020E           ;              for (i = 6; i > 0; i--)     //逆序单个点亮LED
 020E 86E0              ldi R24,6
 0210 90E0              ldi R25,0
 0212 5C01              movw R10,R24
 0214           L59:
 0214                   .dbline 107
 0214           ;                 LED_01(i);
 0214 8501              movw R16,R10
 0216 25DF              xcall _LED_01
 0218           L60:
 0218                   .dbline 106
 0218 C501              movw R24,R10
 021A 0197              sbiw R24,1
 021C 5C01              movw R10,R24
 021E                   .dbline 106
 021E 2224              clr R2
 0220 3324              clr R3
 0222 2816              cp R2,R24
 0224 3906              cpc R3,R25
 0226 B4F3              brlt L59
 0228           X16:
 0228                   .dbline 108
 0228           ;     }
 0228           L52:
 0228                   .dbline 102
 0228 6F5F              subi R22,255  ; offset = 1
 022A 7F4F              sbci R23,255
 022C                   .dbline 102
 022C 6530              cpi R22,5
 022E E0E0              ldi R30,0
 0230 7E07              cpc R23,R30
 0232 14F3              brlt L51
 0234           X17:
 0234                   .dbline 109
 0234           ;     LED_off(); 
 0234 12DF              xcall _LED_off
 0236                   .dbline 111
 0236           ;     
 0236           ;     for(m=0;m<5;m++)               //模式2:顺序单个间隔点亮
 0236 6627              clr R22
 0238 7727              clr R23
 023A           L63:
 023A                   .dbline 112
 023A           ;     {
 023A                   .dbline 113
 023A           ;              for (i = 0; i < 8; i += 2)  //顺序间隔点亮LED
 023A AA24              clr R10
 023C BB24              clr R11
 023E           L67:
 023E                   .dbline 114
 023E           ;               LED_01(i);
 023E 8501              movw R16,R10
 0240 10DF              xcall _LED_01
 0242           L68:
 0242                   .dbline 113
 0242 C501              movw R24,R10
 0244 0296              adiw R24,2
 0246 5C01              movw R10,R24
 0248                   .dbline 113
 0248 8830              cpi R24,8
 024A E0E0              ldi R30,0
 024C 9E07              cpc R25,R30
 024E BCF3              brlt L67
 0250           X18:
 0250                   .dbline 115
 0250           ;              for (i = 7; i > 0; i -= 2)  //逆序间隔点亮LED
 0250 87E0              ldi R24,7
 0252 90E0              ldi R25,0
 0254 5C01              movw R10,R24
 0256           L71:
 0256                   .dbline 116
 0256           ;               LED_01(i);
 0256 8501              movw R16,R10
 0258 04DF              xcall _LED_01
 025A           L72:
 025A                   .dbline 115
 025A C501              movw R24,R10
 025C 0297              sbiw R24,2
 025E 5C01              movw R10,R24
 0260                   .dbline 115
 0260 2224              clr R2
 0262 3324              clr R3
 0264 2816              cp R2,R24
 0266 3906              cpc R3,R25
 0268 B4F3              brlt L71
 026A           X19:
 026A                   .dbline 117
 026A           ;     }
 026A           L64:
 026A                   .dbline 111
 026A 6F5F              subi R22,255  ; offset = 1
 026C 7F4F              sbci R23,255
 026E                   .dbline 111
 026E 6530              cpi R22,5
 0270 E0E0              ldi R30,0
 0272 7E07              cpc R23,R30
 0274 14F3              brlt L63
 0276           X20:
 0276                   .dbline 118
 0276           ;     LED_off(); 
 0276 F1DE              xcall _LED_off
 0278                   .dbline 120
 0278           ;      
 0278           ;     for(n=0;n<5;n++)               //模式3:间隔点亮
 0278 6627              clr R22
 027A 7727              clr R23
 027C           L75:
 027C                   .dbline 121
 027C           ;     {
 027C                   .dbline 122
 027C           ;        for (i = 2; i < 8; i++)     //间隔顺序同时点亮
 027C 82E0              ldi R24,2

⌨️ 快捷键说明

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