基于单片机的远程控制系统 程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、单片机初始化

单片机的存储系统的分配利用在其工作过程中起非常大的作用,所以就必须对其进行必要的初始化。

程序代码:

(1)片内RAM初始化子程序

IBCLR: MOV A,R0

MOV R1,A

CLR A

IBC1 : MOV @R1,A

INC R1

DJNZ R7,IBC1

RET

(2)片外RAM初始化子程序

EBCLR1: MOV A,ADDPL

MOV DPL,A

MOV A,ADDPH

MOV DPH,A

CLR C

EBC11: MOVX @DPTR,A

INC DPTR

DJNZ R7,EBC11

RET

(3)片外RAM初始化子程序(双字节单元)

EBCLR2: MOV A,ADDPL

MOV DPL,A

MOV A,ADDPH

MOV DPH,A

MOV A,R7

JZ EBC21

INC R6

EBC21: CLR A

MOVX @DPTR,A

INC DPTR

DJNZ R7,EBC21

DJNZ R6,EBC21

RET

2、振铃计数模块

本单元是通过计数器T0的外部中断方式来计数的。

程序代码:

ORG 0090H

TT0: SETB 7DH

RETI

3、语音提示模块

本功能模块主要是产生信号提示音,方便不同的使用者。根据普通人耳的反应频率为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 1100H

RING10:MOV R6,#20 ;请输入密码,

RING11:MOV R7,#20 ;500Hz,

RING12:LCALL DL10 ;发出提示音,1

CPL P3.0 ;延时0.5s

DJNZ R7,RING12

DJNZ R6,RING11

CLR P3.0

RET

ORG 1150H

RING20:MOV R3,#03

RING21:MOV R6,#20 ;选择电器,

RING22:MOV R7,#20 ;500Hz,

RING23:LCALL DL20 ;发出提示音2,

CPL P3.0 ;延时0.3s

DJNZ R7,RING23

DJNZ R6,RING22

CLR P3.0

MOV R7,#200

RING24:LCALL DL10

DJNZ R7,RING24

DJNZ R3,RING21

CLR P3.0

RET

ORG 1200H

RING30:MOV R3,#02

RING31:MOV R6,#20 ;电器控制,RING32:MOV R7,#20 ;500Hz,

RING33:LCALL DL10 ;发出提示音3,CPL P3.0 ;延时0.3s

DJNZ R7,RING33

DJNZ R6,RING32

CLR P3.0

MOV R7,#200

RING34:LCALL DL10

DJNZ R7,RING34

DJNZ R3,RING31

CLR P3.0

RET

ORG 1250H

RING40:MOV R3,#03

RING41:MOV R6,#20 ;输入的密码错误,RING42:MOV R7,#20 ;1000Hz,

RING43:LCALL DL10 ;发出提示音4,CPL P3.0 ;延时0.3s

DJNZ R7,RING43

DJNZ R6,RING42

CLR P3.0

MOV R7,#100

RING44:LCALL DL10

DJNZ R7,RING44

DJNZ R3,RING41

CLR P3.0

RET

ORG 1300H

RING50:MOV R6,#40 ;操作完成,RING51:MOV R7,#20 ;1000Hz,

RING52:LCALL DL20 ;发出提示音5,CPL P3.0 ;延时0.3s

DJNZ R7,RING52

DJNZ R6,RING51

CLR P3.0

RET

ORG 1500H

DL10: MOV R5,#25;delay=1.25ms,f=500HZ,fosc=12MHz

DL12: MOV R4,#2

DL11: DJNZ R4,DL11

DJNZ R5,DL12

RET

ORG 1600H

DL20: MOV R5,#12;delay=0.625ms,f=1000HZ,fosc=12MHz

DL22: MOV R4,#25

DL21: DJNZ R4,DL21

DJNZ R5,DL22

RET

ORG 1650H

DL30:MOV R5,#50 ;delay=20ms

DL32:MOV R4,#200

DL31:DJNZ R4,DL31

DJNZ R5,DL32

RET

4、密码修改模块

本系统是通过在线输入密码而改变特定存储器中的密码值的。

程序代码:

ORG 1700H

KEYIN:SETB RS1 ;当前工作寄存器第二工作区CLR RS0

相关文档
最新文档