这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » DTMF 做过DTMF的帮帮俺吧

共3条 1/1 1 跳转至

DTMF 做过DTMF的帮帮俺吧

院士
2006-09-17 18:14:16     打赏
DTMF 做过DTMF的帮帮俺吧



关键词: 做过     帮帮     俺吧    

院士
2006-12-22 22:43:00     打赏
2楼
问 怎么把MT8888产生的音频信号耦合到电话线上啊
最好给个图啥的
坛子里的电路我都试了
不行啊

我现在是只要我的信号一接进电话线,然后就是挂断的信号音出来 1: 提供电路并调试成功的我们公司可以付给你报酬的

说话绝对算数 2: 容易 3: 是很容易的。 4: 你用另一部电话听声音类似于正常的电话即可,另检查你的发码是否正确。 5: 我用耳机听的拨号音是正确的但是我接上电话,一开始拨号就会挂断,或者没有任何信号音
也不知道为什么 6: 我还有个问题要问啊我产生的DTMF波形经过电桥以后会变化的啊,那还怎么拨号啊???
7: 参考电话机拨号电路高、低频群信号电平:-9、-7dB±2dB
失真度小于20dB
频偏小于1.5% 8: 我靠,给我整一天书看呢俺还真是不懂 9: 信号如果严重超标,交换机有这种反应.不是有声音就行了,最好有专用仪器测,也可用示波器测,同电话机的信号比较.
10: 示波器测出来的波形还是很好的就是标准的双音频信号 11: 我做过 12: 参考电话机拨号电路不能直接用电容耦合到线路,要经三极管直流耦合,这样经桥堆后才不失真,如果不想看书就请人搞吧. 13: 谢谢大家了 14: 详细点你接入后如果不拨号短时间不会出现忙音吧
一拨号出现忙音是首位号码合法吗
dtmf信号要很标准,否则总是错码的

DTMF的原理




DTMF(Double Tone MulitiFrequency,双音多频)作为实现电话号码快速可靠传输的一种技术,它具有很强的抗干扰能力和较高的传输速度,因此,可广泛用于电话通信系统中。但绝大部分是用作电话的音频拨号。另外,它也可以在数据通信系统中广泛地用来实现各种数据流和语音等信息的远程传输。

DTMF是用两个特定的单音频组合信号来代表数字信号以实现其功能的一种编码技术。两个单音频的频率不同,代表的数字或实现的功能也不同。这种电话机中通常有16个按键,其中有10个数字键0~9和6个功能键*、#、A、B、C、D。由于按照组合原理,一般应有8种不同的单音频信号。因此可采用的频率也有8种,故称之为多频,又因它采用从8种频率中任意抽出2种进行组合来进行编码,所以又称之为“8中取2”的编码技术。

根据CCITT的建议,国际上采用的多种频率为687Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz和1633Hz等8种。用这8种频率可形成16种不同的组合,从而代表16种不同的数字或功能键,具体组合见表1。

http://www.myradio168.name/doc/engineer/dtmf.html 15: 谢谢大家我已经做完了

菜鸟
2010-01-01 20:04:46     打赏
3楼
以下是我的程序:可以发送,接收有中断,但是读不到数,老是读的是发送的数,请教高手,谢谢!!!/*
sbit WR=P2^6;
sbit CS=P2^7;
sbit RS=P2^4;//RS0
sbit RD=P2^5;//RD
*/
/////////////////////////////////////////写控制RD=1,CS=0,RS=1,WR=0
void writemcu(unsigned char dataa)
{
RD=1;CS=1;RS=0;WR=1;
_nop_();_nop_();_nop_();
CS=0;RS=1;
_nop_();
WR=0;
_nop_();
P2=(P2&0xf0)|dataa;
_nop_();_nop_();
WR=1;
_nop_();
CS=1;RS=0;
_nop_();
WR=0;
}
/////////////////////////////////////////读状态RD=0,CS=0,RS=1,WR=1
unsigned char  ReadStatus(void)
{unsigned char DATA1;
  RD=1;CS=1;RS=0;WR=1;
  _nop_();  _nop_();
CS=0;RS=1;
_nop_();  
  RD=0;
_nop_();_nop_();  
DATA1=P2&0x0f;
_nop_();
RD=1;
_nop_();
CS=1;RS=0;
_nop_();_nop_();
RD=0;
return(DATA1);
}
/////////////////////////////////////////////读数据RD=0,CS=0,RS=0,WR=1
unsigned char read_data()
{
unsigned char DATA2;
RD=1;CS=1;RS=1;WR=1;
   _nop_();  _nop_();
CS=0;RS=0;  
_nop_();
RD=0;
_nop_(); _nop_();
DATA2=P2&0x0f;
_nop_();
RD=1;
_nop_();
CS=1;RS=1;
_nop_(); _nop_();
RD=0;
//}
//else
//DATA2=0xff;
return(DATA2);
}
///////////////////////////////////////////初始化
void   ini_mt8888(void)
{
unsigned char i;
delay_1ms(250);
i=ReadStatus();
writemcu(0x00);
writemcu(0x00);
writemcu(0x08);
writemcu(0x00);
i=ReadStatus();
writemcu(0x0d);//CRA
writemcu(0x00);//CRB
delay_1ms(150);
}
/////////////////////////////////////////////////发送数据程序RD=0,CS=0,RS=0,WR=0
void send_data(unsigned char datab)
{
RD=1;CS=1;RS=1;WR=1;
_nop_();_nop_();_nop_();
CS=0;RS=0;
_nop_();
  WR=0;
_nop_();
P2=(P2&0xf0)|datab;
_nop_();_nop_();
WR=1;
_nop_();
CS=1;RS=1;
_nop_();
WR=0;
}
/////////////////////////////////////////////////////主程序,P3^7接IRQ
void main()
{ unsigned char h;
  sys_ini();
timer0_init();
EA=1;
ini_mt8888();
delay_1ms(250);
while(1)
{
if(get_key()==0xef)
send_data(0x01);
else;
if((P3&0x80)!=0);
else
{P7=read_data();
ReadStatus();}
}
//////////////////////////////////////////////////////////////////////
急死人,请求高手指点!
感谢!!!!!!!!!!!!!!

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]