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

📄 12ul_demo.lss

📁 基于AVR单片机的12段LED管灯控制程序
💻 LSS
📖 第 1 页 / 共 4 页
字号:
    WORD bi, loop;
	
    for(loop=0; loop < (BLAMPS*BXDOTS)/2; loop++)
 1d0:	00 e0       	ldi	r16, 0x00	; 0
 1d2:	10 e0       	ldi	r17, 0x00	; 0
 1d4:	4c e0       	ldi	r20, 0x0C	; 12
 1d6:	e4 2e       	mov	r14, r20
 1d8:	f1 2c       	mov	r15, r1
   	    {
		Set_Stb();
 1da:	91 9a       	sbi	0x12, 1	; 18
	    for(bi=0; bi < (BLAMPS*BXDOTS); bi++)
 1dc:	c0 e0       	ldi	r28, 0x00	; 0
 1de:	d0 e0       	ldi	r29, 0x00	; 0
	        {
			if((bi <= ((BLAMPS*BXDOTS)/2+loop)) && (bi >= ((BLAMPS*BXDOTS)/2-loop)))
 1e0:	c8 01       	movw	r24, r16
 1e2:	0c 96       	adiw	r24, 0x0c	; 12
 1e4:	8c 17       	cp	r24, r28
 1e6:	9d 07       	cpc	r25, r29
 1e8:	28 f0       	brcs	.+10     	; 0x1f4
 1ea:	ce 15       	cp	r28, r14
 1ec:	df 05       	cpc	r29, r15
 1ee:	10 f0       	brcs	.+4      	; 0x1f4
				{
		        SendOneDotColorData(bMoveColor);
 1f0:	8d 2d       	mov	r24, r13
 1f2:	06 c0       	rjmp	.+12     	; 0x200
				}
			else
			    {
			    if(bMoveColor == RED)
 1f4:	dd 20       	and	r13, r13
 1f6:	11 f4       	brne	.+4      	; 0x1fc
				    {
		            SendOneDotColorData(YELLOW);
 1f8:	84 e0       	ldi	r24, 0x04	; 4
 1fa:	02 c0       	rjmp	.+4      	; 0x200
				    }
				else 
				    {
		            SendOneDotColorData(bMoveColor-1);
 1fc:	8d 2d       	mov	r24, r13
 1fe:	81 50       	subi	r24, 0x01	; 1
 200:	64 df       	rcall	.-312    	; 0xca
 202:	21 96       	adiw	r28, 0x01	; 1
 204:	c8 31       	cpi	r28, 0x18	; 24
 206:	d1 05       	cpc	r29, r1
 208:	58 f3       	brcs	.-42     	; 0x1e0
				    }
				}
			}
		Clr_Stb();
 20a:	91 98       	cbi	0x12, 1	; 18
		AvrXDelay(&delay, bMoveSpeed);	
 20c:	b5 01       	movw	r22, r10
 20e:	8d ef       	ldi	r24, 0xFD	; 253
 210:	90 e0       	ldi	r25, 0x00	; 0
 212:	4c d2       	rcall	.+1176   	; 0x6ac
 214:	0f 5f       	subi	r16, 0xFF	; 255
 216:	1f 4f       	sbci	r17, 0xFF	; 255
 218:	08 94       	sec
 21a:	e1 08       	sbc	r14, r1
 21c:	f1 08       	sbc	r15, r1
 21e:	0c 30       	cpi	r16, 0x0C	; 12
 220:	11 05       	cpc	r17, r1
 222:	d8 f2       	brcs	.-74     	; 0x1da
 224:	df 91       	pop	r29
 226:	cf 91       	pop	r28
 228:	1f 91       	pop	r17
 22a:	0f 91       	pop	r16
 22c:	ff 90       	pop	r15
 22e:	ef 90       	pop	r14
 230:	df 90       	pop	r13
 232:	bf 90       	pop	r11
 234:	af 90       	pop	r10
 236:	08 95       	ret

00000238 <Play_CloseOpenMoveUpt>:
 238:	0f 93       	push	r16
 23a:	1f 93       	push	r17
 23c:	cf 93       	push	r28
 23e:	8c 01       	movw	r16, r24
 240:	84 e0       	ldi	r24, 0x04	; 4
 242:	5b df       	rcall	.-330    	; 0xfa
 244:	c0 e0       	ldi	r28, 0x00	; 0
 246:	c0 fd       	sbrc	r28, 0
 248:	04 c0       	rjmp	.+8      	; 0x252
 24a:	b8 01       	movw	r22, r16
 24c:	8c 2f       	mov	r24, r28
 24e:	78 df       	rcall	.-272    	; 0x140
 250:	03 c0       	rjmp	.+6      	; 0x258
 252:	b8 01       	movw	r22, r16
 254:	8c 2f       	mov	r24, r28
 256:	b1 df       	rcall	.-158    	; 0x1ba
 258:	cf 5f       	subi	r28, 0xFF	; 255
 25a:	c5 30       	cpi	r28, 0x05	; 5
 25c:	a0 f3       	brcs	.-24     	; 0x246
 25e:	cf 91       	pop	r28
 260:	1f 91       	pop	r17
 262:	0f 91       	pop	r16
 264:	08 95       	ret

00000266 <SendOneDotAshColorData>:
		}
}

