单片机音响技术网
首页 | 热销产品 | 单片机入门 | 下载中心 | 技术文章 | Protel专区 | 电子制作 | 购物指南 | 发货查询 | 本站淘宝
动画01 当前位置:本站首页技术文章
文章搜索
pix
本站推荐产品
  • 单片机音响软件专业开发板
  • 详细介绍
  • TOPAV-2008单片机开发板 598元
pix
pix
pix
单片机技术文章精选
pix

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

文章来源:单片机与嵌入式系统应用

以下是本人用单片机对键盘输入密码与处理的一些小看法。键盘是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
unaided 发表于 2006-6-17 20:50:00


摘录:半键纵横;   责任编辑:mcu51av 2007-11-10

上一篇:单片机精确定时中断的编程方法的
下一篇:AT89C2051日历程序

pix

关于我们 | 联系我们 | 友情链接 | 网站地图 | 点击给我留言
Copyright © 2007 - 2008 单片机音响技术网 All rights reserved. 站长统计