基于单片机的电子密码锁设计与实现 - 图文 下载本文

内容发布更新时间 : 2024/11/16 11:33:46星期一 下面是文章的全部内容请认真阅读。

图4-1 主程序流程图设计

主程序主要完成了系统的初始化、按键扫描、按键功能、以及调用显示等功能。主程序部分如下: En bit P8 将LCD的en引脚连接到单片机的P8 Rw bit P9 Rs bit P10 Speaker bit P2.7

Open bit P2.6 开锁电路的控制端连接到P2.6口 4.2

键值判断设计

键盘扫描和键值读取程序主要判断矩阵按键是否按下,按下的是哪一个键,并求出按键的键值。矩阵键盘的识别

方法有多种。相对来说,矩阵式键盘的软件设计最终实现以下功能:是否有按键被按下;消除抖动;确定哪个键被按下,若按键闭合了一次,操作也只能是一次。

图4-2 键盘流程图设计 键盘程序如下:

if((0keydata)||(4keydata)||(8keydata)||keydata==14)

//在0-9之间的数字通过 password=keydata;//键盘值进行保存

keydata=0; //把键盘值置其它值,不被其它利用,以一样 i++; 4.3

开锁设计

当输入密码正确时,单片机输出低电平,控制继电器工作,模拟开锁动作,同时,当输入密码或开锁成功时,蜂鸣器发出相应的提示音。

图4-3开锁流程图设计

开锁程序设计如下:

while(1)

{

if(keydata==4) //锁定功能 {

P3_6=0; EX1=1;

goto start; 4.4

密码修改设计

输入密码前,要先将正确的密码从存储器24C02中读出,并存放在单片机RAM从40H开始的6个单元中。6位密码锁由矩阵按键输入,输入的密码存储在单片机RAM从30H开始的6个单元中,每输入一位密码,都要和正确的密码进行比较;若全部6位密码均输入正确,显示密码正确信息;若输入的密码不完全正确,则进行第二位输入,若输入3次仍不正确,则报错。输入密码时,还要打开定时器T0,使定时器T0工作,当计时到30s时,若输入的密码不正确或未输入密码,则显示出错信息。密码修改程序用来设置新密码,当输入的开

锁密码正确后,可重新设置新密码,输入的新密码暂存在单片机RAM从40H开始的单元中,然后,调用存储器子程序,将40H开始的6位密码存储在24C02中。