基于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文件。
毕业设计(论文)-基于51单片机控制的电子密码锁设计

基于51单片机控制的电子密码锁设计摘要:本设计以单片机以AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构,实现要是信息在主机的初步认证注册、密码信息的加密、钥匙丢失报废等功能。
根据51单片机之间的串行通信原理,这便对于密码信息的随机加密和保护。
而且采用键盘输入的电子密码锁具有较高的优势。
采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。
软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统可扩展性和运行的稳定性。
测试结果表明,本系统各功能已达到本设计的所有要求。
关键词:AT89C51;密码锁;单片机设计;电子锁目录摘要 (1)关键词 (1)第一章密码锁的简介及现况 (1)1.1引言 (1)1.2电子密码锁的简介 (1)1.3电子密码锁发展趋势 (2)1.4本设计所要实现的目标 (2)1.5设计的密码锁的功能 (2)第二章设计方案的选择 (3)2.1方案的论证与比较 (3)第三章单片机的组成 (4)3.1AT89C51单片机的简介 (4)3.2电路图的绘制 (7)第四章单片机硬件资源 (7)4.1开锁机构 (7)4.2按键电路设计 (8)4.3显示电路设计 (10)4.4AT89C51单片机复位方式 (11)4.5密码锁的电源电路设计 (12)第五章程序调试 (13)5.1程序调试用到的软件及工具 (13)5.2KEIL C51简介 (14)5.3调试过程 (14)5.4调试、仿真与实现 (15)第六章软件设计 (16)6.1系统软件设计的总统思想 (16)6.2各子程序设计 (17)1 键盘扫描子程序 (17)2 LED显示子程序 (18)3 密码比较和报警程序 (19)设计总结与展望 (21)致谢 (22)附录:总原理图 (22)参考文献 (24)第一章密码锁的简介及现况1.1引言在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
基于51单片机电子密码锁设计PPT

3晶振时钟电路与复位电路
7
晶振时钟电路
复位电路
系统电路图
8
电路PCB板
9
4.软件设计
10
软 件 设 计 流 程 图
5.程序调试
11
调试本程序需要用到KEIL C51,及51开 发板一块及其配套的下载烧录软件
首先打开KEIL C51主程序,新建工程, 新建文本框写入程序,保存,检查是否有语 法错误,经反复检查无误后汇编,生成51单 片机可执行的HEX文件。然后用51开发板相 匹配的烧录软件把HEX文件写入单片机 。
学的精神去解决问题。很多事情看起来是很简单的问题,但实际
做起来去会发现有许多奥妙!这是因为其中蕴含着许多科学的问
题。运用科学的方法去解决问题,这是我这次实训给我带来的思
想上的改变。学习上,使自已在大学所以的知识在这次得到实践
,学到一些书本上无法学到的经验,对电子元件有了进一步的认
识。
电子锁是信息化时代发展的产物,应时而生,我9C51
开锁驱动电路
电磁阀
通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而 达到开锁的目的。本设计通过P3.0接一个3极管驱动继电器打开 电磁阀线圈实现开关门。
当用户输入的密码正确而且是在规定的时间及次数输入之内 ,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁 ,达到开门的目的。
1
89C52
51单片机的电子锁设计 九组 DZ0901
密码锁的功能
2
开关锁,修改密码
还原,记忆
输入密码
目录
3
1.系统设计
2.硬件设计
3.软件设计
4.程序调试
1.系统设计
4
系统总设计结构图
基于51单片机的电子密码锁

电子密码锁一、工作原理本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O 线的数目,在按键比较多的时候,通常采用这样方法。
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N ×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
4×4矩阵键盘的工作原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图5所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
扫描原理把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。
由于这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让8051误判为多次输入同一按键,我们必须在侦测到有按键被按下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。
利用51单片机设计一个用16个按键输入,6位数字输出显示的电子时钟。
如图1-1所示。
图1-1按键分布图具体要求和按键功能介绍如下:1. 上电后,6 位数码管显示“—”;2. 设置6 位密码,密码通过键盘输入,按“确定”键确认,如密码正确,将锁打开;3. 密码由用户自己设定,若密码正确即锁被打开,则指示灯被点亮;4. 若密码1 次输入错误,则报警;5. 按Set 键,修改密码;6. 按Cle 键可清除已输入的密码,重新进行输二、系统硬件组成本次设计的主要有键盘,数码管,STC89C52芯片,以及LED灯。
毕业设计-基于51单片机电子密码锁设计

