📄 main.lst
字号:
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 + -