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

📄 main.lst

📁 基于AVR单片机的程近期电话交换机源程序,可实现一拖四(一外线,四内线).
💻 LST
📖 第 1 页 / 共 5 页
字号:
 799 0384 26C0      		rjmp .L58
 800               	.L65:
 218:main.c        **** 		}
 219:main.c        **** 	 else if(ringtime==250)	//#3响铃
 802               	.LM96:
 803 0386 8091 0000 		lds r24,ringtime
 804 038a 9091 0000 		lds r25,(ringtime)+1
 805 038e 8A3F      		cpi r24,250
 806 0390 9105      		cpc r25,__zero_reg__
 807 0392 19F4      		brne .L67
 220:main.c        **** 	    {
 221:main.c        **** 		 RG3_s;
 809               	.LM97:
 810 0394 C398      		cbi 56-0x20,3
 811 0396 C29A      		sbi 56-0x20,2
 812 0398 1CC0      		rjmp .L58
 813               	.L67:
 222:main.c        **** 		}
 223:main.c        **** 	 else if(ringtime==150)	//#3关闭响铃
 815               	.LM98:
 816 039a 8091 0000 		lds r24,ringtime
 817 039e 9091 0000 		lds r25,(ringtime)+1
 818 03a2 8639      		cpi r24,150
 819 03a4 9105      		cpc r25,__zero_reg__
 820 03a6 19F4      		brne .L69
 224:main.c        **** 	    {
 225:main.c        **** 		 RG3_c;
 822               	.LM99:
 823 03a8 C298      		cbi 56-0x20,2
 824 03aa C39A      		sbi 56-0x20,3
 825 03ac 12C0      		rjmp .L58
 826               	.L69:
 226:main.c        **** 		}
 227:main.c        **** 	 else if(ringtime==125)	//#4响铃
 828               	.LM100:
 829 03ae 8091 0000 		lds r24,ringtime
 830 03b2 9091 0000 		lds r25,(ringtime)+1
 831 03b6 8D37      		cpi r24,125
 832 03b8 9105      		cpc r25,__zero_reg__
 833 03ba 19F4      		brne .L71
 228:main.c        **** 	    {
 229:main.c        **** 		 RG4_s;
 835               	.LM101:
 836 03bc C198      		cbi 56-0x20,1
 837 03be C09A      		sbi 56-0x20,0
 838 03c0 08C0      		rjmp .L58
 839               	.L71:
 230:main.c        **** 		}
 231:main.c        **** 	 else if(ringtime==25)		//#4关闭响铃
 841               	.LM102:
 842 03c2 8091 0000 		lds r24,ringtime
 843 03c6 9091 0000 		lds r25,(ringtime)+1
 844 03ca 4997      		sbiw r24,25
 845 03cc 11F4      		brne .L58
 232:main.c        **** 	    {
 233:main.c        **** 		 RG4_c;
 847               	.LM103:
 848 03ce C098      		cbi 56-0x20,0
 849 03d0 C19A      		sbi 56-0x20,1
 850               	.L58:
 234:main.c        **** 		}
 235:main.c        **** 	}
 236:main.c        ****  
 237:main.c        ****  
 238:main.c        ****  
 239:main.c        ****  if(L_flash==0)			//L2 flash	电源指示
 852               	.LM104:
 853 03d2 8091 0000 		lds r24,L_flash
 854 03d6 8823      		tst r24
 855 03d8 B9F4      		brne .L74
 240:main.c        ****      {
 241:main.c        **** 	  if(ringtime%100==0)
 857               	.LM105:
 858 03da 8091 0000 		lds r24,ringtime
 859 03de 9091 0000 		lds r25,(ringtime)+1
 860 03e2 64E6      		ldi r22,lo8(100)
 861 03e4 70E0      		ldi r23,hi8(100)
 862 03e6 00D0      		rcall __udivmodhi4
 863 03e8 892B      		or r24,r25
 864 03ea 11F4      		brne .L75
 242:main.c        **** 	      L2_s;
 866               	.LM106:
 867 03ec C79A      		sbi 56-0x20,7
 868 03ee 28C0      		rjmp .L78
 869               	.L75:
 243:main.c        **** 	  else if(ringtime%100==80)
 871               	.LM107:
 872 03f0 8091 0000 		lds r24,ringtime
 873 03f4 9091 0000 		lds r25,(ringtime)+1
 874 03f8 64E6      		ldi r22,lo8(100)
 875 03fa 70E0      		ldi r23,hi8(100)
 876 03fc 00D0      		rcall __udivmodhi4
 877 03fe 8035      		cpi r24,80
 878 0400 9105      		cpc r25,__zero_reg__
 879 0402 F1F4      		brne .L78
 244:main.c        **** 	      L2_c;
 881               	.LM108:
 882 0404 C798      		cbi 56-0x20,7
 883 0406 1CC0      		rjmp .L78
 884               	.L74:
 245:main.c        ****      }		
 246:main.c        ****  else if(L_flash==1)		//LED flash fast
 886               	.LM109:
 887 0408 8091 0000 		lds r24,L_flash
 888 040c 8130      		cpi r24,lo8(1)
 889 040e 39F4      		brne .L79
 247:main.c        ****     {
 248:main.c        **** 	 if((ringtime%15)==0)
 891               	.LM110:
 892 0410 8091 0000 		lds r24,ringtime
 893 0414 9091 0000 		lds r25,(ringtime)+1
 894 0418 6FE0      		ldi r22,lo8(15)
 895 041a 70E0      		ldi r23,hi8(15)
 896 041c 0AC0      		rjmp .L87
 897               	.L79:
 249:main.c        **** 	     L1_i;
 250:main.c        ****     }  
 251:main.c        ****  else if(L_flash==2)	//LED flash slow
 899               	.LM111:
 900 041e 8091 0000 		lds r24,L_flash
 901 0422 8230      		cpi r24,lo8(2)
 902 0424 69F4      		brne .L78
 252:main.c        ****      {
 253:main.c        **** 	  if((ringtime%50)==0)
 904               	.LM112:
 905 0426 8091 0000 		lds r24,ringtime
 906 042a 9091 0000 		lds r25,(ringtime)+1
 907 042e 62E3      		ldi r22,lo8(50)
 908 0430 70E0      		ldi r23,hi8(50)
 909               	.L87:
 910 0432 00D0      		rcall __udivmodhi4
 911 0434 892B      		or r24,r25
 912 0436 21F4      		brne .L78
 254:main.c        **** 	     L1_i;
 914               	.LM113:
 915 0438 88B3      		in r24,56-0x20
 916 043a 90E4      		ldi r25,lo8(64)
 917 043c 8927      		eor r24,r25
 918 043e 88BB      		out 56-0x20,r24
 919               	.L78:
 255:main.c        **** 	 }
 256:main.c        ****  if(lms)
 921               	.LM114:
 922 0440 8091 0000 		lds r24,lms
 923 0444 8823      		tst r24
 924 0446 51F0      		breq .L41
 257:main.c        ****    {
 258:main.c        ****     lms--;
 926               	.LM115:
 927 0448 8091 0000 		lds r24,lms
 928 044c 8150      		subi r24,lo8(-(-1))
 929 044e 8093 0000 		sts lms,r24
 259:main.c        **** 	if(lms==0)
 931               	.LM116:
 932 0452 8091 0000 		lds r24,lms
 933 0456 8823      		tst r24
 934 0458 09F4      		brne .L41
 260:main.c        **** 	   L1_c;		//time up turn off led
 936               	.LM117:
 937 045a C698      		cbi 56-0x20,6
 938               	.L41:
 939               	/* epilogue: frame size=0 */
 940 045c BF91      		pop r27
 941 045e AF91      		pop r26
 942 0460 9F91      		pop r25
 943 0462 8F91      		pop r24
 944 0464 7F91      		pop r23
 945 0466 6F91      		pop r22
 946 0468 5F91      		pop r21
 947 046a 2F91      		pop r18
 948 046c 0F90      		pop __tmp_reg__
 949 046e 0FBE      		out __SREG__,__tmp_reg__
 950 0470 0F90      		pop __tmp_reg__
 951 0472 1F90      		pop __zero_reg__
 952 0474 1895      		reti
 953               	/* epilogue end (size=13) */
 954               	/* function __vector_3 size 310 (284) */
 956               	.Lscope3:
 958               	.global	__vector_1
 960               	__vector_1:
 261:main.c        ****    }
 262:main.c        **** } 
 263:main.c        **** 
 264:main.c        **** SIGNAL(SIG_INTERRUPT0)		//外线振铃
 265:main.c        **** {
 962               	.LM118:
 963               	/* prologue: frame size=0 */
 964 0476 1F92      		push __zero_reg__
 965 0478 0F92      		push __tmp_reg__
 966 047a 0FB6      		in __tmp_reg__,__SREG__
 967 047c 0F92      		push __tmp_reg__
 968 047e 1124      		clr __zero_reg__
 969 0480 8F93      		push r24
 970 0482 9F93      		push r25
 971               	/* prologue end (size=7) */
 266:main.c        ****  if(ringcou<10)
 973               	.LM119:
 974 0484 8091 0000 		lds r24,ringcou
 975 0488 8A30      		cpi r24,lo8(10)
 976 048a 28F4      		brsh .L89
 267:main.c        ****      ringcou++;
 978               	.LM120:
 979 048c 8091 0000 		lds r24,ringcou
 980 0490 8F5F      		subi r24,lo8(-(1))
 981 0492 8093 0000 		sts ringcou,r24
 982               	.L89:
 268:main.c        **** 	 
 269:main.c        ****  ringcoutime=500;			//设定为5S
 984               	.LM121:
 985 0496 84EF      		ldi r24,lo8(500)
 986 0498 91E0      		ldi r25,hi8(500)
 987 049a 9093 0000 		sts (ringcoutime)+1,r25
 988 049e 8093 0000 		sts ringcoutime,r24
 989               	/* epilogue: frame size=0 */
 990 04a2 9F91      		pop r25
 991 04a4 8F91      		pop r24
 992 04a6 0F90      		pop __tmp_reg__
 993 04a8 0FBE      		out __SREG__,__tmp_reg__
 994 04aa 0F90      		pop __tmp_reg__
 995 04ac 1F90      		pop __zero_reg__
 996 04ae 1895      		reti
 997               	/* epilogue end (size=7) */
 998               	/* function __vector_1 size 29 (15) */
 1000               	.Lscope4:
 1002               	.global	__vector_2
 1004               	__vector_2:
 270:main.c        **** }
 271:main.c        **** 
 272:main.c        **** 
 273:main.c        **** SIGNAL(SIG_INTERRUPT1)		//DTMF decode sussess cause this interrup
 274:main.c        **** {
 1006               	.LM122:
 1007               	/* prologue: frame size=0 */
 1008 04b0 1F92      		push __zero_reg__
 1009 04b2 0F92      		push __tmp_reg__
 1010 04b4 0FB6      		in __tmp_reg__,__SREG__
 1011 04b6 0F92      		push __tmp_reg__
 1012 04b8 1124      		clr __zero_reg__
 1013 04ba 8F93      		push r24
 1014 04bc 9F93      		push r25
 1015 04be AF93      		push r26
 1016 04c0 BF93      		push r27
 1017 04c2 EF93      		push r30
 1018 04c4 FF93      		push r31
 1019               	/* prologue end (size=11) */
 275:main.c        ****   uchar i;
 276:main.c        ****   lms=12;			//turn on led for 120mS
 1021               	.LM123:
 1022 04c6 8CE0      		ldi r24,lo8(12)
 1023 04c8 8093 0000 		sts lms,r24
 277:main.c        ****   L1_s;
 1025               	.LM124:
 1026 04cc C69A      		sbi 56-0x20,6
 278:main.c        ****   for(i=9;i;i--)		//保存最近十次解码结果
 1028               	.LM125:
 1029 04ce 99E0      		ldi r25,lo8(9)
 1030 04d0 A0E0      		ldi r26,lo8(decode+9)
 1031 04d2 B0E0      		ldi r27,hi8(decode+9)
 1032               	.L94:
 279:main.c        ****     {
 280:main.c        **** 	 decode[i]=decode[i-1];
 1034               	.LM126:
 1035 04d4 FD01      		movw r30,r26
 1036 04d6 3197      		sbiw r30,1
 1037 04d8 8081      		ld r24,Z
 1038 04da 8C93      		st X,r24
 1040               	.LM127:
 1041 04dc 9150      		subi r25,lo8(-(-1))
 1042 04de DF01      		movw r26,r30
 1043 04e0 C9F7      		brne .L94
 281:main.c        **** 	}
 282:main.c        ****   decode[0]=PIND>>4;	//读解码结果
 1045               	.LM128:
 1046 04e2 80B3      		in r24,48-0x20
 1047 04e4 8295      		swap r24
 1048 04e6 8F70      		andi r24,0x0f
 1049 04e8 8093 0000 		sts decode,r24
 1050               	/* epilogue: frame size=0 */
 1051 04ec FF91      		pop r31
 1052 04ee EF91      		pop r30
 1053 04f0 BF91      		pop r27
 1054 04f2 AF91      		pop r26
 1055 04f4 9F91      		pop r25
 1056 04f6 8F91      		pop r24
 1057 04f8 0F90      		pop __tmp_reg__
 1058 04fa 0FBE      		out __SREG__,__tmp_reg__
 1059 04fc 0F90      		pop __tmp_reg__
 1060 04fe 1F90      		pop __zero_reg__
 1061 0500 1895      		reti
 1062               	/* epilogue end (size=11) */
 1063               	/* function __vector_2 size 42 (20) */
 1068               	.Lscope5:
 1070               	.global	clr_decode
 1072               	clr_decode:
 283:main.c        ****   
 284:main.c        **** }	
 285:main.c        **** 
 286:main.c        **** void clr_decode(void)	//解码数组全部填0
 287:main.c        **** {
 1074               	.LM129:
 1075               	/* prologue: frame size=0 */
 1076               	/* prologue end (size=0) */
 1077 0502 E0E0      		ldi r30,lo8(decode)
 1078 0504 F0E0      		ldi r31,hi8(decode)
 1079 0506 89E0      		ldi r24,lo8(9)
 1080               	.L101:
 288:main.c        ****  uchar i;
 289:main.c        ****  for(i=0;i<10;i++)
 290:main.c        ****    decode[i]=0;

⌨️ 快捷键说明

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