单片机课程设计-电子密码锁
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子密码锁的设计说明书
院系:机电汽车工程学院
专业:机械设计制造及其自动化
班级:
姓名:
学号:
指导老师:
同组人员:
中文摘要
摘要:
随着经济的发展,人们对日常生活质量的要求也越来越高,从工作、学习、出行、购物等的各个方面,人们也对现代安全设施提出来更高的要求。在安全技术防领域,具有防盗报警功能的电子密码锁逐渐代替传统,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。密码锁具有安全性高、成本低、功耗低、易操作等优点,同时还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
本次电子密码锁的设计主要就针对于这种社会需求,从程序设计到硬件设计以及硬件安装连接都做了详细的说明。
设计说明
本次设计使用 ATMEL公司的 AT89C51 实现一基于单片机的电子密码锁的设计,其主要具有如下功能:
①密码通过键盘输入,若密码正确,则将锁打开。
②报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过 3 次,蜂鸣器报警并且锁定键盘。
电子密码锁的设计主要由三部分组成:4×4 矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有LED 提示灯,报警蜂鸣器等。
密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:
①密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。
②密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。
③开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。
主要的设计实施过程:首先,选用 ATMEL公司的单片机AT89C51,以及选购其他电子元器件。第二步,使用 DXP 2004
设计硬件电路原理图,并设计 PCB图完成人工布线(后因 PCB 板损坏决定采用万能板焊接的方法)。第三步,使用 Keil uVision3 软件编写单片机的 C 语言程序、仿真、软件调试。第四部,使用 PROTEUS 软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次毕业设计。
关键词:4×4矩阵键盘;AT89C51;密码锁;密码二次确认;电子密码锁
目录
中文摘要 (2)
设计说明 (3)
目录 (5)
第1章系统总体方案设计 (1)
1.1 系统法案的选择 (1)
1.2 系统设计思路 (2)
第2章硬件电路设计 (3)
2.1 键盘电路设计 (3)
2.2 LED显示电路 (4)
2.3 开锁电路 (6)
2.4 报警电路 (7)
第3章软件设计 (9)
3.1 软件设计思路 (9)
3.2 各子程序设计 (10)
第4章系统调试 (15)
4.1系统硬件连接示意图 (15)
4.2系统测试的局部示意图 (16)
第5章心得体会 (17)
第6章参考文献 (18)
附录 (19)
源程序清单 (19)
第一章:系统的总体方案设计
1.1 系统方案的选择:
综合其他多种方案设计的优缺点,采用以AT89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图1-2所示。
图2-2单片机控制方案
该方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。本方案采用一种是用以89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
1.2系统的设计思路:
1.输入密码用矩形键盘,包括数字键和功能键。
2.LED数码管显示输入密码,用74JS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。
3.用发光二极管代替开锁的电路,发光表示开锁。
4.输入密码错误次数超过3次,系统报警。
5.打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。
6.按“C”键,清除显示器为“000000”。
7.欲重新设定密码,先输入密码在案“*”。
8.输入密码,再按“D”键。若密码与设定密码相同,则开门。否则显示器清为“000000”。
9.软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序和报警程序。
第2章硬件电路设计
2.1 键盘电路设计
使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图2.1
。
图2.1 矩阵键盘
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需N条
行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。
对照图2.1所示的4×4键盘,说明线反转个工作原理。
首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。
判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。
具体的功能设计如表2.1:
表2.1 按键功能
2.2LED显示电路
本系统设计的显示电路是为了给使用者以提示而设置的。