声明:下面的文章不是李迟写的,是李迟的队友小郭写的,我一字没改,发表在此,是得到他同意的。因为我们两个是一个团队的,所以无所谓谁写的啦!
哇哈!成功喽!DTMF信号终于被我检测出来了,这可是一个了不起的成就啊!什么是DTMF信号,我给你解释一番,你就这道我有多牛啦……啊哈!
闲话休说,话归正题。DTMF为英文daul tone multi frequecy 的缩写,通常翻译为双音多频,双音多频由高频群和低频群组成,高低频群各包含4个频率。一个高频信号和一个低频信号叠加组成一个组合信号,代表一个数字。DTMF信令有16个编码,分别是10个数字键0~9和6个功能键*、#、A、B、C、D。
双音多频信号(DTMF),电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。它最初是贝尔实验室发明的,其目的是为了自动完成长途呼叫。
………………
DTMF有那些应用呢?我给出一个简单的例子,看家听题咯:这是大家在生活中都经常接触到的,不知道你是否留意?平常我们有事没事就拿起手机拨打10086,一会手机传来一个婉转的声音:按1查询话费,按2了解积分,按3查询手机归属地…………然后我们按下1,那边就传来你手机的话费清单……就此打住!我倒是要想了:对方如何知道我按下1号键呢,而不是2号键。你是否也有这种想法,有吗?我们一起来研究一下吧!
其实这就是所谓的DTMF,当我们按下键盘时,就会有相应的DTMF信号发射出去,一共有16个编码,现在我们的手机键盘一般只有12个为:1、2、3、4、5、6、7、8、9、*和#,少了4个:A、B、C和D。
我说的你明白吗?有兴趣的话,call我吧,我们一起来探讨,不过这个过程可是很辛苦的哦,看家请听:
最初我也不懂这个像星星一样的东西,百度了很久都没有得到满意的结果,我还csdn了一救助,悬赏100!等了几天没有反应,后来终于有一个跟帖,他却说这事不能实现的!晕死我!实现无奈,我叫小力帮我在百度sos了一下,不是到现在有没有得到答案,还是感谢他,特别要感谢他在这方面给我的支持,不过好像请过他吃饭了^-^,还有鸣谢late lee,小海,峰子,大师以及看家你!
后来我是不抱希望了,真的想放弃,可是前天基地ceo莅临,召开大会,给我们来一个下马威……实在哭笑不得(S.H.E)……最后百度下载了几个datasheet的pdf,硬着头皮强忍看了下去,幸亏有金山词霸帮忙,说起这事,自愧啊!李迟总是欺负我的英语不好!嘿嘿,老子不发挥你帮我是病猫呀!现在连datasheet我都看懂啦,以后还有谁感欺负我,六级我还要过呢!
不过真正说起来还有一段路子……
现在把我的预期作品秀秀给大家看,慢慢欣赏哈,有何见解请留言~没有异议鼓掌通过!
图1:SIM卡,DTMF检测模块,TDMF信号灯(有5盏,另外一排的那盏不算,也就是4盏,显示的是二进制,2的4次方等于16,也就是16个DTMF编码,和上文说的一样)
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
图2:用串口调试精灵初始化GSM模块,显示OK,成功!
图3:拨打电话(AT指令为ATD<电话号码>),我当场挂掉,显示为忙(busy)
图4:(真家伙来啦!)我拨电话,显示有来电(ring),指令ATA,显示OK,证明已接通!
图5:(这才是好样的),我按下1号键,DTMF信号指示灯,理所当然的显示0001(即是1)
下面是对应表,H为亮,L为灭(OE即是最上面那盏灯,由于一闪即过,拍不下来,
d0~d3就是一排四个灯)
图6:接着我按下2,信号灯就显示0010(二进制,即为2)
图7:好玩!我在按下9,这下显示1001。
图8:太过瘾啦,如果我要显示1100,那就得按下#号键
图9:我要显示0101,于是我按下5号键,果然如此
不演示啦,电话费贵呀,没钱了……,欢迎走进迟思堂工作室,我们的队员是:小郭,李迟。
用户1702496 2015-7-15 14:50
用户63676 2009-12-30 16:28
用户145921 2009-6-16 22:37
用户540599 2009-6-15 15:59
用户145921 2009-4-5 21:05
用户1003172 2009-4-4 22:22
用户1003172 2009-4-4 22:21