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

📄 main.lss

📁 用AVR单片机mega16控制TEA5756收音机芯片的程序。
💻 LSS
📖 第 1 页 / 共 3 页
字号:

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000065a  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000288  00800060  0000065a  000006ee  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          0000000c  008002e8  008002e8  00000976  2**0
                  ALLOC
  3 .noinit       00000000  008002f4  008002f4  00000976  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000976  2**0
                  CONTENTS
  5 .stab         00000e04  00000000  00000000  00000978  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      000008e5  00000000  00000000  0000177c  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:	12 e0       	ldi	r17, 0x02	; 2
  34:	a0 e6       	ldi	r26, 0x60	; 96
  36:	b0 e0       	ldi	r27, 0x00	; 0
  38:	ea e5       	ldi	r30, 0x5A	; 90
  3a:	f6 e0       	ldi	r31, 0x06	; 6
  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:	a8 3e       	cpi	r26, 0xE8	; 232
  44:	b1 07       	cpc	r27, r17
  46:	d9 f7       	brne	.-10     	; 0x3e

00000048 <__do_clear_bss>:
  48:	12 e0       	ldi	r17, 0x02	; 2
  4a:	a8 ee       	ldi	r26, 0xE8	; 232
  4c:	b2 e0       	ldi	r27, 0x02	; 2
  4e:	01 c0       	rjmp	.+2      	; 0x52

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

00000052 <.do_clear_bss_start>:
  52:	a4 3f       	cpi	r26, 0xF4	; 244
  54:	b1 07       	cpc	r27, r17
  56:	e1 f7       	brne	.-8      	; 0x50
  58:	1d c2       	rjmp	.+1082   	; 0x494

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

0000005c <delay_1us>:
系统时钟:8M
-----------------------------------------------------------------------*/
void delay_1us(void)                 //1us延时函数
  {
   asm("nop");
  5c:	00 00       	nop
  5e:	08 95       	ret

00000060 <delay_nus>:
  }

void delay_nus(unsigned int n)       //N us延时函数
  {
  60:	cf 93       	push	r28
  62:	df 93       	push	r29
   unsigned int i=0;
   for (i=0;i<n;i++)
  64:	00 97       	sbiw	r24, 0x00	; 0
  66:	21 f0       	breq	.+8      	; 0x70
  68:	ec 01       	movw	r28, r24
   delay_1us();
  6a:	f8 df       	rcall	.-16     	; 0x5c
  6c:	21 97       	sbiw	r28, 0x01	; 1
  6e:	e9 f7       	brne	.-6      	; 0x6a
  70:	df 91       	pop	r29
  72:	cf 91       	pop	r28
  74:	08 95       	ret

00000076 <delay_1ms>:
  }
  
void delay_1ms(void)                 //1ms延时函数
  {
  76:	83 e7       	ldi	r24, 0x73	; 115
  78:	94 e0       	ldi	r25, 0x04	; 4
   unsigned int i;
   for (i=0;i<1140;i++);
  7a:	cc 97       	sbiw	r24, 0x3c	; 60
  7c:	97 ff       	sbrs	r25, 7
  7e:	fd cf       	rjmp	.-6      	; 0x7a
  80:	08 95       	ret

00000082 <delay_nms>:
  }
  
void delay_nms(unsigned int n)       //N ms延时函数
  {
  82:	cf 93       	push	r28
  84:	df 93       	push	r29
   unsigned int i=0;
   for (i=0;i<n;i++)
  86:	00 97       	sbiw	r24, 0x00	; 0
  88:	21 f0       	breq	.+8      	; 0x92
  8a:	ec 01       	movw	r28, r24
   delay_1ms();
  8c:	f4 df       	rcall	.-24     	; 0x76
  8e:	21 97       	sbiw	r28, 0x01	; 1
  90:	e9 f7       	brne	.-6      	; 0x8c
  92:	df 91       	pop	r29
  94:	cf 91       	pop	r28
  96:	08 95       	ret

00000098 <LCD_write_byte>:
编写日期          :2004-8-10 
最后修改日期      :2004-8-13 
-----------------------------------------------------------------------*/
void LCD_write_byte(unsigned char data, unsigned char command)
{
  98:	98 2f       	mov	r25, r24
    PORTB &= ~LCD_CE ;		        // 使能LCD
  9a:	c2 98       	cbi	0x18, 2	; 24
    
    if (command == 0)
  9c:	66 23       	and	r22, r22
  9e:	11 f4       	brne	.+4      	; 0xa4
      PORTB &= ~LCD_DC ;	        // 传送命令
  a0:	c0 98       	cbi	0x18, 0	; 24
  a2:	01 c0       	rjmp	.+2      	; 0xa6
    else
      PORTB |= LCD_DC ;		        // 传送数据
  a4:	c0 9a       	sbi	0x18, 0	; 24

    SPDR = data;			// 传送数据到SPI寄存器
  a6:	9f b9       	out	0x0f, r25	; 15

    while ((SPSR & 0x80) == 0);         // 等待数据传送完毕
  a8:	77 9b       	sbis	0x0e, 7	; 14
  aa:	fe cf       	rjmp	.-4      	; 0xa8
	
    PORTB |= LCD_CE ;			// 关闭LCD
  ac:	c2 9a       	sbi	0x18, 2	; 24
  ae:	08 95       	ret

000000b0 <LCD_clear>:
  b0:	cf 93       	push	r28
  b2:	df 93       	push	r29
  b4:	60 e0       	ldi	r22, 0x00	; 0
  b6:	8c e0       	ldi	r24, 0x0C	; 12
  b8:	ef df       	rcall	.-34     	; 0x98
  ba:	60 e0       	ldi	r22, 0x00	; 0
  bc:	80 e8       	ldi	r24, 0x80	; 128
  be:	ec df       	rcall	.-40     	; 0x98
  c0:	c7 ef       	ldi	r28, 0xF7	; 247
  c2:	d1 e0       	ldi	r29, 0x01	; 1
  c4:	61 e0       	ldi	r22, 0x01	; 1
  c6:	80 e0       	ldi	r24, 0x00	; 0
  c8:	e7 df       	rcall	.-50     	; 0x98
  ca:	21 97       	sbiw	r28, 0x01	; 1
  cc:	d7 ff       	sbrs	r29, 7
  ce:	fa cf       	rjmp	.-12     	; 0xc4
  d0:	df 91       	pop	r29
  d2:	cf 91       	pop	r28
  d4:	08 95       	ret

000000d6 <LCD_init>:
  d6:	c4 98       	cbi	0x18, 4	; 24
  d8:	c1 df       	rcall	.-126    	; 0x5c
  da:	c4 9a       	sbi	0x18, 4	; 24
  dc:	c2 98       	cbi	0x18, 2	; 24
  de:	be df       	rcall	.-132    	; 0x5c
  e0:	c2 9a       	sbi	0x18, 2	; 24
  e2:	bc df       	rcall	.-136    	; 0x5c
  e4:	60 e0       	ldi	r22, 0x00	; 0
  e6:	81 e2       	ldi	r24, 0x21	; 33
  e8:	d7 df       	rcall	.-82     	; 0x98
  ea:	60 e0       	ldi	r22, 0x00	; 0
  ec:	88 ec       	ldi	r24, 0xC8	; 200
  ee:	d4 df       	rcall	.-88     	; 0x98
  f0:	60 e0       	ldi	r22, 0x00	; 0
  f2:	86 e0       	ldi	r24, 0x06	; 6
  f4:	d1 df       	rcall	.-94     	; 0x98
  f6:	60 e0       	ldi	r22, 0x00	; 0
  f8:	83 e1       	ldi	r24, 0x13	; 19
  fa:	ce df       	rcall	.-100    	; 0x98
  fc:	60 e0       	ldi	r22, 0x00	; 0
  fe:	80 e2       	ldi	r24, 0x20	; 32
 100:	cb df       	rcall	.-106    	; 0x98
 102:	d6 df       	rcall	.-84     	; 0xb0
 104:	60 e0       	ldi	r22, 0x00	; 0
 106:	8c e0       	ldi	r24, 0x0C	; 12
 108:	c7 df       	rcall	.-114    	; 0x98
 10a:	c2 98       	cbi	0x18, 2	; 24
 10c:	08 95       	ret

0000010e <LCD_set_XY>:
 10e:	1f 93       	push	r17
 110:	18 2f       	mov	r17, r24
 112:	86 2f       	mov	r24, r22
 114:	60 e0       	ldi	r22, 0x00	; 0
 116:	80 64       	ori	r24, 0x40	; 64
 118:	bf df       	rcall	.-130    	; 0x98
 11a:	60 e0       	ldi	r22, 0x00	; 0
 11c:	81 2f       	mov	r24, r17
 11e:	80 68       	ori	r24, 0x80	; 128
 120:	bb df       	rcall	.-138    	; 0x98
 122:	1f 91       	pop	r17
 124:	08 95       	ret

00000126 <LCD_write_char>:
 126:	1f 93       	push	r17
 128:	cf 93       	push	r28
 12a:	df 93       	push	r29
 12c:	18 2f       	mov	r17, r24
 12e:	10 52       	subi	r17, 0x20	; 32
 130:	c0 e0       	ldi	r28, 0x00	; 0
 132:	d0 e0       	ldi	r29, 0x00	; 0
 134:	81 2f       	mov	r24, r17
 136:	99 27       	eor	r25, r25
 138:	fc 01       	movw	r30, r24
 13a:	ee 0f       	add	r30, r30
 13c:	ff 1f       	adc	r31, r31
 13e:	ee 0f       	add	r30, r30
 140:	ff 1f       	adc	r31, r31
 142:	e8 0f       	add	r30, r24
 144:	f9 1f       	adc	r31, r25
 146:	e8 0f       	add	r30, r24
 148:	f9 1f       	adc	r31, r25
 14a:	ec 0f       	add	r30, r28
 14c:	fd 1f       	adc	r31, r29
 14e:	e0 5a       	subi	r30, 0xA0	; 160
 150:	ff 4f       	sbci	r31, 0xFF	; 255
 152:	61 e0       	ldi	r22, 0x01	; 1
 154:	80 81       	ld	r24, Z
 156:	a0 df       	rcall	.-192    	; 0x98
 158:	21 96       	adiw	r28, 0x01	; 1
 15a:	c6 30       	cpi	r28, 0x06	; 6
 15c:	d1 05       	cpc	r29, r1
 15e:	50 f3       	brcs	.-44     	; 0x134
 160:	df 91       	pop	r29
 162:	cf 91       	pop	r28
 164:	1f 91       	pop	r17
 166:	08 95       	ret

00000168 <LCD_write_inverse_char>:
 168:	1f 93       	push	r17
 16a:	cf 93       	push	r28
 16c:	df 93       	push	r29
 16e:	18 2f       	mov	r17, r24
 170:	10 52       	subi	r17, 0x20	; 32
 172:	c0 e0       	ldi	r28, 0x00	; 0
 174:	d0 e0       	ldi	r29, 0x00	; 0
 176:	81 2f       	mov	r24, r17
 178:	99 27       	eor	r25, r25
 17a:	fc 01       	movw	r30, r24
 17c:	ee 0f       	add	r30, r30
 17e:	ff 1f       	adc	r31, r31
 180:	ee 0f       	add	r30, r30
 182:	ff 1f       	adc	r31, r31
 184:	e8 0f       	add	r30, r24
 186:	f9 1f       	adc	r31, r25
 188:	e8 0f       	add	r30, r24
 18a:	f9 1f       	adc	r31, r25
 18c:	ec 0f       	add	r30, r28
 18e:	fd 1f       	adc	r31, r29
 190:	e0 5a       	subi	r30, 0xA0	; 160
 192:	ff 4f       	sbci	r31, 0xFF	; 255
 194:	80 81       	ld	r24, Z
 196:	61 e0       	ldi	r22, 0x01	; 1
 198:	80 95       	com	r24
 19a:	7e df       	rcall	.-260    	; 0x98
 19c:	21 96       	adiw	r28, 0x01	; 1
 19e:	c6 30       	cpi	r28, 0x06	; 6
 1a0:	d1 05       	cpc	r29, r1
 1a2:	48 f3       	brcs	.-46     	; 0x176
 1a4:	df 91       	pop	r29
 1a6:	cf 91       	pop	r28
 1a8:	1f 91       	pop	r17
 1aa:	08 95       	ret

000001ac <LCD_write_english_string>:
 1ac:	cf 93       	push	r28
 1ae:	df 93       	push	r29
 1b0:	ea 01       	movw	r28, r20
 1b2:	ad df       	rcall	.-166    	; 0x10e
 1b4:	88 81       	ld	r24, Y
 1b6:	88 23       	and	r24, r24
 1b8:	29 f0       	breq	.+10     	; 0x1c4
 1ba:	89 91       	ld	r24, Y+
 1bc:	b4 df       	rcall	.-152    	; 0x126
 1be:	88 81       	ld	r24, Y
 1c0:	88 23       	and	r24, r24
 1c2:	d9 f7       	brne	.-10     	; 0x1ba
 1c4:	df 91       	pop	r29
 1c6:	cf 91       	pop	r28
 1c8:	08 95       	ret

000001ca <LCD_write_inverse_string>:
 1ca:	cf 93       	push	r28
 1cc:	df 93       	push	r29
 1ce:	ea 01       	movw	r28, r20
 1d0:	9e df       	rcall	.-196    	; 0x10e
 1d2:	88 81       	ld	r24, Y
 1d4:	88 23       	and	r24, r24
 1d6:	29 f0       	breq	.+10     	; 0x1e2
 1d8:	89 91       	ld	r24, Y+
 1da:	c6 df       	rcall	.-116    	; 0x168
 1dc:	88 81       	ld	r24, Y
 1de:	88 23       	and	r24, r24
 1e0:	d9 f7       	brne	.-10     	; 0x1d8
 1e2:	df 91       	pop	r29
 1e4:	cf 91       	pop	r28
 1e6:	08 95       	ret

000001e8 <lcd_inverse>:
}

void lcd_inverse(void)
{
	LCD_write_byte(0b00001101,0);
 1e8:	60 e0       	ldi	r22, 0x00	; 0
 1ea:	8d e0       	ldi	r24, 0x0D	; 13
 1ec:	55 df       	rcall	.-342    	; 0x98
 1ee:	08 95       	ret

000001f0 <lcd_no_inverse>:
}
void lcd_no_inverse(void)
{
	LCD_write_byte(0b00001100,0);
 1f0:	60 e0       	ldi	r22, 0x00	; 0
 1f2:	8c e0       	ldi	r24, 0x0C	; 12
 1f4:	51 df       	rcall	.-350    	; 0x98
 1f6:	08 95       	ret

000001f8 <delay_ms>:
// 延时
void delay_ms(uint ms)
{
	uint i;
	for(i=0;i<ms;i++)
 1f8:	00 97       	sbiw	r24, 0x00	; 0
 1fa:	41 f0       	breq	.+16     	; 0x20c
 1fc:	9c 01       	movw	r18, r24

/* 16-bit count, 4 cycles/loop */
static __inline__ void
_delay_loop_2(uint16_t __count)
{
 1fe:	8a ef       	ldi	r24, 0xFA	; 250
 200:	90 e0       	ldi	r25, 0x00	; 0
	asm volatile (
 202:	01 97       	sbiw	r24, 0x01	; 1

⌨️ 快捷键说明

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