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

📄 main.lss

📁 单片机的液晶显示程序
💻 LSS
📖 第 1 页 / 共 2 页
字号:
		__ticks = (uint16_t)__tmp;
 252:	8a ef       	ldi	r24, 0xFA	; 250
 254:	90 e0       	ldi	r25, 0x00	; 0
 256:	fc 01       	movw	r30, r24
 258:	31 97       	sbiw	r30, 0x01	; 1
 25a:	f1 f7       	brne	.-4      	; 0x258
	_delay_ms(1);
	resth;
 25c:	90 9a       	sbi	0x12, 0	; 18
 */
static __inline__ void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
 25e:	fc 01       	movw	r30, r24
 260:	31 97       	sbiw	r30, 0x01	; 1
 262:	f1 f7       	brne	.-4      	; 0x260
	_delay_ms(1);
	sclkh;
 264:	c7 9a       	sbi	0x18, 7	; 24
	sdatah;
 266:	c5 9a       	sbi	0x18, 5	; 24
	csh;
 268:	91 9a       	sbi	0x12, 1	; 18
 */
static __inline__ void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
 26a:	01 97       	sbiw	r24, 0x01	; 1
 26c:	f1 f7       	brne	.-4      	; 0x26a
	_delay_ms(1);		
	
	glcdn_WriteCommand(0x82);
 26e:	82 e8       	ldi	r24, 0x82	; 130
 270:	0e 94 55 00 	call	0xaa
	glcdn_WriteData(1);
 274:	81 e0       	ldi	r24, 0x01	; 1
 276:	0e 94 47 00 	call	0x8e
 27a:	cc e0       	ldi	r28, 0x0C	; 12
 27c:	d0 e0       	ldi	r29, 0x00	; 0
	int w;
	for(w=0;w<13;w++) glcdn_WriteData(0);
 27e:	80 e0       	ldi	r24, 0x00	; 0
 280:	0e 94 47 00 	call	0x8e
 284:	21 97       	sbiw	r28, 0x01	; 1
 286:	d7 ff       	sbrs	r29, 7
 288:	fa cf       	rjmp	.-12     	; 0x27e
	
	glcdn_WriteCommand(0xD1);
 28a:	81 ed       	ldi	r24, 0xD1	; 209
 28c:	0e 94 55 00 	call	0xaa
	
	glcdn_WriteCommand(0xCA);
 290:	8a ec       	ldi	r24, 0xCA	; 202
 292:	0e 94 55 00 	call	0xaa
	glcdn_WriteData(0x0f);	
 296:	8f e0       	ldi	r24, 0x0F	; 15
 298:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x20);	
 29c:	80 e2       	ldi	r24, 0x20	; 32
 29e:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x0f);	
 2a2:	8f e0       	ldi	r24, 0x0F	; 15
 2a4:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x01);	
 2a8:	81 e0       	ldi	r24, 0x01	; 1
 2aa:	0e 94 47 00 	call	0x8e
	
	glcdn_WriteCommand(0x94);
 2ae:	84 e9       	ldi	r24, 0x94	; 148
 2b0:	0e 94 55 00 	call	0xaa

	glcdn_WriteCommand(0xA9);
 2b4:	89 ea       	ldi	r24, 0xA9	; 169
 2b6:	0e 94 55 00 	call	0xaa

	glcdn_WriteCommand(0x20);
 2ba:	80 e2       	ldi	r24, 0x20	; 32
 2bc:	0e 94 55 00 	call	0xaa
	glcdn_WriteData(0x0f);	
 2c0:	8f e0       	ldi	r24, 0x0F	; 15
 2c2:	0e 94 47 00 	call	0x8e

	glcdn_WriteCommand(0x81);
 2c6:	81 e8       	ldi	r24, 0x81	; 129
 2c8:	0e 94 55 00 	call	0xaa
	glcdn_WriteData(0x0f);
 2cc:	8f e0       	ldi	r24, 0x0F	; 15
 2ce:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x05);
 2d2:	85 e0       	ldi	r24, 0x05	; 5
 2d4:	0e 94 47 00 	call	0x8e
	
	glcdn_WriteCommand(0xA7);
 2d8:	87 ea       	ldi	r24, 0xA7	; 167
 2da:	0e 94 55 00 	call	0xaa
	
	glcdn_WriteCommand(0xBC);
 2de:	8c eb       	ldi	r24, 0xBC	; 188
 2e0:	0e 94 55 00 	call	0xaa
	glcdn_WriteData(0x04);
 2e4:	84 e0       	ldi	r24, 0x04	; 4
 2e6:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x00);
 2ea:	80 e0       	ldi	r24, 0x00	; 0
 2ec:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x04);
 2f0:	84 e0       	ldi	r24, 0x04	; 4
 2f2:	0e 94 47 00 	call	0x8e

	glcdn_WriteCommand(0xBB);
 2f6:	8b eb       	ldi	r24, 0xBB	; 187
 2f8:	0e 94 55 00 	call	0xaa
	glcdn_WriteData(0x01);
 2fc:	81 e0       	ldi	r24, 0x01	; 1
 2fe:	0e 94 47 00 	call	0x8e
	
	glcdn_WriteCommand(0xAF);
 302:	8f ea       	ldi	r24, 0xAF	; 175
 304:	0e 94 55 00 	call	0xaa
	
	glcdn_WriteCommand(0xCE);
 308:	8e ec       	ldi	r24, 0xCE	; 206
 30a:	0e 94 55 00 	call	0xaa
	glcdn_WriteData(0x00);
 30e:	80 e0       	ldi	r24, 0x00	; 0
 310:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x01);
 314:	81 e0       	ldi	r24, 0x01	; 1
 316:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x02);
 31a:	82 e0       	ldi	r24, 0x02	; 2
 31c:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x03);
 320:	83 e0       	ldi	r24, 0x03	; 3
 322:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x04);
 326:	84 e0       	ldi	r24, 0x04	; 4
 328:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x05);
 32c:	85 e0       	ldi	r24, 0x05	; 5
 32e:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x06);
 332:	86 e0       	ldi	r24, 0x06	; 6
 334:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x07);
 338:	87 e0       	ldi	r24, 0x07	; 7
 33a:	0e 94 47 00 	call	0x8e

	glcdn_WriteData(0x00);
 33e:	80 e0       	ldi	r24, 0x00	; 0
 340:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x01);
 344:	81 e0       	ldi	r24, 0x01	; 1
 346:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x02);
 34a:	82 e0       	ldi	r24, 0x02	; 2
 34c:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x03);
 350:	83 e0       	ldi	r24, 0x03	; 3
 352:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x04);
 356:	84 e0       	ldi	r24, 0x04	; 4
 358:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x05);
 35c:	85 e0       	ldi	r24, 0x05	; 5
 35e:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x06);
 362:	86 e0       	ldi	r24, 0x06	; 6
 364:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x07);
 368:	87 e0       	ldi	r24, 0x07	; 7
 36a:	0e 94 47 00 	call	0x8e

	glcdn_WriteData(0x00);
 36e:	80 e0       	ldi	r24, 0x00	; 0
 370:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x01);
 374:	81 e0       	ldi	r24, 0x01	; 1
 376:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x02);
 37a:	82 e0       	ldi	r24, 0x02	; 2
 37c:	0e 94 47 00 	call	0x8e
	glcdn_WriteData(0x03);
 380:	83 e0       	ldi	r24, 0x03	; 3
 382:	0e 94 47 00 	call	0x8e

	glcdn_ClearLcd();
 386:	0e 94 fb 00 	call	0x1f6
 38a:	df 91       	pop	r29
 38c:	cf 91       	pop	r28
 38e:	08 95       	ret

00000390 <RGB2>:
}

void RGB2(unsigned char red,unsigned char green,unsigned char blue)
{
 390:	26 2f       	mov	r18, r22
 	 Color1=(red&0xf0>>4);
 392:	8f 70       	andi	r24, 0x0F	; 15
 394:	80 93 e6 01 	sts	0x01E6, r24
	 Color2=(green&0xf0)|((blue&0xf0)>>4);	
 398:	20 7f       	andi	r18, 0xF0	; 240
 39a:	84 2f       	mov	r24, r20
 39c:	99 27       	eor	r25, r25
 39e:	34 e0       	ldi	r19, 0x04	; 4
 3a0:	96 95       	lsr	r25
 3a2:	87 95       	ror	r24
 3a4:	3a 95       	dec	r19
 3a6:	e1 f7       	brne	.-8      	; 0x3a0
 3a8:	28 2b       	or	r18, r24
 3aa:	20 93 e5 01 	sts	0x01E5, r18
 3ae:	08 95       	ret

000003b0 <main>:
}


int main(void)
{
 3b0:	cf e5       	ldi	r28, 0x5F	; 95
 3b2:	d4 e0       	ldi	r29, 0x04	; 4
 3b4:	de bf       	out	0x3e, r29	; 62
 3b6:	cd bf       	out	0x3d, r28	; 61
 	 
	 
	 MCUCR=0x00;
 3b8:	15 be       	out	0x35, r1	; 53
	GICR=0x40;
 3ba:	80 e4       	ldi	r24, 0x40	; 64
 3bc:	8b bf       	out	0x3b, r24	; 59
	sei();
 3be:	78 94       	sei
 	 SPCR = (1<<SPE) | (1<<MSTR) | (1<<CPHA) | (1<<CPOL);
 3c0:	8c e5       	ldi	r24, 0x5C	; 92
 3c2:	8d b9       	out	0x0d, r24	; 13
	 RGB2(255,255,255);
 3c4:	4f ef       	ldi	r20, 0xFF	; 255
 3c6:	64 2f       	mov	r22, r20
 3c8:	84 2f       	mov	r24, r20
 3ca:	0e 94 c8 01 	call	0x390
     glcdSetRect(glcd_Clip, 0, 0, 130, 130);
 3ce:	10 92 e8 01 	sts	0x01E8, r1
 3d2:	10 92 e9 01 	sts	0x01E9, r1
 3d6:	82 e8       	ldi	r24, 0x82	; 130
 3d8:	80 93 ea 01 	sts	0x01EA, r24
 3dc:	80 93 eb 01 	sts	0x01EB, r24
	 init_lcd();			//初始化LCD
 3e0:	0e 94 16 01 	call	0x22c

	 RGB2(255,255,255);		
 3e4:	4f ef       	ldi	r20, 0xFF	; 255
 3e6:	64 2f       	mov	r22, r20
 3e8:	84 2f       	mov	r24, r20
 3ea:	0e 94 c8 01 	call	0x390
	 glcdn_ClearLcd(); 		//清屏
 3ee:	0e 94 fb 00 	call	0x1f6
	 	 
	while(1)
	{ 
	int h;
	int b=0,c=32,d=0,e=0,f=15,g=15;
 3f2:	00 e0       	ldi	r16, 0x00	; 0
 3f4:	10 e0       	ldi	r17, 0x00	; 0
 3f6:	60 e2       	ldi	r22, 0x20	; 32
 3f8:	86 2e       	mov	r8, r22
 3fa:	91 2c       	mov	r9, r1
 3fc:	b8 01       	movw	r22, r16
 3fe:	f8 01       	movw	r30, r16
 400:	5f e0       	ldi	r21, 0x0F	; 15
 402:	e5 2e       	mov	r14, r21
 404:	f1 2c       	mov	r15, r1
 406:	67 01       	movw	r12, r14
	 colora=0x00;			//黑色
 408:	10 92 ec 01 	sts	0x01EC, r1
	 colorb=0xff;
 40c:	8f ef       	ldi	r24, 0xFF	; 255
 40e:	80 93 e7 01 	sts	0x01E7, r24
 412:	45 e0       	ldi	r20, 0x05	; 5
 414:	a4 2e       	mov	r10, r20
 416:	b1 2c       	mov	r11, r1
	 for(h=0;h<6;h++)
	  {
		glcdRectangle(d,e,f,g); 
 418:	2e 2d       	mov	r18, r14
 41a:	4c 2d       	mov	r20, r12
 41c:	8e 2f       	mov	r24, r30
 41e:	0e 94 ed 00 	call	0x1da
		for(b;b<c;b++)
 422:	08 15       	cp	r16, r8
 424:	19 05       	cpc	r17, r9
 426:	94 f4       	brge	.+36     	; 0x44c
 428:	e8 01       	movw	r28, r16
 42a:	c0 0f       	add	r28, r16
 42c:	d1 1f       	adc	r29, r17
 42e:	c0 5a       	subi	r28, 0xA0	; 160
 430:	df 4f       	sbci	r29, 0xFF	; 255
		{
		a=discode[b];
 432:	89 91       	ld	r24, Y+
 434:	99 91       	ld	r25, Y+
 436:	90 93 ee 01 	sts	0x01EE, r25
 43a:	80 93 ed 01 	sts	0x01ED, r24
		write();
 43e:	0e 94 86 00 	call	0x10c
 442:	0f 5f       	subi	r16, 0xFF	; 255
 444:	1f 4f       	sbci	r17, 0xFF	; 255
 446:	08 15       	cp	r16, r8
 448:	19 05       	cpc	r17, r9
 44a:	9c f3       	brlt	.-26     	; 0x432
		} 
		c=c+32;
 44c:	80 e2       	ldi	r24, 0x20	; 32
 44e:	90 e0       	ldi	r25, 0x00	; 0
 450:	88 0e       	add	r8, r24
 452:	99 1e       	adc	r9, r25
	double __tmp = ((F_CPU) / 4e3) * __ms;
	if (__tmp < 1.0)
		__ticks = 1;
	else if (__tmp > 65535)
		__ticks = 0;	/* i.e. 65536 */
 454:	80 e0       	ldi	r24, 0x00	; 0
 456:	90 e0       	ldi	r25, 0x00	; 0
 458:	01 97       	sbiw	r24, 0x01	; 1
 45a:	f1 f7       	brne	.-4      	; 0x458
		_delay_ms(500);	
		d=f+1;
 45c:	f6 01       	movw	r30, r12
 45e:	31 96       	adiw	r30, 0x01	; 1
		e=g+1;
 460:	b7 01       	movw	r22, r14
 462:	6f 5f       	subi	r22, 0xFF	; 255
 464:	7f 4f       	sbci	r23, 0xFF	; 255
		f=f+16;
 466:	80 e1       	ldi	r24, 0x10	; 16
 468:	90 e0       	ldi	r25, 0x00	; 0
 46a:	c8 0e       	add	r12, r24
 46c:	d9 1e       	adc	r13, r25
		g=g+16;	
 46e:	e8 0e       	add	r14, r24
 470:	f9 1e       	adc	r15, r25
 472:	08 94       	sec
 474:	a1 08       	sbc	r10, r1
 476:	b1 08       	sbc	r11, r1
 478:	b7 fe       	sbrs	r11, 7
 47a:	ce cf       	rjmp	.-100    	; 0x418
 47c:	b3 cf       	rjmp	.-154    	; 0x3e4

0000047e <__vector_1>:
	  }	 	
	 RGB2(255,255,255);		
	 glcdn_ClearLcd(); 		//清屏
	} 	 
}



SIGNAL (SIG_INTERRUPT0)
{
 47e:	1f 92       	push	r1
 480:	0f 92       	push	r0
 482:	0f b6       	in	r0, 0x3f	; 63
 484:	0f 92       	push	r0
 486:	11 24       	eor	r1, r1
 488:	8f 93       	push	r24
 48a:	9f 93       	push	r25
 48c:	ef 93       	push	r30
 48e:	ff 93       	push	r31
MCUCR=0X00;
 490:	15 be       	out	0x35, r1	; 53
while(!(PIND&0X04));
 492:	82 9b       	sbis	0x10, 2	; 16
 494:	fe cf       	rjmp	.-4      	; 0x492
	double __tmp = ((F_CPU) / 4e3) * __ms;
	if (__tmp < 1.0)
		__ticks = 1;
	else if (__tmp > 65535)
		__ticks = 0;	/* i.e. 65536 */
 496:	e0 e0       	ldi	r30, 0x00	; 0
 498:	f0 e0       	ldi	r31, 0x00	; 0
 49a:	cf 01       	movw	r24, r30
 49c:	01 97       	sbiw	r24, 0x01	; 1
 49e:	f1 f7       	brne	.-4      	; 0x49c
_delay_ms(500);
x++;
 4a0:	80 91 e0 01 	lds	r24, 0x01E0
 4a4:	90 91 e1 01 	lds	r25, 0x01E1
 4a8:	01 96       	adiw	r24, 0x01	; 1
 4aa:	90 93 e1 01 	sts	0x01E1, r25
 4ae:	80 93 e0 01 	sts	0x01E0, r24
if(x==1)
 4b2:	01 97       	sbiw	r24, 0x01	; 1
 4b4:	11 f4       	brne	.+4      	; 0x4ba
	{
	PORTB|=_BV(PB2);
 4b6:	c2 9a       	sbi	0x18, 2	; 24
 4b8:	06 c0       	rjmp	.+12     	; 0x4c6
	}
else 
	{
	DDRB&=~_BV(PB2);
 4ba:	ba 98       	cbi	0x17, 2	; 23
	PORTB&=~_BV(PB2);
 4bc:	c2 98       	cbi	0x18, 2	; 24
	x=0;
 4be:	f0 93 e1 01 	sts	0x01E1, r31
 4c2:	e0 93 e0 01 	sts	0x01E0, r30
 4c6:	ff 91       	pop	r31
 4c8:	ef 91       	pop	r30
 4ca:	9f 91       	pop	r25
 4cc:	8f 91       	pop	r24
 4ce:	0f 90       	pop	r0
 4d0:	0f be       	out	0x3f, r0	; 63
 4d2:	0f 90       	pop	r0
 4d4:	1f 90       	pop	r1
 4d6:	18 95       	reti

⌨️ 快捷键说明

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