RSS

智能型电话远程遥控器

来源: 作者: 时间:2007-07-31 Tag: 点击:


MOV R7,#1H  ;***
MOV R1,#38H
CLR 7EH
WAIT0: JBC 7EH,DD  ;wait INT0
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 ;8
LJMP FOUR  ;4
LJMP STOP  ;#
LJMP TWO  ;2
LJMP ZERO  ;0
LJMP SIX  ;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  ;wait INT0
LJMP WAIT1
WW1:MOV R1,#38H  ;检查信号首位
MOV A,@R1
CJNE A,#50H,BB1  ;(38)不等于0AH(0),则跳转BB1
LJMP ZZ1  ;(38)等于0AH(0),则跳转ZZ1
BB1: CJNE A,#80H,QUIT1  ;(38)不等于01H(1),则跳转QUIT1
SETB P1.3  ;open 1
CLR P1.2
CLR P1.1
CLR P1.0
LJMP QUIT1
ZZ1: CLR P1.3  ;close all
CLR P1.2
CLR P1.1
CLR P1.0
LCALL RING50  ;finsh
QUIT1: LJMP LL
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线译码器译码后,可以控制八个电器,但是其状态也只有八种,如下表所示。
A2 A1 A0 输出D0~D7
0 0 0 0 1 1 1 1 1 1 1
0 0 1 1 0 1 1 1 1 1 1
0 1 0 1 1 0 1 1 1 1 1
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 1 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
合作站点