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

📄 tc1_1.lss

📁 arm的功能测试模块
💻 LSS
字号:

TC1_1.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000338  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000010  00800060  00000338  000003cc  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          0000000a  00800070  00800070  000003dc  2**0
                  ALLOC
  3 .noinit       00000000  0080007a  0080007a  000003dc  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  000003dc  2**0
                  CONTENTS
  5 .debug_aranges 00000014  00000000  00000000  000003dc  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_pubnames 000000d2  00000000  00000000  000003f0  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_info   000002ca  00000000  00000000  000004c2  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_abbrev 000000b0  00000000  00000000  0000078c  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_line   0000021d  00000000  00000000  0000083c  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_str    0000000d  00000000  00000000  00000a59  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

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

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:	e8 e3       	ldi	r30, 0x38	; 56
  68:	f3 e0       	ldi	r31, 0x03	; 3
  6a:	02 c0       	rjmp	.+4      	; 0x70

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

00000070 <.do_copy_data_start>:
  70:	a0 37       	cpi	r26, 0x70	; 112
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c

00000076 <__do_clear_bss>:
  76:	10 e0       	ldi	r17, 0x00	; 0
  78:	a0 e7       	ldi	r26, 0x70	; 112
  7a:	b0 e0       	ldi	r27, 0x00	; 0
  7c:	01 c0       	rjmp	.+2      	; 0x80

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

00000080 <.do_clear_bss_start>:
  80:	aa 37       	cpi	r26, 0x7A	; 122
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e
  86:	0c 94 2e 01 	jmp	0x25c

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

0000008e <b16td5>:


//二进制转换为十进制函数
void b16td5(uint n)
{
  8e:	cf 93       	push	r28
  90:	df 93       	push	r29
  92:	cd b7       	in	r28, 0x3d	; 61
  94:	de b7       	in	r29, 0x3e	; 62
  96:	22 97       	sbiw	r28, 0x02	; 2
  98:	0f b6       	in	r0, 0x3f	; 63
  9a:	f8 94       	cli
  9c:	de bf       	out	0x3e, r29	; 62
  9e:	0f be       	out	0x3f, r0	; 63
  a0:	cd bf       	out	0x3d, r28	; 61
  a2:	89 83       	std	Y+1, r24	; 0x01
  a4:	9a 83       	std	Y+2, r25	; 0x02
for ( i_w=0;n>=10000; )
  a6:	10 92 78 00 	sts	0x0078, r1
  aa:	89 81       	ldd	r24, Y+1	; 0x01
  ac:	9a 81       	ldd	r25, Y+2	; 0x02
  ae:	27 e2       	ldi	r18, 0x27	; 39
  b0:	80 31       	cpi	r24, 0x10	; 16
  b2:	92 07       	cpc	r25, r18
  b4:	60 f0       	brcs	.+24     	; 0xce
 {n=n-10000;
  b6:	89 81       	ldd	r24, Y+1	; 0x01
  b8:	9a 81       	ldd	r25, Y+2	; 0x02
  ba:	80 51       	subi	r24, 0x10	; 16
  bc:	97 42       	sbci	r25, 0x27	; 39
  be:	89 83       	std	Y+1, r24	; 0x01
  c0:	9a 83       	std	Y+2, r25	; 0x02
  i_w=i_w+1;}
  c2:	80 91 78 00 	lds	r24, 0x0078
  c6:	8f 5f       	subi	r24, 0xFF	; 255
  c8:	80 93 78 00 	sts	0x0078, r24
  cc:	ee cf       	rjmp	.-36     	; 0xaa
 for (i_q=0;n>=1000; )
  ce:	10 92 70 00 	sts	0x0070, r1
  d2:	89 81       	ldd	r24, Y+1	; 0x01
  d4:	9a 81       	ldd	r25, Y+2	; 0x02
  d6:	23 e0       	ldi	r18, 0x03	; 3
  d8:	88 3e       	cpi	r24, 0xE8	; 232
  da:	92 07       	cpc	r25, r18
  dc:	60 f0       	brcs	.+24     	; 0xf6
  {n=n-1000;
  de:	89 81       	ldd	r24, Y+1	; 0x01
  e0:	9a 81       	ldd	r25, Y+2	; 0x02
  e2:	88 5e       	subi	r24, 0xE8	; 232
  e4:	93 40       	sbci	r25, 0x03	; 3
  e6:	89 83       	std	Y+1, r24	; 0x01
  e8:	9a 83       	std	Y+2, r25	; 0x02
   i_q=i_q+1;}
  ea:	80 91 70 00 	lds	r24, 0x0070
  ee:	8f 5f       	subi	r24, 0xFF	; 255
  f0:	80 93 70 00 	sts	0x0070, r24
  f4:	ee cf       	rjmp	.-36     	; 0xd2
 for ( i_b=0;n>=100; )
  f6:	10 92 79 00 	sts	0x0079, r1
  fa:	89 81       	ldd	r24, Y+1	; 0x01
  fc:	9a 81       	ldd	r25, Y+2	; 0x02
  fe:	84 36       	cpi	r24, 0x64	; 100
 100:	91 05       	cpc	r25, r1
 102:	60 f0       	brcs	.+24     	; 0x11c
  {n=n-100;
 104:	89 81       	ldd	r24, Y+1	; 0x01
 106:	9a 81       	ldd	r25, Y+2	; 0x02
 108:	84 56       	subi	r24, 0x64	; 100
 10a:	90 40       	sbci	r25, 0x00	; 0
 10c:	89 83       	std	Y+1, r24	; 0x01
 10e:	9a 83       	std	Y+2, r25	; 0x02
   i_b=i_b+1;}
 110:	80 91 79 00 	lds	r24, 0x0079
 114:	8f 5f       	subi	r24, 0xFF	; 255
 116:	80 93 79 00 	sts	0x0079, r24
 11a:	ef cf       	rjmp	.-34     	; 0xfa
 for (i_sh=0;n>=10; )
 11c:	10 92 71 00 	sts	0x0071, r1
 120:	89 81       	ldd	r24, Y+1	; 0x01
 122:	9a 81       	ldd	r25, Y+2	; 0x02
 124:	8a 30       	cpi	r24, 0x0A	; 10
 126:	91 05       	cpc	r25, r1
 128:	58 f0       	brcs	.+22     	; 0x140
  {n=n-10;
 12a:	89 81       	ldd	r24, Y+1	; 0x01
 12c:	9a 81       	ldd	r25, Y+2	; 0x02
 12e:	0a 97       	sbiw	r24, 0x0a	; 10
 130:	89 83       	std	Y+1, r24	; 0x01
 132:	9a 83       	std	Y+2, r25	; 0x02
   i_sh=i_sh+1;}
 134:	80 91 71 00 	lds	r24, 0x0071
 138:	8f 5f       	subi	r24, 0xFF	; 255
 13a:	80 93 71 00 	sts	0x0071, r24
 13e:	f0 cf       	rjmp	.-32     	; 0x120
 i_g=n;
 140:	89 81       	ldd	r24, Y+1	; 0x01
 142:	80 93 74 00 	sts	0x0074, r24
 146:	22 96       	adiw	r28, 0x02	; 2
 148:	0f b6       	in	r0, 0x3f	; 63
 14a:	f8 94       	cli
 14c:	de bf       	out	0x3e, r29	; 62
 14e:	0f be       	out	0x3f, r0	; 63
 150:	cd bf       	out	0x3d, r28	; 61
 152:	df 91       	pop	r29
 154:	cf 91       	pop	r28
 156:	08 95       	ret

00000158 <smiao>:
 }

