基于单片机的远程控制系统程序.doc_第1页
基于单片机的远程控制系统程序.doc_第2页
基于单片机的远程控制系统程序.doc_第3页
基于单片机的远程控制系统程序.doc_第4页
基于单片机的远程控制系统程序.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机初始化单片机的存储系统的分配利用在其工作过程中起非常大的作用,所以就必须对其进行必要的初始化。程序代码:(1)片内RAM初始化子程序IBCLR: MOV A,R0MOV R1,ACLR AIBC1 : MOV R1,AINC R1DJNZ R7,IBC1RET(2)片外RAM初始化子程序EBCLR1: MOV A,ADDPLMOV DPL,AMOV A,ADDPHMOV DPH,ACLR CEBC11: MOVX DPTR,AINC DPTRDJNZ R7,EBC11RET(3)片外RAM初始化子程序(双字节单元)EBCLR2: MOV A,ADDPLMOV DPL,AMOV A,ADDPHMOV DPH,AMOV A,R7JZ EBC21INC R6EBC21: CLR AMOVX DPTR,AINC DPTRDJNZ R7,EBC21DJNZ R6,EBC21RET2、振铃计数模块本单元是通过计数器T0的外部中断方式来计数的。程序代码:ORG 0090HTT0: SETB 7DHRETI3、语音提示模块本功能模块主要是产生信号提示音,方便不同的使用者。根据普通人耳的反应频率为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 1100HRING10:MOV R6,#20 ;请输入密码,RING11:MOV R7,#20 ;500Hz,RING12:LCALL DL10 ;发出提示音,1CPL P3.0 ;延时0.5sDJNZ R7,RING12DJNZ R6,RING11CLR P3.0RETORG 1150HRING20:MOV R3,#03RING21:MOV R6,#20 ;选择电器,RING22:MOV R7,#20 ;500Hz,RING23:LCALL DL20 ;发出提示音2,CPL P3.0 ;延时0.3sDJNZ R7,RING23DJNZ R6,RING22CLR P3.0MOV R7,#200RING24:LCALL DL10DJNZ R7,RING24DJNZ R3,RING21CLR P3.0RETORG 1200HRING30:MOV R3,#02RING31:MOV R6,#20 ;电器控制,RING32:MOV R7,#20 ;500Hz,RING33:LCALL DL10 ;发出提示音3,CPL P3.0 ;延时0.3sDJNZ R7,RING33DJNZ R6,RING32CLR P3.0MOV R7,#200RING34:LCALL DL10DJNZ R7,RING34DJNZ R3,RING31CLR P3.0RETORG 1250HRING40:MOV R3,#03RING41:MOV R6,#20 ;输入的密码错误,RING42:MOV R7,#20 ;1000Hz,RING43:LCALL DL10 ;发出提示音4,CPL P3.0 ;延时0.3sDJNZ R7,RING43DJNZ R6,RING42CLR P3.0MOV R7,#100RING44:LCALL DL10DJNZ R7,RING44DJNZ R3,RING41CLR P3.0RETORG 1300HRING50:MOV R6,#40 ;操作完成,RING51:MOV R7,#20 ;1000Hz,RING52:LCALL DL20 ;发出提示音5,CPL P3.0 ;延时0.3sDJNZ R7,RING52DJNZ R6,RING51CLR P3.0RETORG 1500HDL10: MOV R5,#25;delay1.25ms,f=500HZ,fosc=12MHzDL12: MOV R4,#2DL11: DJNZ R4,DL11DJNZ R5,DL12RETORG 1600HDL20: MOV R5,#12;delay0.625ms,f=1000HZ,fosc=12MHzDL22: MOV R4,#25DL21: DJNZ R4,DL21DJNZ R5,DL22RETORG 1650HDL30:MOV R5,#50 ;delay20msDL32:MOV R4,#200DL31:DJNZ R4,DL31DJNZ R5,DL32RET4、密码修改模块本系统是通过在线输入密码而改变特定存储器中的密码值的。程序代码:ORG 1700HKEYIN:SETB RS1 ;当前工作寄存器第二工作区CLR RS0ANL A,#00H ;清零A寄存器MOV B,#05HLCALL RING10 ;发提示音:输入密码*MOV R7,#5HMOV R1,#38HWPIN: JBC 7EH,READ ;等待INT0中断LJMP WPINREAD: MOV R1,#38HMOV R0,#40HMOV R7,#05HREAD1:MOV A,R1MOV R0,AINC R0INC R1DJNZ R7,READ1 ;判断输入密码是否为5位,否;跳转READ1LCALL RING10 ;满5位,发提示音:再输入;新密码MOV R7,#5HMOV R1,#38HWRE: JBC 7EH,KEYCMP ;等待中断INT1LJMP WREKEYCMP:MOV R6,#05HMOV R0,#40HMOV R1,#38HKEYCP:MOV A,R0CLR CSUBB A,R1 ;A减(R1)INC R1INC R0JZ BBB ;A的内容如果为0,则跳转BBBLJMP LLBBB: DJNZ R6,KEYCP ;R6减1不为0,则跳转KEYCP,;即循环比较密码的五位MOV R1,#38HMOV R0,#30HMOV R6,#5HKEYREIN:MOV A,R1MOV R0,AINC R1INC R0DJNZ:R6,KEYREIN ;R6减1不为0,则跳转,即循;环比较密码的五位LCALL RING50 ;发提示音:新密码已经设置LJMP STOPRET5、控制电器模块本系统首先通过外围双音频解码电路解码的信息(选择电器)判断所选择的电器,然后跳转到对应的子程序,通过单片机向P1口的八位发送控制命令,这些控制信息表示对不同的电器进行控制的控制字。为了简单表示,在这里只写出了控制一路电器的控制子程序,其它子程序都相似,不再累述。程序代码:ORG 1600HLL: LCALL RING30 ;提示选择需控制的电器MOV R7,#1H ;控释电器的序号MOV R1,#38HCLR 7EHWAIT0:JBC 7EH,DD ;等待外部中断INT0LJMP WAIT0DD: MOV R1,#38HMOV A,R1RR ARR ARR ARR AMOV R4,ARL AADD A,R4MOV DPTR,#TABJMP A+DPTRTAB: LJMP ZEROLJMP EIGHT ;8LJMP FOUR ;4LJMP STOP ;LJMP TWO ;2LJMP ZERO ;0LJMP SIX ;6LJMP LL ;*LJMP ONE ;1LJMP LL ;9,*LJMP FIVE ;5LJMP LL ;A,*LJMP THREE ;3LJMP LL ;*,*LJMP SEVEN ;7LJMP LL ;C,*ORG 0250HZERO:LJMP LLONE: LCALL RING40 ;发提示音:请操作电器OO1: MOV R7,#01HCLR 7EHWAIT1:JBC 7EH,WW1 ;等待外部中断 INT0LJMP WAIT1WW1:MOV R1,#38H ;检查信号首位MOV A,R1CJNE A,#50H,BB1 ;(38H)不等于0AH(0),则;跳转BB1LJMP ZZ1 ;(38H)等于0AH(0),则跳;转ZZ1BB1: CJNE A,#80H,QUIT1 ;(38H)不等于01H(1),则;跳转QUIT1SETB P1.3 ;打开1CLR P1.2CLR P1.1CLR P1.0LJMP QUIT1ZZ1:CLR P1.3 ;全部关闭CLR P1.2CLR P1.1CLR P1.0LCALL RING50 ;结束QUIT1:LJMP LL结果和结论:如下归纳该系统的运作:1)用户拨打一个号码。2)个人电脑通过I/O接口发出铃流,并连接到电话线上,并发出了一个音频。3)该系统等待验证密码。4)使用者输入密码。5)如果密码被接受,用户被连接到系统以控制家用电器。6)如果密码不被接受,PC就会发出一个错误的音频和断开的来电。附录:提示音信号跳转子程序代码:ORG 1150HRING20:MOV R3,#03RING21:MOV R6,#20RING22:MOV R5,#20 ;1600HzRING23:LCALL DL20 ;sound=3CPL P3.0DJNZ R5,RING23DJNZ R6,RING22CLR P3.0MOV R5,#200RING24:LCALL DL10DJNZ R5,RING24DJNZ R3,RING21CLR P3.0RET密码检测子程序代码:HOKE1:LJMP HOKEORG 0090HTT0: SETB 7DHRETIORG 0150HHOKE: CLR 7DHSETB P3.1;接通电话CLR TR0 ;打开T0MOV R2,#03H;密码错误三次LCALL RING10;输入密码IN: CLR 7 EH;7EH=0DTMF: MOV R7,#1H;密码:5 R7MOV R1,#38H;提示音SETB P1.4SETB P1.5SETB P1.6SETB P1.7WAIT: JBC 7EH,CC;等待 INT0LJMP WAITCC: MOV R7,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论