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

📄 main.lss

📁 用于AVR单片机上的
💻 LSS
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000002aa  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         0000003c  00800060  000002aa  0000033e  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000000  0080009c  000002e6  0000037a  2**0
                  ALLOC
  3 .noinit       00000000  0080009c  0080009c  0000037a  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  0000037a  2**0
                  CONTENTS
  5 .stab         00000cc0  00000000  00000000  0000037c  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000a3b  00000000  00000000  0000103c  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54 <__ctors_end>
   4:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
   8:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
   c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  10:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  14:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  18:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  1c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  20:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  24:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  28:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  2c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  30:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  34:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  38:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  3c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  40:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  44:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  48:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  4c:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>
  50:	0c 94 45 00 	jmp	0x8a <__bad_interrupt>

00000054 <__ctors_end>:
  54:	11 24       	eor	r1, r1
  56:	1f be       	out	0x3f, r1	; 63
  58:	cf e5       	ldi	r28, 0x5F	; 95
  5a:	d4 e0       	ldi	r29, 0x04	; 4
  5c:	de bf       	out	0x3e, r29	; 62
  5e:	cd bf       	out	0x3d, r28	; 61

00000060 <__do_copy_data>:
  60:	10 e0       	ldi	r17, 0x00	; 0
  62:	a0 e6       	ldi	r26, 0x60	; 96
  64:	b0 e0       	ldi	r27, 0x00	; 0
  66:	ea ea       	ldi	r30, 0xAA	; 170
  68:	f2 e0       	ldi	r31, 0x02	; 2
  6a:	02 c0       	rjmp	.+4      	; 0x70 <.do_copy_data_start>

0000006c <.do_copy_data_loop>:
  6c:	05 90       	lpm	r0, Z+
  6e:	0d 92       	st	X+, r0

00000070 <.do_copy_data_start>:
  70:	ac 39       	cpi	r26, 0x9C	; 156
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c <.do_copy_data_loop>

00000076 <__do_clear_bss>:
  76:	10 e0       	ldi	r17, 0x00	; 0
  78:	ac e9       	ldi	r26, 0x9C	; 156
  7a:	b0 e0       	ldi	r27, 0x00	; 0
  7c:	01 c0       	rjmp	.+2      	; 0x80 <.do_clear_bss_start>

0000007e <.do_clear_bss_loop>:
  7e:	1d 92       	st	X+, r1

00000080 <.do_clear_bss_start>:
  80:	ac 39       	cpi	r26, 0x9C	; 156
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0c 94 47 00 	jmp	0x8e <main>

0000008a <__bad_interrupt>:
  8a:	0c 94 00 00 	jmp	0x0 <__heap_end>

0000008e <main>:
#include "stdlib.h"
#include <avr\io.h>

int  main(void)
{
  8e:	cf e5       	ldi	r28, 0x5F	; 95
  90:	d4 e0       	ldi	r29, 0x04	; 4
  92:	de bf       	out	0x3e, r29	; 62
  94:	cd bf       	out	0x3d, r28	; 61
 unsigned int i;
 delay(20);
  96:	84 e1       	ldi	r24, 0x14	; 20
  98:	90 e0       	ldi	r25, 0x00	; 0
  9a:	0e 94 87 00 	call	0x10e <delay>
 LCD_Initialize();
  9e:	0e 94 ad 00 	call	0x15a <LCD_Initialize>
  a2:	cf eb       	ldi	r28, 0xBF	; 191
  a4:	da e5       	ldi	r29, 0x5A	; 90
 /*for(i=0;i<23232;i++)
 {
  LCD_Send16(0xF800+i,1);
  
 }
  delay(300000);
  for(;;)
  LCD_Send(0xFF,1);*/
  for(i=0;i<10000;i++)
  {
   for(i=0;i<23232;i++)
  {
   LCD_Send16(0xF800,1);
  a6:	61 e0       	ldi	r22, 0x01	; 1
  a8:	70 e0       	ldi	r23, 0x00	; 0
  aa:	80 e0       	ldi	r24, 0x00	; 0
  ac:	98 ef       	ldi	r25, 0xF8	; 248
  ae:	0e 94 41 01 	call	0x282 <LCD_Send16>
  b2:	21 97       	sbiw	r28, 0x01	; 1
  b4:	d7 ff       	sbrs	r29, 7
  b6:	f7 cf       	rjmp	.-18     	; 0xa6 <main+0x18>
  b8:	cf eb       	ldi	r28, 0xBF	; 191
  ba:	da e5       	ldi	r29, 0x5A	; 90
  }
   for(i=0;i<23232;i++)
  {
   LCD_Send16(0X07E0,1);
  bc:	61 e0       	ldi	r22, 0x01	; 1
  be:	70 e0       	ldi	r23, 0x00	; 0
  c0:	80 ee       	ldi	r24, 0xE0	; 224
  c2:	97 e0       	ldi	r25, 0x07	; 7
  c4:	0e 94 41 01 	call	0x282 <LCD_Send16>
  c8:	21 97       	sbiw	r28, 0x01	; 1
  ca:	d7 ff       	sbrs	r29, 7
  cc:	f7 cf       	rjmp	.-18     	; 0xbc <main+0x2e>
  ce:	cf eb       	ldi	r28, 0xBF	; 191
  d0:	da e5       	ldi	r29, 0x5A	; 90
  }
   for(i=0;i<23232;i++)
  {
   LCD_Send16(0X001F,1);
  d2:	61 e0       	ldi	r22, 0x01	; 1
  d4:	70 e0       	ldi	r23, 0x00	; 0
  d6:	8f e1       	ldi	r24, 0x1F	; 31
  d8:	90 e0       	ldi	r25, 0x00	; 0
  da:	0e 94 41 01 	call	0x282 <LCD_Send16>
  de:	21 97       	sbiw	r28, 0x01	; 1
  e0:	d7 ff       	sbrs	r29, 7
  e2:	f7 cf       	rjmp	.-18     	; 0xd2 <main+0x44>
  e4:	cf eb       	ldi	r28, 0xBF	; 191
  e6:	da e5       	ldi	r29, 0x5A	; 90
  }
  for(i=0;i<23232;i++)
  {
   LCD_Send16(0XFFFF,1);
  e8:	61 e0       	ldi	r22, 0x01	; 1
  ea:	70 e0       	ldi	r23, 0x00	; 0
  ec:	8f ef       	ldi	r24, 0xFF	; 255
  ee:	9f ef       	ldi	r25, 0xFF	; 255
  f0:	0e 94 41 01 	call	0x282 <LCD_Send16>
  f4:	21 97       	sbiw	r28, 0x01	; 1
  f6:	d7 ff       	sbrs	r29, 7
  f8:	f7 cf       	rjmp	.-18     	; 0xe8 <main+0x5a>
  }
  }
 }  fa:	80 e0       	ldi	r24, 0x00	; 0
  fc:	90 e0       	ldi	r25, 0x00	; 0
  fe:	0c 94 54 01 	jmp	0x2a8 <_exit>

00000102 <delay_1ms>:

void delay_1ms(void)
{
 unsigned int i;
  for (i=1;i<1580;i++)
 102:	87 e2       	ldi	r24, 0x27	; 39
 104:	96 e0       	ldi	r25, 0x06	; 6
 106:	04 97       	sbiw	r24, 0x04	; 4
 108:	97 ff       	sbrs	r25, 7
 10a:	fd cf       	rjmp	.-6      	; 0x106 <delay_1ms+0x4>
 10c:	08 95       	ret

0000010e <delay>:
  ;
}
void delay(unsigned int n)
{
 10e:	0f 93       	push	r16
 110:	1f 93       	push	r17
 112:	cf 93       	push	r28
 114:	df 93       	push	r29
 116:	8c 01       	movw	r16, r24
  unsigned int i=0;
 118:	c0 e0       	ldi	r28, 0x00	; 0
 11a:	d0 e0       	ldi	r29, 0x00	; 0
  for(i=0;i<n;i++)
 11c:	c8 17       	cp	r28, r24
 11e:	d9 07       	cpc	r29, r25
 120:	30 f4       	brcc	.+12     	; 0x12e <delay+0x20>
  delay_1ms();
 122:	0e 94 81 00 	call	0x102 <delay_1ms>
 126:	21 96       	adiw	r28, 0x01	; 1
 128:	c0 17       	cp	r28, r16
 12a:	d1 07       	cpc	r29, r17
 12c:	d0 f3       	brcs	.-12     	; 0x122 <delay+0x14>
 12e:	df 91       	pop	r29
 130:	cf 91       	pop	r28
 132:	1f 91       	pop	r17
 134:	0f 91       	pop	r16
 136:	08 95       	ret

00000138 <LCD_Send>:
} 


void LCD_Initialize(void)
{
 prog_char  a[] = {0xEF, 0x00, 0xEE, 0x04, 0x1B, 0x04, 0xFE, 0xFE, 0xFE, 0xFE, 0xEF, 0x90, 0x4A, 0x04,
 0x7F, 0x3F, 0xEE, 0x04, 0x43, 0x06  };
 prog_char  b[] = {0xEF, 0x90,  0x09, 0x83,  0x08, 0x00,  0x0B, 0xAF,  0x0A, 0x00,  0x05, 0x00,  0x06, 0x00,
 0x07, 0x00,  0xEF, 0x00,  0xEE, 0x0C,  0xEF, 0x90,  0x00, 0x80,  0xEF, 0xB0,  0x49, 0x02 ,
 0xEF, 0x00,  0x7F, 0x01,  0xE1, 0x81,  0xE2, 0x02,  0xE2, 0x76,  0xE1, 0x83};
 unsigned int i;
 DDRB=0XFF;
 PORTB|= (1<<LCD_CS );
 PORTB&=~(1<<LCD_RESET ); 
 PORTB|= (1<<LCD_CS );
 PORTB|= (1<<LCD_DATA );
 PORTB&=~(1<<LCD_SCK );
 PORTB|= (1<<LCD_RS );
 PORTB|= (1<<LCD_RESET);
 for(i=0;i<4;i++)
 LCD_Send(0xFD,0);
 delay(50);
 for(i=0;i<20;i++)
 LCD_Send(a[i],0);		 
 delay(7);
 for(i=0;i<40;i++)
 LCD_Send(b[i],0);
 delay(50);
 LCD_Send(0x80,0);
 LCD_Send(0x01,0);
 LCD_Send(0xEF,0);
 LCD_Send(0x90,0);
 LCD_Send(0x00,0);
 LCD_Send(0x00,0);

}

