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

📄 drive.lis

📁 LED显示面板
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0242 E0E0              ldi R30,0
 0244 9E07              cpc R25,R30
 0246 A1F0              breq L21
 0248 8230              cpi R24,2
 024A E0E0              ldi R30,0
 024C 9E07              cpc R25,R30
 024E 99F0              breq L22
 0250 8330              cpi R24,3
 0252 E0E0              ldi R30,0
 0254 9E07              cpc R25,R30
 0256 91F0              breq L23
 0258 8430              cpi R24,4
 025A E0E0              ldi R30,0
 025C 9E07              cpc R25,R30
 025E 89F0              breq L24
 0260 8530              cpi R24,5
 0262 E0E0              ldi R30,0
 0264 9E07              cpc R25,R30
 0266 81F0              breq L25
 0268 12C0              xjmp L17
 026A           X1:
 026A                   .dbline 199
 026A           ; {
 026A           L20:
 026A                   .dbline 200
 026A           ; case 0: PORTC=0x10; break;
 026A 80E1              ldi R24,16
 026C 88B9              out 0x8,R24
 026E                   .dbline 200
 026E 11C0              xjmp L18
 0270           L21:
 0270                   .dbline 201
 0270           ; case 1: PORTC=0x90; break;
 0270 80E9              ldi R24,144
 0272 88B9              out 0x8,R24
 0274                   .dbline 201
 0274 0EC0              xjmp L18
 0276           L22:
 0276                   .dbline 202
 0276           ; case 2: PORTC=0x50; break;
 0276 80E5              ldi R24,80
 0278 88B9              out 0x8,R24
 027A                   .dbline 202
 027A 0BC0              xjmp L18
 027C           L23:
 027C                   .dbline 203
 027C           ; case 3: PORTC=0xd0; break;
 027C 80ED              ldi R24,208
 027E 88B9              out 0x8,R24
 0280                   .dbline 203
 0280 08C0              xjmp L18
 0282           L24:
 0282                   .dbline 204
 0282           ; case 4: PORTC=0x30; break;
 0282 80E3              ldi R24,48
 0284 88B9              out 0x8,R24
 0286                   .dbline 204
 0286 05C0              xjmp L18
 0288           L25:
 0288                   .dbline 205
 0288           ; case 5: PORTC=0xb0; break;
 0288 80EB              ldi R24,176
 028A 88B9              out 0x8,R24
 028C                   .dbline 205
 028C 02C0              xjmp L18
 028E           L17:
 028E                   .dbline 206
 028E           ; default:RESET;
 028E 0C940000          jmp 0x000
 0292                   .dbline 207
 0292           ; }
 0292           L18:
 0292                   .dbline 208
 0292           ; asm("nop");
 0292 0000              nop
 0294                   .dbline 209
 0294           ; asm("nop");
 0294 0000              nop
 0296                   .dbline 210
 0296           ; temp = i%8;
 0296 18E0              ldi R17,8
 0298 042F              mov R16,R20
 029A 0E940000          xcall mod8u
 029E 602F              mov R22,R16
 02A0                   .dbline 211
 02A0           ; if(temp<6) 
 02A0 0630              cpi R16,6
 02A2 50F4              brsh L26
 02A4                   .dbline 212
 02A4           ; {
 02A4                   .dbline 213
 02A4           ; tempdata = 1<<(temp+2);
 02A4 162F              mov R17,R22
 02A6 1E5F              subi R17,254    ; addi 2
 02A8 01E0              ldi R16,1
 02AA 0E940000          xcall lsl8
 02AE 402F              mov R20,R16
 02B0                   .dbline 214
 02B0           ; PORTE |= tempdata;
 02B0 2EB0              in R2,0xe
 02B2 202A              or R2,R16
 02B4 2EB8              out 0xe,R2
 02B6                   .dbline 215
 02B6           ; }
 02B6 09C0              xjmp L27
 02B8           L26:
 02B8                   .dbline 217
 02B8           ; else
 02B8           ; {
 02B8                   .dbline 218
 02B8           ; tempdata = 1<< (temp-3);
 02B8 162F              mov R17,R22
 02BA 1350              subi R17,3
 02BC 01E0              ldi R16,1
 02BE 0E940000          xcall lsl8
 02C2 402F              mov R20,R16
 02C4                   .dbline 219
 02C4           ; PORTG |= tempdata;
 02C4 24B2              in R2,0x14
 02C6 202A              or R2,R16
 02C8 24BA              out 0x14,R2
 02CA                   .dbline 220
 02CA           ; }
 02CA           L27:
 02CA                   .dbline 222
 02CA           ; 
 02CA           ; PORTC&=0xef;
 02CA 88B1              in R24,0x8
 02CC 8F7E              andi R24,239
 02CE 88B9              out 0x8,R24
 02D0                   .dbline -2
 02D0           L16:
 02D0 0E940000          xcall pop_gset3
 02D4                   .dbline 0 ; func end
 02D4 0895              ret
 02D6                   .dbsym r tempdata 20 c
 02D6                   .dbsym r temp 22 c
 02D6                   .dbsym r i 20 c
 02D6                   .dbend
 02D6                   .dbfunc e led_on _led_on fV
 02D6           ;          temp2 -> R20,R21
 02D6           ;          temp1 -> R22,R23
 02D6           ;       pas_flag -> R10,R11
 02D6           ;             tt -> y+10
 02D6           ;             dd -> R12
 02D6           ;              d -> R18
 02D6           ;              i -> R16
                        .even
 02D6           _led_on::
 02D6 0E940000          xcall push_gset4
 02DA C884              ldd R12,y+8
 02DC                   .dbline -1
 02DC                   .dbline 228
 02DC           ; 
 02DC           ; }
 02DC           ; 
 02DC           ; 
 02DC           ; void led_on(unsigned char i,unsigned char d,unsigned char dd,unsigned char tt)  //LED亮函数
 02DC           ; {
 02DC                   .dbline 230
 02DC           ;  unsigned temp1,temp2,pas_flag;
 02DC           ;  temp1= 0xfc;
 02DC 6CEF              ldi R22,252
 02DE 70E0              ldi R23,0
 02E0                   .dbline 231
 02E0           ;  temp2= 0x18;
 02E0 48E1              ldi R20,24
 02E2 50E0              ldi R21,0
 02E4                   .dbline 232
 02E4           ;  PORTD&=0x7f;
 02E4 8BB1              in R24,0xb
 02E6 8F77              andi R24,127
 02E8 8BB9              out 0xb,R24
 02EA                   .dbline 233
 02EA           ;  WDR();
 02EA A895              wdr
 02EC                   .dbline 234
 02EC           ;  if(!tt)
 02EC 0A84              ldd R0,y+10
 02EE 0020              tst R0
 02F0 09F0              breq X4
 02F2 3CC0              xjmp L29
 02F4           X4:
 02F4                   .dbline 235
 02F4           ;  {
 02F4                   .dbline 236
 02F4           ;   WDR();
 02F4 A895              wdr
 02F6                   .dbline 237
 02F6           ;  pas_flag=1;
 02F6 81E0              ldi R24,1
 02F8 90E0              ldi R25,0
 02FA 5C01              movw R10,R24
 02FC                   .dbline 238
 02FC           ;  if(d&0x01)
 02FC 20FF              sbrs R18,0
 02FE 02C0              rjmp L31
 0300                   .dbline 239
 0300           ;  temp1 &= 0xf8;
 0300 687F              andi R22,248
 0302 7070              andi R23,0
 0304           L31:
 0304                   .dbline 240
 0304           ;  pas_flag=pas_flag<<1;
 0304 AA0C              lsl R10
 0306 BB1C              rol R11
 0308                   .dbline 241
 0308           ;  if(d&0x02)
 0308 21FF              sbrs R18,1
 030A 02C0              rjmp L33
 030C                   .dbline 242
 030C           ;  temp1 &= 0xf4;
 030C 647F              andi R22,244
 030E 7070              andi R23,0
 0310           L33:
 0310                   .dbline 243
 0310           ;  pas_flag=pas_flag<<1;
 0310 AA0C              lsl R10
 0312 BB1C              rol R11
 0314                   .dbline 244
 0314           ;  if(d&0x04)
 0314 22FF              sbrs R18,2
 0316 02C0              rjmp L35
 0318                   .dbline 245
 0318           ;  temp1 &= 0xec;
 0318 6C7E              andi R22,236
 031A 7070              andi R23,0
 031C           L35:
 031C                   .dbline 246
 031C           ;  pas_flag=pas_flag<<1;
 031C AA0C              lsl R10
 031E BB1C              rol R11
 0320                   .dbline 247
 0320           ;  if(d&0x08)
 0320 23FF              sbrs R18,3
 0322 02C0              rjmp L37
 0324                   .dbline 248
 0324           ;  temp1 &= 0xdc;
 0324 6C7D              andi R22,220
 0326 7070              andi R23,0
 0328           L37:
 0328                   .dbline 249
 0328           ;  pas_flag=pas_flag<<1;
 0328 AA0C              lsl R10
 032A BB1C              rol R11
 032C                   .dbline 250
 032C           ;  if(d&0x10)
 032C 24FF              sbrs R18,4
 032E 02C0              rjmp L39
 0330                   .dbline 251
 0330           ;  temp1 &= 0xbc;
 0330 6C7B              andi R22,188
 0332 7070              andi R23,0
 0334           L39:
 0334                   .dbline 252
 0334           ;  if(d&0x20)
 0334 25FF              sbrs R18,5
 0336 02C0              rjmp L41
 0338                   .dbline 253
 0338           ;  temp1 &= 0x7c;
 0338 6C77              andi R22,124
 033A 7070              andi R23,0
 033C           L41:
 033C                   .dbline 254
 033C           ;  pas_flag=pas_flag<<1;
 033C AA0C              lsl R10
 033E BB1C              rol R11
 0340                   .dbline 255
 0340           ;  WDR();
 0340 A895              wdr
 0342                   .dbline 256
 0342           ;  if(d&0x40)
 0342 26FF              sbrs R18,6
 0344 02C0              rjmp L43
 0346                   .dbline 257
 0346           ;  temp2 &= 0x10;
 0346 4071              andi R20,16
 0348 5070              andi R21,0
 034A           L43:
 034A                   .dbline 258
 034A           ;  pas_flag=pas_flag<<1;
 034A AA0C              lsl R10
 034C BB1C              rol R11
 034E                   .dbline 259
 034E           ;  if(d&0x80)
 034E 27FF              sbrs R18,7
 0350 02C0              rjmp L45
 0352                   .dbline 260
 0352           ;  temp2 &= 0x08;
 0352 4870              andi R20,8
 0354 5070              andi R21,0
 0356           L45:
 0356                   .dbline 261
 0356           ;  asm("nop");
 0356 0000              nop
 0358                   .dbline 262
 0358           ;  asm("nop");
 0358 0000              nop
 035A                   .dbline 263
 035A           ;  if(pas_flag!=0x40)
 035A C501              movw R24,R10
 035C 8034              cpi R24,64
 035E E0E0              ldi R30,0
 0360 9E07              cpc R25,R30
 0362 11F0              breq L47
 0364                   .dbline 264
 0364           ;  RESET;
 0364 0C940000          jmp 0x000
 0368           L47:
 0368                   .dbline 265
 0368           ;   WDR();
 0368 A895              wdr
 036A                   .dbline 266
 036A           ;  }
 036A 3EC0              xjmp L30
 036C           L29:
 036C                   .dbline 268
 036C           ;  else
 036C           ;  {
 036C                   .dbline 269
 036C           ;  WDR();
 036C A895              wdr
 036E                   .dbline 270
 036E           ;  PORTD&=0x7f;
 036E 8BB1              in R24,0xb
 0370 8F77              andi R24,127
 0372 8BB9              out 0xb,R24
 0374                   .dbline 271
 0374           ;  pas_flag=1;
 0374 81E0              ldi R24,1
 0376 90E0              ldi R25,0
 0378 5C01              movw R10,R24
 037A                   .dbline 272
 037A           ;  if(dd&0x01)
 037A C0FE              sbrs R12,0
 037C 02C0              rjmp L49
 037E                   .dbline 273
 037E           ;  temp1 &= 0xf8;
 037E 687F              andi R22,248
 0380 7070              andi R23,0
 0382           L49:
 0382                   .dbline 274
 0382           ;  pas_flag=pas_flag<<1;
 0382 AA0C              lsl R10
 0384 BB1C              rol R11
 0386                   .dbline 275
 0386           ;  if(dd&0x02)
 0386 C1FE              sbrs R12,1
 0388 02C0              rjmp L51
 038A                   .dbline 276
 038A           ;  temp1 &= 0xf4;
 038A 647F              andi R22,244
 038C 7070              andi R23,0
 038E           L51:
 038E                   .dbline 277
 038E           ;  pas_flag=pas_flag<<1;
 038E AA0C              lsl R10
 0390 BB1C              rol R11
 0392                   .dbline 278
 0392           ;  if(dd&0x04)
 0392 C2FE              sbrs R12,2
 0394 02C0              rjmp L53
 0396                   .dbline 279
 0396           ;  temp1 &= 0xec;
 0396 6C7E              andi R22,236
 0398 7070              andi R23,0
 039A           L53:
 039A                   .dbline 280
 039A           ;  if(dd&0x08)
 039A C3FE              sbrs R12,3
 039C 02C0              rjmp L55
 039E                   .dbline 281
 039E           ;  temp1 &= 0xdc;
 039E 6C7D              andi R22,220
 03A0 7070              andi R23,0
 03A2           L55:
 03A2                   .dbline 282
 03A2           ;   pas_flag=pas_flag<<1;
 03A2 AA0C              lsl R10
 03A4 BB1C              rol R11
 03A6                   .dbline 283
 03A6           ;  if(dd&0x10)
 03A6 C4FE              sbrs R12,4
 03A8 02C0              rjmp L57
 03AA                   .dbline 284
 03AA           ;  temp1 &= 0xbc;
 03AA 6C7B              andi R22,188
 03AC 7070              andi R23,0
 03AE           L57:
 03AE                   .dbline 285
 03AE           ;   pas_flag=pas_flag<<1;
 03AE AA0C              lsl R10
 03B0 BB1C              rol R11
 03B2                   .dbline 286
 03B2           ;  if(dd&0x20)
 03B2 C5FE              sbrs R12,5
 03B4 02C0              rjmp L59
 03B6                   .dbline 287
 03B6           ;  temp1 &= 0x7c;
 03B6 6C77              andi R22,124
 03B8 7070              andi R23,0
 03BA           L59:
 03BA                   .dbline 288

⌨️ 快捷键说明

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