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

📄 main.lss

📁 avr常用功能程序中包含了pwm、adc、中断、定时、i2c等各程序可供开发者直接使用
💻 LSS
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000001dc  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000000  00800060  000001dc  00000270  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000000  00800060  000001dc  00000270  2**0
                  ALLOC
  3 .noinit       00000000  00800060  00800060  00000270  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000270  2**0
                  CONTENTS
  5 .stab         000004bc  00000000  00000000  00000270  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      0000057b  00000000  00000000  0000072c  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	12 c0       	rjmp	.+36     	; 0x26
   2:	2b c0       	rjmp	.+86     	; 0x5a
   4:	2a c0       	rjmp	.+84     	; 0x5a
   6:	29 c0       	rjmp	.+82     	; 0x5a
   8:	28 c0       	rjmp	.+80     	; 0x5a
   a:	27 c0       	rjmp	.+78     	; 0x5a
   c:	26 c0       	rjmp	.+76     	; 0x5a
   e:	25 c0       	rjmp	.+74     	; 0x5a
  10:	24 c0       	rjmp	.+72     	; 0x5a
  12:	23 c0       	rjmp	.+70     	; 0x5a
  14:	22 c0       	rjmp	.+68     	; 0x5a
  16:	21 c0       	rjmp	.+66     	; 0x5a
  18:	20 c0       	rjmp	.+64     	; 0x5a
  1a:	1f c0       	rjmp	.+62     	; 0x5a
  1c:	1e c0       	rjmp	.+60     	; 0x5a
  1e:	1d c0       	rjmp	.+58     	; 0x5a
  20:	1c c0       	rjmp	.+56     	; 0x5a
  22:	1b c0       	rjmp	.+54     	; 0x5a
  24:	1a c0       	rjmp	.+52     	; 0x5a

00000026 <__ctors_end>:
  26:	11 24       	eor	r1, r1
  28:	1f be       	out	0x3f, r1	; 63
  2a:	cf e5       	ldi	r28, 0x5F	; 95
  2c:	d4 e0       	ldi	r29, 0x04	; 4
  2e:	de bf       	out	0x3e, r29	; 62
  30:	cd bf       	out	0x3d, r28	; 61

00000032 <__do_copy_data>:
  32:	10 e0       	ldi	r17, 0x00	; 0
  34:	a0 e6       	ldi	r26, 0x60	; 96
  36:	b0 e0       	ldi	r27, 0x00	; 0
  38:	ec ed       	ldi	r30, 0xDC	; 220
  3a:	f1 e0       	ldi	r31, 0x01	; 1
  3c:	02 c0       	rjmp	.+4      	; 0x42

0000003e <.do_copy_data_loop>:
  3e:	05 90       	lpm	r0, Z+
  40:	0d 92       	st	X+, r0

00000042 <.do_copy_data_start>:
  42:	a0 36       	cpi	r26, 0x60	; 96
  44:	b1 07       	cpc	r27, r17
  46:	d9 f7       	brne	.-10     	; 0x3e

00000048 <__do_clear_bss>:
  48:	10 e0       	ldi	r17, 0x00	; 0
  4a:	a0 e6       	ldi	r26, 0x60	; 96
  4c:	b0 e0       	ldi	r27, 0x00	; 0
  4e:	01 c0       	rjmp	.+2      	; 0x52

00000050 <.do_clear_bss_loop>:
  50:	1d 92       	st	X+, r1

00000052 <.do_clear_bss_start>:
  52:	a0 36       	cpi	r26, 0x60	; 96
  54:	b1 07       	cpc	r27, r17
  56:	e1 f7       	brne	.-8      	; 0x50
  58:	41 c0       	rjmp	.+130    	; 0xdc

0000005a <__bad_interrupt>:
  5a:	d2 cf       	rjmp	.-92     	; 0x0

