基于单片机控制的电子密码锁(3)
每一行与每一列的交叉处不相同,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N根行线与M根列线,即可组成具有N × M 个按键的矩阵键盘。
在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就是要识别哪一个按键被按下。对键的识别方法通常有两种:一种是通用的组行扫描查询法;另一种是速度较快的线反转法。
此系统中,我们采用线反转法。首先辨别键盘中有无按键被按下,在单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。具体方法是:向行线输出全扫描字00H,把全部列线置成低电平,然后将列线的电平状态读入累加器A中。如果有按键被按下,总会有一根行线电瓶被拉至低电平从而使行线不全为1。
判断键盘中哪一个按键被按下通常是通过将列线逐列至低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的按键不在此列;如果不全为1,则所按下的按键必在此列,而且是在与零电平行线相交的交点上的那个按键。
按键的操作面板如图3.5所示,共计10个数字键和6个功能键,键盘侧面还有一个微型蜂鸣器。键盘侧面还有一个蜂鸣器,每操作一次,它便发出声音,提示操作成功。
10个数字键用来输入密码,另外6个功能键分别是:A查看键、B设置新密码键、C退格键、D返回键、E确认/退出键和F开启键。其中退格键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。确认键的功能是确认输入的密码。开启键是切换到密码输入状态,输密码前需按该键才能开始输入密码。按“F”键启动进入输入密码程序,按住“F”键不放3秒以后进入输入密码状态。在输入密码状态下,0-9数字键为有效键,有时间和次数限制功能:只有三次输入密码机会,每次限制在10秒内完成,输入密码有误或每次输入密码超时,则被认为是密码输入错误。当3次输入都错误时,程序将返回起始状态。密码输入正确后,继电器吸合,表示锁被打开。在密码输入正确的情况下,程序进入查看密码和修改密码状态,按“E”键退出查看密码状态。按“B”键进入重新设置密码状态,在输入密码时,如发现输入有误,可按“C”删除后,重新输入,按“E”确认后,程序退出修改密码状态。按“D”键或等待10秒后程序退出修改密码和查看密码状态,回到起始状态。程序内定密码为:987654,送电开机时,只要输入内定密码便可开门,这样可预防停电后再送电时无密码可用。当密码输入错误或密码输入时间超过规定的时间时,蜂鸣器报警。
表3.1 按键功能表
按键 0-9键 A键 B键 C键 D键 E键 F键
10
键名 数字键 查看键 设置新密码键 退格键 返回键 确认/退出键 开启键 功能说明 输入密码 查看密码 设置新密码 退格删除 返回到开始界面 确认/退出 开启密码输入
2.4.2 报警控制电路的设计
该电路采用单频音报警电路,实现单频音报警的接口电路比较简单,其发音元件通常可采用压电蜂鸣器,当在蜂鸣器两引脚上加3~15V直流工作电压,就能产生3kHZ左右的蜂鸣振荡音响。压电式蜂鸣器结构简单、耗电少,更适于在单片机系统中应用。压电式蜂鸣器,约需10mA的驱动电流,可在某端口接上一只三极管和电阻组成的驱动电路来驱动,P.3.1接三极管基极输入端,当P3.7输出高电平“1”时,三极管导通,蜂鸣器的通电而发音,当P3.1输出低电平“0”时,三极管截止,蜂鸣器停止发音。如图3.6所示
图 3.6 报警电路控制
2.4.3 液晶显示电路
液晶显示电路如图4-3所示,通过P1口传输数据,控制信号E1、E2、A0分别连在P2.0、P2.1、P2.2。单片机通过P1口和部分P3口对液晶进行显示控制。可调电阻RW1控制液晶显示的
11
图3-4 液晶显示电路
本系统设计的显示电路是为了给使用者以提示而设置的为了达到界面友好的目的,显示部分由液晶显示器LCD1602取代普通的数码管完成。开锁时,按下键盘上的开锁按键后,利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少
图 3.8 开机显示
12
图 3.9 输入状态
个*。当密码输入完成时,按下确认键,如果输入的密码正确的话, LCD显示“888”,单片机其中P3.0引脚会输出低电平,使三极管T2导通,电磁铁吸合,继电器开关跳转,电子密码锁打 开,如果密码不正确,LCD显示屏会显示“IUPUT ERROR”,P3.0输出的是高电平,电子密码锁不能打开。通过LCD显示屏,可以清楚地判断出密码锁所处的状态 显示器主要用于显示以下几个字符,指示如图3.8所示
3 系统软件设计
系统的主程序如图4-1所示。由于用户在使用系统的过程中,可能在任何时刻按下任何按键,而程序都必须对此作出正确响应。
13
开始系统初始化显示菜单一 密码正确?YN查看密码键盘扫描提示正确开锁错误次数加1 修改密码?NY提示错误存新密码 启动密码输入?N延时1s D键按下?关锁YNY(F键按下)Y显示菜单二密码输入密码正确标志=1?密码比较NN错误了3次?Y锁定
图4.1 主程序流程图
3.1 初始化及按键识别
如图4.2,系统的初始化包括堆栈起始地址的设定,两个定时/计数器的设定,液晶显示模式的设定,密码缓冲区的初始化,一些自定义数据空间的初始化,蜂鸣器初始化发声等操作。
系统初始化并读取密码完成后,液晶显示\,提示用户可以输入密码。此时程序即不断测试按键,检查是否有按键被按下。如果有,则进行按键识别;如果没有按键按下,或者按下的按键没有被识别,R3赋值0FFH,并跳转至按键测试。实际程序运行时,绝大部分时间都在测试按键,等待用户输入。
3.2 开锁处理
首先LCD初始化,输入密码,密码正确则使开锁电路动作,继电器得电,开锁指示灯亮。开锁程序流程图如图4.3所示。
开始按键测试子程序系统初始化有按键按下?是否延时0.5S读取密码按键识别子程序载入初始密码否 读取成功?是提示输入密码 识别成功?是按键重定位否 14
…… 此处隐藏:942字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




