;某些触屏手机上,有个滑动开锁的操作。

;笔记本电脑,一般都是用键盘输入密码。

;也有人把密码设置成:ASDFGHJKL;'Enter,当开机时,只需用手指在键盘上划一下,即可。

;单片机,也可以设置这样形式的密码,依次按下某些键,即可成功进入下一步的操作。

;下图电路,就是依次按键,进行输入开机密码的:

;图片链接:http://xiangce.baidu.com/picture/detail/87503ff87f93282e095a37813aa9d7f302860809

;本题目来自:http://zhidao.baidu.com/question/574521166.html

;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 汇编语言编程--输入密码相关推荐

  1. 51 汇编语言编程:8个按键控制8个LED

    ;89C51汇编语言写8个按键控制8个LED ;按键接P2口,LED接P1口. ;有6按键,按下对应LED长亮,重复按下,LED灭: ;有两个特殊按键,按下,对应LED每隔1秒闪烁,重复按下,LED灭 ...

  2. c51按键控制灯亮汇编语言,51单片机汇编语言编程进行按键控制

    硬件电路: P1.0 ~ P1.5 外接 6 个 LED,分别称为 D1 ~ D6,低电平发光. P0.0 ~ P0.3 外接 4 个 按键,分别称为 K1 ~ K4. P3.2 ~ P3.3 外接  ...

  3. c55x汇编语言,TMS320C55x汇编语言编程A.ppt

    TMS320C55x汇编语言编程A 例4-17,无效定义的表达式. .global Y ; 定义Y为全局外部符号 badsym1.set Y ; Y在当前文件中未定义 badsym2.set 50h ...

  4. 用汇编语言编程的计算机

    用汇编语言编程的计算机 下面介绍一种通过汇编语言进行编程的计算机.该计算机通过按键输入汇编语言程序,通过数字电路判断汇编语句的因果关系,并实现相关保存到寄存器,像端口输出信号,从端口读取信号的功能.计 ...

  5. C语言----- 4/π=1-1/3+1/5-1/7+...,编程计算π的近似值,直到最后一项的值小于10-4次方为止 //输出π的值,并统计累加的项数

    代码如下: //利用 4/π=1-1/3+1/5-1/7+...,编程计算π的近似值,直到最后一项的值小于10-4次方为止 //输出π的值,并统计累加的项数 #include<stdio.h&g ...

  6. 51 AVR 编程器USBASP下载器驱动安装及程序下载

    51 AVR 编程器USBASP下载器驱动安装及程序下载 下载器的介绍 驱动的下载 1.win10驱动的下载 其他系统驱动的安装 接线介绍 程序的下载 一.Progisp 的特点: 二.progisp ...

  7. 《 汇编语言编程基础 基于 LoongArch 》读书与实践笔记

    < 汇编语言编程基础 基于 LoongArch >读书与实践笔记 更新记录 前言 声明 准备 1. 文档 2. 环境 第一章 汇编语言和龙芯架构简介 1.1 计算机语言 1.1.1 机器语 ...

  8. 51单片机编程入门用什么单片机比较好?

    每个男人心中其实都有一个"钢铁侠"梦. 希望自己拥有像男主一样的技术,通过技术去改变世界. 不过想做到这一步,需要学的东西实在太多太多,可能这辈子都学不完. 就是这种遥不可及的事情 ...

  9. 实验二、80C51汇编语言编程实验:编写3字节二进制加法子程序,并用主程序调用不同的加数和被加数来检测该子程序的正确性。需考虑有进位和无进位情况。

    实验二.80C51汇编语言编程实验:编写3字节二进制加法子程序,并用主程序调用不同的加数和被加数来检测该子程序的正确性.需考虑有进位和无进位情况. 报价 200 文章目录 实验二.80C51汇编语言编 ...

最新文章

  1. Hadoop 单节点 伪分布 安装手记
  2. FPGA管脚分配需要考虑的因数
  3. python中的类及self详解_Python类class参数self原理解析
  4. 查找数组B中不在数组A中的元素
  5. 数据结构(8)----栈与队列之循环队列
  6. 详细分析图像形态学操作
  7. Http协议:状态码
  8. jvm高并发_JVM上的高并发HTTP客户端
  9. (一) CPU 性能测试 (压力)
  10. 计算二叉树叶子结点数
  11. dell计算机环境温度,戴尔桌面使用和维护的考虑.doc
  12. 机器学习项目实践——K-means聚类实现广告分析
  13. Intent启动拨号盘,实现打电话功能
  14. NVMe 协议详解(一)
  15. iOS : 通过路径读取文件的几种方法
  16. Baklib分享|知识管理是企业发展的风向标
  17. VS2010 提示存储空间不足 无法操作
  18. vue实践学习——keep-alive属性及生命周期
  19. 基于人工鱼群优化可倒摆法(QIP)控制器附matlab代码
  20. 游戏盾的原理和功能是什么?

热门文章

  1. Unity下实现弹簧骨骼(Spring Bone)
  2. 区块链研究生专业_“区块链大数据赋能低碳发展”高端研讨活动 在增城低碳总部举行...
  3. Android上传蒲公英平台脚本
  4. 以红酒数据集分类为例做决策树的可视化
  5. fseek函数的用法(用于设定指针位置)
  6. 李宏毅作业七其二 Network Compression (Knowledge Distillation)
  7. [控制原理基础]浅谈PID算法
  8. Android QQ 登录接入详细介绍
  9. 2021教育企业邮箱怎么注册?如何申请学校邮箱?
  10. Essential Google Cloud Infrastructure: Foundation