1 概述
由于双音多频DTMF信号" title="DTMF信号">DTMF信号具有抗干扰能力强、传输距离远、数据准确等特点,因而可广泛应用于通讯、遥控等领域。利用DTMF信号可实现双总线的远距离微机通讯" title="远距离微机通讯">远距离微机通讯,以完成控制或数据的传输。本文介绍采用DTMF信号发生芯片MT5087" title="MT5087">MT5087及接收芯片MT8870" title="MT8870">MT8870来实现与AT89C51单片机的硬件接口电路,该电路通过软件编程可实现远距离通讯,具有一定的应用价值。
2 DTMF信号发生器MT5087
MT5087是双音多频电话拨号器,通过该芯片可完成4×4矩阵编码" title="编码">编码。MT5087具有电源工作范围宽、输出电平可调、谐波失真小等特点。其引脚排列如图1所示。各引脚功能如下:
●VDD、VSS(1,6脚):电源端;
●C1~C4(3、4、5、9脚):内部具有下拉电阻的键盘比值向输入端;
●R1~R4(14~11脚):内部具有上拉电阻的键盘横向输入端;
●OSC1、OSC0(7,8脚):振荡器输入、输出端;
●TONE1(15脚):单音抑制输入端,为“0”时禁止单音输出;
●TONE0(16脚):双音频信号输出端,此端接内部NPN晶体管的发射极,外加接地电阻可构成射极输出器。
M5087的矩阵编码表如表1所列。
3 DTMF信号接收器MT8870
MT8870是双音多频接收芯片,可用来完成DTMF信号的接收、分离和译码;能输出由相应16和DTMF频率组合4位并行二进制码。MT8870的引脚排列如图2所示。各主要引脚功能如下:
●IN+、IN-:运放同相、反相输入端;
●FB:运放输出端;
●VREF:基准电压输出端;
●OSC1、OSC0:振荡器输入、输出端;
●EN:数据输出允许端。为“1”时允许数据输出;为“0”时禁止数据输出;
●D4~D1:16种DTMF信号所对应的4位二进制并行码数据输出端;
●DV:延迟控制输出,当一组有效的双音频信号被接收时输出“1”;否则输出“0”;
●EC0:初始控制输出端。若电路检测出可识别的单音对,则此端变成高电平,若无输入连续失真,则EC0返回低电平;
●CI:时间监控输出端。
表1同时也列出了MT8870的译码表。
表1 MT5087编码表及MT8870译码表
MT5087编码表 | 双音频率(Hz) | MT8870译码表 | |||||||||||||
C4 | C3 | C2 | C1 | R4 | R3 | R2 | R1 | NO. | fl | fH | D4 | D3 | D2 | D1 | 十六制码 |
L | L | L | × | H | H | H | × | 1 | 697 | 1209 | 0 | 0 | 0 | 1 | 1 |
L | L | × | L | H | H | H | × | 2 | 697 | 1336 | 0 | 0 | 1 | 0 | 2 |
L | × | L | L | H | H | H | × | 3 | 696 | 1477 | 0 | 0 | 1 | 1 | 3 |
L | L | L | × | H | H | × | H | 4 | 770 | 1209 | 0 | 1 | 0 | 0 | 4 |
L | L | × | L | H | H | × | H | 5 | 770 | 1336 | 0 | 1 | 0 | 1 | 5 |
L | × | L | L | H | H | × | H | 6 | 770 | 1477 | 0 | 1 | 1 | 0 | 6 |
L | L | L | × | H | × | H | H | 7 | 852 | 1209 | 0 | 1 | 1 | 1 | 7 |
L | L | × | L | H | × | H | H | 8 | 852 | 1366 | 1 | 0 | 0 | 0 | 8 |
L | × | L | L | H | × | H | H | 9 | 852 | 1477 | 1 | 0 | 0 | 1 | 9 |
L | L | × | L | × | H | H | H | 0 | 941 | 1336 | 1 | 0 | 1 | 0 | A |
L | L | L | × | × | H | H | H | * | 941 | 1209 | 1 | 0 | 1 | 1 | B |
L | × | L | L | × | H | H | H | # | 941 | 1477 | 1 | 1 | 0 | 0 | C |
× | L | L | L | H | H | H | × | A | 697 | 1633 | 1 | 1 | 0 | 1 | D |
× | L | L | L | H | H | × | H | B | 770 | 1633 | 1 | 1 | 1 | 0 | F |
× | L | L | L | H | × | H | H | C | 825 | 1633 | 1 | 1 | 1 | 1 | F |
× | L | L | L | × | H | H | H | D | 941 | 1633 | 0 | 0 | 0 | 0 | 0 |
表2 P2输出编码表
No. | P27 | P26 | P25 | P24 | P23 | P22 | P21 | P20 | 十六进制码 |
1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1EH |
2 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 3EH |
3 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 3EH |
4 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1DH |
5 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 2DH |
6 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 3DH |
7 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1BH |
8 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 2BH |
9 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 3BH |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 27H |
* | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 17H |
# | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 47H |
A | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 8EH |
B | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 8DH |
C | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 8BH |
D | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 87H |
4 硬件接口电路
图3所示是MT8870、MT5087与单片机进行接口以实现DTMF信号传输控制的硬件电路,在该硬件电器中,MT8870,MT5087的外转帐电路与通常的应用电路基本相同,接收电路中MT8870的10脚EN与15脚DV接在一起,当一个有效双音频信号被接收后,DV输出记电平。在脚EN为高电平时允许数据输出,同时经T1反相后以低电平送给AT89C51中断输入口INT1,以执行中断程序并接收码处理;发码电路MT5087的15脚TONE1接地是为使能双音频信号输出,TONE0为双音频输出,内接NPN晶体管的发射极,外接电阻R11可构成射极输出器并连至总线,若通讯距离较长,可考虑加一驱动级。矩阵键盘行R1、R2、R3、R4和列C1、C2、C3、C4与AT89C51的P2口连接。发码时,只有当行、列端分别有一个端为VDD/2电平时才选中一组双音频信号发出。该电路利用P2口线的内部上拉电阻与MT5087的内部上、下拉电阻配合来实现发码。
5 软件设计问题
在程序设计时,应考虑本身发码时对自身收码的屏蔽,即发码时应关掉INT1中断,发码结束后再开启中断。发送数据时P2口线的编码见表2所列。
6 结束语
应用DTMF信号进行远程数据通讯可以将通讯距离提高到几公里,但是,其数据传输速度可能会受到DTMF信号的限制,尽管如此,采用本文所给定的DTMF信号与AT89C51的接口电路在些特殊场仍具有一定的实用价值。