📄 mnet.lss
字号:
mFSKDATA= tFSKPhoneNumber[i];
402: ec 2f mov r30, r28
404: ff 27 eor r31, r31
406: e0 5a subi r30, 0xA0 ; 160
408: ff 4f sbci r31, 0xFF ; 255
40a: d0 80 ld r13, Z
mCS-=mFSKDATA;
40c: cd 18 sub r12, r13
mTxBit = 1;
40e: 31 e0 ldi r19, 0x01 ; 1
410: e3 2e mov r14, r19
412: 27 e0 ldi r18, 0x07 ; 7
414: f2 2e mov r15, r18
for (j =0; j<8; j++)
{
if ( mFSKDATA & mTxBit)
416: 8d 2d mov r24, r13
418: 8e 21 and r24, r14
41a: 29 f0 breq .+10 ; 0x426 <fnTxFSKCallID+0x90>
{
OCR1A = LogicOne;
41c: 85 e0 ldi r24, 0x05 ; 5
41e: 9d e0 ldi r25, 0x0D ; 13
420: 9b bd out 0x2b, r25 ; 43
422: 8a bd out 0x2a, r24 ; 42
424: 08 c0 rjmp .+16 ; 0x436 <fnTxFSKCallID+0xa0>
fnSFSKBit();
}
else
{
OCR1A = LogicZero;
426: 0a e1 ldi r16, 0x1A ; 26
428: 17 e0 ldi r17, 0x07 ; 7
42a: 1b bd out 0x2b, r17 ; 43
42c: 0a bd out 0x2a, r16 ; 42
fnSFSKBit();
42e: 0e 94 bc 01 call 0x378 <fnSFSKBit>
OCR1A = LogicZero;
432: 1b bd out 0x2b, r17 ; 43
434: 0a bd out 0x2a, r16 ; 42
fnSFSKBit();
436: 0e 94 bc 01 call 0x378 <fnSFSKBit>
}
mTxBit <<=1;
43a: ee 0c add r14, r14
43c: fa 94 dec r15
43e: f7 fe sbrs r15, 7
440: ea cf rjmp .-44 ; 0x416 <fnTxFSKCallID+0x80>
}
OCR1A = LogicOne;
442: 85 e0 ldi r24, 0x05 ; 5
444: 9d e0 ldi r25, 0x0D ; 13
446: 9b bd out 0x2b, r25 ; 43
448: 8a bd out 0x2a, r24 ; 42
fnSFSKBit();
44a: 0e 94 bc 01 call 0x378 <fnSFSKBit>
44e: cf 5f subi r28, 0xFF ; 255
450: cb 30 cpi r28, 0x0B ; 11
452: 68 f2 brcs .-102 ; 0x3ee <fnTxFSKCallID+0x58>
}
OCR1A = LogicZero;
454: 0a e1 ldi r16, 0x1A ; 26
456: 17 e0 ldi r17, 0x07 ; 7
458: 1b bd out 0x2b, r17 ; 43
45a: 0a bd out 0x2a, r16 ; 42
fnSFSKBit();
45c: 0e 94 bc 01 call 0x378 <fnSFSKBit>
OCR1A = LogicZero;
460: 1b bd out 0x2b, r17 ; 43
462: 0a bd out 0x2a, r16 ; 42
fnSFSKBit();
464: 0e 94 bc 01 call 0x378 <fnSFSKBit>
mFSKDATA= mCS;
mTxBit = 1;
468: 91 e0 ldi r25, 0x01 ; 1
46a: e9 2e mov r14, r25
46c: 87 e0 ldi r24, 0x07 ; 7
46e: f8 2e mov r15, r24
for (j =0; j<8; j++)
{
if ( mFSKDATA & mTxBit)
470: 8c 2d mov r24, r12
472: 8e 21 and r24, r14
474: 29 f0 breq .+10 ; 0x480 <fnTxFSKCallID+0xea>
{
OCR1A = LogicOne;
476: 85 e0 ldi r24, 0x05 ; 5
478: 9d e0 ldi r25, 0x0D ; 13
47a: 9b bd out 0x2b, r25 ; 43
47c: 8a bd out 0x2a, r24 ; 42
47e: 08 c0 rjmp .+16 ; 0x490 <fnTxFSKCallID+0xfa>
fnSFSKBit();
}
else
{
OCR1A = LogicZero;
480: 0a e1 ldi r16, 0x1A ; 26
482: 17 e0 ldi r17, 0x07 ; 7
484: 1b bd out 0x2b, r17 ; 43
486: 0a bd out 0x2a, r16 ; 42
fnSFSKBit();
488: 0e 94 bc 01 call 0x378 <fnSFSKBit>
OCR1A = LogicZero;
48c: 1b bd out 0x2b, r17 ; 43
48e: 0a bd out 0x2a, r16 ; 42
fnSFSKBit();
490: 0e 94 bc 01 call 0x378 <fnSFSKBit>
}
mTxBit <<=1;
494: ee 0c add r14, r14
496: fa 94 dec r15
498: f7 fe sbrs r15, 7
49a: ea cf rjmp .-44 ; 0x470 <fnTxFSKCallID+0xda>
}
OCR1A = LogicOne;
49c: 85 e0 ldi r24, 0x05 ; 5
49e: 9d e0 ldi r25, 0x0D ; 13
4a0: 9b bd out 0x2b, r25 ; 43
4a2: 8a bd out 0x2a, r24 ; 42
fnSFSKBit();
4a4: 0e 94 bc 01 call 0x378 <fnSFSKBit>
4a8: cf 91 pop r28
4aa: 1f 91 pop r17
4ac: 0f 91 pop r16
4ae: ff 90 pop r15
4b0: ef 90 pop r14
4b2: df 90 pop r13
4b4: cf 90 pop r12
4b6: 08 95 ret
000004b8 <fnOSCRingFK>:
}
/**********************************/
/***********振铃*************/
void fnOSCRingFK(void)//振铃声,5秒断续,即1秒送、4秒断
{
4b8: 1f 93 push r17
4ba: cf 93 push r28
unsigned char i,mRot;
mRot=1;
4bc: 11 e0 ldi r17, 0x01 ; 1
if(ExtTelRingState)
4be: 60 91 ad 00 lds r22, 0x00AD
4c2: 20 91 a9 00 lds r18, 0x00A9
4c6: 66 23 and r22, r22
4c8: 09 f4 brne .+2 ; 0x4cc <fnOSCRingFK+0x14>
4ca: 41 c0 rjmp .+130 ; 0x54e <fnOSCRingFK+0x96>
{
if (ExtTelRingState^mExtTelRSTSav) // if Ring is just start
4cc: 62 17 cp r22, r18
4ce: 81 f0 breq .+32 ; 0x4f0 <fnOSCRingFK+0x38>
{
FSKFlag=1; //内部来电显示标志
4d0: 10 93 b1 00 sts 0x00B1, r17
for(i=0;i<cExtTelNum;i++)
4d4: c0 e0 ldi r28, 0x00 ; 0
{
if( !(ExtTelRingState & mRot) )
4d6: 40 91 ad 00 lds r20, 0x00AD
4da: 41 23 and r20, r17
4dc: 09 f0 breq .+2 ; 0x4e0 <fnOSCRingFK+0x28>
{
Writesoundway(SigCallID,i,OFF); //连接响铃
}
else
{
Writesoundway(SigCallID,i,ON); //连接响铃
4de: 4f ef ldi r20, 0xFF ; 255
4e0: 6c 2f mov r22, r28
4e2: 83 e0 ldi r24, 0x03 ; 3
4e4: 0e 94 73 03 call 0x6e6 <Writesoundway>
}
mRot<<=1;
4e8: 11 0f add r17, r17
4ea: cf 5f subi r28, 0xFF ; 255
4ec: c6 30 cpi r28, 0x06 ; 6
4ee: 98 f3 brcs .-26 ; 0x4d6 <fnOSCRingFK+0x1e>
}
}
timeover_RingFK++;
4f0: 80 91 8f 00 lds r24, 0x008F
4f4: 90 91 90 00 lds r25, 0x0090
4f8: 01 96 adiw r24, 0x01 ; 1
4fa: 90 93 90 00 sts 0x0090, r25
4fe: 80 93 8f 00 sts 0x008F, r24
if(timeover_RingFK==1000)
502: 23 e0 ldi r18, 0x03 ; 3
504: 88 3e cpi r24, 0xE8 ; 232
506: 92 07 cpc r25, r18
508: c9 f4 brne .+50 ; 0x53c <fnOSCRingFK+0x84>
{
ClrBit(PORTD,OSCRingFK);
50a: 92 98 cbi 0x12, 2 ; 18
if(!OutsideRingCheck && FSKFlag) //内部来电显示,避开外部来电显示
50c: c0 91 76 00 lds r28, 0x0076
510: cc 23 and r28, r28
512: 09 f0 breq .+2 ; 0x516 <fnOSCRingFK+0x5e>
514: 3d c0 rjmp .+122 ; 0x590 <fnOSCRingFK+0xd8>
516: 80 91 b1 00 lds r24, 0x00B1
51a: 88 23 and r24, r24
51c: c9 f1 breq .+114 ; 0x590 <fnOSCRingFK+0xd8>
{
FSKFlag=0;
51e: c0 93 b1 00 sts 0x00B1, r28
Writesoundway(SigCallID,cX_Music,ON);
522: 4f ef ldi r20, 0xFF ; 255
524: 66 e0 ldi r22, 0x06 ; 6
526: 83 e0 ldi r24, 0x03 ; 3
528: 0e 94 73 03 call 0x6e6 <Writesoundway>
fnTxFSKCallID();
52c: 0e 94 cb 01 call 0x396 <fnTxFSKCallID>
Writesoundway(SigCallID,cX_Music,OFF);
530: 4c 2f mov r20, r28
532: 66 e0 ldi r22, 0x06 ; 6
534: 83 e0 ldi r24, 0x03 ; 3
536: 0e 94 73 03 call 0x6e6 <Writesoundway>
53a: 2a c0 rjmp .+84 ; 0x590 <fnOSCRingFK+0xd8>
}
}
else if(timeover_RingFK>=5000)
53c: 88 58 subi r24, 0x88 ; 136
53e: 93 41 sbci r25, 0x13 ; 19
540: 38 f1 brcs .+78 ; 0x590 <fnOSCRingFK+0xd8>
{
SetBit(PORTD,OSCRingFK);
542: 92 9a sbi 0x12, 2 ; 18
timeover_RingFK=0;
544: 10 92 90 00 sts 0x0090, r1
548: 10 92 8f 00 sts 0x008F, r1
54c: 21 c0 rjmp .+66 ; 0x590 <fnOSCRingFK+0xd8>
}
}
else // No Ring Request
{
ClrBit(PORTD,OSCRingFK);
54e: 92 98 cbi 0x12, 2 ; 18
timeover_RingFK=5000;
550: 88 e8 ldi r24, 0x88 ; 136
552: 93 e1 ldi r25, 0x13 ; 19
554: 90 93 90 00 sts 0x0090, r25
558: 80 93 8f 00 sts 0x008F, r24
if(mExtTelRSTSav ||(mExtTelSCheckSav^ExtTelStateCheck))
55c: 22 23 and r18, r18
55e: 31 f4 brne .+12 ; 0x56c <fnOSCRingFK+0xb4>
560: 90 91 b0 00 lds r25, 0x00B0
564: 80 91 86 00 lds r24, 0x0086
568: 98 17 cp r25, r24
56a: 91 f0 breq .+36 ; 0x590 <fnOSCRingFK+0xd8>
{
for(i=0;i<cExtTelNum;i++)
56c: c6 2f mov r28, r22
{
if(!(ExtTelStateCheck & mRot) && !(ExtTelFlashState & mRot))//挂机
56e: 80 91 86 00 lds r24, 0x0086
572: 81 23 and r24, r17
574: 49 f4 brne .+18 ; 0x588 <fnOSCRingFK+0xd0>
576: 80 91 b5 00 lds r24, 0x00B5
57a: 81 23 and r24, r17
57c: 29 f4 brne .+10 ; 0x588 <fnOSCRingFK+0xd0>
{
Writesoundway(SigCallID,i,ON); //连接响铃
57e: 4f ef ldi r20, 0xFF ; 255
580: 6c 2f mov r22, r28
582: 83 e0 ldi r24, 0x03 ; 3
584: 0e 94 73 03 call 0x6e6 <Writesoundway>
}
mRot<<= 1;
588: 11 0f add r17, r17
58a: cf 5f subi r28, 0xFF ; 255
58c: c6 30 cpi r28, 0x06 ; 6
58e: 78 f3 brcs .-34 ; 0x56e <fnOSCRingFK+0xb6>
}
}
}
mExtTelSCheckSav =ExtTelStateCheck;
590: 80 91 86 00 lds r24, 0x0086
594: 80 93 b0 00 sts 0x00B0, r24
mExtTelRSTSav = ExtTelRingState;
598: 80 91 ad 00 lds r24, 0x00AD
59c: 80 93 a9 00 sts 0x00A9, r24
5a0: cf 91 pop r28
5a2: 1f 91 pop r17
5a4: 08 95 ret
000005a6 <System_init>:
}
void System_init(void) //系统初始化
{
5a6: 1f 93 push r17
double __tmp = ((F_CPU) / 4e3) * __ms;
if (__tmp < 1.0)
__ticks = 1;
else if (__tmp > 65535)
__ticks = 0; /* i.e. 65536 */
5a8: e0 e0 ldi r30, 0x00 ; 0
5aa: f0 e0 ldi r31, 0x00 ; 0
5ac: cf 01 movw r24, r30
5ae: 01 97 sbiw r24, 0x01 ; 1
5b0: f1 f7 brne .-4 ; 0x5ae <System_init+0x8>
_delay_ms(1000);
DDRA=0b00000000; //PA7:D7 PA6:D6 PA5:D5 PA4:D4 PA3:D3 PA2:D2 PA1:D1 PA0:D0
5b2: 1a ba out 0x1a, r1 ; 26
PORTA=0b11111111;
5b4: 1f ef ldi r17, 0xFF ; 255
5b6: 1b bb out 0x1b, r17 ; 27
DDRB=0b00010010; //PB4:HoldDoor PB3:TestFlag PB2:CheckDoorRing PB1:CallCenter PB0:CheckCenterHold
5b8: 82 e1 ldi r24, 0x12 ; 18
5ba: 87 bb out 0x17, r24 ; 23
PORTB=0b11111111;
5bc: 18 bb out 0x18, r17 ; 24
DDRC=0b01100111; //PC7: PC6:Line2_LedCtr PC5:Line1_LedCtr PC4:DTMF2_DV
5be: 87 e6 ldi r24, 0x67 ; 103
5c0: 84 bb out 0x14, r24 ; 20
PORTC=0b00011000; //PC3:DTMF1_DV PC2: EnDTMFCreate PC1:P17 PC0:Create10HZ
5c2: 88 e1 ldi r24, 0x18 ; 24
5c4: 85 bb out 0x15, r24 ; 21
DDRD=0b11111111; //PD7:Osc450HZ PD6:Storbe8816 PD5:Music PD4: Reset8816
5c6: 11 bb out 0x11, r17 ; 17
PORTD=0b10111000; //PD3:CheckHold_Ring PD2:OSCRingFK PD1:Playvoice PD0:Recordvoice
5c8: 88 eb ldi r24, 0xB8 ; 184
5ca: 82 bb out 0x12, r24 ; 18
// Time 0 Setting
TCCR0 = _BV(CS01)|_BV(CS00)|_BV(WGM01); //clkT2S/64 ( 来自预分频器)
5cc: 8b e0 ldi r24, 0x0B ; 11
5ce: 83 bf out 0x33, r24 ; 51
OCR0 = 125; // 64 * N = 1ms
5d0: 8d e7 ldi r24, 0x7D ; 125
5d2: 8c bf out 0x3c, r24 ; 60
TCNT0 =0;
5d4: 12 be out 0x32, r1 ; 50
// Time 1 PWM产生音乐
TCCR1A = _BV(COM1A0); //比较匹配时OC1A电平取反,10 bit PWM, using COM0A,PWM相位修正
5d6: 80 e4 ldi r24, 0x40 ; 64
5d8: 8f bd out 0x2f, r24 ; 47
TCCR1B = _BV(CS10)|_BV(WGM12); //clkT2S/1 ( 来自预分频器)
5da: 89 e0 ldi r24, 0x09 ; 9
5dc: 8e bd out 0x2e, r24 ; 46
//OCR1A = 4000000/450; // 64 * N = 80000000 1ms
TCNT1 =0;
5de: fd bd out 0x2d, r31 ; 45
5e0: ec bd out 0x2c, r30 ; 44
// Time 2 ,PWM产生450HZ频率
TCCR2 = _BV(COM20)|_BV(CS22)|_BV(CS20)|_BV(WGM21); //clkT2S/8 ( 来自预分频器)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -