单片机密码锁程序.docx
- 文档编号:12661154
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:13
- 大小:17.61KB
单片机密码锁程序.docx
《单片机密码锁程序.docx》由会员分享,可在线阅读,更多相关《单片机密码锁程序.docx(13页珍藏版)》请在冰豆网上搜索。
单片机密码锁程序
高手帮帮改一下
任务三:
多功能密码锁
一、任务目标
二、硬件连接
P0----数码管段码
P2----数码管位码
P3----行列式键盘
P1.0--锁闭LEDP1.1--锁开LED
P1.2--设置状态LEDP1.3--报警状态LED
P1.4--错误状态LED
三、存储单元分配
30H--35H显示缓冲区
41H--45H输入暂存区
50H--55H原始密码存储单元
36H临时单元,存储位码内容
37H、39H在按键子程序中用于内外循环计数
38H按键子程序存放查表后得到的编码
3AH临时单元,存放逐行开的编码
3BH密码错误次数计数器
40H在按键子程序中存放键盘的值
R0在显示子程序中作显示缓冲区的指针
R2数字键输入次数计数器
R4在中断中作计数器
R5、R6延时子程序循环计数器
R7显示子程序六个数码管逐个显示计数器
20H.0=1密码正确标志位
20H.1=1设置键按下标志位
20H.2=1当前输入的是新密码标志位
20H.3=1密码三次错误报警开启标志位
四、任务要求及源程序
1.任务要求
密码锁功能:
数码管初始显示6个横线,设置原始密码为123456。
输入原始密码。
密码错误,错误指示灯亮,输入3次错误,报警指示灯亮,定时10秒,10秒内任何按键都不起作用。
密码正确,锁开,处于开门状态,此时设置键有效,数字键输入无效,关门键也有效。
若要修改密码,只能在开门状态,设置键按下,输入一次旧密码。
若旧密码输入错误,此时旧密码输入错误次数加上开锁密码错误次数等于3次,报警定时,10秒后恢复锁关状态,锁的密码为新设置的密码若未设置新密码,则为旧密码。
旧密码正确后才可输入新密码,新密码输入后按下确定键,退出设置状态,返回到开门状态。
确定键在输入6个数以后才有效,退格键在有数字时才有效。
0-9号按键作为数字键,最多输入六次;
10号-退格键;11号-确定键;12号-设置键;
13号-关门键;14号-退出设置状态键。
2.源程序
;主程序
ORG0000H
AJMPSTART
ORG000BH
AJMPDIST
ORG0030H
START:
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
SETBEA
SETBET0
ACALLXSCSH;显示缓冲区初始化显示6个横线
ACALLCSH
MOV3BH,#0
MOV50H,#1
MOV51H,#2
MOV52H,#3
MOV53H,#4
MOV54H,#5
MOV55H,#6;原始密码设置为123456
LOOP:
ACALLDISP
ACALLAJ
AJMPLOOP
;显示子程序
DISP:
MOVR7,#6
MOVR0,#30H
MOVDPTR,#TAB
MOV36H,#01H
LOOP1:
MOVA,@R0
MOVCA,@A+DPTR
MOVP0,A
MOVP2,36H
ACALLDELAY
INCR0
MOVA,36H
RLA
MOV36H,A
DJNZR7,LOOP1
RET
;按键判断子程序,4*4循环
AJ:
MOVP1,#0F0H
MOVA,P1
CJNEA,#0F0H,D1
AJMPD16
D1:
ACALLDISP
MOVA,P1
CJNEA,#0F0H,D2
AJMPD16
D2:
MOV3AH,#0FEH
MOV40H,#0
MOVDPTR,#DAB
MOV39H,#4
D3:
MOV37H,#4
MOVP1,3AH
D4:
MOVA,40H
MOVCA,@A+DPTR
MOV38H,A
MOVA,P1
CJNEA,38H,D5
AJMPD14
D5:
INC40H
DJNZ37H,D4
MOVA,3AH
RLA
MOV3AH,A
DJNZ39H,D3
SJMPD16
D14:
ACALLPD
D15:
ACALLDISP
MOVP1,#0F0H
MOVA,P1
CJNEA,#0F0H,D15
D16:
RET
;按键功能子程序
PD:
MOVA,40H
CJNEA,#0,F1
ACALLDIN
AJMPF16
F1:
CJNEA,#1,F2
ACALLDIN
AJMPF16
F2:
CJNEA,#2,F3
ACALLDIN
AJMPF16
F3:
CJNEA,#3,F4
ACALLDIN
AJMPF16
F4:
CJNEA,#4,F5
ACALLDIN
AJMPF16
F5:
CJNEA,#5,F6
ACALLDIN
AJMPF16
F6:
CJNEA,#6,F7
ACALLDIN
AJMPF16
F7:
CJNEA,#7,F8
ACALLDIN
AJMPF16
F8:
CJNEA,#8,F9
ACALLDIN
AJMPF16
F9:
CJNEA,#9,F10
ACALLDIN
AJMPF16
F10:
CJNEA,#10,F11
ACALLBACK
AJMPF16
F11:
CJNEA,#11,F12
ACALLENTER
AJMPF16
F12:
CJNEA,#12,F13
ACALLSZ
AJMPF16
F13:
CJNEA,#13,F14
ACALLCLOSE
AJMPF16
F14:
CJNEA,#14,F15
ACALLTSZ
AJMPF16
F15:
CJNEA,#15,F16
F16:
RET
;数字键输入子程序
DIN:
JB20H.3,F21;定时开始,按键不起作用
CJNER2,#6,F20;已输入六个数,数字键无效
AJMPF21
F20:
INCR2;输入数字个数+1
MOV35H,34H
MOV34H,33H
MOV33H,32H
MOV32H,31H
MOV31H,30H
MOV30H,40H
F21:
RET
;退格键子程序
BACK:
JB20H.3,L1;定时开始,按键不起作用
CJNER2,#0,L0;有数字输入,按键起作用
AJMPL1
L0:
DECR2
MOV30H,31H
MOV31H,32H
MOV32H,33H
MOV33H,34H
MOV34H,35H
MOV35H,#17
L1:
RET
;确定键输入子程序
ENTER:
JB20H.3,L5;定时开始,按键不起作用
CJNER2,#6,L5;数字输入不满6个,按键无效MOVR2,#0;可以重新输入数字
MOV41H,30H;输入数字存入输入暂存区
MOV42H,31H
MOV43H,32H
MOV44H,33H
MOV45H,34H
MOV46H,35H
ACALLXSCSH
JNB20H.2,D6;判断当前是否为新密码输入
ACALLXMM
AJMPL5
D6:
MOVA,41H;输入暂存区与密码比较
CJNEA,50H,L3
MOVA,42H
CJNEA,51H,L3
MOVA,43H
CJNEA,52H,L3
MOVA,44H
CJNEA,53H,L3
MOVA,45H
CJNEA,54H,L3
MOVA,46H
CJNEA,55H,L3
MOVR2,#6;锁开状态,不允许输入数字
CLRP3.1
SETBP3.0
SETBP3.4
SETB20H.0;密码正确标志位
JB20H.1,L2;判断设置键是否按下
CLR20H.2
AJMPL5
L2:
SETB20H.2;输入新密码状态标志位
MOVR2,#0;允许输入数字AJMPL5
L3:
INC3BH;密码错误次数+1
MOVA,3BH
CJNEA,#3,L4;判断密码输入错误几次
CLRP3.3
SETBTR0;密码输入错误3次,启动定时
SETB20H.3;定时开始标志位
AJMPL5
L4:
CLRP3.5
CLRP3.4
L5:
RET
;关门键子程序
CLOSE:
JB20H.3,L6;定时开始,按键不起作用
JNB20H.0,L6;该按键只在开门状态有效
ACALLXSCSH
ACALLCSH
L6:
RET
;设置键输入子程序
SZ:
JB20H.3,L7;定时开始,按键不起作用
JNB20H.0,L7;该按键只在开门状态有效
SETB20H.1;设置键有效标志位
MOVR2,#0;按下设置键,允许数字输入
CLRP3.2
L7:
RET
;退出设置键子程序
TSZ:
JB20H.3,L8;定时开始,按键不起作用
JNB20H.1,L8;该按键在设置状态有效
ACALLXSCSH
SETBP3.2
SETBP3.3
SETBP3.4
CLR20H.1;退出设置状态
MOVR2,#6;回到开门状态,不允许数字输入
L8:
RET
;新密码输入子程序
XMM:
MOV50H,41H
MOV51H,42H
MOV52H,43H
MOV53H,44H
MOV54H,45H
MOV55H,46H;
CLRP3.1
SETBP3.0
SETBP3.2
CLR20H.2
MOVR2,#6;开门状态,不允许数字输入RET
;显示缓冲区初始化子程序
XSCSH:
MOV30H,#17
MOV31H,#17
MOV32H,#17
MOV33H,#17
MOV34H,#17
MOV35H,#17
RET
;密码锁基本功能初始化
CSH:
MOVR2,#0
MOVR4,#200
CLR20H.0
CLR20H.1
CLR20H.2
CLR20H.3
CLRP3.0
SETBP3.1
SETBP3.2
SETBP3.3
SETBP3.4
RET
;中断子程序
DIST:
MOVTH0,#3CH
MOVTL0,#0B0H;初值重装
DJNZR4,L9
ACALLXSCSH
ACALLCSH
CLRTR0;关中断
L9:
RETI
;延时子程序,延时2ms
DELAY:
MOVR6,#5
D17:
MOVR5,#200
D18:
DJNZR5,D18
DJNZR6,D17
RET
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,
DB77H,7CH,39H,5EH,79H,71H,08H,40H,0BFH,086H,
DB0DBH,0CFH,0E6H,0EDH,0FDH,087H,0FFH,0EFH
DAB:
DB0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,
DB0EBH,0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 密码锁 程序