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

📄 7219ding.lss

📁 这是一个关于avr驱动7219程序。程序是在GCC的环境下开发的。测试好使
💻 LSS
字号:

7219DING.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         0000022c  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000038  00800060  0000022c  000002c0  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          00000004  00800098  00800098  000002f8  2**0
                  ALLOC
  3 .noinit       00000000  0080009c  0080009c  000002f8  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  000002f8  2**0
                  CONTENTS
  5 .stab         0000036c  00000000  00000000  000002f8  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000084  00000000  00000000  00000664  2**0
                  CONTENTS, READONLY, DEBUGGING
  7 .debug_aranges 00000020  00000000  00000000  000006e8  2**0
                  CONTENTS, READONLY, DEBUGGING
  8 .debug_pubnames 00000073  00000000  00000000  00000708  2**0
                  CONTENTS, READONLY, DEBUGGING
  9 .debug_info   00000209  00000000  00000000  0000077b  2**0
                  CONTENTS, READONLY, DEBUGGING
 10 .debug_abbrev 00000102  00000000  00000000  00000984  2**0
                  CONTENTS, READONLY, DEBUGGING
 11 .debug_line   0000023b  00000000  00000000  00000a86  2**0
                  CONTENTS, READONLY, DEBUGGING
 12 .debug_str    000000b4  00000000  00000000  00000cc1  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 a1 00 	jmp	0x142 <__vector_8>
  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:	ec e2       	ldi	r30, 0x2C	; 44
  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:	a8 39       	cpi	r26, 0x98	; 152
  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 e9       	ldi	r26, 0x98	; 152
  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:	ac 39       	cpi	r26, 0x9C	; 156
  82:	b1 07       	cpc	r27, r17
  84:	e1 f7       	brne	.-8      	; 0x7e <.do_clear_bss_loop>
  86:	0c 94 d1 00 	jmp	0x1a2 <main>

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

0000008e <shuru>:
#pragma data:code 
const ADREE[]={0x0100,0x0200,0x0300,0x0400,0x0500,0x0600,0x0700,0x0800,0x0c01,0x0a04,0x0b07,0x09ff};

void shuru(uint wei,uint shu,uint dian)
{
  8e:	fb 01       	movw	r30, r22
  90:	dc 01       	movw	r26, r24
  92:	aa 0f       	add	r26, r26
  94:	bb 1f       	adc	r27, r27
  96:	e6 0f       	add	r30, r22
  98:	f7 1f       	adc	r31, r23
  uint i,j,k;
   k=0x0080;
   if(dian==0)
  9a:	45 2b       	or	r20, r21
  9c:	59 f4       	brne	.+22     	; 0xb4 <shuru+0x26>
  j=ADREE[wei]|table[shu];
  9e:	a0 5a       	subi	r26, 0xA0	; 160
  a0:	bf 4f       	sbci	r27, 0xFF	; 255
  a2:	e8 58       	subi	r30, 0x88	; 136
  a4:	ff 4f       	sbci	r31, 0xFF	; 255
  a6:	2d 91       	ld	r18, X+
  a8:	3c 91       	ld	r19, X
  aa:	80 81       	ld	r24, Z
  ac:	91 81       	ldd	r25, Z+1	; 0x01
  ae:	28 2b       	or	r18, r24
  b0:	39 2b       	or	r19, r25
  b2:	0b c0       	rjmp	.+22     	; 0xca <shuru+0x3c>
  else
  j=ADREE[wei]|table[shu]|k;
  b4:	a0 5a       	subi	r26, 0xA0	; 160
  b6:	bf 4f       	sbci	r27, 0xFF	; 255
  b8:	e8 58       	subi	r30, 0x88	; 136
  ba:	ff 4f       	sbci	r31, 0xFF	; 255
  bc:	2d 91       	ld	r18, X+
  be:	3c 91       	ld	r19, X
  c0:	80 81       	ld	r24, Z
  c2:	91 81       	ldd	r25, Z+1	; 0x01
  c4:	28 2b       	or	r18, r24
  c6:	39 2b       	or	r19, r25
  c8:	20 68       	ori	r18, 0x80	; 128
  for(i=0x8000;i>=0x0001;i=i>>1)
  ca:	40 e0       	ldi	r20, 0x00	; 0
  cc:	50 e8       	ldi	r21, 0x80	; 128
  {
    if((i&j)==0)
  ce:	ca 01       	movw	r24, r20
  d0:	82 23       	and	r24, r18
  d2:	93 23       	and	r25, r19
  d4:	89 2b       	or	r24, r25
  d6:	11 f4       	brne	.+4      	; 0xdc <shuru+0x4e>
       din=0;
  d8:	c0 98       	cbi	0x18, 0	; 24
  da:	01 c0       	rjmp	.+2      	; 0xde <shuru+0x50>
     else
      din=1;
  dc:	c0 9a       	sbi	0x18, 0	; 24
	 clk=1;
  de:	c1 9a       	sbi	0x18, 1	; 24
	 clk=0;
  e0:	c1 98       	cbi	0x18, 1	; 24
  e2:	56 95       	lsr	r21
  e4:	47 95       	ror	r20
  e6:	41 15       	cp	r20, r1
  e8:	51 05       	cpc	r21, r1
  ea:	89 f7       	brne	.-30     	; 0xce <shuru+0x40>
  }
  load=1;
  ec:	c2 9a       	sbi	0x18, 2	; 24
  load=0;
  ee:	c2 98       	cbi	0x18, 2	; 24
  f0:	08 95       	ret

000000f2 <shezhi>:
}

