电话远程遥控器,telephone remote controller
关键字:电话遥控,远程遥控,MT8870,89C51,电话遥控电路,远程遥控电路
信号音从单片机89C51的RXD/P3.0口输出,先经过一组反向器进行整流、隔离,从反向器输出的是频率一定,时通时断的方波,提示信号经过隔直电容C1输入到音频放大集成电路LM386N-1的输入端。经过LM386N-1的放大,信号音经耦合电容C5至变压器T1,它是音频输出专用的耦合变压器,正好符合阻抗匹配的要求。 本电路比较难点在于耦合变压器T1的选取。因为电话线中直流电压比较高,而且还有各种信号音,这些都会影响到语音信号加载到电话线上,因此本装置使用一个耦合变压器作为隔离器件。这个耦合变压器的阻抗匹配问题是设计的难点,设计初我查阅有关资料并没发现具体参数。后来看到可以邮购这种电话语音专用耦合变压器,其具体性能都很优秀,但是价格太高,不符合我的设计原则(元器件便宜),因此弃置不用。 到了毕业设计的后期,本装置的基本功能已经完成,音反馈的问题又重新提到议事日程上来了。经过我不懈的努力,终于在电子市场上发现了体积很小的电话专用耦合变压器,价格只有2元。这种耦合变压器分两种,一种是输入,一种是输出,经过实验表明输入用的耦合变压器反馈语音性能比较好,其体积大约是10mm×10mm×8mm。 音频放大集成电路LM386的连接比较简单,本装置的使用是LM386放大增益为50dB的连接方式。
图3.5 原器件选取: 1、 反向器选取74LS04中的一组反向器; 2、 C1的是对音频信号起隔直耦合的作用,所以取100μF的电解电容,耐压性能无特殊要求; 3、 IC1、R1、R2、C2、C3、 C4和C5共同组成音频放大电路,IC1选取LM386N-1,R1取1kΩ,C2取10μF的电解电容,C3取10μF的电解电容,R2取1kΩ, C4取10μF的电解电容,C5取100μF的电解电容; 4、 T1是音频输出专用变压器; 3.5 电器控制电路
原理说明: 本单元电路主要是由译码扩展电路、反向电路、D触发器和继电器控制电路组成。电路图如图3.6所示。 首先,单片机AT89C51从P1口的低四位输出四位控制信号。P1.0、P1.1、P1.2作为三位数据线,P1.3作为使能控制信号,一同加在3-8线译码器的输入端。当使能端有效时,三位数据线经过译码器数扩展为八位数据线。这八位数据连接八个反向器进行整流隔离,然后连接D触发器进行数据锁存。每个D触发器的输出端都控制一路继电器,而每一路继电器也控制一路电器的开关。二极管指示灯并联在开关三极管两段作为电器开关指示。这样就可以完成单片机对多路电器的控制。也可以把P1口的八位都用作控制电器,数据输入口改在P2口。 图3.6所示的为一路电器控制电路图,在本装置中一共有八路电器可以控制,其它电器控制相同。
图3.6 元器件选取: 1、3-8线译码器选取74LS138P; 2、反向器选取两片74LS04(每一片内有六个反向器)中的九个反向器; 3、触发器选取四片4013(每一片内有两个D触发器); 4、三极管选取八个9013; 5、二极管起保护作用,选取八个4001; 6、指示灯选取八个红色5mm发光二极管; 7、指示灯限流电阻选取八个1kΩ的电阻; 8、三极管的限流电阻选取八个2kΩ的电阻; 9、继电器选取八个JRC-4100F DC5V继电器;
第四章 软件设计
本系统的软件设计主要分为系统初始化、振铃检测计数、控制摘挂机、双音频信号分析处理、控制电器、信号音提示等部分。每个功能模块对于整体设计都是非常重要的,单片机T89C51通过软件程序才能很好的对外部的信息进行采集、分析和决策。下面,就整体设计以及每个单元功能模块分别进行说明。
整体流程图:
4.1 信号音发声部分
本功能模块主要是产生信号提示音,方便不同的使用者。根据普通人耳的反应频率为20Hz至20KHz的范围,和CCITT规定的电话话音信号的频率范围是300Hz至3400Hz,我在本功能单元的发声频率定为500Hz和1000Hz两种。
主要分为五种提示音:
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口的电平反转,从而形成方波信号。 子程序代码:
ORG 1100H RING10:MOV R6,#20 ;input password RING11:MOV R7,#20 ;800Hz RING12:LCALL DL10 ;sound=1 CPL P3.0 ;delay=0.5s DJNZ R7,RING12 DJNZ R6,RING11 CLR P3.0 RET
ORG 1150H RING20:MOV R3,#03 RING21:MOV R6,#20 ;password wrong RING22:MOV R7,#20 ;1600Hz RING23:LCALL DL20 ;sound=3 CPL P3.0 ;delay=0.25s 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 ;select RING32:MOV R7,#20 ;800Hz RING33:LCALL DL10 ;sound=2 CPL P3.0 ;delay=0.5s 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 ;control RING42:MOV R7,#20 ;800Hz RING43:LCALL DL10 ;sound=3 CPL P3.0 ;delay=0.5s DJNZ R7,RING43 DJNZ R6,RING42 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 ;finish RING51:MOV R7,#20 ;1600Hz RING52:LCALL DL20 ;sound=1 CPL P3.0 ;delay=0.15s DJNZ R7,RING52 DJNZ R6,RING51 CLR P3.0 RET
ORG 1500H DL10:MOV R5,#25 ;delay1.25ms,f=800HZ,fosc=12MHz, DL12:MOV R4,#25 DL11:DJNZ R4,DL11 DJNZ R5,DL12 RET
ORG 1600H DL20:MOV R5,#12 ;delay0.625ms,f=1600HZ,fosc=12MHz, DL22:MOV R4,#25 DL21:DJNZ R4,DL21 DJNZ R5,DL22 RET
ORG 1650H DL30:MOV R5,#50 ;delay20ms DL32:MOV R4,#200 DL31:DJNZ R4,DL31 DJNZ R5,DL32 RET
4.2 密码检测部分
本系统密码校验的基本原理是:在系统初始化的时候把原始密码写入地址为30H开始的存储空间内,密码的位数“5”赋给R7。当系统摘机时,要求输入密码,单片机把解码后的数据(使用者输入的密码)存储在38H开始的存储空间内。然后单片机对进行两个存储地址的内容逐位进行比较,直到完全相等才能转到下一进程,有一位不同,程序就转到出错程序。
|