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

分享到:

随着科技的发展,安全问题越来越受人们关注,各种安全产品相继问世,如指纹防盗,红外防盗等,虽然这类产品的安全性较高,但其成本也同样较高,携带安装都不方便也同样限制了其发展。本文利用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.    硬件设计思路

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.    电路原理图

三、    软件设计

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

继续阅读
基于Atmega16的电流采样电路设计

文中研制了一套模拟并网发电系统,实现了频率跟踪、最大功率跟踪、相位跟踪、输入欠压保护、输出过流保护、反孤岛效应等功能

51单片机、AVR单片机和PIC单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

一个小经验,让你的AVR单片机功耗超低

休眠电流要最小:掉电模式必须的,然后能关闭的功能全部关闭,关闭BOD检测,关闭看门狗,电压越低越好,1.8V,频率越低越好。

51、AVR与PIC,三种单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

14个官方视频教程,助您学习AVR系列单片机

AVR® Insights — 第1集 — AVR存储器 AVR® Insights — 第2集 — 边写边读存储器 AVR® Insights — 第3集 — 端口 AVR® Insights — 第4集 — 休眠模式 AVR® Insights — 第5集 &mdash

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss