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口的低四位发送数据,这些控制信息表示对不同的电器进行控制的控制字。 4.5 振铃计数部分本单元是通过计数器T0的外部中断方式来计数的,程序代码:
ORG 0090H
TT0: SETB 7DH
RETI 5. 系统调试 5.1 整体调试整体调试所使用的测试仪器仪表和工具: IBM-PC/XT兼容机一台,主频:50Hz,有软驱和25针串行接口; ME-5103单片机仿真机一个; MF116万用表一个; 计算机5V稳压电源一个; SR8双踪示波器; Manley In-Circuit Emulator Debugger(MBUG)开发软件; 本装置的调试主要分为硬件调试、软件调试和联机调试等三大部分。
经过初步的分析设计后,在制作硬件电路的同时,调试也在穿插进行。这样有利于问题的分析和解决,不会造成问题的积累,而且不会因为一个小问题而进行整体电路的检查,从而可以节约大量的调试时间。软件编程中,我是首先完成单元功能模块的调试,然后进行系统调试,整体上与硬件调试的方法差不多。联机调试是最重要的一部分,同时也是本装置成功的关键。 5.2 硬件单元电路 5.2.1稳压电源本装置使用单5V稳压电源供电,要求交流成分小。经过示波器测量5V稳压电源输出端,其交流部分电压的峰-峰值为6mV,符合本装置的电源要求,稳压电源调试完毕。 5.2.2 模拟摘挂机电路接好后,用5V高电平测试之,指示灯亮,继电器吸合正常。接入模拟小交换机,控制摘机时,交换机的端口指示灯亮,反之挂机时,指示灯灭。说明此部分完全正常。接入仿真机测试时发现:单片机的TXD端不能控制模拟摘挂机部分的摘挂机。分析得出结论:可能是接口的电平不相符合。解决方法:加上一个三极管模拟开关,加上一个反向器(74LS04)进行控制隔离作用。经过接入仿真机测试表明反向器的作用很明显,于是在后面的电路设计当中,我在许多的接口上大多使用了反向器。至此,模拟摘挂机部分调试完毕。 5.2.3 控制电器经过市场实际分析,一般的控制电器只要求3~4路即可,为了实验单片机扩展控制功能,提高本遥控装置的潜在功能,可使用3-8线译码器74LS138对P1口的低四位输出数据进行译码扩展。 5.2.4 双音频检测双音频检测是整体电路一个比较重要的过程,它的调试主要围绕着双音多频解码芯片8870展开的。 5.3 软件程序调试 5.3.1软件系统设置对于本系统而言,软件程序所实现的功能比较多,所以软件程序的调试显得相当的烦琐。整个程序是使用汇编语言,在MBUG下编写调试完成的。 5.3.2提示音信号程序代码:
ORG 1150H
RING20: MOV R3,#03
RING21: MOV R6,#20 ;password wrong
RING22: MOV R5,#20 ;1600Hz
RING23: LCALL DL20 ;sound=3
CPL P3.0 ;delay=0.25s
DJNZ R5,RING23
DJNZ R6,RING22
CLR P3.0
MOV R5,#200
RING24: LCALL DL10
DJNZ R5,RING24
DJNZ R3,RING21
CLR P3.0
RET 5.3.3密码检测程序代码:
HOKE1: LJMP HOKE
ORG 0090H
TT0: SETB 7DH
RETI
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,#1H ;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,#1H ;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
参考文献[1] 王兴昆.家庭智能控制器技术及应用.工程设计CAD与智能建筑,2002:46~55.
[2] 天津市计算机学会单片机分会.全国单片机及嵌入式系统学术年会论文集.北京:北京航空航天大学出版社,2003:56.
[3] 张迎新,杜晓平,樊桂花.单片机初级教程.北京:北京航空航天大学出版社,2000:76.
[4] 吕思忠,施齐云.数字电路实验与课程设计.哈尔滨:哈尔滨工程大学出版社,2001:46.
[5] 潘兆群.双音多频信号接收芯片MT8870的高效使用方法.电信技术,1998:49-51.
[6] 付家才.单片机控制工程实践技术.北京:化学工业出版社,2004:48~55.
[7] 潘新民.微型计算机控制技术.北京:人民邮电出版社,1999:74~83.
[8] 余锡存,曹国华.单片机原理及接口技术.陕西:西安电子科技大学出版社,2000:172~183.
[9] 雷丽文.微机原理与接口技术.北京:电子工业出版社,1997:156.
[10] 南建辉.MCS—51 单片机原理及应用实例.北京:清华大学出版社,2004:65~74.
[11] 任涛.闪速存储器数据及应用简明速查手册.北京:电子工业出版社,1997:20~35.
[12] 张凯.MCS—51 单片机综合系统及其设计开发.北京:科学出版社,1996:41~55.
[13] 张友德.单片微型机原理应用与实验.上海:复旦大学出版社,1996:223~231.
[14] “车辆联合供电系统 ”相关资料.上海雅琪电子动力科技有限公司,2004:71.
[15] 李朝青.单片机原理及接口技术.北京:北京航空航天大学出版社,1999:87~90.