电子制作天地网站欢迎您的光临,欢迎提出宝贵意见或建议。本站信息产业部备案: 粤ICP备05114582号
电话远程遥控器
telephone remote controller

时间:2007-12-31 7:41:34 来源:未知 作者:未知 编辑: 【关闭


电话远程遥控器,telephone remote controller

关键字:电话遥控,远程遥控,MT8870,89C51,电话遥控电路,远程遥控电路


子程序代码:
ORG 0150H
HOKE: CLR 7DH
SETB P3.1  ;open telephone
CLR TR0  ;close T0
MOV R2,#03H  ;password wrong 3
LCALL RING10  ;input password
IN: CLR 7EH  ;7EH=0
DTMF: MOV R7,#5H  ;PASSWORD:5 R7
MOV R1,#38H  ;sign
SETB P1.4
SETB P1.5
SETB P1.6
SETB P1.7
WAIT: JBC 7EH,CC  ;wait INT0
LJMP WAIT
CC: MOV R7,#5H  ;password 5***
MOV R0,#30H  ;password top
MOV R1,#38H  ;sign
CMP: MOV A,@R1
MOV R4,A
CLR C
MOV A,@R1
SUBB A,@R0  ;test
INC R0
INC R1
JZ AAA  ;OK,pass one
LJMP QQ
AAA: DJNZ R7,CMP  ;R7-1!=0
LJMP LL  ;pass
QQ: DJNZ R2,IN1  ;password wrong&R2!=0
LCALL RING20
LJMP STOP
IN1:LCALL RING20  ;password wrong,try!
LJMP IN

4.3 密码修改部分

本系统是通过在线输入密码而改变特定存储器中的密码值的。
程序代码:
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  ;A减((R1))
INC R1
INC R0
JZ BBB  ;A的内容如果为0,则跳转BBB
LJMP LL
BBB: DJNZ R6,KEYCP  ;R6减1不为0,则跳转KEYCP,即循环比较密码的五位
MOV R1,#38H
MOV R0,#30H
MOV R6,#5H
KEYREIN:MOV A,@R1
MOV @R0,A
INC R1
INC R0
DJNZ R6,KEYREIN  ;R6减1不为0,则跳转,即循环比较密码的五位
LCALL RING50  ;发提示音:新密码已经设置
LJMP STOP
RET

4.4 控制电器部分

    本系统首先通过外围双音频解码电路解码的信息(选择电器)判断所选择的电器,然后跳转到每一个子程序,通过单片机向P1口的低四位发送数据,这些控制信息表示对不同的电器进行控制的控制字。为了简单表示,在这里只写出了电器“一”的控制子程序,其它子程序很相似,详见附录。

程序代码:
LL: LCALL RING30  ;sound:input control
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所示,问题得到解决。


◆相关文章◆
◆ 编辑推荐 ◆
用户:
更多评论
您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。60个字以内
留言:
验证码:

免责声明:
●本站所有内容均来自网络,以学习为目的,如果侵犯了您的利益,请来信告知,立即删除,站长邮件为"diy+dzdiy.com",请将"+"变更为"@"
●电子制作存在风险,请注意人身安全,如果您在根据本站电路进行制作过程中发生伤害,本站不负任何责任。

版权所有:www.dzdiy.com ? 2001-2019 本站信息产业部备案: 粤ICP备05114582号