电话智能远程遥控器Word下载.docx
《电话智能远程遥控器Word下载.docx》由会员分享,可在线阅读,更多相关《电话智能远程遥控器Word下载.docx(25页珍藏版)》请在冰豆网上搜索。
2.1.3语音提示电路5
2.1.4DTMF信号解码电路6
2.1.5音频放大电路7
2.2AT89C51单片机及其引脚说明7
第三章系统的软件设计9
3.1系统主程序设计9
3.2信号音计数10
3.3密码检测10
3.4信号分析处理10
第四章系统调试与测试结果分析10
4.1使用的仪器仪表10
4.2系统调试11
4.3测试结果11
4.4测试结果分析11
结束语13
参考文献14
附录15
1、电路原理图15
2、电话遥控器使用说明15
3、全部源程序16
第一章引言
本文主要介绍了一种以单片机AT89C51和双音多频解码集成电路MT8870为核心,通过电话线路遥控的远程多路智能控制器。
无线电遥控既是利用无线电信号对被控物体实施远距离控制。
无线电遥控不可避免的须占用一定的无线电频率资源,造成电磁污染;
常规的有线遥控需进行专门的布线,增加了投入;
电话遥控作为一较新的课题与常规的遥控方式相比,显示出一定的优越性,不需进行专门的布线,不占用无线电频率资源,避免了电磁污染。
同时,由于电话线路各地联网,可以充分利用现有的电话网,因此遥控距离可跨省市,甚至跨越国家。
1.1电话智能远程遥控器概述
电话属双工通信手段。
因此,这可以大大体现出利用电话进行遥控的更大优越性。
操作者可以通过各种提示音即时了解受控对象的有关信息,从而进行进一步的操作。
电话遥控这一课题目前已有涉足者,但是只是还只限于实验室阶段,因而距离实际应用,尤其是对于日常生活尚有一定的差距,并不能完全体现出电话遥控方式的双工通信特点。
本作品正是针对这一点进行了较大改进,采取单片机智能控制,利用不同的提示音达到对于不同操作的提示及对受控方状态的信息
反馈,从而使操作者能够及时了解受控方信息,使产品达到交互式与智能化。
而且本作品的调试都是在线调试,已经在宿舍连接电话经过真正的交换机实验并且成功。
本作品的各种电器接口、各项标准都严格遵循国家有关标准,为以后的产品化提供了良好的基础。
作品为突出电话遥控的信息反馈功能,并使产品达到非常高性价比。
故未对电话装置的其他功能进行进一步的扩展,而且所有使用的集成电路和其它元器件都尽量选择廉价的。
在该作品的基础上进行了功能扩展是很方便的。
譬如:
使用语音芯片作为信号音反馈,提高本作品的实用性(此次为了保证整体电路的廉价,所以并未使用语音芯片)。
加上留言电路,主人在家时客人留言。
利用遥控方式可使主人很方便地在异地提取留言信息;
在各路终端上接上传感器即可实现对环境声响的监听;
接上自动拨码电路可定时将预定信息转至主人特定电话,从而达到定时提醒主人的目的。
1.2本设计任务
电话远程智能遥控系统的具体设计要求:
⑴通过电话网对异地的电器实现控制(开/关);
⑵控制器可以实现自动模拟摘挂机;
⑶控制器设置密码校验;
设计此系统必须具有以下单元功能模块
⑴铃音检测、计数;
⑵自动摘挂机;
⑶密码校验;
⑷在线修改密码;
⑸双音频信号解码;
⑹输入信息分析;
⑺控制电器开关;
⑻电器状态查询;
⑼忙音检测;
1.3系统主要功能
电话智能遥控器主要包括电话振铃检测电路,电话自动摘机和挂机电路,DTMF信号解码电路,语音提示急电路,音频放大电路,以及控制心脏CPU电路,系统结构框图如图1所示:
图1系统结构框图
当有电话打入时,电话振铃检测电路检测到有振铃并等待系统默认的振铃次数后,控制器自动摘机,并在语音电路的提示下依次输入用户的操作密码和操作指令。
DTMF解码电路将接受到的DTMF解码后的数字信号送入CPU,若密码有误,系统自动挂断电话;
当密码正确时,只需按语音提示依次完成一系列操作。
当操作完成时,单片机根据返回的确认信息去控制家用电器,至此,整过操作过程完成。
第二章电话智能遥控器
本作品使用了大量的硬件电路完成部分功能模块,其目的就是充分利用硬件电路的可靠性、稳定性,使整体电路达到比较高的稳定性。
2.1系统的硬件构成及功能
本作品使用了大量的硬件电路完成部分功能模块,其目的就是充分利用
硬件电路的可靠性、稳定性,使整体电路达到比较高的稳定性。
2.1.1自动摘挂机
设计主要思路:
因为程控电话交换机对电话摘机的响应是电话线回路电流突然变大为约30mA的电流,交换机检测到回路电流变大就认为电话机已经摘机。
自动摘挂机电路可以通过单片机控制一个继电器的开关,继电器的控制端连接一个大约300Ω的电阻接入电话线两端,从而完成模拟摘挂机。
电话打入并等待默认的振铃次数后,从CPU的P1.7送出的摘机信号驱动光藕导通使假负载接入,进入摘机状态。
当整个设定过程完成后或输入密码错误时,CPU使摘机信号恢复为高电平以断开假负载,进入挂机状态,如图2所示。
模拟摘挂机电路主要由一个三极管开关电路控制继电器的开关,继电器控制接入电话线两端的200Ω电阻。
经过两个反向器驱动发光二极管D1指示摘机,同时改变三极管T1的基极电压,使T1处于导通状态,从而开启继电器J1,J1使电阻R3接入电话线两端。
因为R3的电阻为200Ω,使回路电流变大,控制电路向交换机发出模拟摘机的信号,交换机响应摘机信号,完成电话线路接通。
整个电路完成自动模拟摘机过程。
2.1.2振铃音的检测
当用户被呼叫时,电话交换机发来铃流信号。
振铃为25±
3伏的正弦波,谐铃失真不大于10%,电压有效值90±
15V。
振铃以5秒为周期,即1秒送,4秒断。
根据振铃信号电压比较高的特点,可以先使用高压稳压二极管进行降压,然后输
入至光电耦合器。
经过光耦的隔离转换,从光电耦合器输出的波形是时通时断的正弦波,经过RC回路进行滤波输出很标准的方波。
方波信号就可以直接输出至单片机的中断计数器输入口,完成整个振铃音检测和计数的过程。
原理说明:
电话振铃信号通过电容C1隔直、D1稳压二极管、R1限流电阻输入至光电耦合器4N25的输入端1口,C1、D1和R1共同组成振铃信号变换电路,它们使输入电压和电流不会太大,对后面的光电耦合器起保护作用。
光电耦合器4N25起的是隔离作用,光电耦合器是一种电信号的耦合器件.
它一般是将发光二极管和光敏三极管的光路耦合在一起,输入和输出之间不可共地,输入电信号加于发光二极管上,输出信号由光敏三极管取出。
光电耦合器以光电转换原理传输信息,它不仅使信息发出端(一次侧)与信息接收并输出端(二次侧)是绝缘的,从而对地电位差干扰有很强的抑制能力,而且有很强的抑制电磁干扰能力。
速度高、价格低、接口简单。
振铃信号通过光耦4N25的4脚输出振铃正弦波,R2和C2共同组成滤波电路,信号到了开关三极管T1的基极就变成了方波。
经过三个反向器的整形输出到单片机AT89C51的T0/P3.4口,中断方式采用外部中断,计数5次产生T0中断,控制继电器模拟摘机,完成振铃音检测。
振铃检测电路
2.1.3语音提示电路
当有电话打入并且电话远程控制器摘机后,控制者便会在语音提示电路的提示下输入密码,选择通道,设定各种数值,执行开机,挂机等操作。
为了方便本系统的使用者,设计了信号音提示音电路,如图4
首先我规定了信号音的规范以及其对应含义
1、响1声,频率为500Hz:
请输入密码
2、响2声,频率为500Hz:
请输入需要控制的电器号;
3、响3声,频率为500Hz:
请输入控制开/关;
4、响1声,频率为1000Hz:
完成操作;
5、响3声,频率为1000Hz:
密码错误;
信号音从单片机89C51的RXD/P3.0口输出,先经过一组反向器进行整流、隔离,从反向器输出的是频率一定,时通时断的方波,提示信号经过隔直电容C1输入到音频放大集成电路LM386N-1的输入端。
经过LM386N-1的放大,信号音经耦合电容C5至变压器T1,它是音频输出专用的耦合变压器,正好符合阻抗匹配的要求。
语音提示电路
2.1.4DTMF信号解码电路
此部分是整个系统的关键,它的工作情况直接决定了系统的可靠性。
经过翻阅大量的文献资料,我发现使用电话专用的双音频编解码芯片进行输入双音频信号的解码,是比较常用的一种方法。
使用集成电路不但外围电路简单,而且可靠性强。
经过专用集成电路的解码,信号转换成为不同的码制信号,可以直接被单片机读取。
一般常用的电话双音频编解码集成电路有8870、8880、8888等,经过反复论证比较,我决定使用双音频解码集成片MT8870来完成此功能模块。
DTMF信号解码电路
2.1.5音频放大电路
使用LM386低压音频功率放大器,LM386是为低压用户设计的功率放大器,内部增益为20,外接元件数目较少。
音频放大电路如图6所示。
音频放大电路
2.2AT89C51单片机及其引脚说明
AT89C51是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。
AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工
串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C51引脚配置
AT89C51具有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
主要功能特性:
兼容MCS—51指令系统
32个双向I/O口
两个16位可编程定时/计数器
1个串行中断
两个外部中断源
可直接驱动LED
低功耗空闲和掉电模式
4k可反复擦写(>
1000次)FlashROM
可编程UARL通道
全静态操作0-24MHz
128x8bit内部RAM
共6个中断源
3级加密位
软件设置睡眠和唤醒功能
第三章系统的软件设计
3.1系统主程序设计
电话智能遥控器由单片机构成主控部分,进行主要的信息处理,接收外部操作指令形成各种控制信号,并完成对于各种信息的记录;
接口电路提供单片机与电话外线的接口。
其中包括铃音检测、摘挂机控制、忙音检测、双音频DTMF识别,及语音提示电路。
整体原理流程图如下:
图8系统主程序流程图
3.2信号音计数
本单元可以使用AT89C51的两个计数器的外部中断方式来实现对不同
信号音的计数。
3.3密码检测
本单元可以在系统初始化的时候,在单片机内部的存储器的内部开辟
一块空间放置密码。
当用户输入密码的时候,单片机把输入的密码写入另
外的一块空间,然后利用减法运算比较两者是否相等。
这样就可以实现密
码检测的功能。
3.4信号分析处理
本单元可以利用查表方式,也可以用简单的语句,稍微长一点的语句实现,例如CASE语句等。
经过翻阅大量的技术资料,对具体要求实现的功能进行完整的系统分析,我认为我的电话遥控系统设计基本符合实际情况,可以完成设计任务所要求实现的基本功能。
第四章系统调试与测试结果分析
4.1使用的仪器仪表
1、IBM-PC/XT兼容机一台,主频:
50Hz,有软驱和25针串行接口;
2、ME-5103单片机仿真机一个;
3、万用表一个;
4、计算机5V稳压电源一个;
5、SR8双踪示波器;
6、ManleyIn-CircuitEmulatorDebugger(MBUG)开发软件;
4.2系统调试
本装置的调试主要分为硬件调试、软件调试和联机调试等三大部分。
经过初步的分析设计后,在制作硬件电路的同时,调试也在穿插进行。
这样有利于问题的分析和解决,不会造成问题的积累,而且不会因为一个小问题而进行整体电路的检查,从而可以节约大量的调试时间。
软件编程中,我是首先完成单元功能模块的调试,然后进行系统调试,整体上与硬件调试的方法差不多。
联机调试是最重要的一部分,同时也是本装置成功的关键。
有许多新问题都不是很容易解决的。
4.3测试结果
最大的问题发生在程序内部的信息处理部分,因为我事先并没有对信号的编解码做规定,这样就直接导致双音频信号解码后输入到单片机内,造成跳转指令混乱。
比如我按下“7”键,单片机会认为我按下的是“1”键。
这一部分原理是比较简单的,但是程序还是挺麻烦的,但最后我还是把程序内译码、码制转换的问题解决了。
因为调试的时候是只使用一位密码,控制一路电器,所以到了这时,我还有扩展密码位数和扩展控制路数的问题要解决。
这些扩展都是时间问题,只要仔细的拷贝一些程序代码就可以顺利完成。
我还用不同的MCS-51仿真机实验,发现几乎没有两台MCS-51仿真机的实验结果是完全相同的,不是晶振的振荡频率不同,就是有个别管脚不能输出数据。
晶振的振荡频率不同就直接造成延时不同,发生频率不一样。
经过调试,大大小小的各种问题都得到了解决,到此为止,在线联机调试也就告一段落。
4.4测试结果分析
对于本系统而言,软件程序所实现的功能比较多,所以软件程序的调试显得相当的烦琐。
整个程序是使用汇编语言,在MBUG下编写调试完成的。
首先我使用的是我自己的计算机联接MCS-51仿真机,计算机的主频为333MHz,但是出现了许多的问题。
第一个问题就是:
我所使用的MCS-51仿真机型号是ME-5103,联入计算机的25针串行口来进行程序的读入,但是我的计算机没有25针串行口。
观察
计算机的后面,主板上只有一个25针并行口,是用来连接打印机的;
除了这个25针串行口外,还有两个9针串行口。
提示音信号:
在本单元的调试过程中,我认为此部分的结构比较简单,因此在整体程序中直接调试。
首先Ctrl+F5单步执行,发现此部分的RING1子程序正常,而其它的子程序在执行时却发生死循环。
我把这几个子程序单独切出来进行分析,却发现执行正常,于是我推测并不是子程序本身的结构问题。
然后使用Ctrl+F8对整个程序单步执行(两种单步执行的区别在于F5直接执行子程序,即不单步执行子程序,而F8对于整个程序都是单步执行,包括子程序),发现RING2中的R5寄存器已经在主程序中用作判断标志位,程序已经在外部完成对其赋值。
这样就导致重复赋值,因此无法跳出循环子程序,直接导致死循环。
密码检测:
本部分的调试比较艰难,我是先调试一位密码,然后再调试五位密码。
我先设定R5为一位,即先设定一位密码作为测试。
首先单步执行,发现信号音无法正常输入到单片机的38H地址处的存储空间。
现象:
计算机联机单步执行,接收振铃信号,三次自动摘机,当程序执行到等待INT0中断(一个小的循环程序)时,既等待输入密码时,我按下“7”(事先设定的一位密码),单片机能够正常的响应中断信号,跳出循环程序,执行中断处理程序,单片机在比较比较密码时,总是出错。
程序单步执行到等待INT0中断,即要求输入密码时,按下电话机的一个按键,程序就跳出循环程序,跳到中断处理程序处处理双音频信号的输入。
因为单步执行是一步一步的执行,其执行速度比较慢,等到把单片机的P1口高四位的双音频解码信号写入地址为38H的存储空间时,信号早已过去,P1口高四位也恢复高电平,写入P1口高四位的数据当然是FFH。
而F9全程执行速度非常快,不是外部信号等待单片机的处理,而是单片机等待外部信号的输入,当然不会漏掉数据。
原因找到了,解决方法也很简单:
在程序单步执行时,到了等待INT0中断时,我按下“7”键的时间特别长,直到看见程序执行到写入地址为38H的存储空间后才松手。
这样数据就能正确写入寄存器,当然能够通过密码检测。
结束语
一份耕耘,一份收获。
通过这些天紧张的课程设计,我深深体会到这句话的含义。
这些天磨练了我的意志,同时也培养了我良好的自学能力及分析问题的逻辑思维。
经过多天的细心规划和认真编程,并在经过仔细的测试后,电话智能遥控器终于制作完成。
虽然这个设计的功能还是比较基础,但是已经具备电器的管理功能,有很好的扩展性,这为以后系统的加强、扩展提供了保证。
我的设计终于圆满完成。
由于电话遥控是对我来说是全新的一个技术,几天的学习是远远不够的,只学到了些基础而已。
因此设计的成果难免存在很多错误和不足,特别是编程方面,很多功能虽然实现了,但对它的理解还是一知半解,希望以后能有机会更加深入的学习。
在这里,我要感谢帮助我的老师和同学,由于他们的帮助增强了我的信心和动力,为设计的顺利完成提供了保障。
参考文献
[1]李朝青.单片机原理及接口技术.北京:
北京航空航天大学出版社,1994
[2]李华.MCS-51系统单片机实用接口技术.北京:
北京航空航天大学出版社,1993
[3]涂时亮.张友德.单片微机控制技术.上海:
复旦大学出版社,1994
[4]余永全.单片机在控制系统中的应用.北京:
电子工业出版社,2003
[5]何立民.单片机中级教程—原理与应用.北京:
北京航空航天大学出版社,2000
[6]陈光东.单片微型计算机原理与接口技术.湖北:
华中理工大学出版社,1999
附录
1、电路原理图
2、电话遥控器使用说明
本系统使用起来非常方便,下面我就系统使用流程图做一下简单的使用方法介绍。
首先用户把本装置的信号线并联在电话线的两端,插上电源线,打开电源开关,本装置自动复位,就能正常工作了.
当用户从异地打来电话,本装置接收到电话振铃音,开始计数。
当电话铃声计到五次,装置自动摘机,回送提示音提示输入密码。
当用户在三次之内输入正确的密码后,用户就可以对装置所连的电器进行选择,然后根据需要对其进行开关控制。
用户可以在一次“通话”中同时控制几个电器。
如果用户控制完毕,可以按‘#’键让装置自动挂机,结束“通话”。
而已经开启的电器将保持其开启的状态,直到下一次的“通话”控制使其关闭。
本装置使用起来简单易学,而且功能强大。
3、全部源程序
信号音发声部分子程序代码:
ORG1100H<
BR>
RING10:
MOVR6,#20;
inputpassword
RING11:
MOVR7,#20;
800Hz
RING12:
LCALLDL10;
sound=1
CPLP3.0;
delay=0.5s
DJNZR7,RING12
DJNZR6,RING11
CLRP3.0RET
ORG1150H
RING20:
MOVR3,#03
RING21:
MOVR6,#20;
passwordwrong
RING22:
1600Hz
RING23:
LCALLDL20;
sound=3
delay=0.25s
DJNZR7,RING23
DJNZR6,RING22
CLRP3.0
MOVR7,#200
RING24:
LCALLDL10
DJNZR7,RING24
DJNZR3,RING21
RET
ORG1200H
RING30:
MOVR3,#02
RING31:
select
RING32:
RING33:
sound=2
DJNZR7,RING33
DJNZR6,RING32
RING34:
DJNZR7,RING34
DJNZR3,RING31
DJNZR6,RING42
MOVR7,#100
RING44:
DJNZR7,RING44
DJNZR3,RING41
ORG1300H
RING50:
MOVR6,#40
RING51:
RING52:
delay=0.15s
DJNZR7,RING52
DJNZR6,RING51
ORG1500H
DL10:
MOVR5,#25;
delay1.25ms,f=800HZ,fosc=12MHz,
DL12:
MOVR4,#25
DL11:
DJNZR4,DL11
DJNZR5,DL12
ORG1600H
DL20:
MOVR5,#12;
delay0.625ms,f=1600HZ,fosc=12MHz,
DL22:
DL21:
DJNZR4,DL21
DJNZR5,DL22