📄 change.lss
字号:
while((num==test_hu(calln))&&(calln != test_hu(num))) //等等被叫接电话或主叫放下听筒
638: 81 2f mov r24, r17
63a: 99 df rcall .-206 ; 0x56e <test_hu>
63c: 08 17 cp r16, r24
63e: 21 f4 brne .+8 ; 0x648 <main+0x6a>
640: 80 2f mov r24, r16
642: 95 df rcall .-214 ; 0x56e <test_hu>
644: 18 17 cp r17, r24
646: c1 f7 brne .-16 ; 0x638 <main+0x5a>
{
}
*(ringflag+(calln-1))=0;//停止响铃
648: cd 58 subi r28, 0x8D ; 141
64a: df 4f sbci r29, 0xFF ; 255
64c: 18 82 st Y, r1
clr_decode(); //清除解码阵列
64e: 87 df rcall .-242 ; 0x55e <clr_decode>
if(calln==test_hu(num)) //被叫接电话
650: 80 2f mov r24, r16
652: 8d df rcall .-230 ; 0x56e <test_hu>
654: 18 17 cp r17, r24
656: 59 f4 brne .+22 ; 0x66e <main+0x90>
{
L_flash=2; //LED慢速闪烁
658: 82 e0 ldi r24, 0x02 ; 2
65a: 80 93 68 00 sts 0x0068, r24
while(test_hu(0)) //等待通话完毕
65e: 80 e0 ldi r24, 0x00 ; 0
660: 86 df rcall .-244 ; 0x56e <test_hu>
662: 88 23 and r24, r24
664: e1 f7 brne .-8 ; 0x65e <main+0x80>
{ //在这里加入多方通话功能
}
L_flash=3;
666: 83 e0 ldi r24, 0x03 ; 3
668: 80 93 68 00 sts 0x0068, r24
L1_c;
66c: c6 98 cbi 0x18, 6 ; 24
}
if(num!=test_hu(calln)) //主叫放下电话
66e: 81 2f mov r24, r17
670: 7e df rcall .-260 ; 0x56e <test_hu>
672: 08 17 cp r16, r24
674: 21 f0 breq .+8 ; 0x67e <main+0xa0>
{
L_flash=3; //停止LED闪烁
676: 83 e0 ldi r24, 0x03 ; 3
678: 80 93 68 00 sts 0x0068, r24
L1_c;
67c: c6 98 cbi 0x18, 6 ; 24
}
clr_decode(); //清除解码阵列
67e: 6f df rcall .-290 ; 0x55e <clr_decode>
}
if(decode[0]==9) //打外线条件
680: 80 91 6a 00 lds r24, 0x006A
684: 89 30 cpi r24, 0x09 ; 9
686: 09 f0 breq .+2 ; 0x68a <main+0xac>
688: 41 c0 rjmp .+130 ; 0x70c <main+0x12e>
{
delay(100); //延时, 不让'9'拨出去
68a: 84 e6 ldi r24, 0x64 ; 100
68c: 90 e0 ldi r25, 0x00 ; 0
68e: e6 dc rcall .-1588 ; 0x5c <delay>
relay_s; // 接通外线
690: 90 9a sbi 0x12, 0 ; 18
delay(100);
692: 84 e6 ldi r24, 0x64 ; 100
694: 90 e0 ldi r25, 0x00 ; 0
696: e2 dc rcall .-1596 ; 0x5c <delay>
while(test_hu(0))//等待听筒放下
698: 32 c0 rjmp .+100 ; 0x6fe <main+0x120>
{ //在这里加入多方通话功能
if((decode[2]==11)&&(decode[1]==8)&&
69a: 80 91 6c 00 lds r24, 0x006C
69e: 8b 30 cpi r24, 0x0B ; 11
6a0: 71 f5 brne .+92 ; 0x6fe <main+0x120>
6a2: 80 91 6b 00 lds r24, 0x006B
6a6: 88 30 cpi r24, 0x08 ; 8
6a8: 51 f5 brne .+84 ; 0x6fe <main+0x120>
6aa: 80 91 6a 00 lds r24, 0x006A
6ae: 88 23 and r24, r24
6b0: 31 f1 breq .+76 ; 0x6fe <main+0x120>
6b2: 80 91 6a 00 lds r24, 0x006A
6b6: 85 30 cpi r24, 0x05 ; 5
6b8: 10 f5 brcc .+68 ; 0x6fe <main+0x120>
6ba: 80 91 6a 00 lds r24, 0x006A
6be: 80 17 cp r24, r16
6c0: f1 f0 breq .+60 ; 0x6fe <main+0x120>
(decode[0]>0&&decode[0]<5&&decode[0]!=num))//拨号条件, 不能打自己
{
calln=decode[0]; //保存被叫机号
6c2: 10 91 6a 00 lds r17, 0x006A
*(ringflag+(calln-1))=1; //响铃
6c6: c1 2f mov r28, r17
6c8: dd 27 eor r29, r29
6ca: fe 01 movw r30, r28
6cc: ed 58 subi r30, 0x8D ; 141
6ce: ff 4f sbci r31, 0xFF ; 255
6d0: 81 e0 ldi r24, 0x01 ; 1
6d2: 80 83 st Z, r24
L_flash=1; //LED闪烁
6d4: 80 93 68 00 sts 0x0068, r24
while((num==test_hu(calln))&&(calln != test_hu(num))) //等等被叫接电话或主叫放下听筒
6d8: 81 2f mov r24, r17
6da: 49 df rcall .-366 ; 0x56e <test_hu>
6dc: 08 17 cp r16, r24
6de: 21 f4 brne .+8 ; 0x6e8 <main+0x10a>
6e0: 80 2f mov r24, r16
6e2: 45 df rcall .-374 ; 0x56e <test_hu>
6e4: 18 17 cp r17, r24
6e6: c1 f7 brne .-16 ; 0x6d8 <main+0xfa>
{
}
*(ringflag+(calln-1))=0;//停止响铃
6e8: cd 58 subi r28, 0x8D ; 141
6ea: df 4f sbci r29, 0xFF ; 255
6ec: 18 82 st Y, r1
if(calln==test_hu(num)) //被叫接电话
6ee: 80 2f mov r24, r16
6f0: 3e df rcall .-388 ; 0x56e <test_hu>
6f2: 18 17 cp r17, r24
6f4: 19 f4 brne .+6 ; 0x6fc <main+0x11e>
{
L_flash=2; //LED慢速闪烁
6f6: 82 e0 ldi r24, 0x02 ; 2
6f8: 80 93 68 00 sts 0x0068, r24
}
clr_decode(); //清除解码阵列
6fc: 30 df rcall .-416 ; 0x55e <clr_decode>
6fe: 80 e0 ldi r24, 0x00 ; 0
700: 36 df rcall .-404 ; 0x56e <test_hu>
702: 88 23 and r24, r24
704: 51 f6 brne .-108 ; 0x69a <main+0xbc>
}
}
L1_c;
706: c6 98 cbi 0x18, 6 ; 24
relay_c; //返回内线
708: 90 98 cbi 0x12, 0 ; 18
clr_decode(); //清除解码阵列
70a: 29 df rcall .-430 ; 0x55e <clr_decode>
70c: 80 e0 ldi r24, 0x00 ; 0
70e: 2f df rcall .-418 ; 0x56e <test_hu>
710: 08 17 cp r16, r24
712: 09 f4 brne .+2 ; 0x716 <main+0x138>
714: 76 cf rjmp .-276 ; 0x602 <main+0x24>
}
}
L2_c;
716: c7 98 cbi 0x18, 7 ; 24
L_flash=0;
718: 10 92 68 00 sts 0x0068, r1
lock(0); //解除封锁
71c: 80 e0 ldi r24, 0x00 ; 0
71e: 43 df rcall .-378 ; 0x5a6 <lock>
720: 63 cf rjmp .-314 ; 0x5e8 <main+0xa>
}
else //没分机拿起
{
if(ringcou>5) //有外线电话
722: 80 91 67 00 lds r24, 0x0067
726: 86 30 cpi r24, 0x06 ; 6
728: 08 f4 brcc .+2 ; 0x72c <main+0x14e>
72a: 5e cf rjmp .-324 ; 0x5e8 <main+0xa>
{
L1_s; //点亮L1
72c: c6 9a sbi 0x18, 6 ; 24
out_ringflag=1;
72e: 81 e0 ldi r24, 0x01 ; 1
730: 80 93 64 00 sts 0x0064, r24
num1=0;
while(num1==0&&ringcou>5) //等等有人接电话
{
num1=test_hu(0); //等待num1接到了电话
734: 80 91 67 00 lds r24, 0x0067
738: 86 30 cpi r24, 0x06 ; 6
73a: 28 f0 brcs .+10 ; 0x746 <main+0x168>
73c: 80 e0 ldi r24, 0x00 ; 0
73e: 17 df rcall .-466 ; 0x56e <test_hu>
740: 08 2f mov r16, r24
742: 88 23 and r24, r24
744: b9 f3 breq .-18 ; 0x734 <main+0x156>
}
L1_c;
746: c6 98 cbi 0x18, 6 ; 24
if(num1) //有人接电话
748: 00 23 and r16, r16
74a: 09 f4 brne .+2 ; 0x74e <main+0x170>
74c: 4b c0 rjmp .+150 ; 0x7e4 <main+0x206>
{
L_flash=3;
74e: 83 e0 ldi r24, 0x03 ; 3
750: 80 93 68 00 sts 0x0068, r24
L2_s;
754: c7 9a sbi 0x18, 7 ; 24
out_ringflag=0; //清除标志
756: 10 92 64 00 sts 0x0064, r1
RG1_c;RG2_c;RG3_c;RG4_c; //取消所有响铃
75a: ac 98 cbi 0x15, 4 ; 21
75c: ad 9a sbi 0x15, 5 ; 21
75e: c4 98 cbi 0x18, 4 ; 24
760: c5 9a sbi 0x18, 5 ; 24
762: c2 98 cbi 0x18, 2 ; 24
764: c3 9a sbi 0x18, 3 ; 24
766: c0 98 cbi 0x18, 0 ; 24
768: c1 9a sbi 0x18, 1 ; 24
lock(num1); //封锁其它机
76a: 80 2f mov r24, r16
76c: 1c df rcall .-456 ; 0x5a6 <lock>
relay_s; //接到外线,和对方通话
76e: 90 9a sbi 0x12, 0 ; 18
while(test_hu(0))//等待听筒放下
770: 32 c0 rjmp .+100 ; 0x7d6 <main+0x1f8>
{ //在这里加入多方通话功能
if((decode[2]==11)&&(decode[1]==8)&&
772: 80 91 6c 00 lds r24, 0x006C
776: 8b 30 cpi r24, 0x0B ; 11
778: 71 f5 brne .+92 ; 0x7d6 <main+0x1f8>
77a: 80 91 6b 00 lds r24, 0x006B
77e: 88 30 cpi r24, 0x08 ; 8
780: 51 f5 brne .+84 ; 0x7d6 <main+0x1f8>
782: 80 91 6a 00 lds r24, 0x006A
786: 88 23 and r24, r24
788: 31 f1 breq .+76 ; 0x7d6 <main+0x1f8>
78a: 80 91 6a 00 lds r24, 0x006A
78e: 85 30 cpi r24, 0x05 ; 5
790: 10 f5 brcc .+68 ; 0x7d6 <main+0x1f8>
792: 80 91 6a 00 lds r24, 0x006A
796: 80 17 cp r24, r16
798: f1 f0 breq .+60 ; 0x7d6 <main+0x1f8>
(decode[0]>0&&decode[0]<5&&decode[0]!=num1))//拨号条件, 不能打自己
{
calln=decode[0]; //保存被叫机号
79a: 10 91 6a 00 lds r17, 0x006A
*(ringflag+(calln-1))=1; //响铃
79e: c1 2f mov r28, r17
7a0: dd 27 eor r29, r29
7a2: fe 01 movw r30, r28
7a4: ed 58 subi r30, 0x8D ; 141
7a6: ff 4f sbci r31, 0xFF ; 255
7a8: 81 e0 ldi r24, 0x01 ; 1
7aa: 80 83 st Z, r24
L_flash=1; //LED闪烁
7ac: 80 93 68 00 sts 0x0068, r24
while((num1==test_hu(calln))&&(calln != test_hu(num1))) //等等被叫接电话或主叫放下听筒
7b0: 81 2f mov r24, r17
7b2: dd de rcall .-582 ; 0x56e <test_hu>
7b4: 08 17 cp r16, r24
7b6: 21 f4 brne .+8 ; 0x7c0 <main+0x1e2>
7b8: 80 2f mov r24, r16
7ba: d9 de rcall .-590 ; 0x56e <test_hu>
7bc: 18 17 cp r17, r24
7be: c1 f7 brne .-16 ; 0x7b0 <main+0x1d2>
{
}
*(ringflag+(calln-1))=0;//停止响铃
7c0: cd 58 subi r28, 0x8D ; 141
7c2: df 4f sbci r29, 0xFF ; 255
7c4: 18 82 st Y, r1
if(calln==test_hu(num1)) //被叫接电话
7c6: 80 2f mov r24, r16
7c8: d2 de rcall .-604 ; 0x56e <test_hu>
7ca: 18 17 cp r17, r24
7cc: 19 f4 brne .+6 ; 0x7d4 <main+0x1f6>
{
L_flash=2; //LED慢速闪烁
7ce: 82 e0 ldi r24, 0x02 ; 2
7d0: 80 93 68 00 sts 0x0068, r24
}
clr_decode(); //清除解码阵列
7d4: c4 de rcall .-632 ; 0x55e <clr_decode>
7d6: 80 e0 ldi r24, 0x00 ; 0
7d8: ca de rcall .-620 ; 0x56e <test_hu>
7da: 88 23 and r24, r24
7dc: 51 f6 brne .-108 ; 0x772 <main+0x194>
}
}
relay_c; // 返回内线
7de: 90 98 cbi 0x12, 0 ; 18
lock(0); //解除封锁
7e0: e2 de rcall .-572 ; 0x5a6 <lock>
7e2: 0a c0 rjmp .+20 ; 0x7f8 <main+0x21a>
}
else //主叫放下听筒
{
out_ringflag=0; //清除标志
7e4: 00 93 64 00 sts 0x0064, r16
RG1_c;RG2_c;RG3_c;RG4_c; //取消所有响铃
7e8: ac 98 cbi 0x15, 4 ; 21
7ea: ad 9a sbi 0x15, 5 ; 21
7ec: c4 98 cbi 0x18, 4 ; 24
7ee: c5 9a sbi 0x18, 5 ; 24
7f0: c2 98 cbi 0x18, 2 ; 24
7f2: c3 9a sbi 0x18, 3 ; 24
7f4: c0 98 cbi 0x18, 0 ; 24
7f6: c1 9a sbi 0x18, 1 ; 24
}
ringcou=0;
7f8: 10 92 67 00 sts 0x0067, r1
ringcoutime=0;
7fc: 10 92 66 00 sts 0x0066, r1
800: 10 92 65 00 sts 0x0065, r1
L1_c;
804: c6 98 cbi 0x18, 6 ; 24
L2_c;
806: c7 98 cbi 0x18, 7 ; 24
L_flash=0; //LED flash
808: 10 92 68 00 sts 0x0068, r1
80c: ed ce rjmp .-550 ; 0x5e8 <main+0xa>
0000080e <__udivmodhi4>:
80e: aa 1b sub r26, r26
810: bb 1b sub r27, r27
812: 51 e1 ldi r21, 0x11 ; 17
814: 07 c0 rjmp .+14 ; 0x824 <__udivmodhi4_ep>
00000816 <__udivmodhi4_loop>:
816: aa 1f adc r26, r26
818: bb 1f adc r27, r27
81a: a6 17 cp r26, r22
81c: b7 07 cpc r27, r23
81e: 10 f0 brcs .+4 ; 0x824 <__udivmodhi4_ep>
820: a6 1b sub r26, r22
822: b7 0b sbc r27, r23
00000824 <__udivmodhi4_ep>:
824: 88 1f adc r24, r24
826: 99 1f adc r25, r25
828: 5a 95 dec r21
82a: a9 f7 brne .-22 ; 0x816 <__udivmodhi4_loop>
82c: 80 95 com r24
82e: 90 95 com r25
830: bc 01 movw r22, r24
832: cd 01 movw r24, r26
834: 08 95 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -