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

📄 rtc.lss

📁 AVR Devolpment Board
💻 LSS
📖 第 1 页 / 共 4 页
字号:

rtc.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000ad0  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000048  00800060  00000ad0  00000b64  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          0000000c  008000a8  008000a8  00000bac  2**0
                  ALLOC
  3 .noinit       00000000  008000b4  008000b4  00000bac  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  00000bac  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  00000bac  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  00000f18  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000050  00000000  00000000  00000f9c  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 00000168  00000000  00000000  00000fec  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   00000631  00000000  00000000  00001154  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 00000372  00000000  00000000  00001785  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   0000058f  00000000  00000000  00001af7  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    00000218  00000000  00000000  00002086  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:	e0 ed       	ldi	r30, 0xD0	; 208
  68:	fa e0       	ldi	r31, 0x0A	; 10
  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:	a8 3a       	cpi	r26, 0xA8	; 168
  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:	a8 ea       	ldi	r26, 0xA8	; 168
  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:	a4 3b       	cpi	r26, 0xB4	; 180
  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 <__vectors>

0000008e <main>:
unsigned char Second;


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
	
	/* Set LED and Smg LE pin as output , databus as output */
	DDRA |=(1<<PA4)|(1<<PA5)|(1<<PA6); 
  96:	8a b3       	in	r24, 0x1a	; 26
  98:	80 67       	ori	r24, 0x70	; 112
  9a:	8a bb       	out	0x1a, r24	; 26
	DDRB  = 0xFF;
  9c:	8f ef       	ldi	r24, 0xFF	; 255
  9e:	87 bb       	out	0x17, r24	; 23

	/* Off the Smg display */
	PORTA|= (1<<PA5);
  a0:	dd 9a       	sbi	0x1b, 5	; 27
	PORTB = 0x00;
  a2:	18 ba       	out	0x18, r1	; 24
	PORTA&=~(1<<PA5);
  a4:	dd 98       	cbi	0x1b, 5	; 27

	/* Off the LED display */
	PORTA|= (1<<PA6);
  a6:	de 9a       	sbi	0x1b, 6	; 27
	PORTB = 0xFF;
  a8:	88 bb       	out	0x18, r24	; 24
	PORTA&=~(1<<PA6);
  aa:	de 98       	cbi	0x1b, 6	; 27

	DS1302_Config();
  ac:	0e 94 b9 00 	call	0x172 <DS1302_Config>
	DS1302TimeInit();
  b0:	0e 94 d9 00 	call	0x1b2 <DS1302TimeInit>
	UART_Config();
  b4:	0e 94 dd 01 	call	0x3ba <UART_Config>
	printf("System reset ! \r\n");
  b8:	80 e6       	ldi	r24, 0x60	; 96
  ba:	90 e0       	ldi	r25, 0x00	; 0
  bc:	0e 94 fb 01 	call	0x3f6 <puts>
	while(1)
	{
		Year  =DS1302TimeRead(DS_YEAR  );
  c0:	8c e8       	ldi	r24, 0x8C	; 140
  c2:	0e 94 14 01 	call	0x228 <DS1302TimeRead>
  c6:	80 93 ac 00 	sts	0x00AC, r24
		Month =DS1302TimeRead(DS_MONTH );
  ca:	88 e8       	ldi	r24, 0x88	; 136
  cc:	0e 94 14 01 	call	0x228 <DS1302TimeRead>
  d0:	80 93 ad 00 	sts	0x00AD, r24
		Day   =DS1302TimeRead(DS_DAY   );
  d4:	86 e8       	ldi	r24, 0x86	; 134
  d6:	0e 94 14 01 	call	0x228 <DS1302TimeRead>
  da:	80 93 ab 00 	sts	0x00AB, r24
		Hour  =DS1302TimeRead(DS_HOUR  );
  de:	84 e8       	ldi	r24, 0x84	; 132
  e0:	0e 94 14 01 	call	0x228 <DS1302TimeRead>
  e4:	80 93 a9 00 	sts	0x00A9, r24
		Minute=DS1302TimeRead(DS_MINUTE);
  e8:	82 e8       	ldi	r24, 0x82	; 130
  ea:	0e 94 14 01 	call	0x228 <DS1302TimeRead>
  ee:	80 93 aa 00 	sts	0x00AA, r24
		Second=DS1302TimeRead(DS_SECOND);
  f2:	80 e8       	ldi	r24, 0x80	; 128
  f4:	0e 94 14 01 	call	0x228 <DS1302TimeRead>
  f8:	80 93 a8 00 	sts	0x00A8, r24
		__ticks = 1;
	else if (__tmp > 65535)
		__ticks = 0;	/* i.e. 65536 */
	else
		__ticks = (uint16_t)__tmp;
  fc:	80 e2       	ldi	r24, 0x20	; 32
  fe:	9e e4       	ldi	r25, 0x4E	; 78
 100:	01 97       	sbiw	r24, 0x01	; 1
 102:	f1 f7       	brne	.-4      	; 0x100 <main+0x72>
		_delay_ms(10);
		if(Second!=DS1302TimeRead(DS_SECOND))
 104:	80 e8       	ldi	r24, 0x80	; 128
 106:	0e 94 14 01 	call	0x228 <DS1302TimeRead>
 10a:	90 91 a8 00 	lds	r25, 0x00A8
 10e:	98 17       	cp	r25, r24
 110:	b9 f2       	breq	.-82     	; 0xc0 <main+0x32>
		{
			Second=DS1302TimeRead(DS_SECOND);
 112:	80 e8       	ldi	r24, 0x80	; 128
 114:	0e 94 14 01 	call	0x228 <DS1302TimeRead>
 118:	80 93 a8 00 	sts	0x00A8, r24
			printf("20%02d-%02d-%02d %02d:%02d:%02d\r\n",Year,Month,Day,Hour,Minute,Second);
 11c:	99 27       	eor	r25, r25
 11e:	9f 93       	push	r25
 120:	8f 93       	push	r24
 122:	80 91 aa 00 	lds	r24, 0x00AA
 126:	99 27       	eor	r25, r25
 128:	9f 93       	push	r25
 12a:	8f 93       	push	r24
 12c:	80 91 a9 00 	lds	r24, 0x00A9
 130:	99 27       	eor	r25, r25
 132:	9f 93       	push	r25
 134:	8f 93       	push	r24
 136:	80 91 ab 00 	lds	r24, 0x00AB
 13a:	99 27       	eor	r25, r25
 13c:	9f 93       	push	r25
 13e:	8f 93       	push	r24
 140:	80 91 ad 00 	lds	r24, 0x00AD
 144:	99 27       	eor	r25, r25
 146:	9f 93       	push	r25
 148:	8f 93       	push	r24
 14a:	80 91 ac 00 	lds	r24, 0x00AC
 14e:	99 27       	eor	r25, r25
 150:	9f 93       	push	r25
 152:	8f 93       	push	r24
 154:	81 e7       	ldi	r24, 0x71	; 113
 156:	90 e0       	ldi	r25, 0x00	; 0
 158:	9f 93       	push	r25
 15a:	8f 93       	push	r24
 15c:	0e 94 e6 01 	call	0x3cc <printf>
 160:	8d b7       	in	r24, 0x3d	; 61
 162:	9e b7       	in	r25, 0x3e	; 62
 164:	0e 96       	adiw	r24, 0x0e	; 14
 166:	0f b6       	in	r0, 0x3f	; 63
 168:	f8 94       	cli
 16a:	9e bf       	out	0x3e, r25	; 62
 16c:	0f be       	out	0x3f, r0	; 63
 16e:	8d bf       	out	0x3d, r24	; 61
 170:	a7 cf       	rjmp	.-178    	; 0xc0 <main+0x32>

00000172 <DS1302_Config>:


void DS1302_Config(void)//IO初始化
{
	DDRA |= (1<<PA2);
 172:	d2 9a       	sbi	0x1a, 2	; 26
	DDRC |= (1<<PC7);
 174:	a7 9a       	sbi	0x14, 7	; 20
	DA_CS_SET();
 176:	da 9a       	sbi	0x1b, 2	; 27
	SPI_Init();
 178:	0e 94 b1 01 	call	0x362 <SPI_Init>
 17c:	08 95       	ret

0000017e <Write1302>:
}


void Write1302(unsigned char dat)
{
	SPI_Write(dat);
 17e:	0e 94 ba 01 	call	0x374 <SPI_Write>
 182:	08 95       	ret

00000184 <Read1302>:
}

unsigned char Read1302(void)
{
	unsigned dat=0;
	dat=SPI_Read();
 184:	0e 94 be 01 	call	0x37c <SPI_Read>
	return dat;                 //将读出的数据返回
}
 188:	99 27       	eor	r25, r25
 18a:	08 95       	ret

0000018c <ReadSet1302>:

unsigned char  ReadSet1302(unsigned char Cmd)
{
	unsigned char dat;
	
	RTC_ENABLE();         //CE=1 启动数据传输
 18c:	af 9a       	sbi	0x15, 7	; 21
	Write1302(Cmd);       //写入命令字
 18e:	0e 94 bf 00 	call	0x17e <Write1302>
	dat = Read1302();     //读出数据
 192:	0e 94 c2 00 	call	0x184 <Read1302>
	RTC_DISABLE();        //CE=0 禁止数据传递
 196:	af 98       	cbi	0x15, 7	; 21
	return dat;           //将读出的数据返回
}
 198:	99 27       	eor	r25, r25
 19a:	08 95       	ret

0000019c <WriteSet1302>:

void WriteSet1302(unsigned char Cmd,unsigned char dat)
{
 19c:	1f 93       	push	r17
 19e:	16 2f       	mov	r17, r22
	RTC_ENABLE();
 1a0:	af 9a       	sbi	0x15, 7	; 21
	Write1302(Cmd); //写入命令字
 1a2:	0e 94 bf 00 	call	0x17e <Write1302>
	Write1302(dat); //写数据
 1a6:	81 2f       	mov	r24, r17
 1a8:	0e 94 bf 00 	call	0x17e <Write1302>
	RTC_DISABLE();
 1ac:	af 98       	cbi	0x15, 7	; 21
 1ae:	1f 91       	pop	r17
 1b0:	08 95       	ret

000001b2 <DS1302TimeInit>:
}

void DS1302TimeInit(void)
{
 1b2:	ef 92       	push	r14
 1b4:	ff 92       	push	r15
 1b6:	1f 93       	push	r17
 1b8:	cf 93       	push	r28
 1ba:	df 93       	push	r29
 1bc:	cd b7       	in	r28, 0x3d	; 61
 1be:	de b7       	in	r29, 0x3e	; 62
 1c0:	27 97       	sbiw	r28, 0x07	; 7
 1c2:	0f b6       	in	r0, 0x3f	; 63
 1c4:	f8 94       	cli
 1c6:	de bf       	out	0x3e, r29	; 62
 1c8:	0f be       	out	0x3f, r0	; 63
 1ca:	cd bf       	out	0x3d, r28	; 61
	/*==================秒   分   时   日   月   周   年=======================================*/
	UCHAR inittime[7]={0x30,0x30,0x12,0x15,0x06,0x02,0x10};	//初始化设置为:10年06月15日星期2,12点30分30
 1cc:	7e 01       	movw	r14, r28
 1ce:	08 94       	sec
 1d0:	e1 1c       	adc	r14, r1
 1d2:	f1 1c       	adc	r15, r1
 1d4:	87 e0       	ldi	r24, 0x07	; 7
 1d6:	e3 e9       	ldi	r30, 0x93	; 147
 1d8:	f0 e0       	ldi	r31, 0x00	; 0
 1da:	d7 01       	movw	r26, r14
 1dc:	01 90       	ld	r0, Z+
 1de:	0d 92       	st	X+, r0
 1e0:	8a 95       	dec	r24
 1e2:	e1 f7       	brne	.-8      	; 0x1dc <DS1302TimeInit+0x2a>
	UCHAR i=7;
	WriteSet1302(0x8E,0x00);
 1e4:	60 e0       	ldi	r22, 0x00	; 0
 1e6:	8e e8       	ldi	r24, 0x8E	; 142
 1e8:	0e 94 ce 00 	call	0x19c <WriteSet1302>
	while(i--)
		WriteSet1302(0x80+i*2,inittime[i]);
 1ec:	16 e0       	ldi	r17, 0x06	; 6
 1ee:	81 2f       	mov	r24, r17
 1f0:	99 27       	eor	r25, r25
 1f2:	fc 01       	movw	r30, r24
 1f4:	ee 0d       	add	r30, r14
 1f6:	ff 1d       	adc	r31, r15
 1f8:	88 0f       	add	r24, r24
 1fa:	99 1f       	adc	r25, r25
 1fc:	60 81       	ld	r22, Z
 1fe:	80 58       	subi	r24, 0x80	; 128
 200:	0e 94 ce 00 	call	0x19c <WriteSet1302>
 204:	11 50       	subi	r17, 0x01	; 1
 206:	98 f7       	brcc	.-26     	; 0x1ee <DS1302TimeInit+0x3c>
	WriteSet1302(0x8E,0x80);
 208:	60 e8       	ldi	r22, 0x80	; 128
 20a:	8e e8       	ldi	r24, 0x8E	; 142
 20c:	0e 94 ce 00 	call	0x19c <WriteSet1302>
 210:	27 96       	adiw	r28, 0x07	; 7
 212:	0f b6       	in	r0, 0x3f	; 63
 214:	f8 94       	cli
 216:	de bf       	out	0x3e, r29	; 62
 218:	0f be       	out	0x3f, r0	; 63
 21a:	cd bf       	out	0x3d, r28	; 61
 21c:	df 91       	pop	r29
 21e:	cf 91       	pop	r28
 220:	1f 91       	pop	r17
 222:	ff 90       	pop	r15
 224:	ef 90       	pop	r14
 226:	08 95       	ret

00000228 <DS1302TimeRead>:
}


unsigned char DS1302TimeRead(unsigned char TimeReg)
{
	unsigned char Time,ReadValue;
	ReadValue = ReadSet1302(TimeReg+1);   //从寄存器读数据
 228:	8f 5f       	subi	r24, 0xFF	; 255
 22a:	0e 94 c6 00 	call	0x18c <ReadSet1302>
    Time =((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);//将读出数据转化
 22e:	28 2f       	mov	r18, r24
 230:	33 27       	eor	r19, r19
 232:	20 77       	andi	r18, 0x70	; 112
 234:	30 70       	andi	r19, 0x00	; 0
 236:	44 e0       	ldi	r20, 0x04	; 4
 238:	35 95       	asr	r19
 23a:	27 95       	ror	r18
 23c:	4a 95       	dec	r20
 23e:	e1 f7       	brne	.-8      	; 0x238 <DS1302TimeRead+0x10>
 240:	a9 01       	movw	r20, r18
 242:	93 e0       	ldi	r25, 0x03	; 3
 244:	44 0f       	add	r20, r20
 246:	55 1f       	adc	r21, r21
 248:	9a 95       	dec	r25
 24a:	e1 f7       	brne	.-8      	; 0x244 <DS1302TimeRead+0x1c>
 24c:	42 0f       	add	r20, r18
 24e:	53 1f       	adc	r21, r19
 250:	42 0f       	add	r20, r18

⌨️ 快捷键说明

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