0000005c <delay>:
//宏定义
#define uchar unsigned char
#define uint unsigned int
void delay(int x)
{	int xx=100;
	while(x-->0)
	while(xx-->0);
}

  5c:	cf 93       	push	r28
  5e:	df 93       	push	r29
  60:	cd b7       	in	r28, 0x3d	; 61
  62:	de b7       	in	r29, 0x3e	; 62
  64:	24 97       	sbiw	r28, 0x04	; 4
  66:	0f b6       	in	r0, 0x3f	; 63
  68:	f8 94       	cli
  6a:	de bf       	out	0x3e, r29	; 62
  6c:	0f be       	out	0x3f, r0	; 63
  6e:	cd bf       	out	0x3d, r28	; 61
  70:	89 83       	std	Y+1, r24	; 0x01
  72:	9a 83       	std	Y+2, r25	; 0x02
  74:	84 e6       	ldi	r24, 0x64	; 100
  76:	90 e0       	ldi	r25, 0x00	; 0
  78:	8b 83       	std	Y+3, r24	; 0x03
  7a:	9c 83       	std	Y+4, r25	; 0x04
//SPI初始化
  7c:	89 81       	ldd	r24, Y+1	; 0x01
  7e:	9a 81       	ldd	r25, Y+2	; 0x02
  80:	9c 01       	movw	r18, r24
  82:	01 97       	sbiw	r24, 0x01	; 1
  84:	89 83       	std	Y+1, r24	; 0x01
  86:	9a 83       	std	Y+2, r25	; 0x02
  88:	12 16       	cp	r1, r18
  8a:	13 06       	cpc	r1, r19
  8c:	64 f4       	brge	.+24     	; 0xa6
void spi_init(void)
  8e:	fe 01       	movw	r30, r28
  90:	33 96       	adiw	r30, 0x03	; 3
  92:	80 81       	ld	r24, Z
  94:	91 81       	ldd	r25, Z+1	; 0x01
  96:	9c 01       	movw	r18, r24
  98:	01 97       	sbiw	r24, 0x01	; 1
  9a:	80 83       	st	Z, r24
  9c:	91 83       	std	Z+1, r25	; 0x01
  9e:	12 16       	cp	r1, r18
  a0:	13 06       	cpc	r1, r19
  a2:	64 f7       	brge	.-40     	; 0x7c
  a4:	f4 cf       	rjmp	.-24     	; 0x8e
  a6:	24 96       	adiw	r28, 0x04	; 4
  a8:	0f b6       	in	r0, 0x3f	; 63
  aa:	f8 94       	cli
  ac:	de bf       	out	0x3e, r29	; 62
  ae:	0f be       	out	0x3f, r0	; 63
  b0:	cd bf       	out	0x3d, r28	; 61
  b2:	df 91       	pop	r29
  b4:	cf 91       	pop	r28
  b6:	08 95       	ret

000000b8 <spi_init>:
{
	//OSCCAL=0x9d;                        // 8M系统内部时钟校准    
	DDRB|=0Xf8;
	SPSR =_BV(SPI2X);                 // 设置SPI时钟倍速
    SPCR =_BV(SPE) |_BV(MSTR);		// 使能SPI接口,主机模式,4M时钟	0X50
  b8:	cf 93       	push	r28
  ba:	df 93       	push	r29
  bc:	cd b7       	in	r28, 0x3d	; 61
  be:	de b7       	in	r29, 0x3e	; 62
}

  c0:	80 91 37 00 	lds	r24, 0x0037
  c4:	88 6f       	ori	r24, 0xF8	; 248
  c6:	80 93 37 00 	sts	0x0037, r24

  ca:	81 e0       	ldi	r24, 0x01	; 1
  cc:	80 93 2e 00 	sts	0x002E, r24
int main()
  d0:	80 e5       	ldi	r24, 0x50	; 80
  d2:	80 93 2d 00 	sts	0x002D, r24
  d6:	df 91       	pop	r29
  d8:	cf 91       	pop	r28
  da:	08 95       	ret

000000dc <main>:
{
	spi_init();
	DDRC=0XFF;
	PORTC=0XFF;
	uchar jtd1,jtd2,jtd_row,init_jtd1=0xfe,init_jtd2=0xff;	
	int jtd_x=0;
while(1)
{
	//0x0f  0xff空      0xf0 0xff黄    0xff 0xf0 红         0xff 0x0f  绿
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	
	SPDR=jtd1;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	SPDR=jtd2;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	PORTB&=~_BV(PB6);//锁存595数据
	PORTB|=_BV(PB6);
	PORTB&=~_BV(PB6);
	
	delay(20);
	
	jtd_row++;
	jtd1=(jtd1<<1)|0x01;
	jtd2=(jtd2<<1)|0x01;
	if(jtd_row>=4)
	{
		jtd_row=0;
		jtd1=init_jtd1;
		jtd2=init_jtd2;
		jtd_x++;
	}
	if(jtd_x==200)
	{
		init_jtd1=0xff;
		init_jtd2=0xfe;
	}
	if(jtd_x==400)
	{
		init_jtd1=0xff;
		init_jtd2=0xef;

	}
	if(jtd_x==600)
	{
		init_jtd1=0xfe;
		init_jtd2=0xff;
		jtd_x=0;
	}
}
}
/*
	_delay_ms(1000);
	_delay_ms(1000);
	_delay_ms(1000);
	_delay_ms(1000);
*/
/*
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一

	
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	SPDR=0xf0;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	PORTB&=~_BV(PB6);//锁存595数据
	PORTB|=_BV(PB6);
	PORTB&=~_BV(PB6);
delay(1000);
	PORTC=0X00;	
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
delay(1000);
	SPDR=0xf0;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	PORTB&=~_BV(PB6);//锁存595数据
	PORTB|=_BV(PB6);
	PORTB&=~_BV(PB6);
delay(1000);
	PORTC=0Xff;
	


}	
//	TCNT0=00;///////////////////////////////////////////////////////
//		delay(1);


}
/**/  dc:	c8 e5       	ldi	r28, 0x58	; 88
  de:	d4 e0       	ldi	r29, 0x04	; 4
  e0:	de bf       	out	0x3e, r29	; 62
  e2:	cd bf       	out	0x3d, r28	; 61
  e4:	e9 df       	rcall	.-46     	; 0xb8
  e6:	8f ef       	ldi	r24, 0xFF	; 255
  e8:	80 93 34 00 	sts	0x0034, r24
  ec:	8f ef       	ldi	r24, 0xFF	; 255
  ee:	80 93 35 00 	sts	0x0035, r24
  f2:	8e ef       	ldi	r24, 0xFE	; 254
  f4:	8c 83       	std	Y+4, r24	; 0x04
  f6:	8f ef       	ldi	r24, 0xFF	; 255
  f8:	8d 83       	std	Y+5, r24	; 0x05
  fa:	1e 82       	std	Y+6, r1	; 0x06
  fc:	1f 82       	std	Y+7, r1	; 0x07
  fe:	8f ef       	ldi	r24, 0xFF	; 255
 100:	80 93 2f 00 	sts	0x002F, r24
 104:	80 91 2e 00 	lds	r24, 0x002E
 108:	88 23       	and	r24, r24
 10a:	0c f0       	brlt	.+2      	; 0x10e
 10c:	fb cf       	rjmp	.-10     	; 0x104
 10e:	8f ef       	ldi	r24, 0xFF	; 255
 110:	80 93 2f 00 	sts	0x002F, r24
 114:	80 91 2e 00 	lds	r24, 0x002E
 118:	88 23       	and	r24, r24
 11a:	0c f0       	brlt	.+2      	; 0x11e
 11c:	fb cf       	rjmp	.-10     	; 0x114
 11e:	89 81       	ldd	r24, Y+1	; 0x01
 120:	80 93 2f 00 	sts	0x002F, r24
 124:	80 91 2e 00 	lds	r24, 0x002E
 128:	88 23       	and	r24, r24
 12a:	0c f0       	brlt	.+2      	; 0x12e
 12c:	fb cf       	rjmp	.-10     	; 0x124
 12e:	8a 81       	ldd	r24, Y+2	; 0x02
 130:	80 93 2f 00 	sts	0x002F, r24
 134:	80 91 2e 00 	lds	r24, 0x002E
 138:	88 23       	and	r24, r24
 13a:	0c f0       	brlt	.+2      	; 0x13e
 13c:	fb cf       	rjmp	.-10     	; 0x134
 13e:	80 91 38 00 	lds	r24, 0x0038
 142:	8f 7b       	andi	r24, 0xBF	; 191
 144:	80 93 38 00 	sts	0x0038, r24
 148:	80 91 38 00 	lds	r24, 0x0038
 14c:	80 64       	ori	r24, 0x40	; 64
 14e:	80 93 38 00 	sts	0x0038, r24
 152:	80 91 38 00 	lds	r24, 0x0038
 156:	8f 7b       	andi	r24, 0xBF	; 191
 158:	80 93 38 00 	sts	0x0038, r24
 15c:	84 e1       	ldi	r24, 0x14	; 20
 15e:	90 e0       	ldi	r25, 0x00	; 0
 160:	7d df       	rcall	.-262    	; 0x5c
 162:	8b 81       	ldd	r24, Y+3	; 0x03
 164:	8f 5f       	subi	r24, 0xFF	; 255
 166:	8b 83       	std	Y+3, r24	; 0x03
 168:	89 81       	ldd	r24, Y+1	; 0x01
 16a:	99 27       	eor	r25, r25
 16c:	88 0f       	add	r24, r24
 16e:	99 1f       	adc	r25, r25
 170:	81 60       	ori	r24, 0x01	; 1
 172:	89 83       	std	Y+1, r24	; 0x01
 174:	8a 81       	ldd	r24, Y+2	; 0x02
 176:	99 27       	eor	r25, r25
 178:	88 0f       	add	r24, r24
 17a:	99 1f       	adc	r25, r25
 17c:	81 60       	ori	r24, 0x01	; 1
 17e:	8a 83       	std	Y+2, r24	; 0x02
 180:	8b 81       	ldd	r24, Y+3	; 0x03
 182:	84 30       	cpi	r24, 0x04	; 4
 184:	50 f0       	brcs	.+20     	; 0x19a
 186:	1b 82       	std	Y+3, r1	; 0x03
 188:	8c 81       	ldd	r24, Y+4	; 0x04
 18a:	89 83       	std	Y+1, r24	; 0x01
 18c:	8d 81       	ldd	r24, Y+5	; 0x05
 18e:	8a 83       	std	Y+2, r24	; 0x02
 190:	8e 81       	ldd	r24, Y+6	; 0x06
 192:	9f 81       	ldd	r25, Y+7	; 0x07
 194:	01 96       	adiw	r24, 0x01	; 1
 196:	8e 83       	std	Y+6, r24	; 0x06
 198:	9f 83       	std	Y+7, r25	; 0x07
 19a:	8e 81       	ldd	r24, Y+6	; 0x06
 19c:	9f 81       	ldd	r25, Y+7	; 0x07
 19e:	88 3c       	cpi	r24, 0xC8	; 200
 1a0:	91 05       	cpc	r25, r1
 1a2:	21 f4       	brne	.+8      	; 0x1ac
 1a4:	8f ef       	ldi	r24, 0xFF	; 255
 1a6:	8c 83       	std	Y+4, r24	; 0x04
 1a8:	8e ef       	ldi	r24, 0xFE	; 254
 1aa:	8d 83       	std	Y+5, r24	; 0x05
 1ac:	8e 81       	ldd	r24, Y+6	; 0x06
 1ae:	9f 81       	ldd	r25, Y+7	; 0x07
 1b0:	21 e0       	ldi	r18, 0x01	; 1
 1b2:	80 39       	cpi	r24, 0x90	; 144
 1b4:	92 07       	cpc	r25, r18
 1b6:	21 f4       	brne	.+8      	; 0x1c0
 1b8:	8f ef       	ldi	r24, 0xFF	; 255
 1ba:	8c 83       	std	Y+4, r24	; 0x04
 1bc:	8f ee       	ldi	r24, 0xEF	; 239
 1be:	8d 83       	std	Y+5, r24	; 0x05
 1c0:	8e 81       	ldd	r24, Y+6	; 0x06
 1c2:	9f 81       	ldd	r25, Y+7	; 0x07
 1c4:	22 e0       	ldi	r18, 0x02	; 2
 1c6:	88 35       	cpi	r24, 0x58	; 88
 1c8:	92 07       	cpc	r25, r18
 1ca:	09 f0       	breq	.+2      	; 0x1ce
 1cc:	98 cf       	rjmp	.-208    	; 0xfe
 1ce:	8e ef       	ldi	r24, 0xFE	; 254
 1d0:	8c 83       	std	Y+4, r24	; 0x04
 1d2:	8f ef       	ldi	r24, 0xFF	; 255
 1d4:	8d 83       	std	Y+5, r24	; 0x05
 1d6:	1e 82       	std	Y+6, r1	; 0x06
 1d8:	1f 82       	std	Y+7, r1	; 0x07
 1da:	91 cf       	rjmp	.-222    	; 0xfe

⌨️ 快捷键说明

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