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

📄 main.lst

📁 基于AVR单片机的程近期电话交换机源程序,可实现一拖四(一外线,四内线).
💻 LST
📖 第 1 页 / 共 5 页
字号:
 512 01cc 9091 0000 		lds r25,(adadd)+1
 513 01d0 62E3      		ldi r22,lo8(50)
 514 01d2 70E0      		ldi r23,hi8(50)
 515 01d4 00D0      		rcall __udivmodhi4
 516 01d6 6531      		cpi r22,21
 517 01d8 7105      		cpc r23,__zero_reg__
 518 01da 20F0      		brlo .L35
 149:main.c        **** 	       hu[2]=1;
 520               	.LM55:
 521 01dc 81E0      		ldi r24,lo8(1)
 522 01de 8093 0000 		sts hu+2,r24
 523 01e2 0EC0      		rjmp .L10
 524               	.L35:
 150:main.c        **** 	    else
 151:main.c        **** 	       hu[2]=0;
 526               	.LM56:
 527 01e4 1092 0000 		sts hu+2,__zero_reg__
 528 01e8 0BC0      		rjmp .L10
 529               	.L34:
 152:main.c        **** 	   }
 153:main.c        ****      else if(adcou==50)	//开始记录ADC0
 531               	.LM57:
 532 01ea 8091 0000 		lds r24,adcou
 533 01ee 8233      		cpi r24,lo8(50)
 534 01f0 39F4      		brne .L10
 535               	.L40:
 154:main.c        ****        {
 155:main.c        **** 	    adadd=0;
 537               	.LM58:
 538 01f2 1092 0000 		sts (adadd)+1,__zero_reg__
 539 01f6 1092 0000 		sts adadd,__zero_reg__
 540 01fa 02C0      		rjmp .L10
 541               	.L11:
 156:main.c        **** 	   }
 157:main.c        ****   }
 158:main.c        ****  else
 159:main.c        ****    tmp=ADC;		
 543               	.LM59:
 544 01fc 84B1      		in r24,36-0x20
 545 01fe 95B1      		in r25,(36)+1-0x20
 546               	.L10:
 547               	/* epilogue: frame size=0 */
 548 0200 BF91      		pop r27
 549 0202 AF91      		pop r26
 550 0204 9F91      		pop r25
 551 0206 8F91      		pop r24
 552 0208 7F91      		pop r23
 553 020a 6F91      		pop r22
 554 020c 5F91      		pop r21
 555 020e 3F91      		pop r19
 556 0210 2F91      		pop r18
 557 0212 0F90      		pop __tmp_reg__
 558 0214 0FBE      		out __SREG__,__tmp_reg__
 559 0216 0F90      		pop __tmp_reg__
 560 0218 1F90      		pop __zero_reg__
 561 021a 1895      		reti
 562               	/* epilogue end (size=14) */
 563               	/* function __vector_14 size 224 (196) */
 568               	.Lscope2:
 570               	.global	__vector_3
 572               	__vector_3:
 160:main.c        **** }
 161:main.c        **** 
 162:main.c        **** SIGNAL(SIG_OUTPUT_COMPARE2)		//time 2 compare interrupt  for display 10mS
 163:main.c        **** {
 574               	.LM60:
 575               	/* prologue: frame size=0 */
 576 021c 1F92      		push __zero_reg__
 577 021e 0F92      		push __tmp_reg__
 578 0220 0FB6      		in __tmp_reg__,__SREG__
 579 0222 0F92      		push __tmp_reg__
 580 0224 1124      		clr __zero_reg__
 581 0226 2F93      		push r18
 582 0228 5F93      		push r21
 583 022a 6F93      		push r22
 584 022c 7F93      		push r23
 585 022e 8F93      		push r24
 586 0230 9F93      		push r25
 587 0232 AF93      		push r26
 588 0234 BF93      		push r27
 589               	/* prologue end (size=13) */
 164:main.c        ****  if(ringcoutime)		//外线振铃计时器
 591               	.LM61:
 592 0236 8091 0000 		lds r24,ringcoutime
 593 023a 9091 0000 		lds r25,(ringcoutime)+1
 594 023e 892B      		or r24,r25
 595 0240 99F0      		breq .L42
 165:main.c        ****     {
 166:main.c        **** 	 ringcoutime--;
 597               	.LM62:
 598 0242 8091 0000 		lds r24,ringcoutime
 599 0246 9091 0000 		lds r25,(ringcoutime)+1
 600 024a 0197      		sbiw r24,1
 601 024c 9093 0000 		sts (ringcoutime)+1,r25
 602 0250 8093 0000 		sts ringcoutime,r24
 167:main.c        **** 	 if(ringcoutime==0)		//时间到
 604               	.LM63:
 605 0254 8091 0000 		lds r24,ringcoutime
 606 0258 9091 0000 		lds r25,(ringcoutime)+1
 607 025c 892B      		or r24,r25
 608 025e 21F4      		brne .L42
 168:main.c        **** 	    {
 169:main.c        **** 	     ringcou=0;
 610               	.LM64:
 611 0260 1092 0000 		sts ringcou,__zero_reg__
 170:main.c        **** 		 out_ringflag=0;
 613               	.LM65:
 614 0264 1092 0000 		sts out_ringflag,__zero_reg__
 615               	.L42:
 171:main.c        **** 		}
 172:main.c        **** 	}
 173:main.c        **** 	
 174:main.c        ****  ringtime--;
 617               	.LM66:
 618 0268 8091 0000 		lds r24,ringtime
 619 026c 9091 0000 		lds r25,(ringtime)+1
 620 0270 0197      		sbiw r24,1
 621 0272 9093 0000 		sts (ringtime)+1,r25
 622 0276 8093 0000 		sts ringtime,r24
 175:main.c        ****  if(ringtime==0)
 624               	.LM67:
 625 027a 8091 0000 		lds r24,ringtime
 626 027e 9091 0000 		lds r25,(ringtime)+1
 627 0282 892B      		or r24,r25
 628 0284 31F4      		brne .L44
 176:main.c        ****    {
 177:main.c        ****     ringtime=500;
 630               	.LM68:
 631 0286 84EF      		ldi r24,lo8(500)
 632 0288 91E0      		ldi r25,hi8(500)
 633 028a 9093 0000 		sts (ringtime)+1,r25
 634 028e 8093 0000 		sts ringtime,r24
 635               	.L44:
 178:main.c        ****    }
 179:main.c        ****  if((ringtime==500)||(ringtime==440))	//内线振铃,响0.4S,停0.2S, 响0.4S 停4S
 637               	.LM69:
 638 0292 8091 0000 		lds r24,ringtime
 639 0296 9091 0000 		lds r25,(ringtime)+1
 640 029a 845F      		subi r24,lo8(500)
 641 029c 9140      		sbci r25,hi8(500)
 642 029e 39F0      		breq .L46
 643 02a0 8091 0000 		lds r24,ringtime
 644 02a4 9091 0000 		lds r25,(ringtime)+1
 645 02a8 885B      		subi r24,lo8(440)
 646 02aa 9140      		sbci r25,hi8(440)
 647 02ac C9F4      		brne .L45
 648               	.L46:
 180:main.c        ****    {
 181:main.c        ****     if(ringflag[0])		//查标志位,看是否需要响铃
 650               	.LM70:
 651 02ae 8091 0000 		lds r24,ringflag
 652 02b2 8823      		tst r24
 653 02b4 11F0      		breq .L47
 182:main.c        **** 	    RG1_s;
 655               	.LM71:
 656 02b6 AD98      		cbi 53-0x20,5
 657 02b8 AC9A      		sbi 53-0x20,4
 658               	.L47:
 183:main.c        ****     if(ringflag[1])
 660               	.LM72:
 661 02ba 8091 0000 		lds r24,ringflag+1
 662 02be 8823      		tst r24
 663 02c0 11F0      		breq .L48
 184:main.c        **** 	    RG2_s;
 665               	.LM73:
 666 02c2 C598      		cbi 56-0x20,5
 667 02c4 C49A      		sbi 56-0x20,4
 668               	.L48:
 185:main.c        **** 	if(ringflag[2])
 670               	.LM74:
 671 02c6 8091 0000 		lds r24,ringflag+2
 672 02ca 8823      		tst r24
 673 02cc 11F0      		breq .L49
 186:main.c        **** 	    RG3_s;
 675               	.LM75:
 676 02ce C398      		cbi 56-0x20,3
 677 02d0 C29A      		sbi 56-0x20,2
 678               	.L49:
 187:main.c        **** 	if(ringflag[3])
 680               	.LM76:
 681 02d2 8091 0000 		lds r24,ringflag+3
 682 02d6 8823      		tst r24
 683 02d8 49F1      		breq .L51
 188:main.c        **** 	    RG4_s;
 685               	.LM77:
 686 02da C198      		cbi 56-0x20,1
 687 02dc C09A      		sbi 56-0x20,0
 688 02de 26C0      		rjmp .L51
 689               	.L45:
 189:main.c        ****    }
 190:main.c        ****  else if((ringtime==460)||(ringtime==400))	//关闭所有振铃
 691               	.LM78:
 692 02e0 8091 0000 		lds r24,ringtime
 693 02e4 9091 0000 		lds r25,(ringtime)+1
 694 02e8 8C5C      		subi r24,lo8(460)
 695 02ea 9140      		sbci r25,hi8(460)
 696 02ec 39F0      		breq .L53
 697 02ee 8091 0000 		lds r24,ringtime
 698 02f2 9091 0000 		lds r25,(ringtime)+1
 699 02f6 8059      		subi r24,lo8(400)
 700 02f8 9140      		sbci r25,hi8(400)
 701 02fa C1F4      		brne .L51
 702               	.L53:
 191:main.c        ****     {
 192:main.c        **** 	 if(ringflag[0])		//只有启动了的振铃才关, 
 704               	.LM79:
 705 02fc 8091 0000 		lds r24,ringflag
 706 0300 8823      		tst r24
 707 0302 11F0      		breq .L54
 193:main.c        **** 	    RG1_c;
 709               	.LM80:
 710 0304 AC98      		cbi 53-0x20,4
 711 0306 AD9A      		sbi 53-0x20,5
 712               	.L54:
 194:main.c        ****      if(ringflag[1])
 714               	.LM81:
 715 0308 8091 0000 		lds r24,ringflag+1
 716 030c 8823      		tst r24
 717 030e 11F0      		breq .L55
 195:main.c        **** 	    RG2_c;
 719               	.LM82:
 720 0310 C498      		cbi 56-0x20,4
 721 0312 C59A      		sbi 56-0x20,5
 722               	.L55:
 196:main.c        **** 	 if(ringflag[2])
 724               	.LM83:
 725 0314 8091 0000 		lds r24,ringflag+2
 726 0318 8823      		tst r24
 727 031a 11F0      		breq .L56
 197:main.c        **** 	    RG3_c;
 729               	.LM84:
 730 031c C298      		cbi 56-0x20,2
 731 031e C39A      		sbi 56-0x20,3
 732               	.L56:
 198:main.c        **** 	 if(ringflag[3])
 734               	.LM85:
 735 0320 8091 0000 		lds r24,ringflag+3
 736 0324 8823      		tst r24
 737 0326 11F0      		breq .L51
 199:main.c        **** 	    RG4_c;
 739               	.LM86:
 740 0328 C098      		cbi 56-0x20,0
 741 032a C19A      		sbi 56-0x20,1
 742               	.L51:
 200:main.c        ****     }
 201:main.c        ****  if(out_ringflag)		//外线振铃标志
 744               	.LM87:
 745 032c 8091 0000 		lds r24,out_ringflag
 746 0330 8823      		tst r24
 747 0332 09F4      		brne .+2
 748 0334 4EC0      		rjmp .L58
 202:main.c        ****     {
 203:main.c        **** 	 if(ringtime==500)		//#1响铃
 750               	.LM88:
 751 0336 8091 0000 		lds r24,ringtime
 752 033a 9091 0000 		lds r25,(ringtime)+1
 753 033e 845F      		subi r24,lo8(500)
 754 0340 9140      		sbci r25,hi8(500)
 755 0342 19F4      		brne .L59
 204:main.c        **** 	    {
 205:main.c        **** 		 RG1_s;
 757               	.LM89:
 758 0344 AD98      		cbi 53-0x20,5
 759 0346 AC9A      		sbi 53-0x20,4
 760 0348 44C0      		rjmp .L58
 761               	.L59:
 206:main.c        **** 		}
 207:main.c        **** 	 else if(ringtime==400)	//#1关闭响铃
 763               	.LM90:
 764 034a 8091 0000 		lds r24,ringtime
 765 034e 9091 0000 		lds r25,(ringtime)+1
 766 0352 8059      		subi r24,lo8(400)
 767 0354 9140      		sbci r25,hi8(400)
 768 0356 19F4      		brne .L61
 208:main.c        **** 	    {
 209:main.c        **** 		 RG1_c;
 770               	.LM91:
 771 0358 AC98      		cbi 53-0x20,4
 772 035a AD9A      		sbi 53-0x20,5
 773 035c 3AC0      		rjmp .L58
 774               	.L61:
 210:main.c        **** 		}
 211:main.c        ****      else if(ringtime==375)	//#2响铃
 776               	.LM92:
 777 035e 8091 0000 		lds r24,ringtime
 778 0362 9091 0000 		lds r25,(ringtime)+1
 779 0366 8757      		subi r24,lo8(375)
 780 0368 9140      		sbci r25,hi8(375)
 781 036a 19F4      		brne .L63
 212:main.c        **** 	    {
 213:main.c        **** 		 RG2_s;
 783               	.LM93:
 784 036c C598      		cbi 56-0x20,5
 785 036e C49A      		sbi 56-0x20,4
 786 0370 30C0      		rjmp .L58
 787               	.L63:
 214:main.c        **** 		}
 215:main.c        **** 	 else if(ringtime==275)	//#2关闭响铃
 789               	.LM94:
 790 0372 8091 0000 		lds r24,ringtime
 791 0376 9091 0000 		lds r25,(ringtime)+1
 792 037a 8351      		subi r24,lo8(275)
 793 037c 9140      		sbci r25,hi8(275)
 794 037e 19F4      		brne .L65
 216:main.c        **** 	    {
 217:main.c        **** 		 RG2_c;
 796               	.LM95:
 797 0380 C498      		cbi 56-0x20,4
 798 0382 C59A      		sbi 56-0x20,5

⌨️ 快捷键说明

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