关键词:DTMF信号 远距离微机通讯 编码 解码 MT8870 MT5087
1 概述
由于双音多频DTMF信号具有抗干扰能力强、传输距离远、数据准确等特点,因而可广泛应用于通讯、遥控等领域。利用DTMF信号可实现双总线的远距离微机通讯,以完成控制或数据的传输。本文介绍采用DTMF信号发生芯片MT5087及接收芯片MT8870来实现与AT89C51单片机的硬件接口电路,该电路通过软件编程可实现远距离通讯,具有一定的应用价值。
2 DTMF信号发生器MT5087
MT5087是双音多频电话拨号器,通过该芯片可完成4×4矩阵编码。MT5087具有电源工作范围宽、输出电平可调、谐波失真小等特点。其引脚排列如所示。各引脚功能如下:
●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的引脚排列如所示。各主要引脚功能如下:
●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 硬件接口电路
所示是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的接口电路在些特殊场仍具有一定的实用价值。
相关应用:
基于PIC单片机的家用电器电话遥控装置 | |||||
王淑珍 | |||||
(洛阳工业高等专科学校 河南 洛阳 471003) | |||||
摘 要:随着电话在家庭的普及,利用电话实现家用电器遥控是家电未来的发展方向。本文介绍了一种基于PIC单片机的家用电器电话遥控装置,该装置可以通过电话实现对家用电器控制,并能对家电的工作状况进行监控。介绍了该装置中所使用的Microchip公司PICl6F8X系列单片机的特性;该装置的工作原理及实现方法;详细描述了该系统各模块组成、原理及具体的电路及软件流程图。 随着社会的发展和人们生活水平的提高,越来越多的家用电器进入了人们的生活,这些家用电器给人们的生活带来了很多的方便和享受,同时随着电话在家庭中的普及,利用电话实现家用电器遥控是家用电器未来的发展方向[1]。本文介绍一种基于单片机的电话遥控装置。利用该装置,用户可以通过任意一部双音频电话(包括手机和固定电话)遥控家中的电器。当用户要下班时,可以通过电话,提前打开空调、电饭锅,用户回到家里时,饭煮好了,房子里温度刚刚好。用户也可以通过电话随时开关、检查家里电器的使用情况等等。总之,电话通到哪里,用户就可以从哪里遥控家中的电器。 基于PIC单片机控制家用电器电话遥控装置的工作原理是:当有电话打入时,振铃电路检测到电话振铃信号,等待系统默认的振铃次数后,启动自动摘机电路实现摘机,并送出提示音信号,用户输入预先设定的密码,控制装置通过双音多频解码电路读取输入密码,与预设在控制装置中的密码进行对比验证,如果密码错误,系统自动挂机;密码正确,则进入遥控状态。该装置通过双音多频解码电路获得用户发出的命令,并根据用户的命令执行开机、关机、定时等操作;用户还可以进行工作状态查询、密码修改操作。系统还具有定时时间的倒记时显示及手动操作等功能。当人在默认的振铃次数之前接听电话,不进入电话遥控状态,因此不影响电话的正常通话使用。 家用电器电话遥控装置的硬件组成如所示。主要由电话振铃检测电路、电话自动摘机电路、双音多频解码电路、显示电路、输出控制电路、电源电路和PIC单片机组成。 单片机是整个电话遥控系统的,系统所有电路都是在他的控制下工作,本装置采用的单片机是Microchip公司的PICl6F84r[2],他是RISC结构的CPU,采用精简指令集;内含1kXl4bE2PROM型程序存储器和64个8bE2PROM型数据寄存器;擦写次数可达100万次,数据保存时间大于40年;有13个可独立编程的双向I/O口,每个I/O口拉电流25mA,灌电流20mA;一个可带8位预分频器的8位定时器/计数器;具有自振式看门狗和程序保密位;PICl6F84采用CMOS工艺,功耗低,在5V/4MHz工作条件下,耗电小于2mA,可以在2.0~6.0V电压下工作。由于他内部含有64b的E2PROM型数据存储器,所以可以用于在掉电状态下保存系统密码和原工作状态。 2.1 电话振铃检测电路 2.2 电话自动摘机电路 2.3 双音多频解码电路 2.4 家用电器电源控制电路 其工作原理是单片机根据遥控和设定开关输入的控制指令,控制电器的电源通断。当电源控制电路的输出管脚送出的开关控制指令为高电平,MOC3041截止,TI截止,电器被关闭;当电源控制电路送出的开关控制指令为低电平,MOC3041导通,T1导通,电器被打开。通过MOC3041内部的过零触发电路,保证T1在电压过零时导通和截止,对供电系统干扰。R4和C1是T1的保护电路。 3 遥控装置的控制程序 本遥控装置的控制程序的主要工作是对电话信号进行检测以及接收用户指令控制家用电器的工作。系统程序主要包括管理监控主程序和定时中断子程序。 CPU检测振铃信号状态和按键状态,当检测到有效振铃信号后,启动计数程序,计数到设定振铃次数后,CPU送出摘机信号控制电路自动摘机并送出摘机提示音信号,提示用户输入密码。当检测到有*键按下时,也同样送出摘机提示音信号,提示用户输入密码(对*键的检测是为了方便用户在家中控制电器,用户直接操作接在线路上的电话机即可)。单片机检测MT8870送出的STD信号,当STD信号有效时,从MT8870读入指令代码并与预设密码比较,如果两者不一致,则送出警告提示音信号,用户可以重新输入密码,若连续3次密码错误,系统自动挂机,不能进行遥控设定,如果输人密码与预设密码一致,则送出确认提示音信号,用户可以输入开机、关机、定时工作等指令,也可以输入查询指令查询系统工作状态或输入更改密码指令、更改设定密码。设定或查询完成后,按#键则系统挂机,连续一定时间不输入任何指令信号,系统也会自动挂机,让出电话线路。 3.2 定时中断程序 4 结 语 所介绍的基于PIC单片机的家用电器电话遥控装置已经投入应用,证明该装置性能稳定、工作可靠,而且不影响电话的正常使用。但不足的是,利用该装置控制家用电器,必须将电器的电源和本装置相连接,因此线路显得杂乱,并且每种电器各种功能设定都不相同,使用本系统无法具体控制器详细设定,只能控制其电源开关。解决的方法有2种: |
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。