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

📄 tc2_1.lss

📁 arm的功能测试模块
💻 LSS
📖 第 1 页 / 共 2 页
字号:

TC2_1.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000059c  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         0000000a  00800060  0000059c  00000630  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000011  0080006a  0080006a  0000063a  2**0
                  ALLOC
  3 .noinit       00000000  0080007b  0080007b  0000063a  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  0000063a  2**0
                  CONTENTS
  5 .debug_aranges 00000014  00000000  00000000  0000063a  2**0
                  CONTENTS, READONLY, DEBUGGING
  6 .debug_pubnames 000000f3  00000000  00000000  0000064e  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_info   0000036e  00000000  00000000  00000741  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_abbrev 000000d2  00000000  00000000  00000aaf  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_line   0000026a  00000000  00000000  00000b81  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_str    0000000d  00000000  00000000  00000deb  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 48 01 	jmp	0x290
  14:	0c 94 45 00 	jmp	0x8a
  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:	ec e9       	ldi	r30, 0x9C	; 156
  68:	f5 e0       	ldi	r31, 0x05	; 5
  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:	aa 36       	cpi	r26, 0x6A	; 106
  72:	b1 07       	cpc	r27, r17
  74:	d9 f7       	brne	.-10     	; 0x6c

00000076 <__do_clear_bss>:
  76:	10 e0       	ldi	r17, 0x00	; 0
  78:	aa e6       	ldi	r26, 0x6A	; 106
  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:	ab 37       	cpi	r26, 0x7B	; 123
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e
  86:	0c 94 7b 01 	jmp	0x2f6

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

0000008e <b8td>:
uchar num_g,num_sh,num_b,num_q,num_w,num_sw;
 
//二转十子程序
void b8td(uchar 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:	21 97       	sbiw	r28, 0x01	; 1
  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
 for (i_sh=0;n>=10;)
  a4:	10 92 6f 00 	sts	0x006F, r1
  a8:	89 81       	ldd	r24, Y+1	; 0x01
  aa:	8a 30       	cpi	r24, 0x0A	; 10
  ac:	48 f0       	brcs	.+18     	; 0xc0
 {n=n-10;
  ae:	89 81       	ldd	r24, Y+1	; 0x01
  b0:	8a 50       	subi	r24, 0x0A	; 10
  b2:	89 83       	std	Y+1, r24	; 0x01
  i_sh=i_sh+1;
  b4:	80 91 6f 00 	lds	r24, 0x006F
  b8:	8f 5f       	subi	r24, 0xFF	; 255
  ba:	80 93 6f 00 	sts	0x006F, r24
  be:	f4 cf       	rjmp	.-24     	; 0xa8
  }
  i_g=n;
  c0:	89 81       	ldd	r24, Y+1	; 0x01
  c2:	80 93 73 00 	sts	0x0073, r24
  c6:	21 96       	adiw	r28, 0x01	; 1
  c8:	0f b6       	in	r0, 0x3f	; 63
  ca:	f8 94       	cli
  cc:	de bf       	out	0x3e, r29	; 62
  ce:	0f be       	out	0x3f, r0	; 63
  d0:	cd bf       	out	0x3d, r28	; 61
  d2:	df 91       	pop	r29
  d4:	cf 91       	pop	r28
  d6:	08 95       	ret

000000d8 <smiao>:
 }


//延迟方法实现动态扫描显示函数
void smiao(void)
{PORTD=0XFE;     //送个位位线
  d8:	cf 93       	push	r28
  da:	df 93       	push	r29
  dc:	cd b7       	in	r28, 0x3d	; 61
  de:	de b7       	in	r29, 0x3e	; 62
  e0:	8e ef       	ldi	r24, 0xFE	; 254
  e2:	80 93 32 00 	sts	0x0032, r24
 PORTB=num_g;    //个位的BCD码送字线
  e6:	80 91 77 00 	lds	r24, 0x0077
  ea:	80 93 38 00 	sts	0x0038, r24
 _delay_ms(1);   //延迟1MS 
  ee:	60 e0       	ldi	r22, 0x00	; 0
  f0:	70 e0       	ldi	r23, 0x00	; 0
  f2:	80 e8       	ldi	r24, 0x80	; 128
  f4:	9f e3       	ldi	r25, 0x3F	; 63
  f6:	0e 94 c1 00 	call	0x182
 PORTD=0XFD;     //送十位位线
  fa:	8d ef       	ldi	r24, 0xFD	; 253
  fc:	80 93 32 00 	sts	0x0032, r24
 PORTB=num_sh;
 100:	80 91 79 00 	lds	r24, 0x0079
 104:	80 93 38 00 	sts	0x0038, r24
 _delay_ms(1);
 108:	60 e0       	ldi	r22, 0x00	; 0
 10a:	70 e0       	ldi	r23, 0x00	; 0
 10c:	80 e8       	ldi	r24, 0x80	; 128
 10e:	9f e3       	ldi	r25, 0x3F	; 63
 110:	0e 94 c1 00 	call	0x182
 PORTD=0XFB;     //送百位位线
 114:	8b ef       	ldi	r24, 0xFB	; 251
 116:	80 93 32 00 	sts	0x0032, r24
 PORTB=num_b;
 11a:	80 91 78 00 	lds	r24, 0x0078
 11e:	80 93 38 00 	sts	0x0038, r24
 _delay_ms(1);
 122:	60 e0       	ldi	r22, 0x00	; 0
 124:	70 e0       	ldi	r23, 0x00	; 0
 126:	80 e8       	ldi	r24, 0x80	; 128
 128:	9f e3       	ldi	r25, 0x3F	; 63
 12a:	0e 94 c1 00 	call	0x182
 PORTD=0XF7;     //送千位位线
 12e:	87 ef       	ldi	r24, 0xF7	; 247
 130:	80 93 32 00 	sts	0x0032, r24
 PORTB=num_q;
 134:	80 91 72 00 	lds	r24, 0x0072
 138:	80 93 38 00 	sts	0x0038, r24
 _delay_ms(1);
 13c:	60 e0       	ldi	r22, 0x00	; 0
 13e:	70 e0       	ldi	r23, 0x00	; 0
 140:	80 e8       	ldi	r24, 0x80	; 128
 142:	9f e3       	ldi	r25, 0x3F	; 63
 144:	0e 94 c1 00 	call	0x182
 PORTD=0XEF;     //送万位位线
 148:	8f ee       	ldi	r24, 0xEF	; 239
 14a:	80 93 32 00 	sts	0x0032, r24
 PORTB=num_w;
 14e:	80 91 7a 00 	lds	r24, 0x007A
 152:	80 93 38 00 	sts	0x0038, r24
 _delay_ms(1);
 156:	60 e0       	ldi	r22, 0x00	; 0
 158:	70 e0       	ldi	r23, 0x00	; 0
 15a:	80 e8       	ldi	r24, 0x80	; 128
 15c:	9f e3       	ldi	r25, 0x3F	; 63
 15e:	0e 94 c1 00 	call	0x182
 PORTD=0XDF;     //送十万位位线
 162:	8f ed       	ldi	r24, 0xDF	; 223
 164:	80 93 32 00 	sts	0x0032, r24
 PORTB=num_sw;
 168:	80 91 70 00 	lds	r24, 0x0070
 16c:	80 93 38 00 	sts	0x0038, r24
 _delay_ms(1);
 170:	60 e0       	ldi	r22, 0x00	; 0
 172:	70 e0       	ldi	r23, 0x00	; 0
 174:	80 e8       	ldi	r24, 0x80	; 128
 176:	9f e3       	ldi	r25, 0x3F	; 63
 178:	0e 94 c1 00 	call	0x182
 17c:	df 91       	pop	r29
 17e:	cf 91       	pop	r28
 180:	08 95       	ret

00000182 <_delay_ms>:
   The maximal possible delay is 262.14 ms / F_CPU in MHz.
 */
static __inline__ void
_delay_ms(double __ms)
{
 182:	cf 93       	push	r28
 184:	df 93       	push	r29
 186:	cd b7       	in	r28, 0x3d	; 61
 188:	de b7       	in	r29, 0x3e	; 62
 18a:	2a 97       	sbiw	r28, 0x0a	; 10
 18c:	0f b6       	in	r0, 0x3f	; 63
 18e:	f8 94       	cli
 190:	de bf       	out	0x3e, r29	; 62
 192:	0f be       	out	0x3f, r0	; 63
 194:	cd bf       	out	0x3d, r28	; 61
 196:	69 83       	std	Y+1, r22	; 0x01
 198:	7a 83       	std	Y+2, r23	; 0x02
 19a:	8b 83       	std	Y+3, r24	; 0x03
 19c:	9c 83       	std	Y+4, r25	; 0x04
	uint16_t __ticks;
	double __tmp = ((F_CPU) / 4e3) * __ms;
 19e:	20 e0       	ldi	r18, 0x00	; 0
 1a0:	30 e0       	ldi	r19, 0x00	; 0
 1a2:	4a ef       	ldi	r20, 0xFA	; 250
 1a4:	54 e4       	ldi	r21, 0x44	; 68
 1a6:	69 81       	ldd	r22, Y+1	; 0x01
 1a8:	7a 81       	ldd	r23, Y+2	; 0x02
 1aa:	8b 81       	ldd	r24, Y+3	; 0x03
 1ac:	9c 81       	ldd	r25, Y+4	; 0x04
 1ae:	0e 94 60 02 	call	0x4c0
 1b2:	dc 01       	movw	r26, r24
 1b4:	cb 01       	movw	r24, r22
 1b6:	8f 83       	std	Y+7, r24	; 0x07
 1b8:	98 87       	std	Y+8, r25	; 0x08
 1ba:	a9 87       	std	Y+9, r26	; 0x09
 1bc:	ba 87       	std	Y+10, r27	; 0x0a
	if (__tmp < 1.0)
 1be:	20 e0       	ldi	r18, 0x00	; 0
 1c0:	30 e0       	ldi	r19, 0x00	; 0
 1c2:	40 e8       	ldi	r20, 0x80	; 128
 1c4:	5f e3       	ldi	r21, 0x3F	; 63
 1c6:	6f 81       	ldd	r22, Y+7	; 0x07
 1c8:	78 85       	ldd	r23, Y+8	; 0x08
 1ca:	89 85       	ldd	r24, Y+9	; 0x09
 1cc:	9a 85       	ldd	r25, Y+10	; 0x0a
 1ce:	0e 94 1b 02 	call	0x436
 1d2:	88 23       	and	r24, r24
 1d4:	0c f0       	brlt	.+2      	; 0x1d8
 1d6:	05 c0       	rjmp	.+10     	; 0x1e2
		__ticks = 1;
 1d8:	81 e0       	ldi	r24, 0x01	; 1
 1da:	90 e0       	ldi	r25, 0x00	; 0
 1dc:	8d 83       	std	Y+5, r24	; 0x05
 1de:	9e 83       	std	Y+6, r25	; 0x06
 1e0:	1a c0       	rjmp	.+52     	; 0x216
	else if (__tmp > 65535)
 1e2:	20 e0       	ldi	r18, 0x00	; 0
 1e4:	3f ef       	ldi	r19, 0xFF	; 255
 1e6:	4f e7       	ldi	r20, 0x7F	; 127
 1e8:	57 e4       	ldi	r21, 0x47	; 71
 1ea:	6f 81       	ldd	r22, Y+7	; 0x07
 1ec:	78 85       	ldd	r23, Y+8	; 0x08
 1ee:	89 85       	ldd	r24, Y+9	; 0x09
 1f0:	9a 85       	ldd	r25, Y+10	; 0x0a
 1f2:	0e 94 1e 02 	call	0x43c
 1f6:	18 16       	cp	r1, r24
 1f8:	0c f0       	brlt	.+2      	; 0x1fc
 1fa:	03 c0       	rjmp	.+6      	; 0x202
		__ticks = 0;	/* i.e. 65536 */
 1fc:	1d 82       	std	Y+5, r1	; 0x05
 1fe:	1e 82       	std	Y+6, r1	; 0x06
 200:	0a c0       	rjmp	.+20     	; 0x216
	else
		__ticks = (uint16_t)__tmp;
 202:	6f 81       	ldd	r22, Y+7	; 0x07
 204:	78 85       	ldd	r23, Y+8	; 0x08
 206:	89 85       	ldd	r24, Y+9	; 0x09
 208:	9a 85       	ldd	r25, Y+10	; 0x0a
 20a:	0e 94 00 02 	call	0x400
 20e:	dc 01       	movw	r26, r24
 210:	cb 01       	movw	r24, r22
 212:	8d 83       	std	Y+5, r24	; 0x05
 214:	9e 83       	std	Y+6, r25	; 0x06
	_delay_loop_2(__ticks);
 216:	8d 81       	ldd	r24, Y+5	; 0x05
 218:	9e 81       	ldd	r25, Y+6	; 0x06
 21a:	0e 94 18 01 	call	0x230
 21e:	2a 96       	adiw	r28, 0x0a	; 10
 220:	0f b6       	in	r0, 0x3f	; 63
 222:	f8 94       	cli
 224:	de bf       	out	0x3e, r29	; 62
 226:	0f be       	out	0x3f, r0	; 63
 228:	cd bf       	out	0x3d, r28	; 61
 22a:	df 91       	pop	r29
 22c:	cf 91       	pop	r28
 22e:	08 95       	ret

00000230 <_delay_loop_2>:
 230:	cf 93       	push	r28
 232:	df 93       	push	r29
 234:	cd b7       	in	r28, 0x3d	; 61
 236:	de b7       	in	r29, 0x3e	; 62
 238:	22 97       	sbiw	r28, 0x02	; 2
 23a:	0f b6       	in	r0, 0x3f	; 63
 23c:	f8 94       	cli
 23e:	de bf       	out	0x3e, r29	; 62
 240:	0f be       	out	0x3f, r0	; 63
 242:	cd bf       	out	0x3d, r28	; 61
 244:	89 83       	std	Y+1, r24	; 0x01
 246:	9a 83       	std	Y+2, r25	; 0x02
 248:	89 81       	ldd	r24, Y+1	; 0x01
 24a:	9a 81       	ldd	r25, Y+2	; 0x02
 24c:	01 97       	sbiw	r24, 0x01	; 1
 24e:	f1 f7       	brne	.-4      	; 0x24c
 250:	89 83       	std	Y+1, r24	; 0x01
 252:	9a 83       	std	Y+2, r25	; 0x02
 254:	22 96       	adiw	r28, 0x02	; 2
 256:	0f b6       	in	r0, 0x3f	; 63
 258:	f8 94       	cli
 25a:	de bf       	out	0x3e, r29	; 62
 25c:	0f be       	out	0x3f, r0	; 63
 25e:	cd bf       	out	0x3d, r28	; 61
 260:	df 91       	pop	r29
 262:	cf 91       	pop	r28
 264:	08 95       	ret

00000266 <init_timer2>:
 }

//TC2的初始化子程序
void init_timer2(void)
{
 266:	cf 93       	push	r28
 268:	df 93       	push	r29
 26a:	cd b7       	in	r28, 0x3d	; 61
 26c:	de b7       	in	r29, 0x3e	; 62
 TIFR=0XFF;    //写1清零
 26e:	8f ef       	ldi	r24, 0xFF	; 255
 270:	80 93 58 00 	sts	0x0058, r24
 ASSR=0X08;    //使用异步时钟
 274:	88 e0       	ldi	r24, 0x08	; 8
 276:	80 93 42 00 	sts	0x0042, r24
 TCCR2=0X05;   //128分频,1s中断一次
 27a:	85 e0       	ldi	r24, 0x05	; 5
 27c:	80 93 45 00 	sts	0x0045, r24
 TCNT2=0X00;   //TC2置初值0
 280:	10 92 44 00 	sts	0x0044, r1
 TIMSK=0X40;   //溢出中断使能
 284:	80 e4       	ldi	r24, 0x40	; 64
 286:	80 93 59 00 	sts	0x0059, r24
 28a:	df 91       	pop	r29
 28c:	cf 91       	pop	r28
 28e:	08 95       	ret

00000290 <__vector_4>:
 }
 
 
//TC2溢出中断服务程序
SIGNAL(SIG_OVERFLOW2)
{
 290:	1f 92       	push	r1
 292:	0f 92       	push	r0
 294:	0f b6       	in	r0, 0x3f	; 63
 296:	0f 92       	push	r0
 298:	11 24       	eor	r1, r1
 29a:	8f 93       	push	r24
 29c:	cf 93       	push	r28
 29e:	df 93       	push	r29
 2a0:	cd b7       	in	r28, 0x3d	; 61
 2a2:	de b7       	in	r29, 0x3e	; 62
 b_s++;                        //秒增加1
 2a4:	80 91 6a 00 	lds	r24, 0x006A
 2a8:	8f 5f       	subi	r24, 0xFF	; 255
 2aa:	80 93 6a 00 	sts	0x006A, r24
 if(b_s==60) {b_s=0;b_m++;}  //到60秒,秒清零,分增加1
 2ae:	80 91 6a 00 	lds	r24, 0x006A
 2b2:	8c 33       	cpi	r24, 0x3C	; 60
 2b4:	39 f4       	brne	.+14     	; 0x2c4
 2b6:	10 92 6a 00 	sts	0x006A, r1
 2ba:	80 91 6b 00 	lds	r24, 0x006B
 2be:	8f 5f       	subi	r24, 0xFF	; 255
 2c0:	80 93 6b 00 	sts	0x006B, r24
 if(b_m==60) {b_m=0;b_h++;}  //到60分,分清零,时增加1
 2c4:	80 91 6b 00 	lds	r24, 0x006B
 2c8:	8c 33       	cpi	r24, 0x3C	; 60
 2ca:	39 f4       	brne	.+14     	; 0x2da
 2cc:	10 92 6b 00 	sts	0x006B, r1
 2d0:	80 91 6c 00 	lds	r24, 0x006C
 2d4:	8f 5f       	subi	r24, 0xFF	; 255
 2d6:	80 93 6c 00 	sts	0x006C, r24
 if(b_h==24) b_h=0;           //到24时,时清零
 2da:	80 91 6c 00 	lds	r24, 0x006C
 2de:	88 31       	cpi	r24, 0x18	; 24
 2e0:	11 f4       	brne	.+4      	; 0x2e6
 2e2:	10 92 6c 00 	sts	0x006C, r1
 2e6:	df 91       	pop	r29
 2e8:	cf 91       	pop	r28
 2ea:	8f 91       	pop	r24

⌨️ 快捷键说明

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