单片机密码锁程序.docx

上传人:b****8 文档编号:30767351 上传时间:2023-08-23 格式:DOCX 页数:13 大小:17.80KB
下载 相关 举报
单片机密码锁程序.docx_第1页
第1页 / 共13页
单片机密码锁程序.docx_第2页
第2页 / 共13页
单片机密码锁程序.docx_第3页
第3页 / 共13页
单片机密码锁程序.docx_第4页
第4页 / 共13页
单片机密码锁程序.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

单片机密码锁程序.docx

《单片机密码锁程序.docx》由会员分享,可在线阅读,更多相关《单片机密码锁程序.docx(13页珍藏版)》请在冰豆网上搜索。

单片机密码锁程序.docx

单片机密码锁程序

班级:

08电子学号:

27姓名:

吴文静

任务三:

多功能密码锁

一、任务目标

二、硬件连接

P0----数码管段码

P2----数码管位码

P1----行列式键盘

P3.0--锁闭LEDP3.1--锁开LED

P3.2--设置状态LEDP3.3--报警状态LED

P3.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个横线,设置原始密码为6个0。

输入原始密码。

密码错误,错误指示灯亮,输入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,#0

MOV51H,#0

MOV52H,#0

MOV53H,#0

MOV54H,#0

MOV55H,#0;原始密码设置为六个0

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 生产经营管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1