//延迟方法实现动态扫描显示函数
void smiao(void)
{PORTA=0X7F;     //送个位位线
 158:	cf 93       	push	r28
 15a:	df 93       	push	r29
 15c:	cd b7       	in	r28, 0x3d	; 61
 15e:	de b7       	in	r29, 0x3e	; 62
 160:	8f e7       	ldi	r24, 0x7F	; 127
 162:	80 93 3b 00 	sts	0x003B, r24
 PORTB=num_g;    //个位的BCD码送字线
 166:	80 91 60 00 	lds	r24, 0x0060
 16a:	80 93 38 00 	sts	0x0038, r24
// _delay_ms(20);   //延迟1MS
 //for(uchar i=0;i<50;i++)_delay_ms(20);   //延迟1MS 
 PORTA=0XBF;     //送十位位线
 16e:	8f eb       	ldi	r24, 0xBF	; 191
 170:	80 93 3b 00 	sts	0x003B, r24
 PORTB=num_sh;
 174:	80 91 61 00 	lds	r24, 0x0061
 178:	80 93 38 00 	sts	0x0038, r24
 //_delay_ms(20);   //延迟1MS 
  //for(uchar i=0;i<50;i++)_delay_ms(20);   //延迟1MS 
 PORTA=0XDF;     //送百位位线
 17c:	8f ed       	ldi	r24, 0xDF	; 223
 17e:	80 93 3b 00 	sts	0x003B, r24
 PORTB=num_b;
 182:	80 91 62 00 	lds	r24, 0x0062
 186:	80 93 38 00 	sts	0x0038, r24
 // _delay_ms(20);   //延迟1MS 
  //for(uchar i=0;i<50;i++)_delay_ms(20);   //延迟1MS 
 PORTA=0XEF;     //送千位位线
 18a:	8f ee       	ldi	r24, 0xEF	; 239
 18c:	80 93 3b 00 	sts	0x003B, r24
 PORTB=num_q;
 190:	80 91 63 00 	lds	r24, 0x0063
 194:	80 93 38 00 	sts	0x0038, r24
  //_delay_ms(20);   //延迟1MS 
  //for(uchar i=0;i<50;i++)_delay_ms(20);   //延迟1MS 
 PORTA=0XF7;     //送万位位线
 198:	87 ef       	ldi	r24, 0xF7	; 247
 19a:	80 93 3b 00 	sts	0x003B, r24
 PORTB=num_w;
 19e:	80 91 64 00 	lds	r24, 0x0064
 1a2:	80 93 38 00 	sts	0x0038, r24
 1a6:	df 91       	pop	r29
 1a8:	cf 91       	pop	r28
 1aa:	08 95       	ret

000001ac <t2pwm2>:
  //_delay_ms(20);   //延迟1MS 
  //for(uchar i=0;i<50;i++)_delay_ms(20);   //延迟1MS 
 }


