单片机处理密码的简单方法

来源:本站
导读:目前正在解读《单片机处理密码的简单方法》的相关信息,《单片机处理密码的简单方法》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机处理密码的简单方法》的详细说明。
简介:本文主要介绍了用单片机对键盘输入密码与处理的一些小看法。

本文是是本人用单片机对键盘输入密码与处理的一些小看法。键盘是4*4=16键的小键盘,接在P2口,四行四列分别接P2

口的高位和低位。P1口接8个LED

保存输入的密码主要思想是“先进先出”。

主要程序段如下:

*****先进行初始化

mov 20h,#00h;存当前输入密码

mov 21h,#00h

mov 22h,#12;存原始密码

mov 23h,#34

........(使用20H,21H保存输入的两位密码,保存多位也是一样的道理)

mov 2ah,#00h;是否保存开始保存密码

;*************读键盘程序段*****************

READKEY: PUSH B

PUSH 1

MOV P2,#0F0H

MOV A,P2

CJNE A,#0F0H,RK_HIT0

LJMP RK_EXIT

RK_HIT0: LCALL DELAY ;延时消抖

MOV P2,#0F0H

MOV A,P2

CJNE A,#0F0H,RK_KIT1

LJMP RK_EXIT

RK_KIT1: ORL A,#0FH

MOV P2,A

MOV A,P2

MOV B,A

MOV R1,#0FFH

MOV DPTR,#KCODTAB

RK_NONE: CLR A ;判断按的是哪号键

MOVC A,@A+DPTR

INC DPTR

INC R1

CJNE A,B,RK_NONE ;将键号存R1中

SKEY: MOV P2,#0F0H ;判断是否释放了键

NOP

MOV A,P2

CJNE A,#0F0H,SKEY

*****键操作功能

key15: cjne r1,#15,save_mm

mov 20h,#00H ;开始输入密码之前先原来保存的密码清除

mov 21h,#00H

mov a,2ah ;作用是按一下可以输入密码,如果再按一下则是取消输入

cjne a,#00h,set15

mov 2ah,#0ffh

ajmp rk_exit

set15: mov 2ah,#00h

ajmp rk_exit

save_mm: mov a,2ah ;密码是否保存

cjne a,#0ffh,key1 ;如果值为00H则不是要输入密码,转向正常的功能键

mov 21h,20h ;先将20H里的数据存入21H

mov 20h,r1 ; 把刚输入的密码放入20H中

key14: cjne r1,#14,key1 ;比较密码是否正确

mov a,2ah

cjne a,#0ffh,rk_exit

mov 2ah,#00h ;将2ah清零,不再允许输入密码了(即没有按开始键k15将不允许输入密码)

;开始比较密码是否正确了,比较之后将20H,21H清零,源密码存放在22H中

mov a,20h

cjne a,22h,error

mov a,21h

cjne a,23h,error

;密码对了,执行相应的操作

setb p1.0 ;密码对了,一号灯亮

;...................

ajmp rk_exit

error: ;密码错了,执行相应的操作

setb p1.2 ;密码错了,三号灯亮

;...................

ajmp rk_exit

key1: ;其它功能键

key2: ;*******

rk_exit: ret ;按键判断完成,退出读键盘程序

;*****************以下为延时程序段**********************

DELAY: MOV R6,#20

DELAY1: MOV R7,#50

DJNZ R7,$ ;2US X 50 = 100 US, 12MHZ

DJNZ R6,DELAY1

RET

;**********存放键值的表格****************

KCODTAB: DB 11100111B,11101011B,11101101B,11101110B

DB 11010111B,11011011B,11011101B,11011110B

DB 10110111B,10111011B,10111101B,10111110B

DB 01110111B,01111011B,01111101B,01111110B

提醒:《单片机处理密码的简单方法》最后刷新时间 2024-03-14 01:07:54,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机处理密码的简单方法》该内容的真实性请自行鉴别。