基于单片机控制电子密码锁报告

合集下载

简易电子密码锁(基于51单片机)报告

简易电子密码锁(基于51单片机)报告

简易电子密码锁设计&我的设计思想联想到日前在安全技术防范领域,具有防盗报警功能的电子密码控制系统逐渐代替传统的机械式密码控制系统,并结合近期的学习过程和一些参考书籍,完成了简易的电子密码锁设计学习。

电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。

电子密码控制不论性能还是安全性都已大大超过了机械类结,具有良好的应用前景。

一、设计目的与内容设计了一个简易电子密码锁,可按要求从矩阵键盘输入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单片机电子密码锁报告

51单片机电子密码锁报告

信息工程学院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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机原理与应用技术课程设计报告(论文)基于单片机控制的电子密码锁专业班级:应用电子技术教育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); }。

相关文档
最新文档