- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计一个具有特定功能的密码锁。该密码锁上电或按键复位后能自动显示系统提示符“P.”, 进入准备工作状态。该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。
; 40H-45H 按键缓冲区,用于存放键码值
; 50H-55H 显示缓冲区,用于存放要显示的段码
; 70H-75H 密码区保存区,用于存放密码
; 30H 单个单元 存放段码地址(即存放50-55)
; 31H 单个单元 存放键码地址(即存放40-45)
; 21H.0位 判断是否按下了修改密码键K2
; 21H.1位 修改密码时用于判断是否正确输入了原密码
; 21H.2位 产生初始P. 只要有键按下,则该位置1,否则置0来不断输出P.
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:
MOV SP,#60H
MOV P2,#01H ;用来产生P.0的位控
MOV R1,#70H ;密码区,初始密码为六个8
T: MOV @R1,#08H
INC R1
CJNE R1,#76H,T
ACALL PP
AJMP FIRST
PP: MOV R0,#50H ;显示缓冲区首地址
Q: MOV @R0,#0FFH ;“灭”段码
INC R0
CJNE R0,#56H,Q ;让8个显示缓冲区初始值为“灭”状态,后面按一次则赋一次值
MOV 30H,#4FH ;段码地址临时
MOV 31H,#3FH ;按键后存放键码的缓冲区首地址
ACALL DL
RET
PQ:
MOV P0,#0CH ;输出P.
ACALL DL
RET
;下面实现按键功能
FIRST:ACALL DIR
ACALL KEY ;调用键处理函数
K1: JNB ACC.0,K2 ;K1键 确定键 判0 转移
MOV 30H,#4FH ;段码地址临时
MOV 31H,#3FH ;按键后存放键码的缓冲区首地址
JB 21H.0,KK ;按了K2改密键,再K1,则表示修改密码,FUN0改密函数
LJMP FUN1
KK: CLR 21H.0
LJMP FUN0
K2: JNB ACC.1,K3 ;K2键 改密码,但必须在输入原密码之后修改,而且要修改两次才确定修改
ACALL PP ;调用函数让数码显示管灭
JNB 21H.1,FIRST ;如果21H.1为0,表示未输入原密码
SETB 21H.0
ACALL DIR
AJMP FIRST
K3: JNB ACC.2,K4 ;K3
ACALL DIR
INC 31H
MOV R0,31H
MOV @R0,#03H
AJMP FIRST
洞洞板/万能板成品
图片左下角有地址-有录像
K4: JNB ACC.3,K5 ;K4
ACALL DIR
INC 31H
MOV R0,31H
MOV @R0,#04H
AJMP FIRST
K5: JNB ACC.4,K6 ;K5
ACALL DIR
INC 31H
MOV R0,31H
MOV @R0,#05H
AJMP FIRST
K6: JNB ACC.5,K7 ;K6
ACALL DIR
INC 31H
MOV R0,31H
MOV @R0,#06H
AJMP FIRST
K7: JNB ACC.6,K8 ;K7
ACALL DIR
INC 31H
MOV R0,31H
MOV @R0,#07H
AJMP FIRST
K8: JNB ACC.7,FIRST ;K8
ACALL DIR
INC 31H
MOV R0,31H
MOV @R0,#08H
AJMP FIRST
KS:
MOV A,P1
CPL A
RET
KEY: ACALL KS
JNZ AGAIN ;有键闭合则转向再次判断
AJMP EXTI ;无键闭合则转向结束
AGAIN:
ACALL DIR
文档评论(0)