void shezhi()
{
shuru(8,0,0);
  f2:	40 e0       	ldi	r20, 0x00	; 0
  f4:	50 e0       	ldi	r21, 0x00	; 0
  f6:	ba 01       	movw	r22, r20
  f8:	88 e0       	ldi	r24, 0x08	; 8
  fa:	90 e0       	ldi	r25, 0x00	; 0
  fc:	0e 94 47 00 	call	0x8e <shuru>
shuru(9,0,0);
 100:	40 e0       	ldi	r20, 0x00	; 0
 102:	50 e0       	ldi	r21, 0x00	; 0
 104:	ba 01       	movw	r22, r20
 106:	89 e0       	ldi	r24, 0x09	; 9
 108:	90 e0       	ldi	r25, 0x00	; 0
 10a:	0e 94 47 00 	call	0x8e <shuru>
shuru(10,0,0);
 10e:	40 e0       	ldi	r20, 0x00	; 0
 110:	50 e0       	ldi	r21, 0x00	; 0
 112:	ba 01       	movw	r22, r20
 114:	8a e0       	ldi	r24, 0x0A	; 10
 116:	90 e0       	ldi	r25, 0x00	; 0
 118:	0e 94 47 00 	call	0x8e <shuru>
shuru(11,0,0);
 11c:	40 e0       	ldi	r20, 0x00	; 0
 11e:	50 e0       	ldi	r21, 0x00	; 0
 120:	ba 01       	movw	r22, r20
 122:	8b e0       	ldi	r24, 0x0B	; 11
 124:	90 e0       	ldi	r25, 0x00	; 0
 126:	0e 94 47 00 	call	0x8e <shuru>
 12a:	08 95       	ret

0000012c <initial_T1>:
}
void initial_T1()//选择定时器类型
{
   uint sreg;
   sreg=SREG;
 12c:	8f b7       	in	r24, 0x3f	; 63
 12e:	28 2f       	mov	r18, r24
 130:	33 27       	eor	r19, r19
   TCCR1B=1<<CS10;
 132:	81 e0       	ldi	r24, 0x01	; 1
 134:	8e bd       	out	0x2e, r24	; 46
   TCNT1H=0x85;
 136:	85 e8       	ldi	r24, 0x85	; 133
 138:	8d bd       	out	0x2d, r24	; 45
   TCNT1L=0xED;
 13a:	8d ee       	ldi	r24, 0xED	; 237
 13c:	8c bd       	out	0x2c, r24	; 44
   SREG=sreg;
 13e:	2f bf       	out	0x3f, r18	; 63
 140:	08 95       	ret

00000142 <__vector_8>:
}
SIGNAL(SIG_OVERFLOW1)
{
 142:	1f 92       	push	r1
 144:	0f 92       	push	r0
 146:	0f b6       	in	r0, 0x3f	; 63
 148:	0f 92       	push	r0
 14a:	11 24       	eor	r1, r1
 14c:	8f 93       	push	r24
 14e:	9f 93       	push	r25
   count1++;
 150:	80 91 9a 00 	lds	r24, 0x009A
 154:	90 91 9b 00 	lds	r25, 0x009B
 158:	01 96       	adiw	r24, 0x01	; 1
 15a:	90 93 9b 00 	sts	0x009B, r25
 15e:	80 93 9a 00 	sts	0x009A, r24
   if(count1==128)//定时一秒1/8*160
 162:	80 38       	cpi	r24, 0x80	; 128
 164:	91 05       	cpc	r25, r1
 166:	b1 f4       	brne	.+44     	; 0x194 <__vector_8+0x52>
    {  
	    s++;
 168:	80 91 98 00 	lds	r24, 0x0098
 16c:	90 91 99 00 	lds	r25, 0x0099
 170:	01 96       	adiw	r24, 0x01	; 1
 172:	90 93 99 00 	sts	0x0099, r25
 176:	80 93 98 00 	sts	0x0098, r24
		if(s==89)
 17a:	89 35       	cpi	r24, 0x59	; 89
 17c:	91 05       	cpc	r25, r1
 17e:	31 f4       	brne	.+12     	; 0x18c <__vector_8+0x4a>
	    s=9;
 180:	89 e0       	ldi	r24, 0x09	; 9
 182:	90 e0       	ldi	r25, 0x00	; 0
 184:	90 93 99 00 	sts	0x0099, r25
 188:	80 93 98 00 	sts	0x0098, r24
       count1=0;
 18c:	10 92 9b 00 	sts	0x009B, r1
 190:	10 92 9a 00 	sts	0x009A, r1
 194:	9f 91       	pop	r25
 196:	8f 91       	pop	r24
 198:	0f 90       	pop	r0
 19a:	0f be       	out	0x3f, r0	; 63
 19c:	0f 90       	pop	r0
 19e:	1f 90       	pop	r1
 1a0:	18 95       	reti

000001a2 <main>:
     }
}
void main()
{
 1a2:	cf e5       	ldi	r28, 0x5F	; 95
 1a4:	d4 e0       	ldi	r29, 0x04	; 4
 1a6:	de bf       	out	0x3e, r29	; 62
 1a8:	cd bf       	out	0x3d, r28	; 61
  uint i=0,j=0;
 1aa:	00 e0       	ldi	r16, 0x00	; 0
 1ac:	10 e0       	ldi	r17, 0x00	; 0
  din=0;
 1ae:	c0 98       	cbi	0x18, 0	; 24
  clk=0;
 1b0:	c1 98       	cbi	0x18, 1	; 24
  load=0;
 1b2:	c2 98       	cbi	0x18, 2	; 24
  int k;
  DDRB|=0x07;
 1b4:	87 b3       	in	r24, 0x17	; 23
 1b6:	87 60       	ori	r24, 0x07	; 7
 1b8:	87 bb       	out	0x17, r24	; 23
  shezhi();
 1ba:	0e 94 79 00 	call	0xf2 <shezhi>
  initial_T1();
 1be:	0e 94 96 00 	call	0x12c <initial_T1>
  TIMSK = (1<<TOIE1);
 1c2:	84 e0       	ldi	r24, 0x04	; 4
 1c4:	89 bf       	out	0x39, r24	; 57
   sei();
 1c6:	78 94       	sei
	while(1)
    {
	  for(j=0;j<8;j++)
 1c8:	c0 e0       	ldi	r28, 0x00	; 0
 1ca:	d0 e0       	ldi	r29, 0x00	; 0
      {
	   k=s-j;
 1cc:	60 91 98 00 	lds	r22, 0x0098
 1d0:	70 91 99 00 	lds	r23, 0x0099
 1d4:	6c 1b       	sub	r22, r28
 1d6:	7d 0b       	sbc	r23, r29
	    if(k<=0)
 1d8:	16 16       	cp	r1, r22
 1da:	17 06       	cpc	r1, r23
 1dc:	14 f0       	brlt	.+4      	; 0x1e2 <main+0x40>
         k=0; 
 1de:	60 e0       	ldi	r22, 0x00	; 0
 1e0:	70 e0       	ldi	r23, 0x00	; 0
	  shuru(j,k,0);
 1e2:	40 e0       	ldi	r20, 0x00	; 0
 1e4:	50 e0       	ldi	r21, 0x00	; 0
 1e6:	ce 01       	movw	r24, r28
 1e8:	0e 94 47 00 	call	0x8e <shuru>
 1ec:	21 96       	adiw	r28, 0x01	; 1
 1ee:	c8 30       	cpi	r28, 0x08	; 8
 1f0:	d1 05       	cpc	r29, r1
 1f2:	60 f3       	brcs	.-40     	; 0x1cc <main+0x2a>
	  }
	  if(s=9) break;
 1f4:	89 e0       	ldi	r24, 0x09	; 9
 1f6:	90 e0       	ldi	r25, 0x00	; 0
 1f8:	90 93 99 00 	sts	0x0099, r25
 1fc:	80 93 98 00 	sts	0x0098, r24
	} 
   while(1)
   {
	 shuru(i,(s-i)%16,1);
 200:	80 91 98 00 	lds	r24, 0x0098
 204:	90 91 99 00 	lds	r25, 0x0099
 208:	80 1b       	sub	r24, r16
 20a:	91 0b       	sbc	r25, r17
 20c:	8f 70       	andi	r24, 0x0F	; 15
 20e:	90 70       	andi	r25, 0x00	; 0
 210:	41 e0       	ldi	r20, 0x01	; 1
 212:	50 e0       	ldi	r21, 0x00	; 0
 214:	bc 01       	movw	r22, r24
 216:	c8 01       	movw	r24, r16
 218:	0e 94 47 00 	call	0x8e <shuru>
     i++;
 21c:	0f 5f       	subi	r16, 0xFF	; 255
 21e:	1f 4f       	sbci	r17, 0xFF	; 255
	 if(i==8)
 220:	08 30       	cpi	r16, 0x08	; 8
 222:	11 05       	cpc	r17, r1
 224:	69 f7       	brne	.-38     	; 0x200 <main+0x5e>
	 i=0;	
 226:	00 e0       	ldi	r16, 0x00	; 0
 228:	10 e0       	ldi	r17, 0x00	; 0
 22a:	ea cf       	rjmp	.-44     	; 0x200 <main+0x5e>

⌨️ 快捷键说明

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