//T/C2产生8160us周期方波的子程序1/(8*1000000/128)*255*2=8160us
void t2pwm2(void)
{DDRD|=(1<<PD7);    //PD7(oc2)引脚定义为输出
 1ac:	cf 93       	push	r28
 1ae:	df 93       	push	r29
 1b0:	cd b7       	in	r28, 0x3d	; 61
 1b2:	de b7       	in	r29, 0x3e	; 62
 1b4:	80 91 31 00 	lds	r24, 0x0031
 1b8:	80 68       	ori	r24, 0x80	; 128
 1ba:	80 93 31 00 	sts	0x0031, r24
 TCCR2=0X75;         //T2  128分频, 相位修正PWM 模式,向上计数时匹配置位0C0,向下计数匹配
 1be:	85 e7       	ldi	r24, 0x75	; 117
 1c0:	80 93 45 00 	sts	0x0045, r24
                     //时清除OC0(反向PWM) 
 OCR2=0X80;    
 1c4:	80 e8       	ldi	r24, 0x80	; 128
 1c6:	80 93 43 00 	sts	0x0043, r24
 1ca:	df 91       	pop	r29
 1cc:	cf 91       	pop	r28
 1ce:	08 95       	ret

000001d0 <init_timer1>:
 }
 
 
 //T/C1上升沿捕获,8分频,初始化
 void init_timer1(void)
 {
 1d0:	cf 93       	push	r28
 1d2:	df 93       	push	r29
 1d4:	cd b7       	in	r28, 0x3d	; 61
 1d6:	de b7       	in	r29, 0x3e	; 62
  DDRD&=~(1<<PD6);
 1d8:	80 91 31 00 	lds	r24, 0x0031
 1dc:	8f 7b       	andi	r24, 0xBF	; 191
 1de:	80 93 31 00 	sts	0x0031, r24
  TIMSK=0X20;     //允许TIME1的输入捕获
 1e2:	80 e2       	ldi	r24, 0x20	; 32
 1e4:	80 93 59 00 	sts	0x0059, r24
  TCCR1B=0XC2;    //上升沿捕获,8分频
 1e8:	82 ec       	ldi	r24, 0xC2	; 194
 1ea:	80 93 4e 00 	sts	0x004E, r24
 1ee:	df 91       	pop	r29
 1f0:	cf 91       	pop	r28
 1f2:	08 95       	ret

000001f4 <__vector_5>:
  //TIFR=0XFF;      //写1清中断标志
  }
  
 //输入捕获中断服务程序
 SIGNAL (SIG_INPUT_CAPTURE1)
 {temp2=ICR1-temp1;
 1f4:	1f 92       	push	r1
 1f6:	0f 92       	push	r0
 1f8:	0f b6       	in	r0, 0x3f	; 63
 1fa:	0f 92       	push	r0
 1fc:	11 24       	eor	r1, r1
 1fe:	2f 93       	push	r18
 200:	3f 93       	push	r19
 202:	8f 93       	push	r24
 204:	9f 93       	push	r25
 206:	cf 93       	push	r28
 208:	df 93       	push	r29
 20a:	cd b7       	in	r28, 0x3d	; 61
 20c:	de b7       	in	r29, 0x3e	; 62
 20e:	20 91 46 00 	lds	r18, 0x0046
 212:	30 91 47 00 	lds	r19, 0x0047
 216:	80 91 75 00 	lds	r24, 0x0075
 21a:	90 91 76 00 	lds	r25, 0x0076
 21e:	28 1b       	sub	r18, r24
 220:	39 0b       	sbc	r19, r25
 222:	c9 01       	movw	r24, r18
 224:	90 93 73 00 	sts	0x0073, r25
 228:	80 93 72 00 	sts	0x0072, r24
  temp1=temp2;
 22c:	80 91 72 00 	lds	r24, 0x0072
 230:	90 91 73 00 	lds	r25, 0x0073
 234:	90 93 76 00 	sts	0x0076, r25
 238:	80 93 75 00 	sts	0x0075, r24
  num++;
 23c:	80 91 77 00 	lds	r24, 0x0077
 240:	8f 5f       	subi	r24, 0xFF	; 255
 242:	80 93 77 00 	sts	0x0077, r24
 246:	df 91       	pop	r29
 248:	cf 91       	pop	r28
 24a:	9f 91       	pop	r25
 24c:	8f 91       	pop	r24
 24e:	3f 91       	pop	r19
 250:	2f 91       	pop	r18
 252:	0f 90       	pop	r0
 254:	0f be       	out	0x3f, r0	; 63
 256:	0f 90       	pop	r0
 258:	1f 90       	pop	r1
 25a:	18 95       	reti

0000025c <main>:
   }
 
 
 int main(void)
{uchar tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
 25c:	c5 e5       	ldi	r28, 0x55	; 85
 25e:	d4 e0       	ldi	r29, 0x04	; 4
 260:	de bf       	out	0x3e, r29	; 62
 262:	cd bf       	out	0x3d, r28	; 61
 264:	8a e0       	ldi	r24, 0x0A	; 10
 266:	de 01       	movw	r26, r28
 268:	11 96       	adiw	r26, 0x01	; 1
 26a:	e5 e6       	ldi	r30, 0x65	; 101
 26c:	f0 e0       	ldi	r31, 0x00	; 0
 26e:	01 90       	ld	r0, Z+
 270:	0d 92       	st	X+, r0
 272:	8a 95       	dec	r24
 274:	e1 f7       	brne	.-8      	; 0x26e

 DDRB=0XFF;       //定义B口为输出
 276:	8f ef       	ldi	r24, 0xFF	; 255
 278:	80 93 37 00 	sts	0x0037, r24
 DDRA=0XFF;       //定义A口为输出
 27c:	8f ef       	ldi	r24, 0xFF	; 255
 27e:	80 93 3a 00 	sts	0x003A, r24
 //DDRD=0XBF;       // 定义D口除了PD6为输入,其他都为输出
 temp1=0x0000;
 282:	10 92 76 00 	sts	0x0076, r1
 286:	10 92 75 00 	sts	0x0075, r1
 num=0;
 28a:	10 92 77 00 	sts	0x0077, r1
 t2pwm2();
 28e:	0e 94 d6 00 	call	0x1ac
 init_timer1();
 292:	0e 94 e8 00 	call	0x1d0
 sei();
 296:	78 94       	sei
 while(1)
 {
   if(num>0 && num%2==0) 
 298:	80 91 77 00 	lds	r24, 0x0077
 29c:	88 23       	and	r24, r24
 29e:	09 f4       	brne	.+2      	; 0x2a2
 2a0:	48 c0       	rjmp	.+144    	; 0x332
 2a2:	80 91 77 00 	lds	r24, 0x0077
 2a6:	81 70       	andi	r24, 0x01	; 1
 2a8:	88 23       	and	r24, r24
 2aa:	09 f0       	breq	.+2      	; 0x2ae
 2ac:	42 c0       	rjmp	.+132    	; 0x332
   {b16td5(temp2);
 2ae:	80 91 72 00 	lds	r24, 0x0072
 2b2:	90 91 73 00 	lds	r25, 0x0073
 2b6:	0e 94 47 00 	call	0x8e
    num_g=tab[i_g];
 2ba:	80 91 74 00 	lds	r24, 0x0074
 2be:	28 2f       	mov	r18, r24
 2c0:	33 27       	eor	r19, r19
 2c2:	ce 01       	movw	r24, r28
 2c4:	01 96       	adiw	r24, 0x01	; 1
 2c6:	f9 01       	movw	r30, r18
 2c8:	e8 0f       	add	r30, r24
 2ca:	f9 1f       	adc	r31, r25
 2cc:	80 81       	ld	r24, Z
 2ce:	80 93 60 00 	sts	0x0060, r24
    num_sh=tab[i_sh];
 2d2:	80 91 71 00 	lds	r24, 0x0071
 2d6:	28 2f       	mov	r18, r24
 2d8:	33 27       	eor	r19, r19
 2da:	ce 01       	movw	r24, r28
 2dc:	01 96       	adiw	r24, 0x01	; 1
 2de:	f9 01       	movw	r30, r18
 2e0:	e8 0f       	add	r30, r24
 2e2:	f9 1f       	adc	r31, r25
 2e4:	80 81       	ld	r24, Z
 2e6:	80 93 61 00 	sts	0x0061, r24
    num_b=tab[i_b];  
 2ea:	80 91 79 00 	lds	r24, 0x0079
 2ee:	28 2f       	mov	r18, r24
 2f0:	33 27       	eor	r19, r19
 2f2:	ce 01       	movw	r24, r28
 2f4:	01 96       	adiw	r24, 0x01	; 1
 2f6:	f9 01       	movw	r30, r18
 2f8:	e8 0f       	add	r30, r24
 2fa:	f9 1f       	adc	r31, r25
 2fc:	80 81       	ld	r24, Z
 2fe:	80 93 62 00 	sts	0x0062, r24
    num_q=tab[i_q];
 302:	80 91 70 00 	lds	r24, 0x0070
 306:	28 2f       	mov	r18, r24
 308:	33 27       	eor	r19, r19
 30a:	ce 01       	movw	r24, r28
 30c:	01 96       	adiw	r24, 0x01	; 1
 30e:	f9 01       	movw	r30, r18
 310:	e8 0f       	add	r30, r24
 312:	f9 1f       	adc	r31, r25
 314:	80 81       	ld	r24, Z
 316:	80 93 63 00 	sts	0x0063, r24
    num_w=tab[i_w];
 31a:	80 91 78 00 	lds	r24, 0x0078
 31e:	28 2f       	mov	r18, r24
 320:	33 27       	eor	r19, r19
 322:	ce 01       	movw	r24, r28
 324:	01 96       	adiw	r24, 0x01	; 1
 326:	f9 01       	movw	r30, r18
 328:	e8 0f       	add	r30, r24
 32a:	f9 1f       	adc	r31, r25
 32c:	80 81       	ld	r24, Z
 32e:	80 93 64 00 	sts	0x0064, r24
	}    //根据返回的个、十、百、千、万位的值查的相应的七数码管的值
    smiao();
 332:	0e 94 ac 00 	call	0x158
 336:	b0 cf       	rjmp	.-160    	; 0x298

⌨️ 快捷键说明

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