新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ATMega16单片机的密码锁的设计

基于ATMega16单片机的密码锁的设计

作者:时间:2014-01-07来源:网络收藏

随着科技的发展,安全问题越来越受人们关注,各种安全产品相继问世,如指纹防盗,红外防盗等,虽然这类产品的安全性较高,但其成本也同样较高,携带安装都不方便也同样限制了其发展。本文利用ATMega 16,通过4×3键盘和七段数码管显示,除实现了的密码验证、重新设置和输入错误报警等基本功能外,还创新性的实现了键盘的重新定义。通过对键盘的重新定义可以有效的防止密码被盗,同时也降低了成本,便于携带安装。

一、设计目的、用途、功能

1.设计目的
随着科技的进步,安全问题越来越受人们重视,市场上也相应的出来很多产品,如指纹防盗,红外防盗等。最然其安全性能很高,但是成本也相对较高,也不方便携带和安装。本设计的目的就是为了保证高安全性的前提下,实现降低成本,方便携带安装。
2. 设计用途
由于本设计成本较低且安全性能稳定优良,可适用于家庭防盗、行李箱、车载行李箱等一些安全性能要求不高且需要便携的产品上,其安全性能远远优于同等成本的安全性。本设计的键盘定义的思想可移植到自动提款机、公共场合的提款装置等,可以防止用户输入密码时被别人偷看、窃取等,增加用户提款时的安全性。
3.实现功能
1)密码设置功能:默认情况下,默认密码为“6666”,键盘默认为
“ 1 2 3
4 5 6
7 8 9
# 0 * ”
当键盘按下时,即为密码输入,每输入一位,七段数码管显示“8”并左移一位。如果输入正确,即显示“PASS”;如果输入错误,即显示“ErOr”,输入错误达到三次,键盘自动锁死,无法再次输入,并且蜂鸣器发出警报。输入过程中按“*”可以删除输入错误的数字,同时显示也右移一位。
2)键盘重新定义功能:当密码输入正确后再按下“#”,即进入选择修改功能,再次输入“#”即进入键盘重新定义功能。依次按下每个按键,即从0开始定义,直到9即定义结束(“*”“#”键无法被重新定义)。输入过程中,每输入一位,蜂鸣器响一声,直到完全将“0~9”重新定义结束。此时数码管显示“PASS”,键盘即为重新定义后的键盘,再次输入密码时必须按照重新定义后的键盘输入。同样,输入过程中,按“*”键可以删除上一位输入的数字。
3)功能复位:当有人输入三次错误触发蜂鸣器时,蜂鸣器会一直响,发出警报,直到其主人按下“reset”键,全部恢复默认。

二、硬件设计

1.硬件设计思路

基于ATMega16单片机的密码锁的设计

1)键盘输入:采用4×3式矩阵键盘输入,三列从左往右依次对应PB0、PB1、PB2,四行从上往下依次对应PB4、PB5、PB6、PB7。
2)显示:显示采用共阳极七段数码管显示,四位数从右往左依次与PD0、PD1、PD2、PD3。七段数码管的a b c d e f g对应端口PA0,PA1,PA2,PA3,PA4.PA5,PA6。
3)报警:当密码输入错误达到三次时,键盘被锁,并且于端口PC0输出高电平,驱动蜂鸣器持续响。
2.电路原理图

基于ATMega16单片机的密码锁的设计

三、软件设计

1.程序设计思想
1)键盘扫描:
AVR课上学习的键盘扫描程序为了消抖,而进行了软件消抖处理, “delay_ms(10); //延时去抖”。由于对CPU调用了“delay函数”,而使CPU在这10ms内无法进行其他工作,因此而浪费了CPU,降低了CPU效率。鉴于以上缺陷,我们对键盘扫描程序做了很大改进,采用定时器中断与比较中断相结合的方式,在读取按键是否按下的两次确认之间的时间里,CPU可以继续进行其他工作,从而提高了CPU的效率。
2)七段数码管的显示
针对本实验的实际情况:密码通过和重新定义键盘通过时,七段数码管显示“PASS”,错误时显示“ErOr”,因此为了提高程序运行的效率,采用指针变量输出的方式,即将“PASS”和“ErOr”的显示预存在存储器中,当需要时,指针变量指到相应的存储器显示。对每输入一位左移的显示则采用动态扫描的方式。
3)蜂鸣器报警:
对PC7端口输出高电平驱动蜂鸣器发出警报。

蜂鸣器相关文章:蜂鸣器原理


评论


相关推荐

技术专区

关闭