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

📄 xieyingdong.lss

📁 通过avr单片机的定时器
💻 LSS
字号:

xieyingdong.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000022a  00000000  00000000  00000094  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000016  00800060  0000022a  000002be  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          0000000e  00800076  00800076  000002d4  2**0
                  ALLOC
  3 .stab         00000378  00000000  00000000  000002d4  2**2
                  CONTENTS, READONLY, DEBUGGING
  4 .stabstr      00000071  00000000  00000000  0000064c  2**0
                  CONTENTS, READONLY, DEBUGGING
  5 .debug_aranges 00000020  00000000  00000000  000006bd  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_pubnames 000000a8  00000000  00000000  000006dd  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_info   000002bd  00000000  00000000  00000785  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_abbrev 00000133  00000000  00000000  00000a42  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_line   00000245  00000000  00000000  00000b75  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_frame  00000060  00000000  00000000  00000dbc  2**2
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_str    00000115  00000000  00000000  00000e1c  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_loc    0000008b  00000000  00000000  00000f31  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	0c 94 2a 00 	jmp	0x54	; 0x54 <__ctors_end>
   4:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
   8:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
   c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  10:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  14:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  18:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  1c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  20:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  24:	0c 94 ac 00 	jmp	0x158	; 0x158 <__vector_9>
  28:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  2c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  30:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  34:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  38:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  3c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  40:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  44:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  48:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  4c:	0c 94 47 00 	jmp	0x8e	; 0x8e <__bad_interrupt>
  50:	0c 94 47 00 	jmp	0x8e	; 0x8e <__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 e2       	ldi	r30, 0x2A	; 42
  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:	a6 37       	cpi	r26, 0x76	; 118
  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:	a6 e7       	ldi	r26, 0x76	; 118
  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 38       	cpi	r26, 0x84	; 132
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0e 94 be 00 	call	0x17c	; 0x17c <main>
  8a:	0c 94 14 01 	jmp	0x228	; 0x228 <_exit>

0000008e <__bad_interrupt>:
  8e:	0c 94 00 00 	jmp	0	; 0x0 <__vectors>

00000092 <delay>:
uchar  table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,
		           0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar  position[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};				   
void delay(uint ms)
{
  92:	ac 01       	movw	r20, r24
  94:	20 e0       	ldi	r18, 0x00	; 0
  96:	30 e0       	ldi	r19, 0x00	; 0
  98:	e8 ee       	ldi	r30, 0xE8	; 232
  9a:	f3 e0       	ldi	r31, 0x03	; 3
  9c:	05 c0       	rjmp	.+10     	; 0xa8 <delay+0x16>
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
  9e:	cf 01       	movw	r24, r30
  a0:	01 97       	sbiw	r24, 0x01	; 1
  a2:	f1 f7       	brne	.-4      	; 0xa0 <delay+0xe>
        uint i,j;
	for(i=0;i<ms;i++)
  a4:	2f 5f       	subi	r18, 0xFF	; 255
  a6:	3f 4f       	sbci	r19, 0xFF	; 255
  a8:	24 17       	cp	r18, r20
  aa:	35 07       	cpc	r19, r21
  ac:	c1 f7       	brne	.-16     	; 0x9e <delay+0xc>
  ae:	08 95       	ret

000000b0 <display>:
	   _delay_loop_2(4*250);
}


void display()
{
  b0:	0f 93       	push	r16
  b2:	1f 93       	push	r17
  b4:	cf 93       	push	r28
  b6:	df 93       	push	r29
  b8:	20 e0       	ldi	r18, 0x00	; 0
  ba:	30 e0       	ldi	r19, 0x00	; 0
  bc:	a9 e7       	ldi	r26, 0x79	; 121
  be:	b0 e0       	ldi	r27, 0x00	; 0
  c0:	60 e7       	ldi	r22, 0x70	; 112
  c2:	70 e0       	ldi	r23, 0x00	; 0
  c4:	40 91 77 00 	lds	r20, 0x0077
  c8:	50 91 78 00 	lds	r21, 0x0078
  cc:	00 e8       	ldi	r16, 0x80	; 128
  ce:	c8 ee       	ldi	r28, 0xE8	; 232
  d0:	d3 e0       	ldi	r29, 0x03	; 3
  d2:	1f ef       	ldi	r17, 0xFF	; 255
    uchar i;
	for(i=0;i<=5;i++)
	{
	   PORTA|=_BV(PA3);	  
  d4:	db 9a       	sbi	0x1b, 3	; 27
	   PORTB=table[dis_buff[i]];
  d6:	ec 91       	ld	r30, X
  d8:	ff 27       	eor	r31, r31
  da:	e0 5a       	subi	r30, 0xA0	; 160
  dc:	ff 4f       	sbci	r31, 0xFF	; 255
  de:	80 81       	ld	r24, Z
  e0:	88 bb       	out	0x18, r24	; 24
	   if(point_on&&(i==1||i==3))
  e2:	41 15       	cp	r20, r1
  e4:	51 05       	cpc	r21, r1
  e6:	29 f0       	breq	.+10     	; 0xf2 <display+0x42>
  e8:	21 30       	cpi	r18, 0x01	; 1
  ea:	11 f0       	breq	.+4      	; 0xf0 <display+0x40>
  ec:	23 30       	cpi	r18, 0x03	; 3
  ee:	09 f4       	brne	.+2      	; 0xf2 <display+0x42>
	   PORTB=0X80;
  f0:	08 bb       	out	0x18, r16	; 24
	   PORTA&=~_BV(PA3);
  f2:	db 98       	cbi	0x1b, 3	; 27
	  
	   PORTA&=~_BV(PA3);
  f4:	db 98       	cbi	0x1b, 3	; 27
	   PORTA|=_BV(PA4);
  f6:	dc 9a       	sbi	0x1b, 4	; 27
	   PORTB=position[i];
  f8:	fb 01       	movw	r30, r22
  fa:	81 91       	ld	r24, Z+
  fc:	bf 01       	movw	r22, r30
  fe:	88 bb       	out	0x18, r24	; 24
	   PORTA&=~_BV(PA4);
 100:	dc 98       	cbi	0x1b, 4	; 27
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
 102:	ce 01       	movw	r24, r28
 104:	01 97       	sbiw	r24, 0x01	; 1
 106:	f1 f7       	brne	.-4      	; 0x104 <display+0x54>
	   delay(1);
	   PORTA|=_BV(PA4);
 108:	dc 9a       	sbi	0x1b, 4	; 27
	   PORTB=0XFF;
 10a:	18 bb       	out	0x18, r17	; 24
	   PORTA&=~_BV(PA4);	  
 10c:	dc 98       	cbi	0x1b, 4	; 27
 10e:	2f 5f       	subi	r18, 0xFF	; 255
 110:	3f 4f       	sbci	r19, 0xFF	; 255
 112:	11 96       	adiw	r26, 0x01	; 1
 114:	26 30       	cpi	r18, 0x06	; 6
 116:	31 05       	cpc	r19, r1
 118:	e9 f6       	brne	.-70     	; 0xd4 <display+0x24>
 11a:	df 91       	pop	r29
 11c:	cf 91       	pop	r28
 11e:	1f 91       	pop	r17
 120:	0f 91       	pop	r16
 122:	08 95       	ret

00000124 <time_to_disbuff>:
	}
}


void time_to_disbuff()
{
 124:	cf 93       	push	r28
 126:	df 93       	push	r29
 128:	a9 e7       	ldi	r26, 0x79	; 121
 12a:	b0 e0       	ldi	r27, 0x00	; 0
 12c:	e3 e8       	ldi	r30, 0x83	; 131
 12e:	f0 e0       	ldi	r31, 0x00	; 0
   uchar i ,j=0;
   for(i=3;i>0;i--)
   {
      dis_buff[j++]=time[i]/10;
 130:	20 81       	ld	r18, Z
 132:	31 97       	sbiw	r30, 0x01	; 1
 134:	82 2f       	mov	r24, r18
 136:	6a e0       	ldi	r22, 0x0A	; 10
 138:	0e 94 08 01 	call	0x210	; 0x210 <__udivmodqi4>
 13c:	8c 93       	st	X, r24
	  dis_buff[j++]=time[i]%10;
 13e:	82 2f       	mov	r24, r18
 140:	0e 94 08 01 	call	0x210	; 0x210 <__udivmodqi4>
 144:	ed 01       	movw	r28, r26
 146:	99 83       	std	Y+1, r25	; 0x01
 148:	12 96       	adiw	r26, 0x02	; 2
 14a:	80 e0       	ldi	r24, 0x00	; 0
 14c:	e0 38       	cpi	r30, 0x80	; 128
 14e:	f8 07       	cpc	r31, r24
 150:	79 f7       	brne	.-34     	; 0x130 <time_to_disbuff+0xc>
 152:	df 91       	pop	r29
 154:	cf 91       	pop	r28
 156:	08 95       	ret

00000158 <__vector_9>:
   }
}


ISR(TIMER0_OVF_vect)
{
 158:	1f 92       	push	r1
 15a:	0f 92       	push	r0
 15c:	0f b6       	in	r0, 0x3f	; 63
 15e:	0f 92       	push	r0
 160:	11 24       	eor	r1, r1
 162:	8f 93       	push	r24
  TCNT0=0;
 164:	12 be       	out	0x32, r1	; 50
  flag++;
 166:	80 91 76 00 	lds	r24, 0x0076
 16a:	8f 5f       	subi	r24, 0xFF	; 255
 16c:	80 93 76 00 	sts	0x0076, r24
 170:	8f 91       	pop	r24
 172:	0f 90       	pop	r0
 174:	0f be       	out	0x3f, r0	; 63
 176:	0f 90       	pop	r0
 178:	1f 90       	pop	r1
 17a:	18 95       	reti

0000017c <main>:
}

void main()
{
 17c:	d3 9a       	sbi	0x1a, 3	; 26
   DDRA|=_BV(PA3);
   DDRA|=_BV(PA4);
 17e:	d4 9a       	sbi	0x1a, 4	; 26
   DDRB=0XFF;
 180:	8f ef       	ldi	r24, 0xFF	; 255
 182:	87 bb       	out	0x17, r24	; 23
   PORTB=0XFF;
 184:	88 bb       	out	0x18, r24	; 24
   TCCR0=0X05;
 186:	85 e0       	ldi	r24, 0x05	; 5
 188:	83 bf       	out	0x33, r24	; 51
   TCNT0=0;
 18a:	12 be       	out	0x32, r1	; 50
   
   TIMSK=0X01;
 18c:	81 e0       	ldi	r24, 0x01	; 1
 18e:	89 bf       	out	0x39, r24	; 57
   sei();
 190:	78 94       	sei

   time[3]=23;
 192:	87 e1       	ldi	r24, 0x17	; 23
 194:	80 93 83 00 	sts	0x0083, r24
   time[2]=56;
 198:	88 e3       	ldi	r24, 0x38	; 56
 19a:	80 93 82 00 	sts	0x0082, r24
   time[1]=55;
 19e:	87 e3       	ldi	r24, 0x37	; 55
 1a0:	80 93 81 00 	sts	0x0081, r24
   time_to_disbuff();
 1a4:	0e 94 92 00 	call	0x124	; 0x124 <time_to_disbuff>
  
   while(1)
   {
       display();
 1a8:	0e 94 58 00 	call	0xb0	; 0xb0 <display>
	   point_on=~point_on;
 1ac:	80 91 77 00 	lds	r24, 0x0077
 1b0:	90 91 78 00 	lds	r25, 0x0078
 1b4:	80 95       	com	r24
 1b6:	90 95       	com	r25
 1b8:	90 93 78 00 	sts	0x0078, r25
 1bc:	80 93 77 00 	sts	0x0077, r24
	   if(flag==30)
 1c0:	80 91 76 00 	lds	r24, 0x0076
 1c4:	8e 31       	cpi	r24, 0x1E	; 30
 1c6:	f9 f4       	brne	.+62     	; 0x206 <main+0x8a>
	   {
	      flag=0;	 
 1c8:	10 92 76 00 	sts	0x0076, r1
		  if(++time[1]>=60)
 1cc:	80 91 81 00 	lds	r24, 0x0081
 1d0:	8f 5f       	subi	r24, 0xFF	; 255
 1d2:	80 93 81 00 	sts	0x0081, r24
 1d6:	8c 33       	cpi	r24, 0x3C	; 60
 1d8:	a0 f0       	brcs	.+40     	; 0x202 <main+0x86>
		  {
		     time[1]=0;
 1da:	10 92 81 00 	sts	0x0081, r1
			 
			 if(++time[2]>=60)
 1de:	80 91 82 00 	lds	r24, 0x0082
 1e2:	8f 5f       	subi	r24, 0xFF	; 255
 1e4:	80 93 82 00 	sts	0x0082, r24
 1e8:	8c 33       	cpi	r24, 0x3C	; 60
 1ea:	58 f0       	brcs	.+22     	; 0x202 <main+0x86>
			 {
			    time[2]=0;
 1ec:	10 92 82 00 	sts	0x0082, r1
				if(++time[3]>=24)
 1f0:	80 91 83 00 	lds	r24, 0x0083
 1f4:	8f 5f       	subi	r24, 0xFF	; 255
 1f6:	80 93 83 00 	sts	0x0083, r24
 1fa:	88 31       	cpi	r24, 0x18	; 24
 1fc:	10 f0       	brcs	.+4      	; 0x202 <main+0x86>
				{
				   time[3]=0;
 1fe:	10 92 83 00 	sts	0x0083, r1
				}
			 }
		  }
		  time_to_disbuff();
 202:	0e 94 92 00 	call	0x124	; 0x124 <time_to_disbuff>
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
 206:	88 ee       	ldi	r24, 0xE8	; 232
 208:	93 e0       	ldi	r25, 0x03	; 3
 20a:	01 97       	sbiw	r24, 0x01	; 1
 20c:	f1 f7       	brne	.-4      	; 0x20a <main+0x8e>
 20e:	cc cf       	rjmp	.-104    	; 0x1a8 <main+0x2c>

00000210 <__udivmodqi4>:
 210:	99 1b       	sub	r25, r25
 212:	79 e0       	ldi	r23, 0x09	; 9
 214:	04 c0       	rjmp	.+8      	; 0x21e <__udivmodqi4_ep>

00000216 <__udivmodqi4_loop>:
 216:	99 1f       	adc	r25, r25
 218:	96 17       	cp	r25, r22
 21a:	08 f0       	brcs	.+2      	; 0x21e <__udivmodqi4_ep>
 21c:	96 1b       	sub	r25, r22

0000021e <__udivmodqi4_ep>:
 21e:	88 1f       	adc	r24, r24
 220:	7a 95       	dec	r23
 222:	c9 f7       	brne	.-14     	; 0x216 <__udivmodqi4_loop>
 224:	80 95       	com	r24
 226:	08 95       	ret

00000228 <_exit>:
 228:	ff cf       	rjmp	.-2      	; 0x228 <_exit>

⌨️ 快捷键说明

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