基于单片机控制电子密码锁报告
- 格式:docx
- 大小:38.92 KB
- 文档页数:28
简易电子密码锁设计&我的设计思想联想到日前在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,并结合近期的学习过程和一些参考书籍,完成了简易的电子密码锁设计学习。
电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
电子密码控制不论性能还是安全性都已大大超过了机械类结,具有良好的应用前景。
一、设计目的与内容设计了一个简易电子密码锁,可按要求从矩阵键盘输入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文件。
基于单片机控制的电子密码锁摘要:本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。
系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能。
除上述基本的密码锁功能外,还具有调电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。
本系统成本低廉,功能实用关键词:AT89S51,AT24C02, 电子密码锁,矩阵键盘一、引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。
设计本课题时构思了两种方案:一种是用以AT89s51为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。
考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,所以本文采用前一种方案。
二、方案论证与比较方案一:采用数字电路控制。
其原理方框图如图1-1所示。
图2-1 数字密码锁电路方案采用数字密码锁电路的好处就是设计简单。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。
电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
方案二:采用一种是用以AT89S51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。
课程:单片机课程设计密码锁设计报告系专业班级姓名指导教师学年学期大三上学期一、设计任务书功能:1、可以设置4位密码。
设置好后有指示灯显示已经设置。
2、如果输错三次,要有报警灯亮。
3、输入正确后,发出声音报警信号。
使用K1到K4作为密码的设置开关和输入开锁密码设置开关,接到P1.0-P1.3上。
使用k5和k6作为外部中断0和外部中断1作为密码设置和密码确定开关,接到p3.2和p3.3。
使用发光管作为报警灯和指示灯,黄灯、绿灯和红灯分别接到p1.5、p1.6和p1.7上。
二、设计思路:使用中断对密码进行设置和解密。
1、密码输入:使用四个拨码开关输入密码。
2、密码设置:四个拨码开关共有16个密码可设定,当密码设好后,三个LED灯熄灭。
在用户设置好四位密码后,按K5键,便可开锁,在本次设计中,用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。
利用外部中断/INT0:按下K4键对密码进行设置,此时绿灯亮。
利用外部中断/INT1:按下K5键对密码进行解密,如果密码输入正确绿灯进行了慢闪烁,解密成功,然后对密码进行重新设置,将K4键设为高电平就可以重新设置。
3、密码修改:当设定的用户密码不小心外泄时,这时就要及时通过密码修改程序来更改密码了,当选用用户密码修改时,首先要正确输入原用户密码然后按K5键,如果原密码正确则进入密码修改程序。
接下来输入四位新密码,接着新密码即被存入CPU中,至此用户密码修改成功。
4、密码错误报警当用户键入错误密码并按下K5键时,密码错误指示黄灯快闪烁;当连续三次出现密码错误时,红灯闪烁并将密码锁锁定一段时间,可有效防止非法操作。
这是本设计安全性的体现。
三、硬件设计原理图密码锁的原理是:用拨码开关输入一组密码,CPU把该密码和设置密码比较,对则将锁打开,错则要求重新输入,并记录错误次数,如果三次错误,则被强制锁定并报警。
实验核心元件:89C51芯片、6个拨码开关(4个拨码作为设置密码和输入密码,一个用作设置密码,一个用作确定)、三个发光二极管、P1.0到P1.7、P3.2、P3.3AT89C51的优点:AT89C51单片机是把中央处理器CPU、随即存储器RAM、只读存储器ROM、定时/计数器、I/O接口电路等主要计算机部件集成在一块电路芯片上的单片微型计算机 本设计中单片机应用的主要功能就是控制LED显示器的显示、报警电路以及开锁电路 还用作键盘的扫描等。
电子综合课程设计报告设计课题:基于单片机的电子密码锁设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
摘要在现代社会,电子密码锁已不是一个陌生的名词。
本设计是基于P8052AH单片机为控制核心的密码锁设计方案,它是一种通过密码输入来控制电路或是芯片工作,运用键盘输入、密码修改、密码检测、开锁电路、红外检测模块、报警电路、键盘输入次数锁定电路来完成开锁、闭锁等任务。
利用识别密码是否正确来开锁或报警。
通过键盘输入次数记录来实现键盘的锁定。
本文设计的密码锁具有安全性高、成本低、功耗低、易操作等优点。
关键词:P8052AH、报警、红外检测、密码检测、多用户AbstractIn modern society, the electronic lock has not a strange noun. The design is based on P8052AH as control core design scheme of locks, it is a password to control circuit through work, or chip keyboard input, password revision, password lock circuit, detection and alarm circuit, keyboard input frequency lock, to complete the circuit, etc. Using the correct password recognition to replace or alarm. Through the keyboard input frequency to lock the keyboard recording. In this design with high security locks, low cost, low power consumption, easy operation, etc.Keywords: P8052AH;control circuit;identify the password;alarm目录摘要 (1)Abstract (1)第一章引言 (1)1.1 电子密码锁的设计背景……………………………1.2 国内外的现状………………………………………1.3 本设计所要实现的目标…………………………第二章系统方案的设计………………………………………2.1 设计思路及原理……………………………………2.2 系统方案一…………………………………………2.3 系统方案二…………………………………………2.4 系统方案的选择……………………………………第三章硬件电路的设计……………………………………3.1 核心的处理器的设计………………………………3.2 电源模块的设计……………………………………3.3 矩阵键盘的设计……………………………………3.4 开锁电路的设计……………………………………3.5 密码存储模块的设计………………………………3.6 报警系统的设计……………………………………3.7 红外检测模块的设计………………………………3.8 显示电路的设计……………………………………3.9 系统设计的总体电路图……………………………第四章系统软件的设计……………………………………4.1主程序的设计…………………………………………4.2用户切换模块的设计…………………………………4.3密码修改模块的设计…………………………………4.4密码存储和读取的设计…………………………………4.5报警模块的设计…………………………………………第五章系统仿真与调试……………………………………第六章结束语…………………………………………………附录一参考文献………………………………………………附录二程序代码………………………………………………第一章引言1.1 电子密码锁的设计背景随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。
信息工程学院51单片机的密码锁控制器的设计实验报告专业:电气工程及其自动化班级:10040921基于51单片机的密码锁控制器设计一、设计目的:要求设计的电子密码锁的密码用键盘上的数字按键产生的6位数字码构成的密码。
如果输入密码正确开锁(发光二极管量),如果密码不正确,发出报警信号。
二、实验要求:1、显示位数:6位密码显示2、键盘设置密码三、设计方案:本设计包括矩阵键盘接口电路、密码锁的控制电路和输出显示电路等三部分。
键盘部分包括键盘扫描时序产生电路;键盘扫描;弹跳消除;键盘译码;按键存储。
程序控制包括数字按键的数字输入;存储及清除;功能按键的功能设计;移位寄存器的设计与控制;密码清除、变更、存储;激活开锁电路;密码核对;解除电锁电路。
输出显示电路的设计包括:数据选择;BCD对显示译码;七段显示扫描。
(1)密码数据输入:每按一个数字键,在显示器上显示一个“-”最多可设置6位密码。
(2)密码设置:每按一个数字键,就输入一个数值,并在显示器上的最右方显示出该数值,并将先前已经输入的数据依序左移一个数字位置。
注意:密码设置必须是在开锁状态下设置。
(3)数码清除:按下此键可清除前面所有的输入值,清除成为“000000”。
(4)密码更改:按下此键时将目前的数字设定成新的密码。
(5)激活电锁:按下此键可将密码锁上锁。
(6)解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。
(7)密码错误:声光报警四、实验电路及连线:1、实验接线2、LED电平显示电路实验仪上装有8只发光二极管及相应驱动电路。
见下图,L0―L7为相应发光二极管驱动信号输入端,该输入端为高电压电平“1”时发光二极管点亮。
我们可以通过P1口对其直接进行控制,点亮或者熄灭发光二极管。
LED电平显示电路3、键盘及LED显示电路键盘和LED显示的地址译码见下图,做键盘和LED实验时,需要将KEY/LED CS接到相应的地址译码上。
位码输出的地址为0X002H,段码输出的地址为0X004H,键盘行码读回的地址为0X001H,此处X是由KEY/LED CS决定,参见地址译码。
基于单片机的电子密码锁开题报告单片机在电子领域技术已经十分普及,根据其优越的性能,针对电子领域的应用,它可以用于识别、测量和控制等领域的工作,并能够实现这些工作的完美实施。
本实验室要基于单片机技术,设计并实现一款电子密码锁,为此,本人要做出以下相关研究,开展电子密码锁的研究工作。
电子密码锁是一种可以根据输入密码,辨认密码之正确性,从而可以实现开锁/禁锁控制功能的电子装置,可以应用到普通家里、宿舍等场合中。
以往大多使用机械按键式的锁结构或者机械钥匙式的机械锁形式,现阶段的安全锁均有这些形式,安全性能一般。
而电子密码锁,则可以实现更高效率、更高可靠性的安全系统保护,在重要的公司、机关及政府部门的管理的场合,也可以得到相应的应用。
本实验室的电子密码锁项目将基于单片机开发,尤其采用基于C 语言的单片机编程实现。
主要功能是:(1)系统初始设置:确保系统可以正常运行、生产和控制;(2)密码输入:使用密码键盘进行输入;(3)密码比对:根据输入的密码,向数字表明系统比较,并根据比较结果进行开锁操作;(4)加锁功能:当密码未正确输入,锁定的功能,实现安全系统的有效控制;(5)开锁记录:运行情况的监测,可以按照给定的指令记录开锁记录,备份维护;(6)用户界面:设计具有良好可视化界面,提供可视化的控制,以方便用户的使用。
实验内容:首先,要调研比较市场上的电子密码锁的技术背景和结构模型,研究其原理,确定本实验的结构以及所采用的单片机型号。
其次,要设计数字控制流程,编写程序程序,设计有效的控制结构,以及实现待选定的电子密码锁控制系统。
最后,要实施测试,并形成有效的监控和记录系统。
本实验将为实现电子密码锁提供可靠的技术支持,为社会安全保密提供更有力的保障,有助于在安全领域全面提升技术水平,实现“安全的、有效的”的保密工作,同时也有助于促进社会安全治理水平的提升。
二○一六~二○一七学年第一学期电子信息工程系电子综合设计II报告书班级:电信(产业)1401班设计时间:2016/12/29学生姓名:学号:指导教师:二○一六年十二月一、设计要求.题目内容:设计一个基于51单片机的电子密码锁:1.可以使用4*4的矩阵键盘与红外遥控器输入密码。
2.可以通过按特殊组合键重设开锁密码。
3.显示通过1602液晶屏显示电子密码锁界面,输入密码时显示输入个数显示为‘*’,如果密码正确,进入欢迎界面。
4.密码连续输入3次错误报警,LCD显示报警,倒计时十秒后重新进入密码输入界面。
5.可以通过特殊的按键组合跳过输入界面直接进入欢迎界面。
实现方法:1.通过红外接收头,连接单片机的P3.2外部中断INT0口,可以实现单片机接收遥控器的信号输入。
2.通过矩阵键盘扫描函数,可以实现对键盘输入的响应。
3.通过引脚的高低电平变化频率,控制蜂鸣器的输入占空比和频率(低电平时间固定,通过输入给函数值的不同改变高电平时间,固定响300个周期),对不同按键实现不同声音响应。
4.1602显示屏有16*2个单元格,每个单元格由5*8个像素点组成,可以很好的显示数字,符号,英文字符。
功能需求分析:液晶屏显示:根据题意,需要设计并显示输入密码界面、修改密码界面、欢迎界面、错误警告界面密码输入:根据题意,每次输入一个数字,则显示一个‘*’符号代替,只能看出输入的位数,若输入密码位数达到六位,则与正确密码比较,若正确,进入系统。
根据日常的手机使用习惯,默认长度为6位,且第六位输入之后立即判断,正确则进入,错误则清空重输。
组合键实现密码修改:密码修改必须通过不易被他人发现的特殊方法改变,所以设计为,若同时按住矩阵键盘的5,10 或6,9两个键,则进入密码修改函数。
输入密码错误三次则报错:一般的密码系统对密码输入错误次数过多的情况进行了限制,所以在密码锁里设置,若密码输入错误三次,则进入警报界面,显示10s倒计时,必须在倒计时结束后才能再次输入密码。
基于单片机的电子防盗密码锁的设计开题报告基于单片机的电子防盗密码锁的设计一、引言随着社会的发展和科技的进步,人们对于家庭安全和财产保护的需求日益增长。
传统的机械锁具已经无法满足现代社会的安全需求,因此,一种高效、安全、便捷的电子防盗密码锁应运而生。
本文将探讨基于单片机技术的电子防盗密码锁的设计与实现。
二、设计目标本次设计的目标是通过单片机技术,实现一款具有防盗功能、密码保护、便于携带的电子密码锁。
该密码锁具备以下特点:1、具有防盗功能:通过内置传感器或外部连接的报警装置,防止未经许可的入侵。
2、密码保护:采用用户设定的密码来控制锁的开启和关闭。
3、便于携带:设计为小型化,方便随身携带。
三、技术路径本次设计将采用单片机作为核心控制器件,配合密码输入模块、传感器模块、报警模块以及电源模块来实现电子防盗密码锁的功能。
其中,单片机作为整个系统的控制中心,将负责处理用户输入的密码、检测各模块的状态、控制锁的开启和关闭等。
四、工作流程1、用户通过密码输入模块输入正确的密码。
2、单片机接收并验证密码。
3、如果密码正确,单片机会控制锁的开启或关闭。
4、如果密码错误,单片机会触发报警模块报警,同时拒绝打开锁。
5、单片机还会不断检测传感器模块的状态,如果有异常入侵,同样触发报警模块。
五、预期成果通过本次设计,我们期望能实现一款基于单片机技术的电子防盗密码锁,具备防盗、密码保护和便携等特点。
该密码锁不仅可以满足家庭安全需求,还可以应用于贵重物品的保管,如珠宝、文件等。
同时,由于其便携性,还可以用于旅行时行李的安全保护等。
六、实验计划本次设计将分为几个阶段进行,包括硬件选择与设计、软件编程、系统集成和测试等。
预计将进行以下实验:1、硬件选择与设计:根据设计需求,选择适合的单片机、传感器、密码输入模块、报警模块和电源模块。
2、软件编程:根据设计要求,编写单片机程序,实现密码验证、锁的控制、报警等功能。
3、系统集成:将各硬件模块与软件程序进行集成,构建完整的电子防盗密码锁系统。
201X年小学期单片机设计实验报告题目:基于16F877的电子密码锁班级:班内序号:实验组号:学生姓名:指导教师:基于16F877的电子密码锁实验摘要在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。
具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作、记住密码即可开锁等优点。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
本系统由16F877单片机系统(主要是16F877单片机最小系统)、4×4矩阵键盘、LCD1602显示和报警系统等组成,具有设置、修改四位用户密码、输入提示音、密码错误报警等功能(本设计由单片机控制LCD显示,密码正确显示password ok!密码错误显示wrong,please reset!用户reset后进行重新输入。
由单片机控制矩阵键盘含有0-9数字键和A-F功能键。
按F键,则进行密码重置功能)。
本系统成本低廉,功能实用。
(宋体五号)A b s t r a c tIn daily life and work, the department of housing and security, unit documents, financial statements and some personal information to save more in order to lock the ways to solve. If use the traditional mechanical key to open the lock, people often need to carry multiple keys, use very convenient, and the key missing after security is compromised. With anti-theft alarm function such as electronic combination lock instead of password quantity is little, security, poor mechanical combination lock is inevitable trend. With the continuous development of science and technology, people in daily life the demand is higher and higher safety insurance device. To meet the requirements of people on the use of the lock, increase its safety, use the password instead of the key combination lock arises at the historic moment. Combination lock with high safety, low cost, low power consumption, easy operation, remember password lock, etc.Currently use electronic combination lock is mostly based on single chip microcomputer technology, single chip microcomputer as the main device, the encoder and decoder for software.This system consists of 16 f877 microcontroller system (mainly minimum 16 f877 microcontroller system), 4 * 4 matrix keyboard, LCD1602 display and alarm system, etc, and has set up four, modify user password, password, input prompt error alarm functions (this design by the single chip microcomputer control LCD display, the password correctly display the password ok! Wrong password shows wrong, both please reset! The user to enter again after reset. By single-chip microcomputer control matrix keyboard contains 0-9 number keys and A - F function keys. Press the F key, then carries on the password reset function). This system is low cost, function and practical.WM function to control its turn. And this is so called navigating aptitudinally .关键字单片机——microcontroller 芯片——CMOS chip16F877一、PIC16F877系列单片机简介PIC16F87X ( 含873P874P876P877) 是美国微芯(Microchip) 公司推出的高性能单片机,除具有单片机的通用资源外,该系列单片机还采用哈佛总线结构、二级指令流水线取指方式、精简指令集(RISC)和内部具有E2 PROM 数据存储器及FLASH 结构的程序存储器、仅35 条单字节单周期指令、在系统串行编程技术和在线调试技术。
单片机原理与应用技术课程设计报告(论文)基于单片机控制的电子密码锁专业班级:应用电子技术教育151班(1)状态显示功能:锁定状态时系统用3位数码管显示OFF,用3位数码管显示成功开锁次数;成功开锁时用3位数码管显示888,用3位数码管显示成功开锁次数。
(2)密码设定功能:通过一个4×4的矩阵式键盘可以任意设置用户密码(1-16位长度),同时系统掉电后能自动记忆和存储密码在系统中。
(3)报警和加锁功能:密码的输入时间超过12秒或者连续3次输入失败,声音报警同时锁定系(5)硬件及程序综合调试;3.编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会4.答辩在规定时间内,完成叙述并回答问题。
目录3.2 显示电路的设计3.3 矩阵按键的设计......................................................3.3.1矩阵按键电路图.....................................................3.3.2矩阵按键说明.......................................................3.3.3矩阵按键原理.......................................................3.4 I2C电路的设计.......................................................4 结束语................................................................ 参考文献................................................................基于单片机控制的电子密码锁应教151班黄永进摘要:设计是采用STC89C52芯片控制一个三位一体的数码管,通过4x4矩阵按键来控制密码输入以及不同的系统指令来完成密码锁的密码输入和修改等,同时使用C语该2.1.1 方案确立(1)方案内容该设计方案采用STC89C52芯片作为核心,配合数码管、矩阵按键、蜂鸣器等外围电路进行组合,组成电子密码锁系统。
其中矩阵按键用来设置系统的密码和输入密码,数码管用于显示开锁状态和成功开锁的次数,最后用C语言程序控制其逻辑功能。
2.2 设计方框图(1)设计框图如图1.1时间由电路的RC值来决定。
典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以适当组合RC的取值就可以保证可靠的复位。
3.1.2 晶振电路每个单片机系统里都有晶振(如图1.2中器件Y1),全称是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。
本设计中晶振取12MHz,因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合,12MHz产生精确的uS级时歇,方便定时操作。
DG1、数据。
图6 I2C电路图3.5 报警电路的设计图7 报警电路设计中报警电路如图1.7所示,蜂鸣器使用三极管驱动,通过一个限流电阻之后与单片机P3.0连接。
因此,我们可以通过程序控制P3.0脚的电平来使蜂鸣器发出声音和关闭,从而实现系统报警。
4 结束语在这次实习的过程中,从选题到定稿,从理论到实践,可以说得是苦多于甜,但附录4程序代码#include <REG52.H>#define uint unsigned int #define uchar unsigned char #define KeyPort P1uchar DD_F=0,DM_F=0;uchar R[16]; //用户密码uchar M[16]; //芯片密码uchar G[6]={6,6,6,6,6,6};uchar codeDIS_SEG7[]={0xc0,0xf9,0xa4,0xb0,0x 99,0x92,0x82,0xf8,0x80,0x90,0x88,0sbit LED=P3^7;char dis[3]={0};unsigned char num=1,num1=0,num2=0;char Time_temp=0; char DIG_C1=0;char DIG_C2=0;char DIG_C3=0;{unsigned char a, b; for (;c>0;c--){for (b=15;b>0;b--){for (a=130;a>0;a--);unsigned char KeyScan(void) {unsigned char cord_h,cord_l; KeyPort=0x0f;cord_h=KeyPort&0x0f;if(cord_h!=0x0f){Delay10ms(1);}unsigned char KeyPro(void) {switch(KeyScan()){case 0x7e:return 0;break;//0 case 0x7d:return 1;break;//1 case 0x7b:return 2;break;//2case 0xee:return 12;break;//c case 0xed:return 13;break;//d case 0xeb:return 14;break;//e case 0xe7:return 15;break;//f default:return 0xff;break;}}void Tim_Iint(void)void Close_DIG(char i,char k,char j) {if(i==1){DIG_C1=1; }if(i==0) {}if(j==1) {DIG_C3=1;}if(j==0){DIG_C3=0;1Tim_temp1++;if(Tim_temp1>1000){Tim_temp1=0;Tim_CNT++;}}if(Time_temp==0){wei1=1;wei3=1;wei2=1;}Time_temp=1; goto end;}if(DIG_C2==0) {wei1=1;wei3=1;wei2=1;}Time_temp=2; goto end;}if(DIG_C3==0) {wei1=1;wei2=1;wei3=1;}Time_temp=0;delay();sda=0;delay();}void stop() //停止信号{sda=0;delay();delay();while((sda==1)&&(i<250))i++; scl=0;delay();}void init_24c08() //初始化24C02 {sda=1;{temp=temp<<1;scl=0;delay();sda=CY; delay(); scl=1; delay();{uchar i,k; scl=0; delay();sda=1;delay();for(i=0;i<8;i++){address,uchar shuju) //给指定地址中写入数据{start();write_byte(0xa0); // 最低位为0写,1读respons();write_byte(address);start();write_byte(0xa0);respons();write_byte(address); respons();start();write_byte(0xa1);char i=0,j=0,k=0,m=0;char dis_temp=0;uchar cnt1=0,cnt2=0,cnt3=0; // char a,b,c;init_24c08();Tim_Iint();Close_DIG(1,1,1);for(m=1;m<=16;m++)//判断管理员标志位adm if(adm==0){if(adm1==0){if(num==14){Close_DIG(0,0,0);temp1++;cnt1++;if(temp1==4) temp1=1;}if(num==13){cnt1--;}if(temp1==2){display(16,M[cnt1-1],16);}if(temp1==3){display(16,16,M[cnt1-1]);adm1=1;break;}Delay10ms(1);}}}if(num==12)Close_DIG(1,1,1);R[cnt2]=num;while(num==KeyPro()); temp2++;cnt2++;if(temp2==4)temp2=1;}if(temp2==1){display(R[cnt2-1],16,16); }if(temp2==2){display(16,R[cnt2-1],16); }{for(j=0;j<cnt1;j++){//判断密码是否正确flag=flag&&(M[j]==R[j]); }if(flag){else{ecs++;Close_DIG(0,0,0);cnt2=0;temp2=0;flag=1;Tim_flog=0;Tim_CNT=0;}}Delay10ms(1);if(Tim_CNT==12) {adm=1;fmq=0;flagb=1;Tim_flog=0;Tim_CNT=0; break;}}}}num=KeyPro();if(num<10){ Close_DIG(1,1,1); R[cnt3]=num;while(num==KeyPro()); temp3++;cnt3++;if(temp3==4)temp3=3;}if(temp3==1){display(R[cnt3-1],16,16); }if(temp3==2){Tim_flog=0;if(cnt3==6){for(j=0;j<6;j++){flagg=flagg&&(G[j]==R[j]); }if(flagg&&flagb==0)else if(flagg&&flagb==1) { Tim_flog=0;Tim_CNT=0;ecs=0;fmq=1;adm=0;adm1=1;flagb=0;}Delay10ms(1); }}Delay10ms(1); }。