基于51单片机电子锁设计摘要随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。
本设计以单片机AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。
根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。
而且采用键盘输入的电子密码锁具有较高的优势。
采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。
软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。
测试结果表明,本系统各项功能已达到本设计的所有要求。
关键词:单片机;密码锁;单片机设计,电子锁。
Electronic Lock Design with 51 Serires Single Chip ControllerAbstractAlong with the exaltation of social science and the living level of people, how carry out the family to guard against theft, this problem also change particularly outstanding.Because of the simple construct of traditional machine lock,the affairs of theft is hackneyed.the electronics lock is safer because of its confidentiality, using the vivid good, the safe coefficient is high, being subjected to the large customer close.It can carry out the key information to register in the main on board initial attestation, the password information encrypt etc. Go to correspond by letter the principle according to the string between 51 machines, this is easy to encrypt and protect to the passwords information random. Adopt the numerical signal codes,not only can carry out many controls of the road information, raise the anti- interference that signal deliver, reduce the mistake action,but also the power consume is low, Respond quickly,the efficiency deliver is high, work stable credibility etc. The software design adoption the design thought from top to bottom, to make the system toward wear distribute type,turn to the direction development of small, strengthen the system and can expand the stability and circulate.Test the result enunciation, various functions of this system are already all request of this design.keyword:singlechip;cryptogram lock;singlechip design; electronics lock.目录1 绪论 (1)1.1 引言 (1)1.2 电子密码锁的背景 (1)1.3 电子锁设计的意义的本设计特点 (2)2.系统设计 (3)2.1系统总设计结构图 (3)2.2.开锁机构设计 (3)2.2.1主控芯片AT89C51单片机的简介 (4)3系统硬件设计 (6)3.1键盘设计 (6)3.2系统电路设计: (8)3.2.1 晶振时钟电路 (8)3.2.2复位电路设计 (8)3.2.3串口引脚功能介绍 (8)3.2.4 其它引脚 (9)3.3电路图的绘制 (9)3.3.1 PROTEL 99 SE简介: (12)3.4原器件采购 (14)3.5电路焊接 (14)4.软件设计 (17)4.1 系统软件设计整体思路 (17)4.2系统软件设计流程图 (18)5 程序调试 (19)5.1 程序调试用到的软件及工具 (19)5.2 KEIL C51简介 (19)5.3 调试过程 (19)6 设计总结与展望 (22)致谢 (23)参考文献 (24)附录 (25)1 绪论1.1 引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱。
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决定,参见地址译码。
基于51单片机的简易电子密码锁毕业设计课程设计-图文

基于51单片机的简易电子密码锁毕业设计课程设计-图文前言随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。
电子密码锁与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
下面就是现在主流电子密码锁:目前常见的遥控式电子防盗锁主要有光遥控和无线电遥控两类。
键盘式电子密码锁从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。
卡式电子防盗锁使用各种“卡”作为钥匙的电子防盗锁是当前最为活跃的产品,无论卡的种类如何多种多样,按照输入卡的操作方式,都可分为接触式卡和非接触式卡两大类。
生物特征防盗锁人的某些与生俱来的个性特征(如手、眼睛、声音的特征)几乎不可重复,作为“钥匙”就是唯一的(除非被逼迫或伤害)。
因此,利用生物特征做密码的电子防盗锁,也特别适合金融业注重“验明正身”的行业特点。
在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。
但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。
国内的不少企业也引进了世界上先进的技术,发展前景非常可观。
希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。
一、作品功能:1、设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。
2、密码可以由用户自己修改设定(只支持6位密码),锁打开后才能修改密码。
修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
3、报警、锁定键盘功能。
密码输入错误显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。
基于51单片机电子密码锁设计讲解

