老师发了个题目《基于单片机的远程控制系统的设计》
我在网上找了篇
好像是毕业论文很完整(原文地址——http://blog.sina.com.cn/s/blog_4cc9241a0100ba00.html)
单片机的存储系统的分配利用在其工作过程中起非常大的作用,所以就必须对其进行必要的初始化。
程序代码:
(1)片内RAM初始化子程序
IBCLR: MOV
MOV
CLR
IBC1 :
INC
DJNZ
RET
(2)片外RAM初始化子程序
EBCLR1: MOV
MOV
MOV
MOV
CLR
EBC11:
INC
DJNZ
RET
(3)片外RAM初始化子程序(双字节单元)
EBCLR2: MOV
MOV
MOV
MOV
MOV
JZ
INC
EBC21:
MOVX
INC
DJNZ
DJNZ
RET
本单元是通过计数器T0的外部中断方式来计数的。
程序代码:
ORG
TT0: SETB 7DH
RETI
本功能模块主要是产生信号提示音,方便不同的使用者。根据普通人耳的反应频率为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
RING11:MOV
RING12:LCALL
CPL
DJNZ
DJNZ
CLR
RET
ORG
RING20:MOV R3,#03
RING21:MOV
RING22:MOV
RING23:LCALL
CPL
DJNZ
DJNZ
CLR
MOV
RING24:LCALL
DJNZ
DJNZ
CLR
RET
ORG
RING30:MOV
RING31:MOV
RING32:MOV
RING33:LCALL
CPL
DJNZ
DJNZ
CLR
MOV
RING34:LCALL
DJNZ
DJNZ
CLR
RET
ORG
RING40:MOV
RING41:MOV
RING42:MOV
RING43:LCALL
CPL
DJNZ
DJNZ
CLR
MOV
RING44:LCALL
DJNZ
DJNZ
CLR
RET
ORG
RING50:MOV
RING51:MOV
RING52:LCALL
CPL
DJNZ
DJNZ
CLR
RET
ORG
DL10: MOV
DL12: MOV
DL11: DJNZ
DJNZ
RET
ORG
DL20: MOV
DL22: MOV
DL21: DJNZ
DJNZ
RET
ORG
DL30:MOV
DL32:MOV
DL31:DJNZ
DJNZ
RET
本系统密码校验的基本原理是:在系统初始化的时候把原始密码写入地址为30H开始的存储空间内,密码的位数“5”赋给R7。当系统摘机时,要求输入密码,单片机把解码后的数据(使用者输入的密码)存储在38H开始的存储空间内。然后单片机对两个存储地址的内容逐位进行比较,直到完全相等才能转到下一进程,有一位不同,程序就跳转到出错提示的子程序。
子程序代码:
ORG
HOKE:CLR
SETB
CLR
MOV
LCALL
IN:
DTMF:MOV
MOV
SETB
SETB
SETB
SETB
WAIT:JBC
LJMP
CC:
MOV
MOV
CMP:MOV
MOV
CLR
MOV
SUBB
INC
INC
JZ
LJMP
AAA:DJNZ
LJMP
QQ: DJNZ
LCALL
LJMP
IN1: LCALL
LJMP
本系统是通过在线输入密码而改变特定存储器中的密码值的。
程序代码:
ORG
KEYIN:SETB
CLR
ANL
MOV
LCALL
MOV
MOV
WPIN:
LJMP
READ: MOV
MOV
MOV
READ1:MOV
MOV
INC
INC R1
DJNZ
;跳转READ1
LCALL
;新密码
MOV
MOV
WRE:
LJMP
KEYCMP:MOV
MOV
MOV
KEYCP:MOV
CLR
SUBB
INC
INC
JZ
LJMP
BBB:
;即循环比较密码的五位
MOV
MOV
MOV
KEYREIN:MOV
MOV
INC
INC
DJNZ:R6,KEYREIN
;环比较密码的五位
LCALL
LJMP
RET
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |