矩阵键盘模拟密码锁
- 格式:doc
- 大小:43.50 KB
- 文档页数:8
简易电子密码锁设计&我的设计思想联想到日前在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,并结合近期的学习过程和一些参考书籍,完成了简易的电子密码锁设计学习。
电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
电子密码控制不论性能还是安全性都已大大超过了机械类结,具有良好的应用前景。
一、设计目的与内容设计了一个简易电子密码锁,可按要求从矩阵键盘输入6位数密码如“080874”,输入过程中有按键音提示。
当密码输入正确并按下确认键(“OK”键)后,发光二极管被点亮。
二、工作原理与基本操作过程介绍采用80C51为核心的单片机控制。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,进行电子密码锁的设计。
(1)键盘的人工编码给每个按键指定一个按键值,报告设定按键S1~S9对应的按键值分别为“1~9”,S10为数字“0”,S11为“OK”,S12~S16对应的按键值分别为12~16。
(2)根据按键值,指定每个按键对应的输入数字和信息。
如下表为每个按键代表的数字和输入信息。
当键盘扫描程序扫描到S10键被按下时,将其代表的按键值“0”通知CPU,CPU根据事先的规定,就会知道输入的数字是“0”。
矩阵键盘中每个按键所代表的数字和输入信息(3)输入数字和密码对比。
先将设定的密码用一个数组保存,报告中用的密码“080874”和“OK”确认信息可以用如下数组保存:Unsigned char D[ ]={0,8,0,8,7,4,11};在主程序接收到数字和信息后,通过逐位对比的方法进行判断。
输入的数字经对比正确时,程序才会继续顺序执行,否则,程序拒绝继续执行。
(4)执行预期功能。
如果输入密码正确,执行预期功能,报告设计为点亮P3.0口引脚LED。
三、电路图设计(Proteus绘制)四、程序设计(C语言)矩阵式键盘实现的电子密码锁程序#include<reg51.h> //包含51单片机寄存器定义的头文件sbit P14=P1^4; //将P14位定义为P1.4引脚sbit P15=P1^5; //将P15位定义为P1.5引脚sbit P16=P1^6; //将P16位定义为P1.6引脚sbit P17=P1^7; //将P17位定义为P1.7引脚sbit sound=P3^7; //将sound位定义为P3.7unsigned char keyval; //储存按键值/************************************************************** 函数功能:延时输出音频**************************************************************/ void delay(void){unsigned char i;for(i=0;i<200;i++);}/************************************************************** 函数功能:软件延时子程序**************************************************************/ void delay20ms(void){unsigned char i,j;for(i=0;i<100;i++)for(j=0;j<60;j++);}/************************************************************** 函数功能:主函数**************************************************************/ void main(void){unsigned char D[ ]={0,8,0,8,7,4,11}; //设定密码EA=1; //开总中断ET0=1; //定时器T0中断允许TMOD=0x01; //使用定时器T0的模式1TH0=(65536-500)/256; //定时器T0的高8位赋初值TL0=(65536-500)%256; //定时器T0的高8位赋初值TR0=1; //启动定时器T0keyval=0xff; //按键值初始化while(keyval!=D[0]) //第一位密码输入不正确,等待;while(keyval!=D[1]) //第二位密码输入不正确,等待;while(keyval!=D[2]) //第三位密码输入不正确,等待;while(keyval!=D[3]) //第四位密码输入不正确,等待;while(keyval!=D[4]) //第五位密码输入不正确,等待;while(keyval!=D[5]) //第六位密码输入不正确,等待;while(keyval!=D[6]) //没有输入“OK”,等待;P3=0xfe; //P3.0引脚输出低电平,点亮LED}/**************************************************************函数功能:定时器0的中断服务子程序,进行键盘扫描,判断键位**************************************************************/void time0_interserve(void) interrupt 1 using 1 //定时器T0的中断编号为1,使用第一组寄存器{unsigned char i;TR0=0; //关闭定时器T0P1=0xf0; //所有行线置为低电平“0”,所有列线置为高电平“1”if((P1&0xf0)!=0xf0) //列线中有一位为低电平“0”,说明有键按下delay20ms(); //延时一段时间、软件消抖if((P1&0xf0)!=0xf0) //确实有键按下{P1=0xfe; //第一行置为低电平“0”(P1.0输出低电平“0”)if(P14==0) //如果检测到接P1.4引脚的列线为低电平“0”keyval=1; //可判断是S1键被按下if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”keyval=2; //可判断是S2键被按下if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”keyval=3; //可判断是S3键被按下if(P17==0) //如果检测到接P1.7引脚的列线为低电平“0”keyval=4; //可判断是S4键被按下P1=0xfd; //第二行置为低电平“0”(P1.1输出低电平“0”)if(P14==0) //如果检测到接P1.4引脚的列线为低电平“0”keyval=5; //可判断是S5键被按下if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”keyval=6; //可判断是S6键被按下if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”keyval=7; //可判断是S7键被按下if(P17==0) //如果检测到接P1.7引脚的列线为低电平“0”keyval=8; //可判断是S8键被按下P1=0xfb; //第三行置为低电平“0”(P1.2输出低电平“0”)if(P14==0) //如果检测到接P1.4引脚的列线为低电平“0”keyval=9; //可判断是S9键被按下if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”keyval=0; //可判断是S10键被按下if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”keyval=11; //可判断是S11键被按下if(P17==0) //如果检测到接P1.7引脚的列线为低电平“0”keyval=12; //可判断是S12键被按下P1=0xf7; //第四行置为低电平“0”(P1.3输出低电平“0”)if(P14==0) //如果检测到接P1.4引脚的列线为低电平“0”keyval=13; //可判断是S13键被按下if(P15==0) //如果检测到接P1.5引脚的列线为低电平“0”keyval=14; //可判断是S14键被按下if(P16==0) //如果检测到接P1.6引脚的列线为低电平“0”keyval=15; //可判断是S15键被按下if(P17==0) //如果检测到接P1.7引脚的列线为低电平“0”keyval=16; //可判断是S16键被按下for(i=0;i<200;i++) //让P3.7引脚电平不断取反输出音频{sound=0;delay();sound=1;delay();}}TR0=1; //开启定时器T0TH0=(65536-500)/256; //定时器T0的高8位赋初值TL0=(65536-500)%256; //定时器T0的高8位赋初值}五、用Proteus软件进行仿真利用Keil软件进行编译通过后,生成hex文件。
51单片机密码锁制作的程序和流程图(很详细) 一、基本组成:单片机小系统+4*4矩阵键盘+1602显示+DC电机基本电路:键盘和和显示键盘接P1口,液晶的电源的开、关通过P2.7口控制电机(控制口P2.4)二、基本功能描述:1.验证密码、修改密码a)锁的初始密码是123456(密码最长为10位,最短为1位)。
2.恢复初始密码a)系统可以恢复初始密码,否则一旦忘记密码而又不能恢复初始密码,该锁就永远打不开。
但是又不能让用户自行修改密码,否则其他人也可以恢复该初始密码,使得锁的安全性大大下降。
3.使系统进入低功耗状态a)在实际使用中,锁只有在开门时才被使用。
因而在大多数的时间里,应该让锁进入休眠状态、以降低功耗,这使系统进入掉电状态,可以大大降低系统功耗。
b)同时将LCD背光灯关闭4.DC电机模拟开锁动作。
a)DC电机启动时解除开锁把手的锁定,允许通过把手开锁。
DC电机不直接开锁,使得DC电机的功率不用太大,系统的组成和维护将变得简单,功耗也降了下来。
三、密码锁特点说明:1.0 输入将被以字符形式输入,最长为10位。
超过10位时系统将自动截取前10位、但不作密码长度溢出提示。
2.0 开锁10秒后不允许更改密码、并提示修改超时_进入初始态,需要重新输入密码方可再次修改密码。
3.0 系统未使用存储器存储密码故掉电后密码自动恢复为初始密码。
4.0 若2分钟内无任何操作,系统自动进入省电模式运行,同时关闭液晶显示,以节省电力。
5.0 输入密码正确后、电机允许开锁时间为5秒, 5秒后需要再次输入密码才可以再次开锁。
6.0 修改密码键和恢复初始密码键最好置于室内。
这是Proteus仿真结果:输入密码123456:显示结果:密码正确时电机启动、电机将持续5秒:这是键盘:开锁键是接INT0引脚接的一个独立按键,用于唤醒CPU工作、进而开启整个系统密码正确时可以修改密码:再次输入新密码,两次输入相同时、更改有效当然你可以随时放弃修改密码改进:1.0 密码锁的秘密没有存储,因而在掉电时最新的密码将丢失,重新上电后密码将恢复成为初始密码。
电子密码锁实验报告一,实验目的1.进一步巩固和加深理论课基本知识的理解,提高综合运用所学知识的能力。
2.能根据需要选择参考书,查阅资料,通过独立思考,深入钻研有关问题。
3.学会自己独立分析问题、解决问题。
4学习定时器时间计时处理、按键扫描及LED数码管显示的设计方法。
5.根据设计任务及要求利用实验平台上单片机及其外围元器件,设计符合功能的电子密码锁。
二,实验要求设计要求:1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。
2:可以自行设定或删除8位密码,能够掉电保存。
3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
三,实验基本原理1.键盘接口必须具有去抖动、按键识别基本功能。
(1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。
抖动的持续时间与键的质量相关,一般为5—20mm。
所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。
去抖问题可通过软件延时或硬件电路解决。
(2)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。
常用的方法有行扫描法和线反转法两种。
行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。
线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。
2.利用键盘扫描原理分别设4×4矩阵键盘组成0-9数字键及确认键和删除键,通过0—9数字键设定8位密码和删除键删除密码,利用存储器的永久存储特性将设定的密码存于存储器中,再次重启程序时,能从存储器中读取出来,从而实现掉电保存。
矩阵键盘控制器
使用说明手册
按键功能说明
MON 选择监视器
CAM 选择摄像机
LAST 上一个图像
NEXT 下一个图像
CLEAR 清除键
系统登录
开机后键盘现实“PASSWORD”提示输入操作员密码,输入密码(原始密码:000000)然后按“小锁”键登录系统
矩阵操作
1、选择监视器(默认为1)
先在键盘上输入1,然后按MON键,此时,1号监视器为当前控制监视器
2、选择图像
先选择需要监视器显示的图像的编号(例如3),在键盘上输入相应的数字3,然后按CAM 键,此时1号监视器上将显示硬盘录像机上面的3号图像
备注
按NEXT键,则监视器画面显示后一个图像
按LAST键,则监视器画面显示前一个图像
在输入有错误的时候可以按CLEAR键来清楚已经输入的信息
高速球键盘控制器
使用说明手册
按键功能说明
ADDR 地址选择键:选择高速球地址
CLEAR 清除键
ENTER 确认键
ZOOM+ 变焦+键:镜头拉近键,镜头放大倍数增大,镜头缩小视野,放大监视目标ZOOM- 变焦-键:镜头拉远键,镜头放大倍数减小,镜头扩大视野,扩大监视范围
登录系统
默认密码为8888,按ENTER进入系统
选择高速球地址
先按ADDR键,然后在键盘上输入需要控制的高速球的地址编号(例如1),然后按ENTER 键确认,此时键盘就可以控制1号高速球
控制高速球
摇动摇杆控制球的上下左右移动
ZOOM+,ZOOM-控制镜头的拉近拉远。
基于FPGA 数字密码锁板子使用的是DE2顶层topmodule lock(reset,clk,row,col,mm0,mm1,mm2,mm3,led1,led2,led3,set_flog); input clk,reset;input [3:0]row;output wire [3:0] col;output wire [6:0] mm0,mm1,mm2,mm3;output reg led1, led2,led3;wire [3:0]key_value;reg [3:0] temp_key;reg [3:0] m0,m1,m2,m3;reg [3:0] m_0,m_1,m_2,m_3;reg [5:0] state;reg [2:0] wei;wire key_valid;reg [1:0]count_wrong;output reg set_flog;parameter valid =6'b000000,set =6'b000001,collection_mm =6'b000010,cmd =6'b000100,collection =6'b001000,wrong =6'b010000,correct =6'b100000,die_lock =6'b000011,lock =6'b000111;always @(posedge clk or negedge reset)beginif(!reset)beginstate<=6'b000000;wei<=0;led3<=0;set_flog<=0;led1<=0;led2<=0;m0<=15;m1<=15;m2<=15;m3<=15;endelse begincase(state)valid :if(key_valid)begintemp_key<=key_value;state<=collection;endelsestate<=valid;collection : beginif(key_value>=0&&key_value<=9)beginif(led1&&(!set_flog))//开启状态不能按数字键state<=valid;else if((!key_valid)&&(wei<5))beginled2<=0;state<=collection_mm;wei<=wei+1'b1;endelsestate<=collection;endelseif(!key_valid)state<=cmd;endcollection_mm: begincase(wei)1:m0<=temp_key;2:m1<=temp_key;3:m2<=temp_key;4:m3<=temp_key;endcasestate<=valid;endcmd : begincase(temp_key)15:if(!led1)beginm0<=15;m1<=15;m2<=15;m3<=15;//*clearstate<= valid;wei<=0;led2<=0;led1<=0;endelsestate<= valid;14:if(led1)state<= valid;else if(wei) //back deletebegincase(wei)1:m0<=15;2:m1<=15;3:m2<=15;4:m3<=15;endcasewei<=wei-1'b1;state<=valid;led2<=0;endelsestate<=valid;13: if(set_flog)//保存密码beginset_flog<=0;led1<=0;m_0<=m0;m_1<=m1;m_2<=m2;m_3<=m3;state<=lock;endelseif((m0==m_0)&&(m1==m_1)&&(m2==m_2)&&(m3==m_3))//comparebeginstate<=correct;m0<=15;m1<=15;m2<=15;m3<=15;endelse beginstate<=wrong;count_wrong<=count_wrong+1;end12: state<=lock;10: if(led1) //setbeginset_flog<=1;wei<=0;m0<=15;m1<=15;m2<=15;m3<=15;state<=valid;enddefault:state<=valid;endcaseendcorrect :begin //openled1<=1;state<=valid;count_wrong<=0;endwrong :beginled2<=1;state<=valid;led1<=0;if(count_wrong==3) //lock diebegincount_wrong<=0;state<=die_lock;endendlock :beginled1<=0;wei<=0;led2<=0;m0<=15;m1<=15;m2<=15;m3<=15;set_flog<=0;state<=valid;enddie_lock:led3<=1;endcaseendendwire [15:0] mm={m3,m2,m1,m0};key key_scan(reset,clk,row,col,key_value,key_valid);display dis_u1(clk,mm,mm3,mm2,mm1,mm0);endmodule键盘扫描模块module key(reset,clk,row,col,key_value,key_flag);input clk,reset;input [3:0] row;//hangoutput reg [3:0] col;//lieoutput reg [3:0] key_value;output reg key_flag;reg [3:0] row_reg;reg [3:0] col_reg;reg [19:0] count;reg [2:0] state;reg clk_500khz;always @(posedge clk or negedge reset)if(!reset) beginclk_500khz<=0;count<=0;endelseif(count>=5000) begin clk_500khz<=~clk_500khz;count<=0;end else count<=count + 1'b1;always @(posedge clk_500khz or negedge reset)beginif(!reset)begin col<=0;state<=0;row_reg<=0;col_reg<=0;end elsebegincase(state)0:begincol<=0;key_flag<=0;if(row[3:0]!=4'b1111)beginstate<=1;col[3:0]<=4'b1110;endelse state<=0;end1: if(row[3:0]!=4'b1111) state<=5;else begin state<=2;col<=4'b1101;end2: if(row[3:0]!=4'b1111) state<=5;else begin state<=3;col<=4'b1011;end3: if(row[3:0]!=4'b1111) state<=5;else begin state<=4;col<=4'b0111;end 4: if(row[3:0]!=4'b1111) state<=5;else state<=0;5: if(row[3:0]!=4'b1111)begincol_reg<=col;row_reg<=row;state<=5;key_flag<=1;endelsestate <=0;endcaseendendalways@(clk or col_reg or row_reg or key_value)beginif(!reset)key_value<=0;else if(key_flag==1'b1)begincase({col_reg,row_reg})8'b1110_1110:key_value<=1;8'b1110_1101:key_value<=2;8'b1110_1011:key_value<=3;8'b1110_0111:key_value<=10;//a8'b1101_1110:key_value<=4;8'b1101_1101:key_value<=5;8'b1101_1011:key_value<=6;8'b1101_0111:key_value<=11;//b8'b1011_1110:key_value<=7;8'b1011_1101:key_value<=8;8'b1011_1011:key_value<=9;8'b1011_0111:key_value<=12;//c8'b0111_1110:key_value<=15;//*8'b0111_1101:key_value<=0;8'b0111_1011:key_value<=14;//#8'b0111_0111:key_value<=13;//d endcaseendendendmodule显示模块module display(clk,mm,wei0,wei1,wei2,wei3); input [15:0]mm;input clk;output reg [6:0] wei0,wei1,wei2,wei3;always @(clk)begincase(mm[3:0])4'b0000:wei0<=7'b 1000000;4'b0001:wei0<=7'b 1111001;4'b0010:wei0<=7'b 0100100;4'b0011:wei0<=7'b 0110000;4'b0100:wei0<=7'b 0011001;4'b0101:wei0<=7'b 0010010;4'b0110:wei0<=7'b 0000010;4'b0111:wei0<=7'b 1111000;4'b1000:wei0<=7'b 0000000;4'b1001:wei0<=7'b 0011000;4'b1010:wei0<=7'b 0001000;4'b1011:wei0<=7'b 0000011;4'b1100:wei0<=7'b 1000110;4'b1101:wei0<=7'b 0100001;4'b1110:wei0<=7'b 0000110;4'b1111:wei0<=~7'b 1000000;//4'b1111:wei0<=7'b 0001110;endcasecase(mm[7:4])4'b0000:wei1<=7'b 1000000;4'b0001:wei1<=7'b 1111001;4'b0010:wei1<=7'b 0100100;4'b0011:wei1<=7'b 0110000;4'b0100:wei1<=7'b 0011001;4'b0101:wei1<=7'b 0010010;4'b0110:wei1<=7'b 0000010;4'b0111:wei1<=7'b 1111000;4'b1000:wei1<=7'b 0000000;4'b1001:wei1<=7'b 0011000;4'b1010:wei1<=7'b 0001000;4'b1011:wei1<=7'b 0000011;4'b1100:wei1<=7'b 1000110; 4'b1101:wei1<=7'b 0100001; 4'b1110:wei1<=7'b 0000110; 4'b1111:wei1<=~7'b 1000000; //4'b1111:wei1<=7'b 0001110; endcasecase(mm[11:8])4'b0000:wei2<=7'b 1000000; 4'b0001:wei2<=7'b 1111001; 4'b0010:wei2<=7'b 0100100; 4'b0011:wei2<=7'b 0110000; 4'b0100:wei2<=7'b 0011001; 4'b0101:wei2<=7'b 0010010; 4'b0110:wei2<=7'b 0000010; 4'b0111:wei2<=7'b 1111000; 4'b1000:wei2<=7'b 0000000; 4'b1001:wei2<=7'b 0011000; 4'b1010:wei2<=7'b 0001000; 4'b1011:wei2<=7'b 0000011; 4'b1100:wei2<=7'b 1000110; 4'b1101:wei2<=7'b 0100001; 4'b1110:wei2<=7'b 0000110; 4'b1111:wei2<=~7'b 1000000; //4'b1111:wei2<=7'b 0001110; endcasecase(mm[15:12])4'b0000:wei3<=7'b 1000000; 4'b0001:wei3<=7'b 1111001; 4'b0010:wei3<=7'b 0100100; 4'b0011:wei3<=7'b 0110000; 4'b0100:wei3<=7'b 0011001; 4'b0101:wei3<=7'b 0010010; 4'b0110:wei3<=7'b 0000010; 4'b0111:wei3<=7'b 1111000; 4'b1000:wei3<=7'b 0000000; 4'b1001:wei3<=7'b 0011000; 4'b1010:wei3<=7'b 0001000; 4'b1011:wei3<=7'b 0000011; 4'b1100:wei3<=7'b 1000110; 4'b1101:wei3<=7'b 0100001; 4'b1110:wei3<=7'b 0000110; 4'b1111:wei3<=~7'b 1000000; //4'b1111:wei3<=7'b 0001110; endcaseend endmodule。
多功能电子密码锁的设计与实现摘要:本文设计了一种以AT89S51单片机为控制核心,以矩阵键盘为密码输入器件的多功能电子密码锁,从设计思路、硬件电路设计、软件程序设计等方面进行了介绍,该设计的密码锁实现了预期的目标,具有自动开锁、报警提示、信息显示等功能。
符合民用场合的要求,按此设计思路可以量产推广应用。
关键词:电子密码锁单片机AT89S51 自动开锁随着社会的不断发展和人民生活水平的不断提高,人们对日常生活中的安全防护越来越重视,电子密码锁是基于这一需求而产生出来。
本文从使用便利、性价比高等方面介绍了一款以51单片机为控制核心,具有数码管显示、提示报警等功能的多功能电子密码锁。
本文设计的密码锁控制方法简单,成本低廉,非常适用于家庭、商场、办公室等公共场所。
其具体功能如下:用户通过键盘输入正确密码,之后按下确认按键结束密码输入,系统自动开锁,使用退格键可以删除前面所输入的密码,使用闭锁键可以使密码锁重新闭锁;当每按下一个密码键发出一次短提示音,当密码输入正确发出1s长提示音,当密码输入错误发出5s长提示音;用六位数码管显示密码锁信息,第一位显示P时为等待用户输入开锁密码,显示H时为已经开锁,显示E时为密码输入报警;通过继电器模拟锁具,密码输入正确继电器断开,通过闭锁按键可以使继电器闭合。
1 设计思路及流程根据上面所提到的功能,多功能电子密码锁要完成用户密码输入,显示,提示及报警,自动开锁等功能,依次可以将此系统分为单片机模块,键盘模块,数码管显示模块,发声模块,电子锁控制模块。
各模块设计思路如下。
单片机模块:采用教学中经常使用的AT89S51作为核心芯片,此芯片使用率高,价格便宜,开发成本低,适用于一些控制简单,要求运算速率不高的场合。
此模块以单片机为核心,并配以复位电路和晶振电路,可以采用电池供电或采用简单方便的开关电源供电。
键盘模块:键盘采用4×4行列矩阵键盘,一共有16个按键。
按键采用的是微动开关,也可以采用抖动小且稳定的薄膜按键或硅胶按键。
微机系统与应用课程设计报告班级:学号:姓名:实验地点:E楼Ⅱ区311实验时间:2013.3.4-3.9矩阵式键盘数字密码锁设计一 . 实验目的1.掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。
2.初步掌握键盘扫描,密码修改和计时报警程序的编写方法。
3.掌握通过矩阵式键盘扫描实现密码锁功能的设计思路和实现方法。
二.实验内容矩阵式键盘数字密码锁设计,根据设定好的密码,采用4x4矩阵键盘实现密码的输入功能。
当密码输入正确之后,锁就打开(绿灯亮),10秒之后,锁自动关闭(红灯亮);如果连续输入三次密码不正确,就锁定按键5秒钟,同时发出报警(黄灯闪),5秒后,解除按键锁定,恢复密码输入。
数字密码锁操作键盘参考上面设定,也可以自行设计键盘。
用户初始密码为“123456”,系统加电运行后,密码锁初始状态为常闭(红灯亮),用户可以选择开锁或修改密码:如果选择开锁就按“Open”键,系统提示输入密码,输入用户密码+“#”键后,如果密码正确,就打开锁(绿灯亮),系统等待10秒,然后重新关闭密码锁,若密码错,提示重新输入,连续三次错误,提示警告词同时报警(黄灯闪),锁定键盘5秒,然后重新进入初始状态;如果选择修改密码就按”Modify Secret”键,系统提示输入旧密码,输入旧密码+“#”键后,如果正确,系统提示输入新密码,输入新密码+“#”后,新密码起效,重新进入初始状态;如果旧密码错,不能修改密码,密码锁直接进入初始状态。
三.实验基本任务1)具有开锁、修改用户密码等基本的密码锁功能。
2)对于超过3次密码密码错误,锁定键盘5秒,系统报警。
5秒后解除锁定。
4)通过LCD字符液晶和LED指示灯(红,绿,黄)实时显示相关信息。
5)用户密码为6位数字,显示采用“*”号表示。
6)码锁键盘设计合理,功能完善,方便用户使用。
本次实验还做了附加的任务( 1)增加了管理员(Admin)功能,如果用户忘记密码可向管理员求助。
简易密码锁设计实验报告
密码锁作为一种常见的安全锁具,广泛应用于各种安全场合。
在本次实验中,我们将设计一个简易的密码锁,并通过实验验证其功能和安全性能。
原理
密码锁主要由以下几个部分组成:输入设备、控制器和输出设备。
输入设备通常是键盘或按键开关,控制器用于接收输入信号并判断是否正确,输出设备可以是电子门锁、LED 指示灯或蜂鸣器等。
在本次实验中,我们将采用单片机作为控制器,用矩阵键盘作为输入设备,用LED灯和蜂鸣器作为输出设备。
具体原理如下:
输入设备
矩阵键盘是一种常见的数字输入设备,在本次实验中我们将使用4*4矩阵键盘。
该键盘由16个按键组成,分别对应09数字和AF字母共16个字符。
控制器
我们将使用STM32F103C8T6单片机作为控制器。
该单片机具有较高的性能和丰富的外设资源,在密码锁设计中可以充分发挥其优势。
控制器主要工作流程如下:
(1) 初始化:对单片机进行初始化,并定义好输入输出引脚。
(2) 输入密码:从矩阵键盘读取用户输入的密码。
(3) 判断密码:将读取到的密码与预设的正确密码进行比较,如果相同则解锁,否则报警。
(4) 解锁/报警:如果密码正确,则点亮LED灯并发出解锁提示音;否则点亮红色LED灯并发出警示音。
输出设备
我们将使用两个LED灯和一个蜂鸣器作为输出设备,用于提示用户解锁状态。
其中绿色LED灯表示解锁成功,红色LED灯表示解锁失败,蜂鸣器用于发出提示音。
电子锁设计报告一,实验目的1. 学习8051定时器时间计时处理,键盘扫描及LED数码管显示的设计方法。
2. 设计任务及要求利用实验平台上8个LED数码管,设计带有报警功能的可掉电保存的电子密码锁。
3.通过本次实验,加强对所学知识的理解,增强编程能力及实践能力。
二,实验要求A.基本要求:1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。
2:可以自行设定或删除8位密码,能够掉电保存。
3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
4:自由发挥其他功能.5:要求有单片机硬件系统框图,电路原理图,软件流程图B.拓展部分:无三,实验基本原理单片机密码锁是集计算机技术、电子技术、数字密码技术为一体的机电一体化高科技产品,具有安全性高,使用方便等优点。
本系统考虑到单片机密码锁成本及体积因素,在设计单片机密码锁部分时,以AT89S52单片机为核心,24C04、LED等构成外围电路。
本系统单片机密码锁硬件部分结构简单、成本低,软件部分使用电子加密提高锁的安全性,具有比较好的市场前景。
同时,由于本电子密码锁可以实现掉电保存,而且可以自行设计或者删除8位密码,所以具有较高的实用价值。
本密码锁采用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led 发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led 发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
此项功能方便用户使用。