/*================================================================
Function: Gradual about 16dots.
-----------------------------------------------------------------*/ 
void  Play_Gradual(BYTE bGradSpeeds)
{
    WORD wi, wj;
     
    for(wi = 1; wi <= BASHVAL; wi++)
   	    {	
   	    for(wj = 0; wj < bGradSpeeds; wj++)
   		    DisplayAsh(wi, BASHVAL - wi, 0);
        }
     
    for(wi = 1; wi <= BASHVAL; wi++)
   	    {
   	    for(wj = 0; wj < bGradSpeeds; wj++)
   		DisplayAsh(BASHVAL - wi, 0, wi);
   		}
  
    for(wi = 1; wi <= BASHVAL; wi++)
   	    { 
   	    for(wj = 0; wj < bGradSpeeds; wj++)
   		DisplayAsh(0, wi, BASHVAL - wi);
   		}
}

//-----------------------------------------------------------------
void  DisplayAsh(WORD wRedAsh, WORD wGreenAsh, WORD wBlueAsh)
{
    WORD wi,wloop;

    for(wi = 0; wi < BASHVAL; wi++)
   	    {
   	    Set_Stb();
	    for(wloop = 0; wloop < 8; wloop++)
		    {
			SendOneDotAshColorData(wi, wRedAsh, wGreenAsh, wBlueAsh);
		    }
	    Clr_Stb();
   	    }
}

/*==========================================================================
Function: play AshRGB.
----------------------------------------------------------------------------*/ 
void  Play_24ColorRunAsh_L_to_R(WORD wStayTimes)
{
    WORD wi, wj, wk, wStartDot;
    
	for(wStartDot = 0; wStartDot < 24; wStartDot++)
	    {
	    for(wk = 0; wk < wStayTimes; wk++)
	        {
            for(wj = 0; wj < BASH16; wj++)
   	            {
   	            Set_Stb();
	            for(wi = wStartDot; wi < (wStartDot + 24); wi++)
		            {
			        SendOneDotAshColorData(wj, bAshRgb[wi%24*3+0], bAshRgb[wi%24*3+1], bAshRgb[wi%24*3+2]);
		            }
	            Clr_Stb();
				}
			}
   	    }
}

