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

📄 change.lss

📁 基于AVR单片机的程近期电话交换机源程序,可实现一拖四(一外线,四内线).
💻 LSS
📖 第 1 页 / 共 4 页
字号:

change.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000836  00000000  00000000  00000094  2**0
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  1 .data         00000004  00800060  00000836  000008ca  2**0
                  CONTENTS, ALLOC, LOAD, DATA
  2 .bss          0000001a  00800064  00800064  000008ce  2**0
                  ALLOC
  3 .noinit       00000000  0080007e  0080007e  000008ce  2**0
                  CONTENTS
  4 .eeprom       00000000  00810000  00810000  000008ce  2**0
                  CONTENTS
  5 .stab         00001440  00000000  00000000  000008d0  2**2
                  CONTENTS, READONLY, DEBUGGING
  6 .stabstr      00000ab0  00000000  00000000  00001d10  2**0
                  CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
   0:	12 c0       	rjmp	.+36     	; 0x26 <__ctors_end>
   2:	67 c2       	rjmp	.+1230   	; 0x4d2 <__vector_1>
   4:	83 c2       	rjmp	.+1286   	; 0x50c <__vector_2>
   6:	38 c1       	rjmp	.+624    	; 0x278 <__vector_3>
   8:	28 c0       	rjmp	.+80     	; 0x5a <__bad_interrupt>
   a:	27 c0       	rjmp	.+78     	; 0x5a <__bad_interrupt>
   c:	26 c0       	rjmp	.+76     	; 0x5a <__bad_interrupt>
   e:	25 c0       	rjmp	.+74     	; 0x5a <__bad_interrupt>
  10:	24 c0       	rjmp	.+72     	; 0x5a <__bad_interrupt>
  12:	23 c0       	rjmp	.+70     	; 0x5a <__bad_interrupt>
  14:	22 c0       	rjmp	.+68     	; 0x5a <__bad_interrupt>
  16:	21 c0       	rjmp	.+66     	; 0x5a <__bad_interrupt>
  18:	20 c0       	rjmp	.+64     	; 0x5a <__bad_interrupt>
  1a:	1f c0       	rjmp	.+62     	; 0x5a <__bad_interrupt>
  1c:	51 c0       	rjmp	.+162    	; 0xc0 <__vector_14>
  1e:	1d c0       	rjmp	.+58     	; 0x5a <__bad_interrupt>
  20:	1c c0       	rjmp	.+56     	; 0x5a <__bad_interrupt>
  22:	1b c0       	rjmp	.+54     	; 0x5a <__bad_interrupt>
  24:	1a c0       	rjmp	.+52     	; 0x5a <__bad_interrupt>

00000026 <__ctors_end>:
  26:	11 24       	eor	r1, r1
  28:	1f be       	out	0x3f, r1	; 63
  2a:	cf e5       	ldi	r28, 0x5F	; 95
  2c:	d4 e0       	ldi	r29, 0x04	; 4
  2e:	de bf       	out	0x3e, r29	; 62
  30:	cd bf       	out	0x3d, r28	; 61

00000032 <__do_copy_data>:
  32:	10 e0       	ldi	r17, 0x00	; 0
  34:	a0 e6       	ldi	r26, 0x60	; 96
  36:	b0 e0       	ldi	r27, 0x00	; 0
  38:	e6 e3       	ldi	r30, 0x36	; 54
  3a:	f8 e0       	ldi	r31, 0x08	; 8
  3c:	02 c0       	rjmp	.+4      	; 0x42 <.do_copy_data_start>

0000003e <.do_copy_data_loop>:
  3e:	05 90       	lpm	r0, Z+
  40:	0d 92       	st	X+, r0

00000042 <.do_copy_data_start>:
  42:	a4 36       	cpi	r26, 0x64	; 100
  44:	b1 07       	cpc	r27, r17
  46:	d9 f7       	brne	.-10     	; 0x3e <.do_copy_data_loop>

00000048 <__do_clear_bss>:
  48:	10 e0       	ldi	r17, 0x00	; 0
  4a:	a4 e6       	ldi	r26, 0x64	; 100
  4c:	b0 e0       	ldi	r27, 0x00	; 0
  4e:	01 c0       	rjmp	.+2      	; 0x52 <.do_clear_bss_start>

00000050 <.do_clear_bss_loop>:
  50:	1d 92       	st	X+, r1

00000052 <.do_clear_bss_start>:
  52:	ae 37       	cpi	r26, 0x7E	; 126
  54:	b1 07       	cpc	r27, r17
  56:	e1 f7       	brne	.-8      	; 0x50 <.do_clear_bss_loop>
  58:	c2 c2       	rjmp	.+1412   	; 0x5de <main>

0000005a <__bad_interrupt>:
  5a:	d2 cf       	rjmp	.-92     	; 0x0 <__vectors>