一、设计目的1.1课题简介如何实现防盗是很多人关心的问题,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,使人们的人身及财产安全受到很大威胁。
电子密码锁是一种依靠电子电路来控制电磁锁的开与闭的装置,开锁需要输入正确密码,若密码泄露,用户可以随时更改密码。
因此其保密性高,使用灵活性好,安全系数高,可以满足广大用户的需要,现在广泛使用的有红外遥控电子密码锁,声控密码锁,按键密码锁等。
1.2课题研究目的本设计是一种基于单片机的密码锁方案,根据基本要求规划单片机密码锁的硬件电路和软件程序,同时对单片机的型号选择、硬件设计、软件流程图、单片机存储单元的分配等都有注释。
现在很多地方都需要密码锁,电子密码锁的性能和安全性大大超过了机械锁,为了提高密码的保密性,必须可以经常更改密码,以便密码被盗时可以修改密码。
本次设计的密码锁具备的功能:LED数码管显示初始状态“——————”,用户通过键盘输入密码,每输入一位密码,LED数码管相应有一位变为“P”,若想重新输入密码,只需按下“CLR”键。
密码输入完毕后按确认键“#”,密码锁控制芯片将输入的密码与密码锁控制芯片中存储的密码相比,若密码错误,则不开锁,会有红灯亮提示,同时显示“Error”。
若正确,则开锁,会有绿灯亮提示,同时显示“PASS”。
用户可以根据实际情况随意改变密码值或密码长度,密码输入正确后可以按下“CHG”修改密码,输入新密码时每输入一位新密码相应有一位变为“H”,以便提示用户此时输入的是新密码,修改新密码时若想重新输入新密码只需按下“CLR”键即可。
输入新密码后按确认键即修改成功,新密码写入单片机内部RAM中,以便以后用来确认密码的正确性。
按下复位键,系统恢复初始状态,密码也恢复初始密码,本设计中初始密码是“096168”。
本次设计中硬件主要由我完成,软件主要由张振完成。
二、硬件设计2.1概述本系统主要由单片机最小系统、电源电路、输入键盘电路、输出显示电路、开锁电路等组成,系统框图如图1所示:图1 系统框图 2.2最小系统1.单片机:单片机最小系统包括单片机、晶振电路、复位电路等,最小系统是整个系统的核心部分,也是设计中首先应该设计的部分,其中单片机的选择直接决定着之后整个设计应该如何进行, 因为我们刚刚学完单片机,学习时是以MCS-51单片机为主的,对51系列单片机最熟悉,因此决定选用51系列单片机, 51系列单片机中Atmel89C51应用最为广泛,且价格较低,性能完全能满足本次设计,因此决定选用AT89C51芯片。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计目的1.1课题简介如何实现防盗是很多人关心的问题,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,使人们的人身及财产安全受到很大威胁。
电子密码锁是一种依靠电子电路来控制电磁锁的开与闭的装置,开锁需要输入正确密码,若密码泄露,用户可以随时更改密码。
因此其保密性高,使用灵活性好,安全系数高,可以满足广大用户的需要,现在广泛使用的有红外遥控电子密码锁,声控密码锁,按键密码锁等。
1.2课题研究目的本设计是一种基于单片机的密码锁方案,根据基本要求规划单片机密码锁的硬件电路和软件程序,同时对单片机的型号选择、硬件设计、软件流程图、单片机存储单元的分配等都有注释。
现在很多地方都需要密码锁,电子密码锁的性能和安全性大大超过了机械锁,为了提高密码的保密性,必须可以经常更改密码,以便密码被盗时可以修改密码。
本次设计的密码锁具备的功能:LED数码管显示初始状态“——————”,用户通过键盘输入密码,每输入一位密码,LED数码管相应有一位变为“P”,若想重新输入密码,只需按下“CLR”键。
密码输入完毕后按确认键“#”,密码锁控制芯片将输入的密码与密码锁控制芯片中存储的密码相比,若密码错误,则不开锁,会有红灯亮提示,同时显示“Error”。
若正确,则开锁,会有绿灯亮提示,同时显示“PASS”。
用户可以根据实际情况随意改变密码值或密码长度,密码输入正确后可以按下“CHG”修改密码,输入新密码时每输入一位新密码相应有一位变为“H”,以便提示用户此时输入的是新密码,修改新密码时若想重新输入新密码只需按下“CLR”键即可。
输入新密码后按确认键即修改成功,新密码写入单片机内部RAM中,以便以后用来确认密码的正确性。
按下复位键,系统恢复初始状态,密码也恢复初始密码,本设计中初始密码是“096168”。
本次设计中硬件主要由我完成,软件主要由张振完成。
二、硬件设计2.1概述本系统主要由单片机最小系统、电源电路、输入键盘电路、输出显示电路、开锁电路等组成,系统框图如图1所示:图1 系统框图 2.2最小系统1.单片机:单片机最小系统包括单片机、晶振电路、复位电路等,最小系统是整个系统的核心部分,也是设计中首先应该设计的部分,其中单片机的选择直接决定着之后整个设计应该如何进行, 因为我们刚刚学完单片机,学习时是以MCS-51单片机为主的,对51系列单片机最熟悉,因此决定选用51系列单片机, 51系列单片机中Atmel89C51应用最为广单片机最小系统键盘电路数码管显示控制开锁电路 发光二极管指示泛,且价格较低,性能完全能满足本次设计,因此决定选用AT89C51芯片。
AT8 9C51外形及引脚排列如图2所示:图2 AT89C51外形及引脚排列AT89C51主要特性:·与MCS-51 兼容·4K字节可编程闪烁存储器·1000次写入/擦除循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路2.晶振电路图3 晶振电路AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体一起构成自激振荡器,晶振电路如图3所示。
石英晶体振荡电路对外接电容C2和C3虽没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度,一般电容使用30pF±10pF,这里使用30pF的独石电容。
因此晶振电路中使用12M晶振,30pF独石电容。
3.复位电路如图4所示为80C51单片机复位电路。
结合实际需求,本次设计加入了手动复位。
RC构成微分电路,在接电瞬间,产生一个微分脉冲,其宽度若大于2个机器周期,80C51型单片机将复位,为保证微分脉冲宽度足够大,这里取10μF电容、10KΩ电阻。
若按下复位键,则C1被短路,R1两端电压为Vcc,产生的高电平时间足以使单片机复位图4 复位电路关于复位电路的计算如下:AT89C51的最低复位电平是0.7VccV1 为电容最终可充到的电压值Vt 为t时刻电容上的电压值则,Vt=V1×[1-exp(-t/RC)]即,t = RC×Ln[V1/(V1-Vt)]在C1充电到0.7Vcc前,R1上电压均大于0.7Vcc,即为有效复位电压,因此需要求电容充电到0.3Vcc的时间。
将V1=Vcc,Vt=0.3Vcc代入上式: 0.3VCC=Vcc×[1-exp(-t/RC)]即[1-exp(-t/RC)]=0.3;∴exp(-t/RC)=0.7∴- t/RC=ln(0.7)∴t/RC=ln(1.43) ln(1.43)≈0.35也就是t=0.35RC。
带入R=10K C=10μF得。
t=0.35×10K×10uf=35ms∵时钟周期T=1/f=1/12M=1μs∴2个机器周期=2T=4μs∴t>>2μs所以复位电路中电容选10μF电解电容,10K电阻,一只按键开关可以使电路上电复位和手动复位。
4.存储器设定电路最小系统电路的最后部分是存储器的设定,如果把31脚(EA)接地,则采用外部程序存储器,如果将其接Vcc,则采用内部程序存储器。
AT89C51具有4KB可编程闪烁存储器,足以满足本设计要求,因此不采用外部程序存储器,即将31脚(EA)接Vcc,如图5所示:图5 存储器设定电路2.3电源电路本次设计的电源采用以前模拟电路课程设计做的直流稳压电源,电源采用LM7805三端稳压器,外形及引脚排列如图6所示用LM7805来组成稳压电源所需的外围元件较少,LM7805电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。
该系列集成稳压IC型号中的LM78xx后面的数字代表该三端集成稳压电路的输出电压,如lm7805表示输出电压为正5V,因为本设计中单片机和各个芯片的工作电压均为5V,因而采用LM7805。
图6 LM7805图7 直流稳压源电路电源电路如图7所示,220V市电通过变压器降压成12V的交流电,经过整流桥整流,再经7805稳压到5V。
C1、C2和C3具有滤波功能,使电流更加稳定,保证了系统的稳定运行。
2.4键盘电路本设计采用矩阵式键盘,又称行列式键盘,是将I/O线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上,行列线分别连接到按键开关的两端,当键按下时,两导线连通。
这种设计能减少键盘与单片机I/O接线的数目,只需要N个行线和M个列线就可以实现N×M个键的操作,在按键比较多的时候,通常采用这种方法。
其电路如图8所示:图8 矩阵式键盘电路图行线作为输入,通过上拉电阻接+5V,被钳位在高电平状态。
列线作为输出,12JP112JP2D1D2D3D4D5R11KC1100C20.1C31001237805通过列线输出扫描码,通过行线读入行线状态来判断是哪一键被按下。
图示电路中各键的键值从第一行左起依次为11H、 12H、 14H、18H、21H、22H、24H、28H、41H、42H、44H、48H、81H、82H、84H、88H。
键盘各键值通过查键值表可以转换为相应的代码,代表不同的值。
本设计中要用到13个键,分别为0~9键用于输入六位密码,确认键‘#’用于输入密码完毕后确认,清除键‘CLR’用于想重新输入时清楚之前输入的密码,修改密码键‘CHG’用于输入密码验证正确后选择修改密码,剩余三个键未用,可以留待以后扩展功能,键盘如图9所示:图9 键盘2.5显示电路本系统设计的显示电路是为了给用户以提示而设置的。
考虑到节约单片机的口资源,本系统的显示采用串行显示的方式,只使用单片机的两个串行口P3.0(RXD)和P3.1(TXD),就可以完成单片机的显示功能。
本部分电路主要使用七段数码管和移位寄存器芯片74LS164。
单片机将要显示的数据信号传送到移位寄存器芯片74LS164寄存,再由移位寄存器控制数码图10 74LS164管脚图管的显示,从而实现移位寄存点亮数码管显示。
由于单片机的时钟频率达到12M,移位寄存器的移位速度相当快,所以我们根本看不到数据是一位一位传输的。
仿佛是全部数码管同时显示的一样。
74LS164是串行输入带锁存的8位移位寄存器,其管脚图见图10,真值表见表1当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。
串行数据输入端(A,B)可控制数据。
当 A、B 任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下 Q0 为低电平。
当 A、B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态. 表1 74LS164真值表74LS164主要特性:串行输入带锁存时钟输入,串行输入带缓冲异步清除最高时钟频率可高达36Mhz功耗:10mW/bit工作温度:0°C to 70°CVcc最高电压:7V输入最高电压:7V最大输出驱动能力:高电平:-0.4mA数码低电平:8mA图11 LED数码管显示电路显示电路如图11所示,每一片74LS164的CLR端均接Vcc。
从单片机串口输出的信号先送到第1片移位寄存器74LS164的AB端,由于移位脉冲的作用,使数据向右移最终从移到Q7脚,第1片的Q7脚接第2片的AB端,以此类推,在移位寄存器的移位作用下,第1个8位数据送到第6片74LS164,第2个8位数据送到第5片74LS164,以此类推,每一个八位数据出现在74LS164的并行输出端,每片74LS164的八个输出脚接七段数码管数码管的八个输入数据脚,七段数码管数码管根据74LS164上的数据状态显示相应的数字,从而达到显示的目的,移位寄存器74LS164还兼作数码管的驱动。
数码管按段数分为七段数码管和八段数码管,其外形及管脚图如图12所示,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二极管的阳极接到一起形图12 七段共阳极数码管外形及管脚图成公共阳极(COM)的数码管。
共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。