?? otelc1.c
字號:
uchar idata ToneNoneCounter ;
uchar idata ToneCounter ; //450HZ的個數(shù)
uchar idata ToneOtherCounter ;//不是450HZ的個數(shù)
uchar idata ToneTimeCounter ; //定時器到的個數(shù) 70ms采集一次
bit ToneFlag ; //是否檢測
uchar idata ToneKind ;// 線路音的種類
//0x30 忙音
//0x31 撥號音
//0x32 回鈴音
//0x33 記費信號
uchar SendDxFlag ;
void Phone_ToneCtrl(uchar Onoff)
{
ToneFlag = Onoff ;
ToneCounter = 0 ;
ToneTimeCounter = 0 ;
ToneOtherCounter = 0 ;
ToneNoneCounter = 0 ;
ToneKind = 0 ;
EA=0;
TH1 = 0;
TL1 = 0;
TMOD = (TMOD & 0x0F) | 0x50; /* 模式1,計數(shù)器*/
TR1 = 1 ;
EA = 1 ;
}
void Phone_ToneCheck() using 2
{
uchar counter ;
if(ToneFlag == FALSE) return ;
ToneTimeCounter ++ ;
if(ToneTimeCounter >=7)
{
TR1 = 0 ;
ToneTimeCounter = 0 ;
counter = TL1 ;
// SBUF = counter ;
if((counter>=29)&&(counter<=33))
{
ToneCounter ++ ;
ToneNoneCounter = 0 ;
ToneOtherCounter = 0 ;
if(ToneCounter>16)
{
ToneCounter = 0 ;
ToneKind = 0x31 ;
disp_buf = 0x0d ;
}
}
else
{
ToneOtherCounter++ ;
ToneNoneCounter++ ;
if(ToneNoneCounter>100)
{
ToneNoneCounter = 0 ;
ToneCounter = 0 ;
ToneKind = 0 ;
ToneOtherCounter = 0 ;
disp_buf = 0xff ;
}
if(ToneOtherCounter>1)
{
ToneOtherCounter = 0 ;
if((ToneCounter>=3)&&(ToneCounter<=10))
{
ToneNoneCounter = 0 ;
ToneKind = 0x30 ;
disp_buf = 0x0b ;
}
else if((ToneCounter>10)&&(ToneCounter<=16))
{
ToneNoneCounter = 0 ;
ToneKind = 0x32 ;
disp_buf = 0x0c ;
Huilingying_dingshi = 1 ;
}
ToneCounter = 0 ;
}
}
TR1 = 1 ;
TH1 = 0 ;
TL1 = 0 ;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -