基于单片机的电话远程控制系统
摘 要:本文设计了一种电话远程控制系统,该系统以AT89C51单片机和MT8870双音多频解码集成电路为核心,借助公共电话网络,通过电话实现对远程设备智能化控制。文章介绍了系统的组成、工作原理及程序设计方法。对“振铃检测、模拟摘挂机控制、双音频解码,语音提示及家用电器控制”等电路作了详细的说明。用户在户外可通过任意一部双音多频电话(包括手机、电话分机),根据语音提示,可以对各种电器(如电饭锅、微波炉等电器)进行远程控制。本装置适用于家庭、企事业单位、商店等场所,操作简单方便,系统性能可靠,是未来很有发展前景的科技产品。
关键词:单片机AT89C51,双音频编解码,振铃检测
Microcontroller-based telephone remote control system
Abstract:This paper, a telephone remote control system, the system AT89C51 microcontroller and MT8870 DTMF decoder integrated circuit as the core, with the public telephone network, by telephone to achieve intelligent control of remote devices.This paper introduces the system, working principle and procedure design.The \"ring test, simulation Abstract hook control, dual audio decoding, voice prompts, and household appliances control \" gave a detailed description of the circuit.Users can any one pair of outdoor tone multi-frequency telephone (including mobile phone, telephone extension), according to the voice prompts, can be a variety of electrical appliances (such as rice cookers, microwave ovens and other appliances) for remote controlThis.device is suitable for families, enterprises and institutions, shops and other places, simple operation, reliable performance is very promising future technology products.
Keywords:SCM AT89C51,Dual Audio Codec,Ring Detection
目 录
1 绪论 ..................................................... 1 1.1 课题研究背景和意义 ....................................... 1 1.2 本论文的研究内容 ......................................... 2 2 系统方案设计 ............................................. 4 2.1 总体设计分析 ............................................. 4 2.2 硬件功能分析 ............................................. 5 2.2 软件模块分析 ............................................. 7 3 系统硬件电路设计 ........................................... 8 3.1 振铃检测电路 ............................................. 8 3.2模拟摘挂机电路 ........................................... 9 3.3 DTMF信号解码电路 ....................................... 10 3.3.1 MT8870芯片介绍 ....................................... 10 3.3.2 DTMF解码电路设计 ..................................... 10 3.3.3 MT8870解码表 ......................................... 12 3.4 语音提示电路 ............................................ 12 3.5 音频放大电路 ............................................ 14 3.6 电器控制电路 ............................................ 14 3.7 中央控制电路 ............................................ 16 4 系统软件部分设计 .......................................... 17 4.1 单片机初始化模块 ........................................ 17 4.2 振铃检测计数模块 ........................................ 18 4.3 语音提示模块 ............................................ 18 4.4 密码检测部分 ............................................ 19 4.5 密码修改部分 ............................................ 19 4.6 控制电器部分 ............................................ 19 结束语 ...................................................... 20 附录A: .................................................... 21
第I页 共Ⅱ页
附录B: .................................................... 24 附录C ...................................................... 34 参考文献 .................................................... 35 致谢 ........................................ 错误!未定义书签。
第II页 共Ⅱ页
1 绪论
1.1 课题研究背景和意义
二十一世纪是信息时代,各种电信新技术推动了人类文明的进步。进十年来,中国
的固定电话业务呈现出举世瞩目的快速增长,固定电话用户总数突破2亿户。随着通讯产业的发展,电话机已经走进了千家万户;随着现代科学技术的发展,利用电话机进行远程控制的技术也日益用于生活中。现代电话网络是由交换机和电话传输线共同组成,它的性能已经有了很大的进展,而且可靠性非常高。遥控技术是通过一定的手段对被控物体实施一定距离的控制,常用的方式有无线电遥控、有线遥控、红外线和超声波遥控等。无线电遥控既是利用无线电信号对被控物体实施远距离控制。无线电遥控不可避免的须占用一定的无线电频率资源,造成电磁污染;常规的有线遥控需进行专门的布线,增加了投入;而红外线、超声波遥控则受距离所限。现有的遥控方式中,还有载波通信控制手段和基于无线寻呼的遥控方式。载波方式即通过电力线传递信息,该方式只能局限于同一变电所、同一变压器所辖范围内。因此也存在距离问题,应用范围有限。基于无线寻呼的遥控方式利用了现有的寻呼频率资源,不需占用额外的频谱。而且,随着寻呼网的全国联网,其遥控的距离基本不受限制。但该方式的受控方动作滞后于控制方的操作,不具备实时性,而且不具备很高的可靠性。电话遥控作为一较新的课题与常规的遥控方式相比,显示出其巨大的优越性,它不需要进行专门的布线,不占用无线电频率资源,避免了电磁污染。同时,电话线路各地联网,可以充分利用现有的电话网,遥控距离可跨省市,甚至跨越国家,因此采用这种控制方式的优点是明显的。由于DTMF(双音多频)编码通信技术的发展,使得借助低压电力线进行数据通信成为可能。电话远程控制器主要接收电话线上传来的控制家电的信息,译码后经并行通信向智能控制器发送控制家电指令;接收由智能控制器传来的报警或求援信息(经并行通信),自动拨号(可由键盘预先设置)后,以语音形式将信息传送给用户或直接报警。都是在线调试,已经在宿舍连接电话经过真正的交换机实验并且成功。
利用现有的个人通信终端实现基于陆地移动通信网和公用电话交换网的电话远程控制系统既可以节约投资又便于推广。电话远程控制系统ITRCS以CCITT及我国标准共同规定的部分标准程控交换信号、双音多频信号、振铃信号、回铃音信号等作为系统控制命令,以陆地移动通信网和公用电话交换网作为传输介质,使用户可以在远端利用固
定电话或移动电话发送双音多频信号实现对近端电器设备的远程控制。这种远程控制方法也是设计智能住宅中远程电器控制的一个重要途径,利用个人通信终端来查询或者控制住宅中电器的工作状态,达到智能控制的目的。如果能够用单片机实现来设计所要求的功能,将有着很强的现实意义和应用前景。 1.2 本论文的研究内容
家庭网络系统主要由电话远程控制器、智能控制器、一些功能模块组成。电话远程控制器主要接收电话线上传来的控制家电的信息,译码后经并行通信向智能控制器发送控制家电指令;接收由智能控制器传来的报警或求援信息(经并行通信) ,自动拨号(可由键盘预先设置)后,以语音形式将信息传送给用户或直接报警。组网方式分为两大类:有线组网和无线组网。有线组网主要是利用家中的电话线、单独布置通信控制线路或电力线载波通信进行组网;无线组网的主要技术有家庭射频技术(HomeRF)、蓝牙技术(Bluetooth)及家庭电话线网络联盟技术(HomePAN)等。
电话遥控作为一较新的课题与常规的遥控方式相比,显示出一定的优越性,不需进行专门的布线,不占用无线电频率资源,避免了电磁污染。同时,由于电话线路各地联网,可以充分利用现有的电话网,因此遥控距离可跨省市,甚至跨越国家。
电话属半双工通信手段。因此,这可以大大体现出利用电话进行遥控的更大优越性。操作者可以通过各种提示音即时了解受控对象的有关信息,从而进行进一步的操作。电话遥控这一课题目前已有涉足者,但是只是还只限于实验室阶段,因而距离实际应用,尤其是对于日常生活尚有一定的差距,并不能完全体现出电话遥控方式的半双工通信特点。本作品正是针对这一点进行了较大改进,采取单片机智能控制,利用不同的提示音达到对于不同操作的提示及对受控方状态的信息反馈,从而使操作者能够及时了解受控方信息,使产品达到交互式与智能化。本作品的各种电器接口、各项标准都严格遵循国家有关标准,为以后的产品化提供了良好的基础。
电话远程控制系统接收远端发送来的DTMF信号,并对其进行解码,解码后的信号再由中央处理单元采集处理,为了方便用户使用,系统设计了语音提示界面,电话远程控制系统一般工作在无人值守环境,所以应具有自动摘挂机功能、复位功能;为了符合智能化要求,系统采用单片机作为中央处理器。同时,电话远程控制系统正常工作还需电源供电电路、驱动电路等辅助电路。由此可以看出,系统主要由流铃检测电路、自动摘挂机
电路、由DTMF双音频解码电路、语音提示电路、中央处理单元、电器控制驱动电路等组成。
2 系统方案设计
2.1 总体设计分析
电话智能遥控器由单片机构成主控部分,进行主要的信息处理,接收外部操作指令形成各种控制信号,并完成对于各种信息的记录;接口电路提供单片机与电话外线的接口。其中包括铃流检测、摘挂机控制、忙音检测、双音频DTMF识别,及语音提示电路。系统原理框图如图2.1所示
电 话 接 口 语音放大电路 振铃检测电路 单 片 机 家 用 电 器 控 制
自动摘挂机电路 双音频解码电路 图2.1系统组成框图
根据电话远程智能遥控系统的具体设计要求: 1、 通过电话网对异地的电器实现控制(开/关); 2、 控制器可以实现自动模拟摘挂机; 3、 控制器设置密码校验;
设计的此系统必须具有以下单元功能模块: 1、 铃音检测、计数; 2、 自动摘挂机; 3、 密码校验; 4、 双音频信号解码; 5、 输入信息分析; 6、 控制电器开关; 7、 电器状态查询; 8、 忙音检测;
根据电话机和交换机发出的不同信号音以及电话线各种状态的不同要求,结合实际情况对具体的单元功能模块作出软件或硬件上的不同分工,具体如下:
1、理论上交换机所发出的各种信号音都可以通过软件编程而识别,即通过单片机发出的脉冲信号来检测信号音单位时间内的脉冲个数计算出其频率,从而完成信号音识别。但是从系统的可靠性和程序的结构设计上分析,选择了硬件来解决振铃音检测、忙音检测、双音频信号解码等功能模块。
2、 自动摘挂机和电器的控制必须使用具体硬件电路来实现。
3、振铃音计数、忙音计数、密码校验、在线修改密码、输入信息分析、电器状态查询等功能模块使用软件编程方式要比硬件电路简单的多,实现也很容易。
综上所述,本设计的信号音检测、自动摘挂机、控制电器、双音频解码等功能模块使用硬件电路实现。而信号音计数、密码校验、信息分析、电器状态查询等功能模块使用软件编程完成。 2.2 硬件功能分析
本设计以AT89C51单片机为控制中心,进行主要的信息处理,接收外部操作指令形
成各种控制信号,并完成对于各种信息的记录;接口电路提供单片机与电话外线的接口。其中包括振铃检测电路,摘挂机控制电路,双音频DTMF识别电路,以及家电的控制电路等部分组成。
本装置使用普通电话机发出遥控命令信号,以DTMF信号作为运载遥控命令的媒体,而无需专门安装遥控发送装置,利用电话网络传送遥控命令或其他数字信息时,只需把接收装置安装在任何一个电话用户线的终端,就可以接收任何地方〈只要电话能通达的地方〉的遥控操作或其他数字信息,接收装置就像一部普通电话机,传真机或其他电话用户终端设备一样被使用,因此不受距离的局限。
本装置并联于电话机的两端,不会影响到电话机的正常使用。用户通过异地的电话机拨通本装置所连接外线的电话号码,通过市局交换机向电话机发出振铃信号。本装置如果检测到振铃八次,即八次响铃后无人接,自动摘机,进入密码检测,输入正确后选择被控制电器,然后输入开或关进行遥控电器,完成后返回。
系统基本工作原理是:系统上电,单片机复位,系统开始工作,当电话线路中有振铃信号时,振铃检测电路将产生占空比为1:4的方波,方波从AT89C51单片机的外部计数端输入,系统在程序控制下进行计数,当振铃次数为8次时约40秒若没有人接电
话,表明没有人在场,系统一方面,启动语音提示电路,发出“尊敬的用户,您好!欢迎您使用智能电话控制系统,请输入用户密码,并以‘#’字确认”;另一方面,发出自动摘机控制信号,外线经摘挂机控制的开关电路与DTMF译码电路接通,译码电路将对外线传递的信号进行译码,译码信号以四位二进制形式输出。经译码输出的四位二进制数从单片机的I/O口输入,单片机对读入的二进制数与预置的密码进行比较,如果所拨的密码与预置的相同,则发出“请输入操作码,并按#字键加以确认”的提示音,如果所拨的密码与预置的不同,则发出“对不起,你拨的密码不正确,请核对密码后重新输入,挂机请按‘*’字键确认”的提示音。系统只有接到正确的用户密码才具有操作权。以上操作即实行“模拟提机”接通电话。操作者在主叫话机键盘上输入4位密码,若密码输入正确,会在听筒里听到约2秒的音乐声。按入遥控命令,按“1”,“#”表示第一路开,按“1”,“*”表示第一路关......依次类推,共可操作5路设备,每个操作命令结束时均能听到约1秒的音乐声作为确认信号。
操作完毕按入“0”,接收电路收到“0”这一信息后即“挂断”电话。
如果有人在默认的振铃次数之前接听电话,则不进入电话遥控状态,因此不影响电话的正常通话使用。
系统设计中的关键技术。在整个系统功能的实现中,利用DTMF解码器对用户通过电话输入的DTMF号码进行检测是系统功能实现的关键。MT8870应该能及时并准确地检测到电话线传入的DTMF信号,并以中断方式通知CPU接收其检测到的DTMF号码;而MT8870能否及时检测到DTMF信号并正确译码出该信号对应的主叫号码,与LE78D11的初始化密切相关。在初始化时需要特别注意如下几个方面:
(1)设置参数要根据系统情况精确计算确定,尤其输入信号增益参数调整不能让DTMF信号饱和失真,否则会导致MT8870对DTMF音检测译码出错;
(2)MT8870的时钟频率寄存器应在芯片上电后第一个进行设置。确保MT8870能及时检测系统时钟与8kHz的帧同步信号的同步情况并给出指示; (3)在初始化最后要启动模拟通道校准功能并确保校准完成;
(4)MT8870在进行DTMF音的检测译码时,语音通道连通并都处于激活状态,向单片机发出中断请求,单片机响应中断,接收来电信息。根据电话通信信令,在电话通信过程中,使用某些特定频率音的不同断续组合来指示通信进程。为了判定当前处于何种进程状态,需要及时识别出拨号音、忙音、回铃音、空号音以及其他电信信令规定的进程音。
为了简化系统结构,节约硬件成本,提高信号音检测的准确性与灵敏度,本系统不采用通常的信号音检测硬件模块进行检测,而是采用软件实现上述信号音的智能检测。由于上述信号音的频率都是450Hz,仅断续时长不一样,据此,采用电路把信号音整理成方波脉冲串,固定时问间隔(例如1ms)检测输入管脚上脉冲信号,当脉冲信号出现后,立即开始在一定时长内(例如1.2s)分若干时间片(例如0.1s)计数每个时间片内出现的脉冲个数。通过分析比较给定时长内各个时间片的脉冲个数分布情况,可以判别出信号音的类型。 2.2 软件模块分析
软件部分的设计由以下几个模块构成:
(1)信号音计数。本单元可以使用AT89C51的两个计数器的外部中断方式来实现对不同信号音的计数。
(2)密码检测。本单元可以在系统初始化的时候,在单片机内部的存储器的内部开辟一块空间放置密码。当用户输入密码的时候,单片机把输入的密码写入另外的一块空间,然后利用减法运算比较两者是否相等。这样就可以实现密码检测的功能。 (3)信号分析处理。本单元可以利用查表方式,也可以用简单的语句,稍微长一点的语句 实现。
以上部分是对系统设计过程和设计原理的简单叙述。详细部分将在下面的设计中具体介绍。经过翻阅大量的技术资料,对具体要求实现的功能进行完整的系统分析,我认为我的电话遥控系统设计基本符合实际情况,可以完成设计任务所要求实现的基本功能。
3 系统硬件电路设计
3.1 振铃检测电路
在电话线路未来铃流前,电话线路由电话交换机提供大约48V的直流电压。当用户被呼叫时,电话交换机发来铃流信号。振铃信号为25±3伏的正弦波,谐铃失真不大于10%,电压有效值90±15V。振铃以5秒为周期,即1秒送,4秒断。在本电路检测铃流信号时,以五次铃响为准,即五次振铃后无人摘机,便由单片机控制自动模拟摘机,振铃检测电路设计如图3.1所示。
原理说明:电话振铃信号通过电容C1隔直、D1稳压二极管、R1限流电阻输入至光电耦合器4N25的输入端1口,C1、D1和R1共同组成振铃信号变换电路,它们使输入电压和电流不会太大,对后面的光电耦合器起保护作用。光电耦合器4N25起的是隔离作用,光电耦合器是一种电信号的耦合器件,它一般是将发光二极管和光敏三极管的光路耦合在一起,输入和输出之间不可共地,输入电信号加于发光二极管上,输出信号由光敏三极管取出。
光电耦合器以光电转换原理传输信息,它不仅使信息发出端(一次侧)与信息接收并输出端(二次侧)是绝缘的,从而对电位差干扰有很强的抑制,而且具有很强的抑制电磁干扰能力、速度高、价格低、接口简单的特点。
振铃信号通过光耦4N25的4脚输出振铃正弦波,R2和C2共同组成滤波电路,信号到了开关三极管T1的基极就变成了方波。经过一个施密特反向器(可用74LS04代替)的整形输出到单片机AT89C51的T0/P3.4口,中断方式采用外部中断,计数5次产生T0中断,控制继电器模拟摘机,完成振铃音检测。
图3.1振铃检测电路
主要原器件选取:
C1隔直电容,选取1μF耐压100V的瓷片电容;2、D1为稳压二极管,选取36V的
稳压二极管;3、R1是U1的限流电阻,取33 kΩ;4、U1选取光电耦合器4N25;5、R2和C2共同组成振铃信号音滤波电路,R2=10kΩ,C2=100μF,τ=1s。 3.2模拟摘挂机电路
根据国家有关标准规定:不论任何电话机,摘机状态的直流电阻应≤300Ω,有“R”键的电子电话机的摘机状态直流电阻应≤350Ω。在挂机状态下,其漏电流≤5μA。 当用户摘机时,电话机通过叉簧接上约200Ω的负载,使整个电话线回路流过约30mA的电流。交换机检测到该电流后便停止铃流发送,并将线路电压变为十几伏的直流,完成接续。
模拟摘挂机电路主要由一个光电耦合器开关电路控制继电器的开关,继电器控制接入电话线两端的200Ω电阻。摘挂机信指令由单片机通过使TXD/P3.1口变为高电平实现。经过一个反向器驱动发光二极管D1指示摘机,同时改变光敏三极管T1的基极电压,使T1处于导通状态,从而开启继电器J1,J1使电阻R3接入电话线两端。因为R3的电阻为200Ω,使回路电流变大,控制电路向交换机发出模拟摘机的信号,交换机响应摘机信号,完成电话线路接通。整个电路完成自动模拟摘机过程,模拟摘挂机电路设计如图3.2所示。
图3.2模拟摘挂机电路
根据设计原理,原器件选取如下:
1、IC1是光控三极管,其中T1三极管是起对单片机控制信号的放大作用,D1是摘机指示灯,取5mm绿色发光二极管;
2、R1是摘机指示灯限流保护电阻,取220Ω; 3、L1是变压器感应变压输出;
4、C1起对电话线电压积累作用; 5、R2是三极管限流电阻,取2kΩ;
6、D2二极管是起继电器反向保护的作用,取4001; 7、J1是继电器控制开关,取JRC 4001F(DC5V); 8、R3是摘机电阻,取200Ω 3.3 DTMF信号解码电路 3.3.1 MT8870芯片介绍
双音多频DTMF信号解码电路采用MT8870芯片。MT8870 芯片介绍:实现DTMF解码的芯片是MT8870,它是MITEL公司生产的,为CMOS电路,DIP封装。它具有DTMF信号分离滤波和译码功能,可直接与MCS-51系列单片机接口。图3.3为MT8870引脚分配图。其引脚说明如下:IN+、IN- 运放同、反相输入,模拟信号或DTMF信号从此端输入;FB 运放输出,外接反馈电阻可调节输入放大器的增益;VREF 基准电压(VDD/2)输出;IC 内部连接点,应接至VSS;OSCI 、OSCO 振荡器输入、输出,外接3.58MHz晶体;EN 为“1”时数据允许输出,为“0”时禁止输出;D01 ~ D04 数据输出;CID 当一有效单音对被接收时为“1”;ECO 检测出一可识别的单音时为:“1”;CI/GTO 控制输入/时间监测输出;VDD 正电源;VSS 负电源(地)。
图3.3 MT8870引脚图
3.3.2 DTMF解码电路设计
MT8870的连线如图3.4所示,它的IN+、IN-脚接收来自电话机的双音多频脉冲信号,该双音多频信号先经其内部的拨号音滤波器,滤除拨号音信号,然后经前置放大后送入双音频滤波器,将双音频信号按高,低音频信号分开,再经高低群滤波器,幅度检
测器送入输出译码电路,经过数字运算后,在其数据输出端(11~14脚)输出相对应的8421码。MT8870的数据输出端Q4~Q1连到AT89C51的P1口的P1.0~P1.3,单片机经P1口识别4位代码。其中,A,B,C,D 4个按键常被当作R/P,REDIAL,HOLD,HANDSFREE等功能使用。注意,需要特别指出的是,对于“0”号码,MT8870输出的8421码并非是“0000”,而是“1010”;另外,“*”,“#”字号码,MT8870输出的8421码分别为“1011”和“1100”。为了使单片机AT89C51获取有效数据,MT8870的CID有效端经施密特反相器后接AT89C51的INT0引脚。当MT8870获取有效双音多频信号后,CID电平由低变高,再反相为低,单片机检测后,指示P1口接收有效二进制代码。而无效的双音频信号(电话线路杂音、人们的语音信号等)是不会引起MT8870的CID端变化的。DTMF接收器的外围电路如图3.4所示。其中,接在电源处的电容对抗干扰有一定的作用。在实际应用中,存在这样一个问题:MT8870的使能控制端不允许中断时,将使MT8870的CID端中断关闭。其解决办法是,将CID端接与非门的一端输入,与非门的另一输入端接一不定电平端P。对CID的有效控制(即中断开放)为,EN=1则P3.2/INT0中断允许;EN=0时则P3.2/INT0中断关闭。
图3.4 DTMF解码电路
本单元元器件列表:
1、R1、R2、C1和C2共同组成整流电路,其中R1、R2均取17KΩ,C1、C2隔直电容,均取0.1μF;
2、R3、R4、R5是输入平衡电阻,取100KΩ, 3、芯片外部晶振Y1选择3.579MHz; 4、IC1是双音频解码芯片,选取MT8870; 5、C3选取0.1μF;
6、R6是输出平衡电阻,选取470KΩ; 7、反向器选取74LS04的一组反向器。 3.3.3 MT8870解码表
信号在MT8870内需经过滤波、放大、高低频分离,再经过数字处理转化为与DTMF信号相对应的二进制编码。电话键盘对应的输出二进制编码如表3.1所示。
表3.1 MT8870解码表
Digit 1 2 3 4 5 6 7 8 9 0 * # Q4 0 0 0 0 0 0 0 1 1 1 1 1 Q3 0 0 0 1 1 1 1 0 0 0 0 1 Q2 0 1 1 0 1 1 0 0 1 1 0 Q1 1 0 1 0 0 1 0 1 0 1 0 0 1
3.4 语音提示电路
语音提示芯片ISD2590的最高地址位PLAYL(脚9),PLAYE(脚10)置为高电平时,芯片即进入操作模式状态。操作模式根据引脚A0~A7的高低电平不同组合总共分为256种不同的模式,实现不同的功能。为尽量节省I/O口线,采用了M1和M6相结合的方法实现对ISD2590操作,将所需的语音通过开始/暂停按钮一段一段从话筒录入芯片,只需记住各段的序号即可。具体不同信号音的定义参见软件设计部分。
ISD2590的信息检索模式的使用方法:首先将芯片的录放控制P/R端置高,地址位A0—A7置高,现在芯片即处于信息检索模式的信息读取状态。要播放第N段的语音,先给PD端一高电平脉冲,使地址指针复位为0。因为所有的序号都以存储器起始处为基准,
除第一段外,只需要CE端收到10us低脉冲,即可使地址指针按A0-A7寻址第N段的开始处,然后拉高SP+,在CE端加一个低脉冲即可播放第N段的语音信息,直到此段后的EOM标志出现为止。由此可知准确检索的关键在于正确检测到每一段的EOM结束标志。因为在快进状态下,EOM脉冲的宽度只有10us左右,对于速度不高的单片机不易检测到,此时可用外部中断来检测EOM标志位。信号音从ISD2590的SP+口输出,先经过一组反向器进行整流、隔离,从反向器输出的是频率一定,时通时断的方波,提示信号经过隔直电容C1输入到音频放大集成电路LM386N-1的输入端。经过LM386N-1的放大,信号音经耦合电容C4至变压器T1,它是音频输出专用的耦合变压器,正好符合阻抗匹配的要求。电路图设计如图3.6。
图3.6 语音提示电路
原器件选取:
1、反向器选取74LS04中的一组反向器;
2、C1的是对音频信号起隔直耦合的作用,所以取100μF的电解电容,耐压性能无特殊要求;
3、IC1、R1、R2、R3、R4、C2、C3和C4共同组成音频放大电路,IC1选取LM386N-1,R1取1kΩ,R2取1kΩ,R3取20KΩ,R4取10ΩK,C2取10μF的电解电容,C3取10μF的电解电容,C4取100μF的电解电容;
4、T1是音频输出专用变压器(参看模拟摘挂机电路)。 3.5 音频放大电路
音频放大集成电路LM386的连接比较简单,本装置的使用是LM386放大增益为50dB的连接方式。利用LM386低压音频功率放大器,LM386是为低压用户设计的功率放大器,内部增益为20倍,在1脚和8脚接电阻和电容时,可使增益增加到200倍,用途广泛,使用方便,外接元件数目较少,本系统的音频放大电路如图3.7所示。
图3.7 音频放大电路
3.6 电器控制电路
本单元电路主要是由反向电路、D触发器和继电器等控制电路组成。首先,单片机AT89C51从P0口的八位都用作输出控制信号。这八位数据连接八个反向器进行整流隔离,然后连接D触发器进行数据锁存。每个D触发器的输出端都控制一路继电器,而每一路继电器也控制一路电器的开关。二极管指示灯串联在开关三极管基极作为电器开关指示。这样就可以完成单片机对多路电器的控制。设计采用控制带有继电器的电源插座来实现对家电的最终控制,诸如电饭煲、热水器、空调之类的电器只需插上插头,主控单片机即可通过控制插座中各继电器来控制电器电源的通断。该方式简单且易于实现。图3.8所示的为一路电器控制电路图,在本装置中一共有八路电器可以控制,其它电器控制相同。
图3.8 电器控制电路
元器件选取:
、反向器选取两片74LS04(每一片内有六个反向器)中的九个反向器;、继电器开关K1-8选取八个JRC-4100F DC5V继电器; 、D触发器IC1_8选取四片4013(每一片内有两个D触发器); 、三极管T1_8选取八个9013;
、二极管D1_8起保护作用,选取八个4001; 、指示灯LCD1_8选取八个红色5mm发光二极管; 、指示灯限流电阻R11_R18选取八个1kΩ的电阻; 、三极管的限流电阻R21_R28选取八个2kΩ的电阻;
1 2 3 4 5 6 7 8
3.7 中央控制电路
CPU检测振铃信号状态和按键状态,当检测到有效振铃信号后,起动计数程序,计数到设定振铃次数后,CPU送出摘机信号控制电路自动摘机并送出摘机提示音信号,提示用户输入密码当检测到有*号按下时,也同样送出摘机提示音信号,提示用户输入密码(对*键的检测是为了方便用户在家中控制电器,用户直接操作接在线路上的电话机即可)单片机检测MT8870送出的STD信号,当STD信号有效时,从MT8870读入指令代码并与预设密码比较,如果不一致,系统自动挂机,如果一致,用户就可以输入开机、关机指令。见图3.9。
图3.9 中央控制电路
4 系统软件部分设计
本系统的软件设计主要分为系统初始化、振铃检测计数、控制摘挂机、双音频信号分析处理、语音提示、密码处理、控制电器等部分组成。每个功能模块对于整体设计都是非常重要的,单片机AT89C51通过软件程序才能很好的对外部的信息进行采集、分析、决策和执行。下面就整体设计以及每个单元功能模块分别进行说明。整体流程图如4.1图所示:
图4.1 软件设计整体流程图
4.1 单片机初始化模块
单片机的存储系统的分配利用在其工作过程中起非常大的作用,所以就必须对其进
行必要的初始化。程序代码见附录。 4.2 振铃检测计数模块
本模块是通过计数器TO的外部中断来计数的。程序代码见附录。 4.3 语音提示模块
本功能模块主要是产生信号提示音,方便不同的使用者。 主要分为五种提示音:
1、低音,表示装置已经摘机,请输入密码,其参数:频率f=500Hz,延时t=0.5秒/声;2、两声低音,表示密码已经通过,请选择电器,其参数:频率f=500Hz,延时t=0.5秒/声;3、三声低音,表示电器已经选定,请控制(开/关),其参数:频率f=500Hz,延时t=0.5秒/声;4、三声高音,表示密码输入错误,其参数:频率f=1000Hz,延时t=0.3秒/声;5、一声高音,表示控制已经完成,其参数:频率f=1000Hz,延时t=0.3秒/声。
提示音发生是使用有限循环,反复使单片机的RXD口的电平反转,从而形成方波信号。见图4.2。程序代码见附录。
图4.2 语音提示模块程序框图
4.4 密码检测部分
本系统密码校验的基本原理是:在系统初始化的时候把原始密码写入地址为30H开始的存储空间内,密码的位数“5”赋给R7。当系统摘机时,要求输入密码,单片机把解码后的数据(使用者输入的密码)存储在38H开始的存储空间内。然后单片机对进行两个存储地址的内容逐位进行比较,直到完全相等才能转到下一进程,有一位不同,程序就转到出错程序。见图4.3。程序代码见附录。
图4.3 密码检测模块程序框图
4.5 密码修改部分
本系统是通过在线输入密码而改变特定存储器中的密码值的。程序代码见附录。 4.6 控制电器部分
本系统首先通过外围双音频解码电路解码的信息(选择电器)判断所选择的电器,然后跳转到每一个子程序,通过单片机向P1口的低四位发送数据,这些控制信息表示对不同的电器进行控制的控制字。为了简单表示,在这里只写出了控制一路电器的控制子程序,其它子程序都相似,不再累述。程序代码见附录。
结束语
本次设计综合利用了电子技术专业各方面的知识,设计用到了数字电字技术,模拟电子技术,电路原理,单片机原路及接口技术等专业知识。涉及到的专业知识面广,技术要求高,难度也较大,很好的运用了四年以来所学的专业知识。对未来的工作和继续学习将会有很大的帮助。
利用电话网络进行远程控制是通讯电子信息行业发展的必然结果。随着社会的发展和人们生活水平的提高,越来越多的家用电器进入了百姓的生活,给大家带来了很多的方便和享受,同时随着电话在家庭中的普及,利用电话实现家用电器遥控自然是未来的发展方向。
本次设计主要分为两大部分:第一是硬件电路设计;第二是软件部分设计,即用汇编语言编写的单片机程序。硬件电路设计方面为了使设计思路和条理更清晰明了,我把整个硬件电路分成四个部分进行了剖析,首先是振铃检测电路;其次是摘挂机控制电路;再其次是双音频DTMF解码电路;最后是家用电器控制电路。软件设计部分则是按照程序设计流程图中的流程一步步的编写程序,设计本遥控装置的控制程序的主要工作是对电话信号进行检测以及接收用户指令控制家用电器的工作。系统程序主要包括管理监控主程序和定时中断子程序。设计中技术要求很高,特别是硬件电路的实际制作和汇编程序的调试。该装置在调试过程中需要连入电话网,所以在调试过程中遇到的困难很多难度也很大。
本设计的目的是希望通过对电话远程控制的研究使这一技术能早日应用于老百姓的日常生活中。本设计在很大程度上也只是从理论方面给出电话远程控制的可行性。许多技术性问题可能还要在实际运用中加以解决。由于设计者水平有限论文中可能有一定的纰漏,希望各位老师能给出更好的指导性意见和建议。
附录A:
AT89C51简介:
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。 主要特性: 与MCS-51兼容
4K字节可编程FLASH存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz5. 三级程序存储器锁定 128×8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 管教说明: VCC:供电电压。 GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为
第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能
P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无
效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。
AT89C51引脚图
附录B:
系统软件设计各模块子程序代码
单片机初始化程序代码: 片内RAM初始化子程序
IBCLR: MOV A,R0 MOV R1,A CLR A
IBC1 : MOV @R1,A INC R1 DJNZ R7,IBC1 RET
片外RAM初始化子程序
EBCLR1: MOV A,ADDPL MOV DPL,A MOV A,ADDPH MOV DPH,A CLR C
EBC11: MOVX @DPTR,A INC DPTR DJNZ R7,EBC11 RET
片外RAM初始化子程序(双字节单元)
EBCLR2: MOV A,ADDPL MOV DPL,A MOV A,ADDPH MOV DPH,A MOV A,R7 JZ EBC21 INC R6
EBC21: CLR A MOVX @DPTR,A INC DPTR DJNZ R7,EBC21 DJNZ R6,EBC21 RET
振铃检测计数程序代码:
ORG 0090H TT0: SETB 7DH RETI
语音发声部分相关子程序代码:
ORG 1100H
RING10:MOV R6,#20 (请输入密码), RING11:MOV R7,#20 (500Hz), RING12:LCALL DL10 (发出提示音1) CPL P3.0 (延时0.5s) DJNZ R7,RING12 DJNZ R6,RING11 CLR P3.0 RET ORG 1150H
RING20:MOV R3,#03
RING21:MOV R6,#20 (选择电器), RING22:MOV R7,#20 (500Hz), RING23:LCALL DL20 (发出提示音2), CPL P3.0 (延时0.3s) DJNZ R7,RING23 DJNZ R6,RING22 CLR P3.0
MOV R7,#200 RING24:LCALL DL10 DJNZ R7,RING24 DJNZ R3,RING21 CLR P3.0 RET ORG 1200H
RING30:MOV R3,#02
RING31:MOV R6,#20 RING32:MOV R7,#20 RING33:LCALL DL10 CPL P3.0 DJNZ R7,RING33 DJNZ R6,RING32 CLR P3.0 MOV R7,#200 RING34:LCALL DL10 DJNZ R7,RING34 DJNZ R3,RING31 CLR P3.0 RET ORG 1250H
RING40:MOV R3,#03
RING41:MOV R6,#20 RING42:MOV R7,#20 RING43:LCALL DL10 CPL P3.0 DJNZ R7,RING43 DJNZ R6,RING42
, 500Hz), 3), 0.3s) ,1000Hz), 4), 0.3s)
(电器控制)((发出提示音 (延时(输入的密码错误) ((发出提示音 (延时CLR P3.0 MOV R7,#100 RING44:LCALL DL10 DJNZ R7,RING44 DJNZ R3,RING41 CLR P3.0 RET ORG 1300H
RING50:MOV R6,#40 RING51:MOV R7,#20 RING52:LCALL DL20 CPL P3.0 DJNZ R7,RING52 DJNZ R6,RING51 CLR P3.0 RET ORG 1500H
DL10:MOV R5,#25 DL12:MOV R4,#25 DL11:DJNZ R4,DL11 DJNZ R5,DL12 RET ORG 1600H
DL20:MOV R5,#12 DL22:MOV R4,#25 DL21:DJNZ R4,DL21 DJNZ R5,DL22 RET ORG 1650H
, 1000Hz), 5), 0.3s) (delay1.25ms,f=800HZ,fosc=12MHz) (delay0.625ms,f=1600HZ,fosc=12MHz)
(操作完成)( (发出提示音 (延时
DL30:MOV R5,#50 (delay20ms) DL32:MOV R4,#200 DL31:DJNZ R4,DL31 DJNZ R5,DL32 RET
密码修改部分相关程序代码:
ORG 1700H
KEYIN: SETB RS1 (当前工作寄存器第二工作区) CLR RS0
ANL A,#00H (清零A寄存器) MOV B,#05H
LCALL RING10 (发提示音:输入密码***) MOV R7,#5H MOV R1,#38H
WPIN: JBC 7EH,READ (等待INT0中断) LJMP WPIN
READ: MOV R1,#38H MOV R0,#40H MOV R7,#05H READ1: MOV A,@R1 MOV @R0,A INC R0 INC R1
DJNZ R7,READ1 (判断输入密码是否为5位,否跳转READ1) LCALL RING10 (满5位,发提示音:再输入新密码) MOV R7,#5H MOV R1,#38H
WRE: JBC 7EH,KEYCMP (等待中断INT1) LJMP WRE
KEYCMP:MOV R6,#05H MOV R0,#40H MOV R1,#38H KEYCP:MOV A,@R0 CLR C
SUBB A,@R1 INC R1 INC R0
JZ BBB LJMP LL
BBB: DJNZ R6,KEYCP MOV R1,#38H MOV R0,#30H MOV R6,#5H
KEYREIN:MOV A,@R1 MOV @R0,A INC R1 INC R0
DJNZ R6,KEYREIN LCALL RING50 LJMP STOP RET
密码检测模块程序代码:HOKE1:LJMP HOKE ORG 0090H TT0: SETB 7DH RETI ORG 0150H HOKE: CLR 7DH
A减((R1))) A的内容如果为0,则跳转BBB) R6减1不为0,则跳转KEYCP,即循环比较密码的五位)R6减1不为0,则跳转,即循环比较密码的五位)
( ( ( ( (发提示音:新密码已经设置)
SETB P3.1 (接通电话) CLR TR0 (打开T0) MOV R2,#03H (密码错误三次) LCALL RING10 (输入密码) IN: CLR 7 EH (7EH=0) DTMF: MOV R7,#1H (密码:5 R7) MOV R1,#38H (提示音) SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7
WAIT: JBC 7EH,CC (等待 INT0) LJMP WAIT
CC: MOV R7,#1H (密码5***) MOV R0,#30H; MOV R1,#38H ; CMP: MOV A,@R1 MOV R4,A CLR C MOV A,@R1 SUBB A,@R0 INC R0 INC R1 JZ AAA; LJMP QQ
AAA: DJNZ R7,CMP;R7-1!=0 LJMP LL (通过)
QQ; DJNZ R2,IN1 (密码错误&R2!=0) LCALL RING20
LJMP STOP
IN1: LCALL RING20 (密码错误,请重新输入!) LJMP IN
电器控制模块相关程序代码:
ORG 1600H
LL: LCALL RING30 MOV R7,#1H MOV R1,#38H CLR 7EH
WAIT0:JBC 7EH,DD LJMP WAIT0
DD: MOV R1,#38H MOV A,@R1 RR A RR A RR A RR A MOV R4,A RL A ADD A,R4 MOV DPTR,#TAB JMP @A+DPTR TAB: LJMP ZERO
LJMP EIGHT LJMP FOUR LJMP STOP LJMP TWO LJMP ZERO LJMP SIX (提示选择需控制的电器) (控释电器的序号) (等待外部中断INT0) 8) 4) 2) 0) 6)
( ( (#) (( (
LJMP LL (**) LJMP ONE (1) LJMP LL (9,**) LJMP FIVE (5) LJMP LL (A,**) LJMP THREE (3) LJMP LL (*,**)LJMP SEVEN (7) LJMP LL (C,**)ORG 0250H ZERO:LJMP LL
ONE: LCALL RING40 OO1: MOV R7,#01H CLR 7EH
WAIT1:JBC 7EH,WW1 LJMP WAIT1
WW1:MOV R1,#38H MOV A,@R1
CJNE A,#50H,BB1 LJMP ZZ1 BB1: CJNE A,#80H,QUIT1 SETB P1.3 CLR P1.2 CLR P1.1 CLR P1.0 LJMP QUIT1
ZZ1:CLR P1.3 CLR P1.2 CLR P1.1
INT0) ((38H)不等于0AH(0),则跳转BB1) ((38H)等于0AH(0),则跳转ZZ1) ((38H)不等于01H(1),则跳转QUIT1) (打开1) (全部关闭)
(发提示音:请操作电器)(等待外部中断 (检查信号首位)
CLR P1.0
LCALL RING50 (结束) QUIT1:LJMP LL
附录C
远程电话控制系统电路图
参考文献
[1] 余水权.嵌入式系统,智能家电及家居网络[M].单片机与嵌入式系统应用,2001: 22-35
[2] 黄天戌,孙东.智能电话远程控制系统的设计与实现[J].电工技术杂志,2001.6:35-37
[3] 何琳琳,张海军.基于电话网络的家用电器远程控制系统的实现[J].单片机开发与应用,2006.6:74
[4] 吴炳胜,王桂梅. 80C51单片机原理与应用[M].冶金工业出版社,2001.10: 48-53 [5] 张大明.单片微机控制应用技术,机械工业出版社2006.2:18-21
[6] 刘连吉.ISD单片机语音录/放器件及电路设计[J].青岛海洋大学出版社2004.27(3):292-296
[7] 陈明义.数字电子技术基础[M].中南大学出版社,2004,12:99-130
[8] 李传南.单片机与DTMF信号收发芯片MT8870的直接接口设计[J].电子与自动化.2002.2: 30-35
[9] 曾刚,徐成.DTMF远程通信的软硬件实现技术[M].电子技术应用,2005.5 [10] 8808 microprocessors, W.Triebe1, Avter Singh, Prentice Hall,2001:7-8 [11] 肖质红.基于公用电话网络的远程控制家电设备[J].浙江万里学院学报,2006.3:123-129
[12] 李广地,朱月秀,王秀山.单片机基础[M].北京航空航天大学出版社,2005.2:159-162
[13] 杨为理.现代通讯集成电路应用技术手册[M].电子工业出版社,2002,5
[14] 谭扬波,李翔宇.Protel for Windows计算机辅助电路设计教程.机械工业出版社 [15] 陈尔绍.电子控制实例.电子工业出版社,2004.11:285-288 [16] 莫力. Protel 电路设计.国防工业出版社,2005.1
[17] Understanding Telephone Electronics, John. L. Fike, George E. Friend Texas Instruments Inc,2004:20-35
[18] Bushby S T. A standard communication infrastructure for intelligent Buildings. Automation in Construction [J]. 2007.6: 529-540
[19] Personal Computer XT/AT system Technical reference manual, Intel Corp.
因篇幅问题不能全部显示,请点此查看更多更全内容