基于89C51设计的电话远程控制开关
4.5 振铃计数部分
本单元是通过计数器T0的外部中断方式来计数的,程序代码:
ORG 0090H
TT0: SETB 7DH
RETI
第五章 系统调试
5.1 整体调试
整体调试所使用的测试仪器仪表和工具:
1、IBM-PC/XT兼容机一台,主频:50Hz,有软驱和25针串行接口;
2、ME-5103单片机仿真机一个;
3、MF116万用表一个;
4、计算机5V稳压电源一个;
5、SR8双踪示波器;
6、Manley In-Circuit Emulator Debugger(MBUG)开发软件;
本装置的调试主要分为硬件调试、软件调试和联机调试等三大部分。
经过初步的分析设计后,在制作硬件电路的同时,调试也在穿插进行。这样有利于问题的分析和解决,不会造成问题的积累,而且不会因为一个小问题而进行整体电路的检查,从而可以节约大量的调试时间。软件编程中,我是首先完成单元功能模块的调试,然后进行系统调试,整体上与硬件调试的方法差不多。联机调试是最重要的一部分,同时也是本装置成功的关键。有许多新问题都不是很容易解决的。
调试的步骤
5.2 硬件单元电路 5.2.1 5V稳压电源
本装置使用单5V稳压电源供电,要求交流成分小。经过示波器测量5V稳压电源输出端,其交流部分电压的峰-峰值为6mV,符合本装置的电源要求,稳压电源调试完毕。
5.2.2 振铃音检测
在本单元电路制作前期,实验室中无模拟交换机,无法产生振铃信号,我只好在完成此部分的焊接后回寝室中完成其测试。将本装置的电话线两端并联在电话机两端,摘机拨打“190”,然后挂机,市交换机会回送连续的测试振铃音。经过测量,这种测试振铃音和正常的振铃信号的频率、振幅等特性都一样,只是正常的振铃信号是1秒通4秒断,而这种测试振铃音是连续的。当送测试振铃音时,用万用表的直流档测量光电耦合器4N25的输出端,有明显的电压,这说明可以形成中断响应信号。后接振铃指示灯,发现在送铃流 图5.1信号时,指示灯亮,但是灯在闪烁。分析得光耦输出端所接的滤波电容C2太小,于是把原来的1μF换成现在的100μF,如右图5.1所示,问题得到解决。
因为单片机T0所响应的外部中断信号是低电平有效,所以在光耦输出端接了一个开关三极管T1控制指示灯,在三极管的输出端接了三个反向器。经过三极管T1的开关作用和三个反向器的反向作用,输出应该为低电平。但是在测量反向器输出端时发现:振铃指示灯亮,但反向器输出端为高电平。说明振铃信号可以通过三极管,但无法通过反向器。分析原因可能是反向器74LS04坏了,换之,再测,还是老问题。经过细心测量三极管的发射极电压发现:有振铃时Ve=1.1V,这时反向器74LS04认为是低电平,当无振铃脉冲信号时,还是认为是低电平,所以振铃信号无法通过反向器。解决方法很简单,把三极管的发射极端的下拉电阻R4从原来的20kΩ改成5.1kΩ,提升三极管的发射极电压。
在毕业设计的后期,实验室有了模拟小交换机,经测试,本单元电路完全正常,振铃检测部分调试完毕。
5.2.3 模拟摘挂机
此部分的调试较为容易,电路接好后,用5V高电平测试之,指示灯亮,继电器吸合正常。接入模拟小交换机,控制摘机时,交换机的端口指示灯亮,反之挂机时,指示灯灭。说明此部分完全正常。接入仿真机测试时发现:单片机的TXD端不能控制模拟摘挂机部分的摘挂机。分析得出结论:可能是接口的电平不相符合。解决方法:加上一个三极管模拟开关,加上一个反向器(74LS04)进行控制隔离作用。经过接入仿真机测试表明反向器的作用很明显,于是在后面的电路设计当中,我在许多的接口上大多使用了反向器。至此,模拟摘挂机部分调试完毕。
5.2.4 控制电器
控制电器这部分的外围硬件电路很容易,在调试过程中很顺利完成。在接仿真机时,使用的是P2口控制电器,实验结果表明P2口无法正常控制每个电器,翻阅资料发现单片机89C51的P2口没有数据锁存功能,不能保持上一个状态的数据。解决方法:把P2口控制电器改为P1口的低四位控制电器,改线之后控制正常,但是新的问题出现了,原来要求控制八路的端口,现在只能控制四个电器。
经过市场实际分析,一般的控制电器只要求3~4路即可,为了实验单片机扩展控制功能,提高本遥控装置的潜在功能,我决定实验使用3-8线译码器74LS138对P1口的低四位输出数据进行译码扩展。具体电路详见前面。在成功的扩展了控制电器的个数后,我又发现了一个新的问题:遥控器不能同时使两路以及两路以上的电器开,即在同一时刻,遥控器只能使一路电器开启。
经过仔细分析,我发现了问题原因之所在,那就是译码器的原理问题。通常情况下我们认为的译码器可以扩展所能控制的电器,其实译码器只能扩展位数,而不能使状态发生变化。例如:三位二进制000~111可以控制表示三个电器、八种状态,而经过3-8线译码器译码后,可以控制八个电器,但是其状态也只有八种,如下表所示。
- 在应用可编程测控网络设计(03-15)
- 基于AT89C51单片机的微型可编程控制器(04-23)
- 基于AT89C51单片机的量程自切换频率计(01-25)
- 基于AT89C51单片机的十进制计算器系统设计(06-29)
- 基于单片机的智能计步器设计(09-20)
- 可编程逻辑器件与单片机在双控制器中的设计(06-04)