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

📄 main.lss

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

main.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         000005a6  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000012  00800060  000005a6  0000063a  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000012  00800072  00800072  0000064c  2**0
                  ALLOC
  3 .noinit       00000000  00800084  00800084  0000064c  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  0000064c  2**0
                  CONTENTS
  5 .stab         00000bf4  00000000  00000000  0000064c  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      000009cb  00000000  00000000  00001240  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:	e6 ea       	ldi	r30, 0xA6	; 166
  3a:	f5 e0       	ldi	r31, 0x05	; 5
  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:	a2 37       	cpi	r26, 0x72	; 114
  44:	b1 07       	cpc	r27, r17
  46:	d9 f7       	brne	.-10     	; 0x3e

00000048 <__do_clear_bss>:
  48:	10 e0       	ldi	r17, 0x00	; 0
  4a:	a2 e7       	ldi	r26, 0x72	; 114
  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:	a4 38       	cpi	r26, 0x84	; 132
  54:	b1 07       	cpc	r27, r17
  56:	e1 f7       	brne	.-8      	; 0x50
  58:	2e c2       	rjmp	.+1116   	; 0x4b6

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

0000005c <delay_1us>:


//----------------------------delay----------
void delay_1us(void)                 //1us延时函数
  {
  5c:	cf 93       	push	r28
  5e:	df 93       	push	r29
  60:	cd b7       	in	r28, 0x3d	; 61
  62:	de b7       	in	r29, 0x3e	; 62
/*   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");*/
   asm("nop");
  64:	00 00       	nop
  66:	df 91       	pop	r29
  68:	cf 91       	pop	r28
  6a:	08 95       	ret

0000006c <delay_nus>:
  }
//===============================
void delay_nus(unsigned int n)       //N us延时函数
  {
  6c:	cf 93       	push	r28
  6e:	df 93       	push	r29
  70:	cd b7       	in	r28, 0x3d	; 61
  72:	de b7       	in	r29, 0x3e	; 62
  74:	22 97       	sbiw	r28, 0x02	; 2
  76:	0f b6       	in	r0, 0x3f	; 63
  78:	f8 94       	cli
  7a:	de bf       	out	0x3e, r29	; 62
  7c:	0f be       	out	0x3f, r0	; 63
  7e:	cd bf       	out	0x3d, r28	; 61
  80:	89 83       	std	Y+1, r24	; 0x01
  82:	9a 83       	std	Y+2, r25	; 0x02
   for (;n>0;n--)
  84:	89 81       	ldd	r24, Y+1	; 0x01
  86:	9a 81       	ldd	r25, Y+2	; 0x02
  88:	00 97       	sbiw	r24, 0x00	; 0
  8a:	39 f0       	breq	.+14     	; 0x9a
		//delay_1us();
		asm("nop");
  8c:	00 00       	nop
  8e:	89 81       	ldd	r24, Y+1	; 0x01
  90:	9a 81       	ldd	r25, Y+2	; 0x02
  92:	01 97       	sbiw	r24, 0x01	; 1
  94:	89 83       	std	Y+1, r24	; 0x01
  96:	9a 83       	std	Y+2, r25	; 0x02
  98:	f5 cf       	rjmp	.-22     	; 0x84
  9a:	22 96       	adiw	r28, 0x02	; 2
  9c:	0f b6       	in	r0, 0x3f	; 63
  9e:	f8 94       	cli
  a0:	de bf       	out	0x3e, r29	; 62
  a2:	0f be       	out	0x3f, r0	; 63
  a4:	cd bf       	out	0x3d, r28	; 61
  a6:	df 91       	pop	r29
  a8:	cf 91       	pop	r28
  aa:	08 95       	ret

000000ac <delay_1ms>:
  }
//===============================
 void delay_1ms(void)                 //1ms延时函数
  {
  ac:	cf 93       	push	r28
  ae:	df 93       	push	r29
  b0:	cd b7       	in	r28, 0x3d	; 61
  b2:	de b7       	in	r29, 0x3e	; 62
  b4:	22 97       	sbiw	r28, 0x02	; 2
  b6:	0f b6       	in	r0, 0x3f	; 63
  b8:	f8 94       	cli
  ba:	de bf       	out	0x3e, r29	; 62
  bc:	0f be       	out	0x3f, r0	; 63
  be:	cd bf       	out	0x3d, r28	; 61
   unsigned int i;
   for(i=0;i<1000;i++)
  c0:	19 82       	std	Y+1, r1	; 0x01
  c2:	1a 82       	std	Y+2, r1	; 0x02
  c4:	89 81       	ldd	r24, Y+1	; 0x01
  c6:	9a 81       	ldd	r25, Y+2	; 0x02
  c8:	23 e0       	ldi	r18, 0x03	; 3
  ca:	88 3e       	cpi	r24, 0xE8	; 232
  cc:	92 07       	cpc	r25, r18
  ce:	38 f4       	brcc	.+14     	; 0xde
		delay_1us();
  d0:	c5 df       	rcall	.-118    	; 0x5c
  d2:	89 81       	ldd	r24, Y+1	; 0x01
  d4:	9a 81       	ldd	r25, Y+2	; 0x02
  d6:	01 96       	adiw	r24, 0x01	; 1
  d8:	89 83       	std	Y+1, r24	; 0x01
  da:	9a 83       	std	Y+2, r25	; 0x02
  dc:	f3 cf       	rjmp	.-26     	; 0xc4
  de:	22 96       	adiw	r28, 0x02	; 2
  e0:	0f b6       	in	r0, 0x3f	; 63
  e2:	f8 94       	cli
  e4:	de bf       	out	0x3e, r29	; 62
  e6:	0f be       	out	0x3f, r0	; 63
  e8:	cd bf       	out	0x3d, r28	; 61
  ea:	df 91       	pop	r29
  ec:	cf 91       	pop	r28
  ee:	08 95       	ret

000000f0 <delay_nms>:
  }
 
//===============================
void delay_nms(unsigned int n)       //N ms延时函数
{
  f0:	cf 93       	push	r28
  f2:	df 93       	push	r29
  f4:	cd b7       	in	r28, 0x3d	; 61
  f6:	de b7       	in	r29, 0x3e	; 62
  f8:	22 97       	sbiw	r28, 0x02	; 2
  fa:	0f b6       	in	r0, 0x3f	; 63
  fc:	f8 94       	cli
  fe:	de bf       	out	0x3e, r29	; 62
 100:	0f be       	out	0x3f, r0	; 63
 102:	cd bf       	out	0x3d, r28	; 61
 104:	89 83       	std	Y+1, r24	; 0x01
 106:	9a 83       	std	Y+2, r25	; 0x02
	for(;n>0;n--)
 108:	89 81       	ldd	r24, Y+1	; 0x01
 10a:	9a 81       	ldd	r25, Y+2	; 0x02
 10c:	00 97       	sbiw	r24, 0x00	; 0
 10e:	39 f0       	breq	.+14     	; 0x11e
		delay_1ms();
 110:	cd df       	rcall	.-102    	; 0xac
 112:	89 81       	ldd	r24, Y+1	; 0x01
 114:	9a 81       	ldd	r25, Y+2	; 0x02
 116:	01 97       	sbiw	r24, 0x01	; 1
 118:	89 83       	std	Y+1, r24	; 0x01
 11a:	9a 83       	std	Y+2, r25	; 0x02
 11c:	f5 cf       	rjmp	.-22     	; 0x108
 11e:	22 96       	adiw	r28, 0x02	; 2
 120:	0f b6       	in	r0, 0x3f	; 63
 122:	f8 94       	cli
 124:	de bf       	out	0x3e, r29	; 62
 126:	0f be       	out	0x3f, r0	; 63
 128:	cd bf       	out	0x3d, r28	; 61
 12a:	df 91       	pop	r29
 12c:	cf 91       	pop	r28
 12e:	08 95       	ret

00000130 <IO_INIT>:
}
void IO_INIT(void)
{
 130:	cf 93       	push	r28
 132:	df 93       	push	r29
 134:	cd b7       	in	r28, 0x3d	; 61
 136:	de b7       	in	r29, 0x3e	; 62
	DDRC=0Xff;				//key_bord
 138:	8f ef       	ldi	r24, 0xFF	; 255
 13a:	80 93 34 00 	sts	0x0034, r24
 13e:	df 91       	pop	r29
 140:	cf 91       	pop	r28
 142:	08 95       	ret

00000144 <ds1302_write>:
} 