0000005c <delay>:
 */
void
_delay_loop_2(uint16_t __count)
{
	__asm__ volatile (
  5c:	9c 01       	movw	r18, r24
  5e:	21 50       	subi	r18, 0x01	; 1
  60:	30 40       	sbci	r19, 0x00	; 0
  62:	8f ef       	ldi	r24, 0xFF	; 255
  64:	2f 3f       	cpi	r18, 0xFF	; 255
  66:	38 07       	cpc	r19, r24
  68:	29 f0       	breq	.+10     	; 0x74 <delay+0x18>
  6a:	88 ea       	ldi	r24, 0xA8	; 168
  6c:	97 e0       	ldi	r25, 0x07	; 7
  6e:	01 97       	sbiw	r24, 0x01	; 1
  70:	f1 f7       	brne	.-4      	; 0x6e <delay+0x12>
  72:	f5 cf       	rjmp	.-22     	; 0x5e <delay+0x2>
  74:	08 95       	ret

00000076 <s_ini>:


void s_ini(void)
{
 OSCCAL= 0xBF;
  76:	8f eb       	ldi	r24, 0xBF	; 191
  78:	81 bf       	out	0x31, r24	; 49
 PORTB = 0x2A;
  7a:	8a e2       	ldi	r24, 0x2A	; 42
  7c:	88 bb       	out	0x18, r24	; 24
 DDRB  = 0xff;
  7e:	8f ef       	ldi	r24, 0xFF	; 255
  80:	87 bb       	out	0x17, r24	; 23
 PORTC = 0x20;
  82:	80 e2       	ldi	r24, 0x20	; 32
  84:	85 bb       	out	0x15, r24	; 21
 DDRC  = 0x30;
  86:	80 e3       	ldi	r24, 0x30	; 48
  88:	84 bb       	out	0x14, r24	; 20
 PORTD = 0x00;
  8a:	12 ba       	out	0x12, r1	; 18
 DDRD  = 0x01;
  8c:	81 e0       	ldi	r24, 0x01	; 1
  8e:	81 bb       	out	0x11, r24	; 17
 
 MCUCR = 0x0E;		//INT1 raising edg cause intterupt, INT0 falling edg
  90:	8e e0       	ldi	r24, 0x0E	; 14
  92:	85 bf       	out	0x35, r24	; 53
 GICR  = 0xC0;		//enable INT1,INT0
  94:	90 ec       	ldi	r25, 0xC0	; 192
  96:	9b bf       	out	0x3b, r25	; 59
 
 ADCSRA= 0xED;		//enabel ADC, enable interrupt, ADCck=fck/128
  98:	8d ee       	ldi	r24, 0xED	; 237
  9a:	86 b9       	out	0x06, r24	; 6
 ADMUX = 0xc0;		//CH0
  9c:	97 b9       	out	0x07, r25	; 7
 
 TCCR2 = 0x0f;
  9e:	8f e0       	ldi	r24, 0x0F	; 15
  a0:	85 bd       	out	0x25, r24	; 37
 OCR2  = 77;		//timer for 10mS
  a2:	8d e4       	ldi	r24, 0x4D	; 77
  a4:	83 bd       	out	0x23, r24	; 35
 TIMSK = 0x80;		//enable intterrupt 
  a6:	80 e8       	ldi	r24, 0x80	; 128
  a8:	89 bf       	out	0x39, r24	; 57
 
  
 UCSRB = 0x00; 		//serial port setting
  aa:	1a b8       	out	0x0a, r1	; 10
 UCSRA = 0x00;
  ac:	1b b8       	out	0x0b, r1	; 11
 UCSRC = 0x80 | 0x06;
  ae:	86 e8       	ldi	r24, 0x86	; 134
  b0:	80 bd       	out	0x20, r24	; 32
 UBRRL = 51; 		//set baud rate lo		   baud rate=9600, fck=8.00MHz
  b2:	83 e3       	ldi	r24, 0x33	; 51
  b4:	89 b9       	out	0x09, r24	; 9
 UBRRH = 0x00; 		//set baud rate hi
  b6:	10 bc       	out	0x20, r1	; 32
 UCSRB = 0x08;      //enable to sent receive and 8 bits per bits//*/
  b8:	88 e0       	ldi	r24, 0x08	; 8
  ba:	8a b9       	out	0x0a, r24	; 10
 
 sei();  
  bc:	78 94       	sei
  be:	08 95       	ret

000000c0 <__vector_14>:
}

SIGNAL(SIG_ADC)		//adc interrupt
{
  c0:	1f 92       	push	r1
  c2:	0f 92       	push	r0
  c4:	0f b6       	in	r0, 0x3f	; 63
  c6:	0f 92       	push	r0
  c8:	11 24       	eor	r1, r1
  ca:	2f 93       	push	r18
  cc:	3f 93       	push	r19
  ce:	5f 93       	push	r21
  d0:	6f 93       	push	r22
  d2:	7f 93       	push	r23
  d4:	8f 93       	push	r24
  d6:	9f 93       	push	r25
  d8:	af 93       	push	r26
  da:	bf 93       	push	r27
 uint tmp;
 if(((ringtime<395)&&(ringtime>375))||((ringtime<270)&&(ringtime>250))
  dc:	80 91 60 00 	lds	r24, 0x0060
  e0:	90 91 61 00 	lds	r25, 0x0061
  e4:	8b 58       	subi	r24, 0x8B	; 139
  e6:	91 40       	sbci	r25, 0x01	; 1
  e8:	38 f4       	brcc	.+14     	; 0xf8 <__vector_14+0x38>
  ea:	80 91 60 00 	lds	r24, 0x0060
  ee:	90 91 61 00 	lds	r25, 0x0061
  f2:	88 57       	subi	r24, 0x78	; 120
  f4:	91 40       	sbci	r25, 0x01	; 1
  f6:	50 f5       	brcc	.+84     	; 0x14c <__vector_14+0x8c>
  f8:	80 91 60 00 	lds	r24, 0x0060
  fc:	90 91 61 00 	lds	r25, 0x0061
 100:	8e 50       	subi	r24, 0x0E	; 14
 102:	91 40       	sbci	r25, 0x01	; 1
 104:	38 f4       	brcc	.+14     	; 0x114 <__vector_14+0x54>
 106:	80 91 60 00 	lds	r24, 0x0060
 10a:	90 91 61 00 	lds	r25, 0x0061
 10e:	8b 3f       	cpi	r24, 0xFB	; 251
 110:	91 05       	cpc	r25, r1
 112:	e0 f4       	brcc	.+56     	; 0x14c <__vector_14+0x8c>
 114:	80 91 60 00 	lds	r24, 0x0060
 118:	90 91 61 00 	lds	r25, 0x0061
 11c:	81 39       	cpi	r24, 0x91	; 145
 11e:	91 05       	cpc	r25, r1
 120:	38 f4       	brcc	.+14     	; 0x130 <__vector_14+0x70>
 122:	80 91 60 00 	lds	r24, 0x0060
 126:	90 91 61 00 	lds	r25, 0x0061
 12a:	8e 37       	cpi	r24, 0x7E	; 126
 12c:	91 05       	cpc	r25, r1
 12e:	70 f4       	brcc	.+28     	; 0x14c <__vector_14+0x8c>
 130:	80 91 60 00 	lds	r24, 0x0060
 134:	90 91 61 00 	lds	r25, 0x0061
 138:	44 97       	sbiw	r24, 0x14	; 20
 13a:	08 f0       	brcs	.+2      	; 0x13e <__vector_14+0x7e>
 13c:	8d c0       	rjmp	.+282    	; 0x258 <__vector_14+0x198>
 13e:	80 91 60 00 	lds	r24, 0x0060
 142:	90 91 61 00 	lds	r25, 0x0061
 146:	89 2b       	or	r24, r25
 148:	09 f4       	brne	.+2      	; 0x14c <__vector_14+0x8c>
 14a:	86 c0       	rjmp	.+268    	; 0x258 <__vector_14+0x198>
	||((ringtime<145)&&(ringtime>125)) || ((ringtime<20)&&(ringtime>0)))	//铃响期间不进行摘机检测
   {
    adadd+=ADC;		//
 14c:	80 91 7c 00 	lds	r24, 0x007C
 150:	90 91 7d 00 	lds	r25, 0x007D
 154:	24 b1       	in	r18, 0x04	; 4
 156:	35 b1       	in	r19, 0x05	; 5
 158:	82 0f       	add	r24, r18
 15a:	93 1f       	adc	r25, r19
 15c:	90 93 7d 00 	sts	0x007D, r25
 160:	80 93 7c 00 	sts	0x007C, r24
    adcou--;
 164:	80 91 62 00 	lds	r24, 0x0062
 168:	81 50       	subi	r24, 0x01	; 1
 16a:	80 93 62 00 	sts	0x0062, r24
	
    if(adcou==0)		//完成ADC0,切换到ADC3
 16e:	20 91 62 00 	lds	r18, 0x0062
 172:	22 23       	and	r18, r18
 174:	b1 f4       	brne	.+44     	; 0x1a2 <__vector_14+0xe2>
      {
       adcou=240;
 176:	80 ef       	ldi	r24, 0xF0	; 240
 178:	80 93 62 00 	sts	0x0062, r24
	 
       ADMUX=0xC3;
 17c:	83 ec       	ldi	r24, 0xC3	; 195
 17e:	87 b9       	out	0x07, r24	; 7
	    if((adadd/50)>GATE)	//取结果
 180:	80 91 7c 00 	lds	r24, 0x007C
 184:	90 91 7d 00 	lds	r25, 0x007D
 188:	62 e3       	ldi	r22, 0x32	; 50
 18a:	70 e0       	ldi	r23, 0x00	; 0
 18c:	40 d3       	rcall	.+1664   	; 0x80e <__udivmodhi4>
 18e:	65 31       	cpi	r22, 0x15	; 21
 190:	71 05       	cpc	r23, r1
 192:	20 f0       	brcs	.+8      	; 0x19c <__vector_14+0xdc>
	       hu[3]=1;
 194:	81 e0       	ldi	r24, 0x01	; 1
 196:	80 93 7b 00 	sts	0x007B, r24
 19a:	60 c0       	rjmp	.+192    	; 0x25c <__vector_14+0x19c>
	    else
	       hu[3]=0;
 19c:	20 93 7b 00 	sts	0x007B, r18
 1a0:	5d c0       	rjmp	.+186    	; 0x25c <__vector_14+0x19c>
	   }
    else if(adcou==230)	//开始记录ADC3
 1a2:	80 91 62 00 	lds	r24, 0x0062
 1a6:	86 3e       	cpi	r24, 0xE6	; 230
 1a8:	09 f4       	brne	.+2      	; 0x1ac <__vector_14+0xec>
 1aa:	51 c0       	rjmp	.+162    	; 0x24e <__vector_14+0x18e>
       {
	    adadd=0;
	   }
     else if(adcou==180)	//完成ADC3,切换到ADC2
 1ac:	80 91 62 00 	lds	r24, 0x0062
 1b0:	84 3b       	cpi	r24, 0xB4	; 180
 1b2:	99 f4       	brne	.+38     	; 0x1da <__vector_14+0x11a>
       {
	    ADMUX=0xc2;
 1b4:	82 ec       	ldi	r24, 0xC2	; 194
 1b6:	87 b9       	out	0x07, r24	; 7
	    if((adadd/50)>GATE)	//取结果
 1b8:	80 91 7c 00 	lds	r24, 0x007C
 1bc:	90 91 7d 00 	lds	r25, 0x007D
 1c0:	62 e3       	ldi	r22, 0x32	; 50
 1c2:	70 e0       	ldi	r23, 0x00	; 0
 1c4:	24 d3       	rcall	.+1608   	; 0x80e <__udivmodhi4>
 1c6:	65 31       	cpi	r22, 0x15	; 21
 1c8:	71 05       	cpc	r23, r1
 1ca:	20 f0       	brcs	.+8      	; 0x1d4 <__vector_14+0x114>
	       hu[0]=1;
 1cc:	81 e0       	ldi	r24, 0x01	; 1
 1ce:	80 93 78 00 	sts	0x0078, r24
 1d2:	44 c0       	rjmp	.+136    	; 0x25c <__vector_14+0x19c>
	    else 
	       hu[0]=0;	    
 1d4:	10 92 78 00 	sts	0x0078, r1
 1d8:	41 c0       	rjmp	.+130    	; 0x25c <__vector_14+0x19c>
	   }
     else if(adcou==170)	//开始记录ADC2
 1da:	80 91 62 00 	lds	r24, 0x0062
 1de:	8a 3a       	cpi	r24, 0xAA	; 170
 1e0:	b1 f1       	breq	.+108    	; 0x24e <__vector_14+0x18e>
      {
	    adadd=0;
	   }
     else if(adcou==120)	//完成ADC2, 切换到ADC1
 1e2:	80 91 62 00 	lds	r24, 0x0062
 1e6:	88 37       	cpi	r24, 0x78	; 120
 1e8:	99 f4       	brne	.+38     	; 0x210 <__vector_14+0x150>
      {
	   ADMUX=0xc1;
 1ea:	81 ec       	ldi	r24, 0xC1	; 193
 1ec:	87 b9       	out	0x07, r24	; 7
	   if((adadd/50)>GATE)		//取结果
 1ee:	80 91 7c 00 	lds	r24, 0x007C
 1f2:	90 91 7d 00 	lds	r25, 0x007D
 1f6:	62 e3       	ldi	r22, 0x32	; 50
 1f8:	70 e0       	ldi	r23, 0x00	; 0
 1fa:	09 d3       	rcall	.+1554   	; 0x80e <__udivmodhi4>
 1fc:	65 31       	cpi	r22, 0x15	; 21
 1fe:	71 05       	cpc	r23, r1
 200:	20 f0       	brcs	.+8      	; 0x20a <__vector_14+0x14a>
	       hu[1]=1;
 202:	81 e0       	ldi	r24, 0x01	; 1
 204:	80 93 79 00 	sts	0x0079, r24
 208:	29 c0       	rjmp	.+82     	; 0x25c <__vector_14+0x19c>
       else 

⌨️ 快捷键说明

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