没有合适的资源?快使用搜索试试~ 我知道了~
密码锁51汇编程序设计内容
需积分: 0 1 下载量 63 浏览量
2022-12-06
13:10:04
上传
评论
收藏 25KB DOCX 举报
温馨提示
试读
15页
密码锁51汇编程序
资源推荐
资源详情
资源评论
SCL BIT P3.2
SDA BIT P3.3
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP DING0
ORG 001BH
LJMP DING1
ORG 0030H
MAIN: CLR RS0 ;共有四种界面 P,A,B,C,显示在第七
位数码管上,对应存放地址为内部 RAM 的 47H 单元
CLR RS1
MOV SP, #5AH
MOV 5AH,#00H ;已输入的密码位数存于 5AH
LCALL QING ;调用清屏子程序,清屏子程序包括熄
灭显示区 40H~45H 和清除已输入密码的次数
MOV 46H, #10H ;进入准备界面,设置为 P 界面,显示区
40H~47H 中,47H 存放一级界面 P,A,B,C,46H 存放二级界面 1,2,3 等
MOV 47H, #12H
LCALL I2CRQ ;调用读密码子程序
MOV A, 36H
CJNEA, #55H, LOOP1 ;判断校验字节是否为 55H,若为 55H,
表示该密码为修改之后的密码,否则将密码设置为 6 个 8
MOV R0, #30H
MOV R1, #48H
LOOP4: MOV A, @R0
MOV @R1, A
INC R0
INC R1
CJNER1, #4EH, LOOP4
LJMP LOOP3
LOOP1: MOV R0, #48H ;系统密码存于 48H~4DH 单元,
输入的密码将存于 4EH~53H,修改密码时的系统密码将暂存于 54H~59H
LOOP2: MOV @R0, #08H ;初始密码设置为 888888
INC R0
CJNER0, #4EH, LOOP2
LOOP3: LCALL XIAN ;调用显示程序
LCALL PAN ;调用判键程序,无键按下则 A
为 0,有键按下则 A 为对应键码 1~16
JZ LOOP3 ;若无键按下,循环显示和判键,
若有按键,则调用修改系统子程序,根据按键修改界面
LCALL GAI ;调用修改系统的子程序
LJMP LOOP3
;此为修改系统子程序,根据不同的界面 P,A,B,C,调用不同的界面修改程序
GAI: PUSH PSW
DEC A ;P 界面为准备界面,A 界面为输入密
码界面,B 界面为密码正确后的用户界面,C 为修改密码界面
SETBRS0 ;A 界面共有三次输入密码的机会,分别
用 A1,A2,A3 表示,三次密码均错误则返回至准备界面
CLR RS1 ;B 界面有不同的功能,按键不同,
功能不同,C 界面分为输入密码和确认密码界面,用 C1 和 C2 表示
MOV R0, #47H
GAIPP: CJNE@R0, #12H, GAIAP ;判断是否为 P 界面
LCALL GAIP
LJMP GAI1
GAIAP: CJNE@R0, #0AH, GAIBP ;判断是否为 A 界面
LCALL GAIA
LJMP GAI1
GAIBP: CJNE@R0, #0BH, GAICP ;判断是否为 B 界面
LCALL GAIB
LJMP GAI1
GAICP: CJNE@R0, #0CH, GAIDP ;判断是否为 C 界面
LCALL GAIC
LJMP GAI1
GAIDP: LCALL GAID ;判断是否为其他,其他均归为系
统崩溃
GAI1: POP PSW
RET
;此为界面 P 程序
GAIP: CJNEA, #0EH, GAIPT ;界面 P 中判断是否为确认键
LCALL QUEP
GAIPT: RET
QUEP: MOV R0, #40H ;P 界面的确认子程序
CJNE@R0, #10H, QUEPT ;若处于锁屏计数状态,确认键无效
MOV 47H, #0AH ;若未处于锁屏技术状态,按下确
认键则修改为 A 界面,即理解为进入 A 界面
MOV 46H, #01H
QUEPT: RET
;此为界面 A 程序
GAIA: CJNEA, #0FH, FTUIA ;界面 A 中有有四种键,分别为退出,确
认,删除,数字,此为判断是否为退出键
LCALL TUI
LJMP GAIAT
FTUIA: CJNEA, #0EH, FQUEA ;界面 A 中判断是否为确认键
LCALL QUEA
LJMP GAIAT
FQUEA: CJNEA, #0DH, FSHANA ;判断是否为删除键
LCALL SHAN
LJMP GAIAT
FSHANA: LCALL SHU ;调用输入密码程序
GAIAT: RET
;此为界面 B 程序
GAIB: CJNEA, #0FH, FTUIB ;B 界面有三种键,分别为功能键,修改
密码键,退出键,此为判断是否为退出键
LCALL TUIB
LJMP GAIBT
FTUIB: CJNEA, #0EH, FXIUB ;判断是否为修改密码键
LCALL XIUB
LJMP GAIBT
FXIUB: CJNEA, #00H, GAIBT
LCALL GAIB0
LJMP GAIBT
GAIBT: RET
;此为界面 C 程序
GAIC: CJNEA, #0FH, FTUIC ;判断是否为退出键
LCALL TUIC
LJMP GAICT
FTUIC: CJNEA, #0EH, FQUEC ;判断是否为确认键
LCALL QUEC
LJMP GAICT
FQUEC: CJNEA, #0DH, FSHANC ;判断是否为删除键
LCALL SHAN
LJMP GAICT
FSHANC: LCALL SHU
GAICT: RET
剩余14页未读,继续阅读
资源评论
2201_75683007
- 粉丝: 0
- 资源: 127
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功