void ds1302_write(uchar reg,uchar data) 
{ 
 144:	cf 93       	push	r28
 146:	df 93       	push	r29
 148:	cd b7       	in	r28, 0x3d	; 61
 14a:	de b7       	in	r29, 0x3e	; 62
 14c:	23 97       	sbiw	r28, 0x03	; 3
 14e:	0f b6       	in	r0, 0x3f	; 63
 150:	f8 94       	cli
 152:	de bf       	out	0x3e, r29	; 62
 154:	0f be       	out	0x3f, r0	; 63
 156:	cd bf       	out	0x3d, r28	; 61
 158:	89 83       	std	Y+1, r24	; 0x01
 15a:	6a 83       	std	Y+2, r22	; 0x02
	char i=0; 
 15c:	1b 82       	std	Y+3, r1	; 0x03
	set_ds1302_rst_ddr();
 15e:	80 91 34 00 	lds	r24, 0x0034
 162:	88 60       	ori	r24, 0x08	; 8
 164:	80 93 34 00 	sts	0x0034, r24
	set_ds1302_sclk_ddr();
 168:	80 91 34 00 	lds	r24, 0x0034
 16c:	80 61       	ori	r24, 0x10	; 16
 16e:	80 93 34 00 	sts	0x0034, r24
	set_ds1302_io_ddr(); 	/*设为输出*/
 172:	80 91 34 00 	lds	r24, 0x0034
 176:	80 62       	ori	r24, 0x20	; 32
 178:	80 93 34 00 	sts	0x0034, r24
	
	clr_ds1302_rst(); 		/*置0*/
 17c:	80 91 35 00 	lds	r24, 0x0035
 180:	87 7f       	andi	r24, 0xF7	; 247
 182:	80 93 35 00 	sts	0x0035, r24
	clr_ds1302_sclk(); 		/*置0,在RST置1时,SCLK必须为0*/
 186:	80 91 35 00 	lds	r24, 0x0035
 18a:	8f 7e       	andi	r24, 0xEF	; 239
 18c:	80 93 35 00 	sts	0x0035, r24
	set_ds1302_rst(); 		/*置1,启动数据传送*/
 190:	80 91 35 00 	lds	r24, 0x0035
 194:	88 60       	ori	r24, 0x08	; 8
 196:	80 93 35 00 	sts	0x0035, r24
	for(i=8;i>0;i--) 		/*写地址*/
 19a:	88 e0       	ldi	r24, 0x08	; 8
 19c:	8b 83       	std	Y+3, r24	; 0x03
 19e:	8b 81       	ldd	r24, Y+3	; 0x03
 1a0:	88 23       	and	r24, r24
 1a2:	11 f1       	breq	.+68     	; 0x1e8
	{     
		
		if((reg&0x01)==0x01) 
 1a4:	89 81       	ldd	r24, Y+1	; 0x01
 1a6:	99 27       	eor	r25, r25
 1a8:	81 70       	andi	r24, 0x01	; 1
 1aa:	90 70       	andi	r25, 0x00	; 0
 1ac:	00 97       	sbiw	r24, 0x00	; 0
 1ae:	31 f0       	breq	.+12     	; 0x1bc
			set_ds1302_io(); 
 1b0:	80 91 35 00 	lds	r24, 0x0035
 1b4:	80 62       	ori	r24, 0x20	; 32
 1b6:	80 93 35 00 	sts	0x0035, r24
 1ba:	05 c0       	rjmp	.+10     	; 0x1c6
		else 
			clr_ds1302_io(); 
 1bc:	80 91 35 00 	lds	r24, 0x0035
 1c0:	8f 7d       	andi	r24, 0xDF	; 223
 1c2:	80 93 35 00 	sts	0x0035, r24
		set_ds1302_sclk(); /*时钟*/
 1c6:	80 91 35 00 	lds	r24, 0x0035
 1ca:	80 61       	ori	r24, 0x10	; 16
 1cc:	80 93 35 00 	sts	0x0035, r24
		clr_ds1302_sclk(); 
 1d0:	80 91 35 00 	lds	r24, 0x0035
 1d4:	8f 7e       	andi	r24, 0xEF	; 239
 1d6:	80 93 35 00 	sts	0x0035, r24
		reg>>=1; 
 1da:	89 81       	ldd	r24, Y+1	; 0x01
 1dc:	86 95       	lsr	r24
 1de:	89 83       	std	Y+1, r24	; 0x01
 1e0:	8b 81       	ldd	r24, Y+3	; 0x03
 1e2:	81 50       	subi	r24, 0x01	; 1
 1e4:	8b 83       	std	Y+3, r24	; 0x03
 1e6:	db cf       	rjmp	.-74     	; 0x19e
	} 
	for(i=8;i>0;i--) 		/*写数据*/
 1e8:	88 e0       	ldi	r24, 0x08	; 8
 1ea:	8b 83       	std	Y+3, r24	; 0x03
 1ec:	8b 81       	ldd	r24, Y+3	; 0x03
 1ee:	88 23       	and	r24, r24
 1f0:	29 f1       	breq	.+74     	; 0x23c
	{     

⌨️ 快捷键说明

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