📄 mt8880.txt
字号:
/**************************************************************************************/ MT8880相关程序
sbit DTMFOK = P3^4; //DTMF转换完成信号,中断方式,
INT1 sbit HZ450OK = P3^2; //450Hz话线信号,用来识别忙音等
sbit CS8880 = P1^6; //8880片选
sbit CLK8880 = P1^7; //8880时钟
sbit RW8880 = P2^4; //8880读写控制,0写
sbit RS8880 = P2^5; //8880积存器选择,0数据寄存器,1命令寄存器或者状态寄存器 /*************************************************************************************/
uchar Rd8880Da(void)
/*************************************************************************************/
名称:uchar Rd8880Da(void) 功能:发出读MT8880数据命令a 入口: 出口:读出的数据 调用:返回后必须在延时后调用CL8880 ****************************************************************************************
{unsigned char rdata;
CS8880 = 1;
RS8880 = 0;
RW8880 = 1;
CLK8880 = 0;
P2 = 0x0FF;
RS8880 = 0;
RW8880 = 1;
CS8880 = 0; //
Delay(5,5);
CLK8880 = 1;
Delay(1,1);
rdata = P2&0x0f;
CLK8880 = 0; //
Delay(10,50);
RW8880 = 0; //
Delay(10,50);
Cl8880();
return ( rdata);
}
uchar Rd8880St(void)
/***************************************************************************************
名称:uchar Rd8880St(void); 功能:发出读MT8880状态 入口: 出口:读出的状态 调用:返回后必须在延时后调用CL8880 ****************************************************************************************
{unsigned char rstu;
CS8880 = 1;
RS8880 = 0;
RW8880 = 1;
CLK8880 = 0;
P2 = 0x0FF;
RS8880 = 1;
W8880 = 1;
CS8880 = 0; //
Delay(100,50);
CLK8880 = 1;
Delay(1,1);
rstu = P2&0x0f;
CLK8880 = 0; //
Delay(100,50);
RW8880 = 0; //
Delay(50,50);
Cl8880();
return ( rstu );
}
void Wt8880Da(uchar da)
/***************************************************************************************名称:uvoid Wt8880Da(uchar da) 功能:写8880数据 入口:da,低四位 出口: 调用:返回后必须在延时后调用CL8880 ****************************************************************************************
{ P2 = 0x0FF;
P2 = da | 0x0F0;
CS8880 = 1;
RS8880 = 0;
RW8880 = 1;
CLK8880 = 0;
RS8880 = 0;
RW8880 = 0;
CS8880 = 0; //
Delay(100,50);
CLK8880 = 1;
Delay(1,1);
CLK8880 = 0; //
Delay(100,50); //
RW8880 = 1; //
Delay(50,50);
Cl8880();
}
void Wt8880Cr(uchar da)
/***************************************************************************************名称: void Wt8880Cr(uchar da); 功能:写8880命令字寄存器 入口:da,低四位 出口: 调用:返回后必须在延时后调用CL8880 ****************************************************************************************
{ P2 = 0x0FF;
P2 = da | 0x0F0;
CS8880 = 1;
RS8880 = 0;
RW8880 = 1;
CLK8880 = 0;
RS8880 = 1;
RW8880 = 0;
CS8880 = 0; //
Delay(100,50);
CLK8880 = 1;
Delay(1,1);
CLK8880 = 0; //
Delay(100,50); //
RW8880 = 1; //
Delay(50,50);
Cl8880();
}
void Cl8880(void)
/***************************************************************************************名称: void Cl8880(void) 功能:关闭8880 入口: da,低四位 出口: 调用: ****************************************************************************************{ P2 = 0x0FF; CS8880 = 1; CLK8880 = 1; } void Init8880(void) /***************************************************************************************名称:
void Init8880(void) 功能:初始化MT8880 入口: 出口: 调用: 定义: ****************************************************************************************
{ MT8880DATA = 0;
Wt8880Cr(MT8880DATA); //
Delay(50,100); //
延时 Cl8880();
MT8880DATA = TOUT + MC*2 + IRQ *4 +RS * 8; Wt8880Cr(MT8880DATA); //
Delay(50,100); //延时
Cl8880();
MT8880DATA = BURST + TEST*2 + S_C *4 +C_R * 8;
Wt8880Cr(MT8880DATA); //
Delay(50,100); //
延时 Cl8880();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -