;某些触屏手机上,有个滑动开锁的操作。
;笔记本电脑,一般都是用键盘输入密码。
;也有人把密码设置成:ASDFGHJKL;'Enter,当开机时,只需用手指在键盘上划一下,即可。
;单片机,也可以设置这样形式的密码,依次按下某些键,即可成功进入下一步的操作。
;下图电路,就是依次按键,进行输入开机密码的:
;P1.0 到 P1.5 是密码键,P1.7 是确认键,
;P2.1 到 P2.6 对应 5 个密码键,平常点亮,--原文如此,应该是6个
;按下对应的密码后对应的LED熄灭,松开再次点亮,
;P2.7 上的蓝色 LED 对应的是确认键。
;密码顺序是依次按 P1.0 到 P1.5,
;密码数值和顺序都正确才点亮 P1.6 上的LED,否则点亮 P2.0 上的红色 LED。
;题目中的原程序,不可用。
;仿照原程序的思路,做而论道编写的程序如下:
;--------------------------------------
ORG 0000H
JMP START
START:
MOV R0, #7 ;将R0作为计数器,检验密码顺序
CLR P1.6 ;关闭正确指示灯
MOV P2, #01111110B ;P2.1到P2.6对应6个密码键,平常点亮,
LOOP:
MOV A, P1 ;读入
MOV B, A ;暂存
ORL A, #01000000B ;屏蔽指示灯
CPL A
JZ LOOP ;无键按下,循环检测
CALL DL20MS ;延时
MOV A, P1 ;再读一次
CJNE A, B, LOOP;消抖
;--------------------------------------
;已经确认有键按下:
MOV C, ACC.7 ;P1.7的键
CPL C
RL A
MOV ACC.7, C ;送到P2.7去
CLR ACC.0 ;关闭错误指示灯
MOV P2, A ;驱动各个按键的指示灯
;--------------------------------------
;下面等待释放
LOP2:
MOV A, P1 ;读入
ORL A, #01000000B ;屏蔽指示灯
CPL A
JNZ LOP2 ;循环检测,等待释放
;--------------------------------------
;按键已经释放,
MOV P2, #01111110B ;P2.1到P2.6对应6个密码键,平常点亮,
;--------------------------------------
;下面处理刚才的按键
JNB B.0, KEY0
JNB B.1, KEY1
JNB B.2, KEY2
JNB B.3, KEY3
JNB B.4, KEY4
JNB B.5, KEY5
JNB B.7, KEY7
JMP LOOP
;--------------------------------------
KEY0:
CJNE R0, #7, LOOP
DEC R0
JMP LOOP
KEY1:
CJNE R0, #6, LOOP
DEC R0
JMP LOOP
KEY2:
CJNE R0, #5, LOOP
DEC R0
JMP LOOP
KEY3:
CJNE R0, #4, LOOP
DEC R0
JMP LOOP
KEY4:
CJNE R0, #3, LOOP
DEC R0
JMP LOOP
KEY5:
CJNE R0, #2, LOOP
DEC R0
JMP LOOP
KEY7:
CJNE R0, #1, ERROR
MOV P2, #0 ;关闭按键指示灯
SETB P1.6 ;正确指示
SJMP $ ;停机
ERROR:
MOV P2, #0 ;关闭按键指示灯
SETB P2.0 ;错误指示
SJMP $ ;停机
;--------------------------------------
DL20MS:
MOV R6, #40
DJNZ R7, $
DJNZ R6, $ - 2
RET
;--------------------------------------
END
上一篇:51 单片机汇编编程:记录按键
下一篇:51 单片机编程:双路计数器
推荐阅读最新更新时间:2024-03-16 16:02
设计资源 培训 开发板 精华推荐
- 睿瀚医疗万斌:“脑机接口+AI+机器人”是康复赛道的未来
- 希润医疗孟铭强:手功能软体机器人,让脑卒中患者重获新生
- 柔灵科技陈涵:将小型、柔性的脑机接口睡眠设备,做到千家万户
- 微灵医疗李骁健:脑机接口技术正在开启意识与AI融合的新纪元
- USB Type-C® 和 USB Power Delivery:专为扩展功率范围和电池供电型系统而设计
- 景昱医疗耿东:脑机接口DBS治疗技术已实现国产替代
- 首都医科大学王长明:针对癫痫的数字疗法已进入使用阶段
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度