//------------------------------------------------------------------------------
void  SendOneDotAshColorData(WORD wi, WORD wRedAsh, WORD wGreAsh, WORD wBluAsh)
{	
 266:	fc 01       	movw	r30, r24
    Set_Clk();Set_Sdi();Clr_Clk();
 268:	93 9a       	sbi	0x12, 3	; 18
 26a:	94 9a       	sbi	0x12, 4	; 18
 26c:	93 98       	cbi	0x12, 3	; 18
	
	Set_Clk();
 26e:	93 9a       	sbi	0x12, 3	; 18
	if(wi < wGreAsh)Clr_Sdi();
 270:	e4 17       	cp	r30, r20
 272:	f5 07       	cpc	r31, r21
 274:	10 f4       	brcc	.+4      	; 0x27a
 276:	94 98       	cbi	0x12, 4	; 18
 278:	01 c0       	rjmp	.+2      	; 0x27c
	else Set_Sdi();
 27a:	94 9a       	sbi	0x12, 4	; 18
	Clr_Clk();
 27c:	93 98       	cbi	0x12, 3	; 18
		
	Set_Clk();
 27e:	93 9a       	sbi	0x12, 3	; 18
	if(wi < wRedAsh)Clr_Sdi();
 280:	e6 17       	cp	r30, r22
 282:	f7 07       	cpc	r31, r23
 284:	10 f4       	brcc	.+4      	; 0x28a
 286:	94 98       	cbi	0x12, 4	; 18
 288:	01 c0       	rjmp	.+2      	; 0x28c
	else Set_Sdi();
 28a:	94 9a       	sbi	0x12, 4	; 18
	Clr_Clk();
 28c:	93 98       	cbi	0x12, 3	; 18

	Set_Clk();
 28e:	93 9a       	sbi	0x12, 3	; 18
	if(wi < wBluAsh)Clr_Sdi();
 290:	e2 17       	cp	r30, r18
 292:	f3 07       	cpc	r31, r19
 294:	10 f4       	brcc	.+4      	; 0x29a
 296:	94 98       	cbi	0x12, 4	; 18
 298:	01 c0       	rjmp	.+2      	; 0x29c
	else Set_Sdi();
 29a:	94 9a       	sbi	0x12, 4	; 18
	Clr_Clk();
 29c:	93 98       	cbi	0x12, 3	; 18
 29e:	08 95       	ret

000002a0 <DisplayAsh>:
 2a0:	af 92       	push	r10
 2a2:	bf 92       	push	r11
 2a4:	cf 92       	push	r12
 2a6:	df 92       	push	r13
 2a8:	ef 92       	push	r14
 2aa:	ff 92       	push	r15
 2ac:	0f 93       	push	r16
 2ae:	1f 93       	push	r17
 2b0:	cf 93       	push	r28
 2b2:	df 93       	push	r29
 2b4:	5c 01       	movw	r10, r24
 2b6:	6b 01       	movw	r12, r22
 2b8:	7a 01       	movw	r14, r20
 2ba:	00 e0       	ldi	r16, 0x00	; 0
 2bc:	10 e0       	ldi	r17, 0x00	; 0
 2be:	91 9a       	sbi	0x12, 1	; 18
 2c0:	c7 e0       	ldi	r28, 0x07	; 7
 2c2:	d0 e0       	ldi	r29, 0x00	; 0
 2c4:	97 01       	movw	r18, r14
 2c6:	a6 01       	movw	r20, r12
 2c8:	b5 01       	movw	r22, r10
 2ca:	c8 01       	movw	r24, r16
 2cc:	cc df       	rcall	.-104    	; 0x266
 2ce:	21 97       	sbiw	r28, 0x01	; 1
 2d0:	d7 ff       	sbrs	r29, 7
 2d2:	f8 cf       	rjmp	.-16     	; 0x2c4
 2d4:	91 98       	cbi	0x12, 1	; 18
 2d6:	0f 5f       	subi	r16, 0xFF	; 255
 2d8:	1f 4f       	sbci	r17, 0xFF	; 255
 2da:	0f 3f       	cpi	r16, 0xFF	; 255
 2dc:	11 05       	cpc	r17, r1
 2de:	78 f3       	brcs	.-34     	; 0x2be
 2e0:	df 91       	pop	r29
 2e2:	cf 91       	pop	r28
 2e4:	1f 91       	pop	r17
 2e6:	0f 91       	pop	r16
 2e8:	ff 90       	pop	r15
 2ea:	ef 90       	pop	r14
 2ec:	df 90       	pop	r13
 2ee:	cf 90       	pop	r12
 2f0:	bf 90       	pop	r11
 2f2:	af 90       	pop	r10
 2f4:	08 95       	ret

000002f6 <Play_Gradual>:
 2f6:	ff 92       	push	r15
 2f8:	0f 93       	push	r16
 2fa:	1f 93       	push	r17
 2fc:	cf 93       	push	r28
 2fe:	df 93       	push	r29
 300:	f8 2e       	mov	r15, r24
 302:	01 e0       	ldi	r16, 0x01	; 1
 304:	10 e0       	ldi	r17, 0x00	; 0
 306:	8f 2d       	mov	r24, r15
 308:	99 27       	eor	r25, r25
 30a:	00 97       	sbiw	r24, 0x00	; 0
 30c:	61 f0       	breq	.+24     	; 0x326
 30e:	ec 01       	movw	r28, r24
 310:	40 e0       	ldi	r20, 0x00	; 0
 312:	50 e0       	ldi	r21, 0x00	; 0
 314:	8f ef       	ldi	r24, 0xFF	; 255
 316:	90 e0       	ldi	r25, 0x00	; 0
 318:	bc 01       	movw	r22, r24
 31a:	60 1b       	sub	r22, r16
 31c:	71 0b       	sbc	r23, r17
 31e:	c8 01       	movw	r24, r16
 320:	bf df       	rcall	.-130    	; 0x2a0
 322:	21 97       	sbiw	r28, 0x01	; 1
 324:	a9 f7       	brne	.-22     	; 0x310
 326:	0f 5f       	subi	r16, 0xFF	; 255
 328:	1f 4f       	sbci	r17, 0xFF	; 255
 32a:	0f 3f       	cpi	r16, 0xFF	; 255
 32c:	11 05       	cpc	r17, r1
 32e:	59 f3       	breq	.-42     	; 0x306
 330:	50 f3       	brcs	.-44     	; 0x306
 332:	01 e0       	ldi	r16, 0x01	; 1
 334:	10 e0       	ldi	r17, 0x00	; 0
 336:	8f 2d       	mov	r24, r15
 338:	99 27       	eor	r25, r25
 33a:	00 97       	sbiw	r24, 0x00	; 0
 33c:	59 f0       	breq	.+22     	; 0x354
 33e:	ec 01       	movw	r28, r24
 340:	a8 01       	movw	r20, r16
 342:	60 e0       	ldi	r22, 0x00	; 0
 344:	70 e0       	ldi	r23, 0x00	; 0
 346:	8f ef       	ldi	r24, 0xFF	; 255
 348:	90 e0       	ldi	r25, 0x00	; 0
 34a:	80 1b       	sub	r24, r16
 34c:	91 0b       	sbc	r25, r17
 34e:	a8 df       	rcall	.-176    	; 0x2a0
 350:	21 97       	sbiw	r28, 0x01	; 1
 352:	b1 f7       	brne	.-20     	; 0x340
 354:	0f 5f       	subi	r16, 0xFF	; 255
 356:	1f 4f       	sbci	r17, 0xFF	; 255
 358:	0f 3f       	cpi	r16, 0xFF	; 255
 35a:	11 05       	cpc	r17, r1
 35c:	61 f3       	breq	.-40     	; 0x336
 35e:	58 f3       	brcs	.-42     	; 0x336
 360:	01 e0       	ldi	r16, 0x01	; 1
 362:	10 e0       	ldi	r17, 0x00	; 0
 364:	8f 2d       	mov	r24, r15
 366:	99 27       	eor	r25, r25
 368:	00 97       	sbiw	r24, 0x00	; 0
 36a:	61 f0       	breq	.+24     	; 0x384
 36c:	ec 01       	movw	r28, r24
 36e:	8f ef       	ldi	r24, 0xFF	; 255
 370:	90 e0       	ldi	r25, 0x00	; 0
 372:	ac 01       	movw	r20, r24
 374:	40 1b       	sub	r20, r16
 376:	51 0b       	sbc	r21, r17
 378:	b8 01       	movw	r22, r16
 37a:	80 e0       	ldi	r24, 0x00	; 0
 37c:	90 e0       	ldi	r25, 0x00	; 0
 37e:	90 df       	rcall	.-224    	; 0x2a0
 380:	21 97       	sbiw	r28, 0x01	; 1
 382:	a9 f7       	brne	.-22     	; 0x36e
 384:	0f 5f       	subi	r16, 0xFF	; 255
 386:	1f 4f       	sbci	r17, 0xFF	; 255
 388:	0f 3f       	cpi	r16, 0xFF	; 255
 38a:	11 05       	cpc	r17, r1
 38c:	59 f3       	breq	.-42     	; 0x364
 38e:	50 f3       	brcs	.-44     	; 0x364
 390:	df 91       	pop	r29
 392:	cf 91       	pop	r28
 394:	1f 91       	pop	r17
 396:	0f 91       	pop	r16
 398:	ff 90       	pop	r15
 39a:	08 95       	ret

0000039c <Play_24ColorRunAsh_L_to_R>:
 39c:	8f 92       	push	r8
 39e:	9f 92       	push	r9
 3a0:	af 92       	push	r10
 3a2:	bf 92       	push	r11
 3a4:	cf 92       	push	r12
 3a6:	df 92       	push	r13
 3a8:	ef 92       	push	r14
 3aa:	ff 92       	push	r15
 3ac:	0f 93       	push	r16
 3ae:	1f 93       	push	r17
 3b0:	cf 93       	push	r28
 3b2:	df 93       	push	r29
 3b4:	4c 01       	movw	r8, r24
 3b6:	00 e0       	ldi	r16, 0x00	; 0
 3b8:	10 e0       	ldi	r17, 0x00	; 0
 3ba:	cc 24       	eor	r12, r12
 3bc:	dd 24       	eor	r13, r13
 3be:	c8 14       	cp	r12, r8
 3c0:	d9 04       	cpc	r13, r9
 3c2:	90 f5       	brcc	.+100    	; 0x428
 3c4:	ee 24       	eor	r14, r14
 3c6:	ff 24       	eor	r15, r15
 3c8:	91 9a       	sbi	0x12, 1	; 18
 3ca:	e8 01       	movw	r28, r16
 3cc:	68 e1       	ldi	r22, 0x18	; 24
 3ce:	a6 2e       	mov	r10, r22
 3d0:	b1 2c       	mov	r11, r1
 3d2:	a0 0e       	add	r10, r16
 3d4:	b1 1e       	adc	r11, r17
 3d6:	0a 15       	cp	r16, r10
 3d8:	1b 05       	cpc	r17, r11
 3da:	d0 f4       	brcc	.+52     	; 0x410
 3dc:	ce 01       	movw	r24, r28
 3de:	68 e1       	ldi	r22, 0x18	; 24
 3e0:	70 e0       	ldi	r23, 0x00	; 0
 3e2:	75 d2       	rcall	.+1258   	; 0x8ce
 3e4:	fc 01       	movw	r30, r24
 3e6:	ee 0f       	add	r30, r30

⌨️ 快捷键说明

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