void LCD_Send(uint8_t data,unsigned int n)
{    
 138:	98 2f       	mov	r25, r24
     DDRB=0XBF; 
 13a:	8f eb       	ldi	r24, 0xBF	; 191
 13c:	87 bb       	out	0x17, r24	; 23
	 SPCR=0X50;
 13e:	80 e5       	ldi	r24, 0x50	; 80
 140:	8d b9       	out	0x0d, r24	; 13
	 SPSR=0X01;
 142:	81 e0       	ldi	r24, 0x01	; 1
 144:	8e b9       	out	0x0e, r24	; 14
	if(!n)                      //n=0;命令;n=1;数据
 146:	67 2b       	or	r22, r23
 148:	11 f4       	brne	.+4      	; 0x14e <LCD_Send+0x16>
	     PORTB|= (1<<LCD_RS);  //RS=1;
 14a:	c2 9a       	sbi	0x18, 2	; 24
 14c:	01 c0       	rjmp	.+2      	; 0x150 <LCD_Send+0x18>
	else 
         PORTB&=~(1<<LCD_RS ); //RS=0;
 14e:	c2 98       	cbi	0x18, 2	; 24
		 PORTB&=~(1<<LCD_CS ); //CS=0;
 150:	c4 98       	cbi	0x18, 4	; 24
    SPDR = data;			 			// 传送数据到SPI寄存器
 152:	9f b9       	out	0x0f, r25	; 15
    while ((SPSR & (1 << SPIF)) == 0);	// 等待数据传送完?
 154:	77 9b       	sbis	0x0e, 7	; 14
 156:	fe cf       	rjmp	.-4      	; 0x154 <LCD_Send+0x1c>
 158:	08 95       	ret

0000015a <LCD_Initialize>:
 15a:	cf 92       	push	r12
 15c:	df 92       	push	r13
 15e:	ef 92       	push	r14
 160:	ff 92       	push	r15
 162:	0f 93       	push	r16
 164:	1f 93       	push	r17
 166:	cf 93       	push	r28
 168:	df 93       	push	r29
 16a:	cd b7       	in	r28, 0x3d	; 61
 16c:	de b7       	in	r29, 0x3e	; 62
 16e:	ec 97       	sbiw	r28, 0x3c	; 60
 170:	0f b6       	in	r0, 0x3f	; 63
 172:	f8 94       	cli
 174:	de bf       	out	0x3e, r29	; 62
 176:	0f be       	out	0x3f, r0	; 63
 178:	cd bf       	out	0x3d, r28	; 61
 17a:	6e 01       	movw	r12, r28
 17c:	08 94       	sec
 17e:	c1 1c       	adc	r12, r1
 180:	d1 1c       	adc	r13, r1
 182:	84 e1       	ldi	r24, 0x14	; 20
 184:	e0 e6       	ldi	r30, 0x60	; 96
 186:	f0 e0       	ldi	r31, 0x00	; 0
 188:	d6 01       	movw	r26, r12
 18a:	01 90       	ld	r0, Z+
 18c:	0d 92       	st	X+, r0
 18e:	8a 95       	dec	r24
 190:	e1 f7       	brne	.-8      	; 0x18a <LCD_Initialize+0x30>
 192:	88 e2       	ldi	r24, 0x28	; 40
 194:	a4 e7       	ldi	r26, 0x74	; 116
 196:	b0 e0       	ldi	r27, 0x00	; 0
 198:	fe 01       	movw	r30, r28
 19a:	75 96       	adiw	r30, 0x15	; 21
 19c:	0d 90       	ld	r0, X+
 19e:	01 92       	st	Z+, r0
 1a0:	8a 95       	dec	r24
 1a2:	e1 f7       	brne	.-8      	; 0x19c <LCD_Initialize+0x42>
 1a4:	8f ef       	ldi	r24, 0xFF	; 255
 1a6:	87 bb       	out	0x17, r24	; 23
 1a8:	c4 9a       	sbi	0x18, 4	; 24
 1aa:	c3 98       	cbi	0x18, 3	; 24
 1ac:	c4 9a       	sbi	0x18, 4	; 24
 1ae:	c5 9a       	sbi	0x18, 5	; 24
 1b0:	c7 98       	cbi	0x18, 7	; 24
 1b2:	c2 9a       	sbi	0x18, 2	; 24
 1b4:	c3 9a       	sbi	0x18, 3	; 24
 1b6:	03 e0       	ldi	r16, 0x03	; 3
 1b8:	10 e0       	ldi	r17, 0x00	; 0
 1ba:	60 e0       	ldi	r22, 0x00	; 0
 1bc:	70 e0       	ldi	r23, 0x00	; 0
 1be:	8d ef       	ldi	r24, 0xFD	; 253
 1c0:	0e 94 9c 00 	call	0x138 <LCD_Send>
 1c4:	01 50       	subi	r16, 0x01	; 1
 1c6:	10 40       	sbci	r17, 0x00	; 0
 1c8:	17 ff       	sbrs	r17, 7
 1ca:	f7 cf       	rjmp	.-18     	; 0x1ba <LCD_Initialize+0x60>
 1cc:	82 e3       	ldi	r24, 0x32	; 50
 1ce:	90 e0       	ldi	r25, 0x00	; 0
 1d0:	0e 94 87 00 	call	0x10e <delay>
 1d4:	86 01       	movw	r16, r12
 1d6:	93 e1       	ldi	r25, 0x13	; 19
 1d8:	e9 2e       	mov	r14, r25
 1da:	f1 2c       	mov	r15, r1
 1dc:	ec 0c       	add	r14, r12
 1de:	fd 1c       	adc	r15, r13
 1e0:	60 e0       	ldi	r22, 0x00	; 0
 1e2:	70 e0       	ldi	r23, 0x00	; 0
 1e4:	f8 01       	movw	r30, r16
 1e6:	81 91       	ld	r24, Z+
 1e8:	8f 01       	movw	r16, r30
 1ea:	0e 94 9c 00 	call	0x138 <LCD_Send>
 1ee:	e0 16       	cp	r14, r16
 1f0:	f1 06       	cpc	r15, r17
 1f2:	b0 f7       	brcc	.-20     	; 0x1e0 <LCD_Initialize+0x86>
 1f4:	87 e0       	ldi	r24, 0x07	; 7
 1f6:	90 e0       	ldi	r25, 0x00	; 0
 1f8:	0e 94 87 00 	call	0x10e <delay>
 1fc:	84 e1       	ldi	r24, 0x14	; 20
 1fe:	e8 2e       	mov	r14, r24
 200:	f1 2c       	mov	r15, r1
 202:	ec 0c       	add	r14, r12
 204:	fd 1c       	adc	r15, r13
 206:	07 e2       	ldi	r16, 0x27	; 39
 208:	10 e0       	ldi	r17, 0x00	; 0
 20a:	60 e0       	ldi	r22, 0x00	; 0
 20c:	70 e0       	ldi	r23, 0x00	; 0
 20e:	d7 01       	movw	r26, r14
 210:	8d 91       	ld	r24, X+
 212:	7d 01       	movw	r14, r26
 214:	0e 94 9c 00 	call	0x138 <LCD_Send>
 218:	01 50       	subi	r16, 0x01	; 1
 21a:	10 40       	sbci	r17, 0x00	; 0
 21c:	17 ff       	sbrs	r17, 7
 21e:	f5 cf       	rjmp	.-22     	; 0x20a <LCD_Initialize+0xb0>
 220:	82 e3       	ldi	r24, 0x32	; 50
 222:	90 e0       	ldi	r25, 0x00	; 0
 224:	0e 94 87 00 	call	0x10e <delay>
 228:	60 e0       	ldi	r22, 0x00	; 0
 22a:	70 e0       	ldi	r23, 0x00	; 0
 22c:	80 e8       	ldi	r24, 0x80	; 128
 22e:	0e 94 9c 00 	call	0x138 <LCD_Send>
 232:	60 e0       	ldi	r22, 0x00	; 0
 234:	70 e0       	ldi	r23, 0x00	; 0
 236:	81 e0       	ldi	r24, 0x01	; 1
 238:	0e 94 9c 00 	call	0x138 <LCD_Send>
 23c:	60 e0       	ldi	r22, 0x00	; 0
 23e:	70 e0       	ldi	r23, 0x00	; 0
 240:	8f ee       	ldi	r24, 0xEF	; 239
 242:	0e 94 9c 00 	call	0x138 <LCD_Send>
 246:	60 e0       	ldi	r22, 0x00	; 0
 248:	70 e0       	ldi	r23, 0x00	; 0
 24a:	80 e9       	ldi	r24, 0x90	; 144
 24c:	0e 94 9c 00 	call	0x138 <LCD_Send>
 250:	60 e0       	ldi	r22, 0x00	; 0
 252:	70 e0       	ldi	r23, 0x00	; 0
 254:	80 e0       	ldi	r24, 0x00	; 0
 256:	0e 94 9c 00 	call	0x138 <LCD_Send>
 25a:	60 e0       	ldi	r22, 0x00	; 0
 25c:	70 e0       	ldi	r23, 0x00	; 0
 25e:	80 e0       	ldi	r24, 0x00	; 0
 260:	0e 94 9c 00 	call	0x138 <LCD_Send>
 264:	ec 96       	adiw	r28, 0x3c	; 60
 266:	0f b6       	in	r0, 0x3f	; 63
 268:	f8 94       	cli
 26a:	de bf       	out	0x3e, r29	; 62
 26c:	0f be       	out	0x3f, r0	; 63
 26e:	cd bf       	out	0x3d, r28	; 61
 270:	df 91       	pop	r29
 272:	cf 91       	pop	r28
 274:	1f 91       	pop	r17
 276:	0f 91       	pop	r16
 278:	ff 90       	pop	r15
 27a:	ef 90       	pop	r14
 27c:	df 90       	pop	r13
 27e:	cf 90       	pop	r12
 280:	08 95       	ret

00000282 <LCD_Send16>:
    //PORTB |= (1<<LCD_CS) ;			// 关断LCD SPI通讯
}

void LCD_Send16(uint16_t dat,unsigned int n)
{
 282:	ef 92       	push	r14
 284:	ff 92       	push	r15
 286:	0f 93       	push	r16
 288:	1f 93       	push	r17
 28a:	7c 01       	movw	r14, r24
 28c:	8b 01       	movw	r16, r22
   LCD_Send(dat>>8,n);
 28e:	89 2f       	mov	r24, r25
 290:	99 27       	eor	r25, r25
 292:	0e 94 9c 00 	call	0x138 <LCD_Send>
   LCD_Send(dat,n);
 296:	b8 01       	movw	r22, r16
 298:	8e 2d       	mov	r24, r14
 29a:	0e 94 9c 00 	call	0x138 <LCD_Send>
 29e:	1f 91       	pop	r17
 2a0:	0f 91       	pop	r16
 2a2:	ff 90       	pop	r15
 2a4:	ef 90       	pop	r14
 2a6:	08 95       	ret

000002a8 <_exit>:
 2a8:	ff cf       	rjmp	.-2      	; 0x2a8 <_exit>

⌨️ 快捷键说明

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