图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中。