六位电子密码锁报告

六位电子密码锁报告
六位电子密码锁报告

中文摘要

在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC 卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC 卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。

关键词:4×4 矩阵键盘;AT89S52;密码锁;密码二次确认LCD1602显示

目录

一.概述

二.系统总体方案设计

2.1方案比较

2.2初步设计思路

三.硬件电路设计与描述

3.1整体原理图

3.2键盘电路设计

3.3显示电路设计

3.4开锁电路设计

3.5报警电路设计

四.软件设计与描述

4.1软件设计思路

4.2各子程序设计

五.系统调试

六.总结

七.参考文献

八.附录

8.1原程序代码

8.2器件清单

概述

随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。

单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。本文所涉及的是市场占有率最高的是MCS—52 系列,因为世界上很多知名的IC 生产厂家都生产52 兼容的芯片。到目前为止,MCS—52 单片机已有数百个品种,还在不断推出功能更强的新产品。本次设计使用A T89S52 实现一基于单片机的电子密码锁的设计,其主要具有如下功能:(1)密码通过键盘输入,若密码正确,则将锁打开。(2)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过 3 次,报警并且锁定键盘,进入管理员模式要求输入超级密码解锁。电子密码锁的设计主要由三部分组成:4×4 矩阵键盘接口电路、密码锁的控制电路、输出显示电路。另外系统还有LED 提示灯报警等。密码锁设计的关键问题是实现密码的输入、更改、开锁等功能:(1)密码输入功能:按下一个数字键,一个“*”就显示在显示屏上,同时将先前输入的所有“*”向左移动一位。(2)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。

主要的设计实施过程:首先,选用单片机AT89S52,以及选购其他电子元器件。第二步,设计硬件电路原理图,并完成人工布线。第三步,编写单片机的 C 语言程序、仿真、软件调试。第四步,使用PROTEUS 软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次课程设计。

系统总体方案设计

方案一:采用数字电路控制。其原理方框图如图所示。采用数字密码锁电路的好处就是设计简单。用以74LS112 双JK 触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9 个用户输入键,其中只有4 个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40 秒(一般情况下,用户不会超过40 秒,若用户觉得不便,还可以修改)电路将报警80 秒,若电路连续报警三次,电路将锁定键盘5 分钟,防止他人的非法操作。电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS 电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。

密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。

方案二:采用一种是用以AT89S52 为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO 端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图所示

通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。本方案采用一种是用以89S51 为核心的单片机控制方案。利用单片机灵活的编程

设计和丰富的I/O 端口,及其控制的准确性,实现基本的密码锁功能。

初步设计思路如下:

1.输入密码用矩形键盘,包括数字键和功能键

2用LCD1602作为显示屏作为显示电路显示

3.输入密码错误次数超过3 次,系统报警

4.报警之后系统自动进入管理员模式要求输入超级密码解锁

5解锁成功后会进入初始状态提示键盘已打开请选择功能开关

6.密码修改要求输入原密码后输入新密码再次输入修改成功.修改后的密码会存储在

AT24C02中,断电后密码不会丢失.

硬件电路设计与描述

3.1整体原理图

3.2键盘电路设计:使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O 线的数目,在按键比较多的时候,通常采用这样方法。其原理如图

每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N 条行线和M 条列线,即可组成具有N×M 个按键的键盘。

在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图 3.1 所示的4×4 键盘,说明线反转个工作原理。首先辨别键盘中有无键按下,有单片机I/O 口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A 中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必

在此列,而且是在与零电平行线相交的交点上的那个键。

具体功能设计表:

3.2显示电路设计:采用LCD1602作为电路的显示模块原理图如下

3.3开锁电路设计:在输入三次错误密码之后系统会自动跳转到管理员模式并要求输入超级密码解锁,解锁成功会提示选择功能键开关.

3.4报警电路设计:在输入密码三次错误之后会进入管理员摸是要求输入超级密码解锁同时报警电路LED会闪烁报警,为了节约在此没有采用并联方式加蜂鸣器报警.

软件设计与描述

4.1软件设计思路:电子密码锁工作的主要过程是显示屏提示开始输入密码,通过键盘输入密码,同时显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3 次时,系统报警。

密码的设定,假设预设的密码为"111111"共 6 位密码。由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。

4.2 各子程序设计:

键盘扫描子程序:

密码比较报警电路:

LCD1602

系统调试

调试用到的设备:

万用表电源示波器

首先要保证核心控制器件单片机的正常工作,所以首先编写一个输入为零的简单程序用示波器测试单片机的18号19号管脚是否有脉冲输入以确定最小系统是否正常工作。其次用万用表测试单片机的P1.0-P1.7端口是否为低电平。若为低电平则证明单片机正常工作。然后利用万用表以此测试各个器件的链接。

测试过程遇到的问题及解决

第一次出现显示屏并未工作通过检测是单片机没工作,通过检测最小系统发现是晶振坏了换掉之后正常工作,单片机输出端口有输出信号但显示屏依旧没有显示通过检测见显示屏的链接发现电源显示接滑动变阻器的端口链接出错通过校验改正最终成功解决问题。通过此次问题的出现对以后此类问题的出现检测储存了知识。

总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力

的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好,通过这次课程设计之后,一定把以前所学过的知识重新温故。

这次课程设计终于顺利完成了,在设计中遇到了很多编程及焊接问题,在同学的帮助下,终于游逆而解。非常感谢!

参考文献

[1]《单片机原理及及应用》王迎旭编机械工业出版社2001

[2]《单片机应用程序设计技术》周航慈著版社

[3] 黄志君,高峰,王建.轮胎压力监测系统[J].广西工学院学报.2006(4):9~12.

[4] 单春贤,韩钧等. 一种集成度较高的轮胎压力监测系统设计[J]. 拖拉机与农用运输车,2006(6):33~38.

[5]张洪润单片机应用技术教程北京:清华大学出版社,1997 北京航空航天大学出

[6] 沙占友A Study of the Control System with Intelligent Temperature Sensors.ICEMI 第四届国际电子测量学术会议论文集,电子测量与一起学报.第13 卷,1998(8),ISTP 收录

[7] The Intel Microprocessors Architecture,Programming,and Interfacing .高等教育出版社(影印版),2001 20-081201-05-01

[8] JONATHAN D. NASH,DOUGLAS R. CALDWELL, MICHAEL J. ZELMAN, AND JAMES N. MOUM A Thermocouple Probe for High-Speed TemperatureMeasurement in the Ocean. Manuscript received 18 August 1997, in final form 9 November 1998:1447-1449.

附录

8.1源程序清单:

#include

#include

#include

#define busy 0x80

#define uchar unsigned char

#define unit unsigned int

#define SET_PASSWORD 12 // 设密码 C

#define UNLOCK_OPEN_DOOR 10 // 解锁开门 A

sbit LCM_RW=P3^4; //定义LCD引脚

sbit LCM_RS=P3^5;

sbit LCM_E=P3^3;

sbit LED=P3^2;

sbit INPUT=P0^3; //键盘开关

sbit DOOR=P0^0;

unsigned char superpassword[6]={0x08,0x08,0x08,0x08,0x08,0x08};

unsigned char new_password1[6]="000000";

//unsigned char new_password2[6]="000000";

unsigned char password[6]= {0x00,0x00,0x00,0x00,0x00,0x00}; unsigned char temp_password[6]= "000000";

unsigned char code int_asc[16]="0123456789ABCDEF"; //显示码表unsigned char Line1[16]="uuuuuuuu"; //显示缓存第一行

unsigned char Line2[16]="uuuuuuuu"; //显示缓存的第二行#define O P_READ 0xa1 // 器件地址以及读取操作,0xa1即为1010 0001B #define O P_WRITE 0xa0 // 器件地址以及写入操作,0xa1即为1010 0000B sbit SDA=P3^7; //将串行数据总线SDA位定义在为P3.4引脚sbit SCL=P3^6; //将串行时钟总线SDA位定义在为P3.3引脚/*****************************************************

函数功能:延时1ms

(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒

***************************************************/

void delay1ms()

{

unsigned char i,j;

for(i=0;i<10;i++)

for(j=0;j<33;j++)

;

}

/*****************************************************

函数功能:延时若干毫秒

入口参数:n

***************************************************/

void delaynms(unsigned char n)

{

unsigned char i;

for(i=0;i

delay1ms();

}

/***************************************************

函数功能:开始数据传送

***************************************************/

void start()

// 开始位

{

SDA = 1; //SDA初始化为高电平“1”

SCL = 1; //开始数据传送时,要求SCL为高电平“1”

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

SDA = 0; //SDA的下降沿被认为是开始信号

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

SCL = 0; //SCL为低电平时,SDA上数据才允许变化(即允许以后的数据传递)}

/***************************************************

函数功能:结束数据传送

***************************************************/

void stop()

// 停止位

{

SDA = 0; //SDA初始化为低电平“0”

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

SCL = 1; //结束数据传送时,要求SCL为高电平“1”

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

SDA = 1; //SDA的上升沿被认为是结束信号

}

/***************************************************

函数功能:从AT24Cxx读取数据

出口参数:x

***************************************************/

unsigned char ReadData()

// 从AT24Cxx移入数据到MCU

{

unsigned char i;

unsigned char x; //储存从AT24Cxx中读出的数据

for(i = 0; i < 8; i++)

{

SCL = 1; //SCL置为高电平

x<<=1; //将x中的各二进位向左移一位

x|=(unsigned char)SDA; //将SDA上的数据通过按位“或“运算存入x中

SCL = 0; //在SCL的下降沿读出数据

}

return(x); //将读取的数据返回

}

/***************************************************

函数功能:向AT24Cxx的当前地址写入数据

入口参数:y (储存待写入的数据)

***************************************************/

//在调用此数据写入函数前需首先调用开始函数start(),所以SCL=0

bit WriteCurrent(unsigned char y)

{

unsigned char i;

bit ack_bit; //储存应答位

for(i = 0; i < 8; i++) // 循环移入8个位

{

SDA = (bit)(y&0x80); //通过按位“与”运算将最高位数据送到S

//因为传送时高位在前,低位在后_nop_(); //等待一个机器周期

SCL = 1; //在SCL的上升沿将数据写入A T24Cxx

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

SCL = 0; //将SCL重新置为低电平,以在SCL线形成传送数据所需的8个脉冲

y <<= 1; //将y中的各二进位向左移一位

}

SDA = 1; // 发送设备(主机)应在时钟脉冲的高电平期间(SCL=1)释放SDA 线,

//以让SDA线转由接收设备(AT24Cxx)控制

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

SCL = 1; //根据上述规定,SCL应为高电平

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

_nop_(); //等待一个机器周期

ack_bit = SDA; //接受设备(A T24Cxx)向SDA送低电平,表示已经接收到一个字节

//若送高电平,表示没有接收到,传送异常

SCL = 0; //SCL为低电平时,SDA上数据才允许变化(即允许以后的数据传递)return ack_bit; // 返回A T24Cxx应答位

}

/***************************************************

函数功能:向AT24Cxx中的指定地址写入数据

入口参数:add (储存指定的地址);dat(储存待写入的数据)

***************************************************/

void WriteSet(unsigned char add, unsigned char dat)

// 在指定地址addr处写入数据WriteCurrent

{

start(); //开始数据传递

WriteCurrent(OP_WRITE); //选择要操作的AT24Cxx芯片,并告知要对其写入数据WriteCurrent(add); //写入指定地址

WriteCurrent(dat); //向当前地址(上面指定的地址)写入数据

stop(); //停止数据传递

delaynms(4); //1个字节的写入周期为1ms, 最好延时1ms以上

}

/***************************************************

函数功能:从AT24Cxx中的当前地址读取数据

出口参数:x (储存读出的数据)

***************************************************/

unsigned char ReadCurrent()

{

unsigned char x;

start(); //开始数据传递

WriteCurrent(OP_READ); //选择要操作的A T24Cxx芯片,并告知要读其数据

x=ReadData(); //将读取的数据存入x

stop(); //停止数据传递

return x; //返回读取的数据

}

/***************************************************

函数功能:从AT24Cxx中的指定地址读取数据

入口参数:set_add

出口参数:x

***************************************************/

unsigned char ReadSet(unsigned char set_add)

// 在指定地址读取

{

start(); //开始数据传递

WriteCurrent(OP_WRITE); //选择要操作的A T24Cxx芯片,并告知要对其写入数据

WriteCurrent(set_add); //写入指定地址

return(ReadCurrent()); //从指定地址读出数据并返回

}

void write_password()//存密码

{

unsigned char i;

for(i=0;i<6;i++)WriteSet(i,password[i]);}

void read_password(){//读出密码

unsigned char i;

for(i=0;i<6;i++)password[i]=ReadSet(i);

}

/************************************键盘扫描程序******************************************************************************* ******/

// 0 1 2 3 4 5 6 7 8 9 A B C D E F

code char code key_code[]={0x7E,0x7D,0x7B,0x77,0xBD,0xBB,0xB7,0xDD,0xDB,0xD7,0xBE,0xDE,0xEE,0x ED,0xEB,0xE7};

code char code ksp[]={0x7F,0xBF,0xDF,0xEF};

void delay()

{

unsigned char i,j;

for(i=0;i<50;i++)

for(j=0;j<100;j++);

}

char keypad_scan()//扫描行

{

char key,i;

if(INPUT) {

P2=0xF0;

while(P2!=0xF0); //有按键按下

do{ if(!INPUT)break;

i=0;

for(i=0;i<4;i++){

P2=ksp[i];

if(P2!=ksp[i]){

delay();

key=P2;

if(key!=ksp[i])return(key);

}

}

}while(1);

}

}

uchar gotkey(){ //获取按键的值,扫描列

char temp ,i;

temp=keypad_scan();

for(i=0;i<15;i++){

if(temp==key_code[i])return(i);

}

return(16);

}

/*********************************LCD1602驱动函数******************************************************************************* ************/

void delay_LCM(unit k)

{

unit i,j;

for(i=0;i

for(j=0;j<60;j++){;} }

void test_1602busy() {

P1 =0xFF;

LCM_E =1;

LCM_RS =0;

LCM_RW =1;

_nop_();

while(P1&busy)

{

LCM_E = 0;

_nop_();

LCM_E = 1;

_nop_();

}

LCM_E=0;

}

void write_1602Command(uchar co)

{

test_1602busy();

LCM_RS =0;

LCM_RW =0;

LCM_E=0;

_nop_();

P1=co;

_nop_();

LCM_E=1;

_nop_();

LCM_E=0;

}

void write_1602Data(uchar Data)

{

test_1602busy();

P1= Data;

LCM_RS =1;

LCM_RW =0;

LCM_E = 1;

_nop_();

LCM_E=0;

}

void init_1602(void) //初始化1602

{

write_1602Command(0x38);

delay_LCM(5);

write_1602Command(0x01);

delay_LCM(5);

write_1602Command(0x06);

delay_LCM(5);

write_1602Command(0x0F);

delay_LCM(5);

}

//此方法很好

void DisplayOneChar(uchar X,uchar Y,uchar DData)//锁定要显示的行和列{

Y&=1;

X&=15;

if(Y)

X|=0x40;

X|=0x80;

write_1602Command(X);

write_1602Data(DData);

}

void display_1602(uchar *DData,uchar X,uchar Y)//1602显示函数{

uchar ListLength =0;

uchar t=X;

Y&=0x01;

X&=0x0F;

while(DData[ListLength]&&ListLength<(16-t))

{

DisplayOneChar(X++,Y,DData[ListLength]);

ListLength++;

}

while(X<16){DisplayOneChar(X++,Y,0x00);}

}

/*************************************获取密码并处理************************************************/

void get_password() { //获取输入的六位密码

uchar i;

for(i=0;i<6;i++){

display_1602("-",i,1);

temp_password[i]=gotkey();//暂存至temp_password[]

display_1602("*",i,1);//输入密码后移显示*

} }

/********************************************************/

int check_password()//验证输入的密码是否正确

{

char i;

i=0;

while((temp_password[i]==password[i])&&(i<6))i++;

if(i==6)return(1);

else return(0);

}

/*******************************************************************/

int check_superpassword()//验证输入的密码是否正确

{

char i;

i=0;

while((temp_password[i]==superpassword[i])&&(i<6))i++;

if(i==6)return(1);

else return(0);

}

/******************************************************************/

int set_new_password()//设置新的密码

{

uchar i;

display_1602("IN_OLD_PASSWORD:",0,0); //首先要求输入旧的密码

delay_LCM(100);

get_password();

if(!check_password()){ //如果输入错误则跳回0

display_1602("WRRONG!",0,0);

delay_LCM(1000);

return(0);}

i=0;

display_1602("IN_NEW_PASSWORD:",0,0);//提示输入新的密码

get_password();

while(i<6){new_password1[i]=temp_password[i];i++; }

i=0;

display_1602("CONFIRM_AGAIN:",0,0);//再次输入新的密码

delay();

get_password();

i=0;

while(new_password1[i]==temp_password[i])i++;//比较两次输入的新密码

if(i==6){

for(i=0;i<6;i++) password[i]=temp_password[i];

write_password();

return(1);//设置正确返回1

}

else return(0);

}

/*******************************主函数*************************************************/

void main(void) {

uchar keys; //

uchar N=0; //

if(ReadSet(0)!=0xff)read_password();// 如果已经修改过密码就把存储器里的密码读入password数组中

init_1602();//初始化LCD

do{

LED=1;

delay_LCM(15);//

//init_1602();//初始化LCD

display_1602(Line1,0,0);

display_1602(Line2,0,1);//显示时钟

if(INPUT){

根据VHDL的电子密码锁的设计

《E D A仿真与实践实习》 学院:信息科学与工程学院 课题名称:硬件描述语言设计 ——基于VHDL的电子密码锁的设计班级: 学生: 学号: 指导教师:

1 引言 在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。 基于EDA技术设计的电子密码锁。以其价格便宜、使用方便、安全性高、成本低、功耗低、易操作等优点,受到了人们的普遍关注。而以可编程逻辑器件(FBDA)为设计载体,以硬件描述语言(VHDL)为主要表达方式,以QuartusⅡ5.1开发软件等为设计工具设计的电子密码锁,由于其能够实现密码输入、密码校验、密码设置和更改等功能,因此,能够满足社会对安全防盗的需求。 本设计的各个模块由相应的VHDL程序具体实现,并在QuartusⅡ5.1环境下进行了整体电路的模拟仿真,最终实现“密码锁控制器设计”的要求。 2 设计内容和要求 2.1 设计内容: 题目:电子密码锁 内容:设计一个4位串行数字锁。 (1)开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮一个指示灯。否则进入“错误”状态,并发出报警信号。 (2)锁内的密码可调,且预置方便,保密性好。 (3)串行数字锁的报警由点亮一个灯,直到按下复位开关,报警才停下。此时,数字锁又自动等待下一个开锁状态。 要求: (1)通过查阅相关技术资料,详细描述电子密码锁的基本原理。 (2)编写电子密码锁的Verilog HDL或VHDL程序,并仿真编译下载验证。 (3)给出完整的系统顶层模块图与波形仿真图。

电子密码锁报告

基于单片机控制的电子密码锁 设计者:张雪贵 指导老师:李峥 淮北煤炭师范学院物理与电子信息学院 06电子信息工程 2009年6月

基于单片机的电子密码锁 一设计任务 设计一个利用AT89S52单片机控制的电子密码锁,该电子密码功能包括16个密码输入,密码输入过程中清除输入,密码正确和错误分别用蜂鸣器提示,输入错误密码超次锁定,密码修改,12864LCD 显示菜单实现多功能等等。 二总体方案设计与实现 电子密码锁系统核心用AT89S52单片机控制,密码输入按键为4*4矩阵键盘16个按键实现密码输入,外加独立按键实现清除,确定和液晶反白控制。密码存储电路利用AT24C02芯片,该芯片可以实现掉电存储,而且数据可保留时间长,与单片机连接简单。报警电路利用三极管驱动小型蜂鸣器实现,通过给蜂鸣器送不同频率的电平信号实现不同声音报警。LCD用12864字符型液晶实现,通过单行反白实现菜单,加强液晶显示内容及添加系统功能。 另外,电磁锁电路暂时利用发光二极管代替,用发光二极管的亮灭和蜂鸣器的响声来指示电磁锁的开关。 图1 系统原理框图 图2系统总体原理电路图 三硬件电路的功能单元设计 (一)单片机最小系统

其原理图如图1所示 图3 单片机最小系统模块 单片机采用AT89S52单片机, AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器,与工业80C51产品指令各引脚完全兼容。单片机最小系统主要有两块组成,其一为晶振起振电路,其二为复位电路。在此,我们采用按键手动复位,相对来讲,这种复位方式更加方便人性化,不必要切断电源即可对系统进行复位。 (二)开锁电路 通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。其原理如图2 所示。 图4 开锁电路原理 当用户输入的密码正确单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。在此为节省成本考虑,我们用二极管代替电磁锁,将一切在LCD上面显示,并且利用蜂鸣器和二极

(完整word版)6位电子密码锁设计

电子信息工程《专业基础课程设计》研究报告 电子密码锁设计 学生姓名: 学生学号: 指导教师: 所在学院: 专业班级: 中国·大庆 2015年 6 月

信息技术学院 课程设计任务书 学院专业级,学号姓名 一、课程设计课题: 电子密码锁设计 二、课程设计工作日自年月日至年月日 三、课程设计进行地点:信息技术学院 321 四、程设计任务要求: 1.课题来源: 教师下发。 2.目的意义:设计一个电子密码锁。 3.基本要求: (1)设计6位电子密码锁,当输入正确密码时,输出开锁信号,用相应的发光二极管点亮表示开锁和关锁; (2)密码可以修改; (3)从第一个按钮触动后15秒内若锁未打开,则电路进入自锁状态,并进行声、光报警。 课程设计评审表

目录 1 设计任务要求 (1) 2 方案比较 (1) 3单元电路设计 (2) 4元件选择 (6) 5整体电路 (8) 6说明电路工作原理 (9) 7 困难问题及解决措施 (10) 8 总结与体会 (10) 9 致谢 (11) 10参考文献 (12)

1设计任务要求 (1)设计6位电子密码锁,当输入正确密码时,输出开锁信号,用相应的发光二极管点亮表示开锁和关锁;(2)密码可以修改; (3一个按钮触动后15秒内若锁未打开,则电路进入自锁状态,并进行声、光报警。 1.1 设计概述 通过本次设计掌握数字电路系统设计的方法,熟悉电子密码锁设计相关硬件的使用,了解电子密码锁的系统构成,利用数字门电路实现电子密码锁的设计与实现,可以加深自己对所学专业的认识,关联知识,增强自己的动手能力,积累实践经验,为以后的工作打好基础。通过本次设计掌握数字电路系统设计的方法,熟悉电子密码锁设计相关硬件的使用,了解电子密码锁的系统构成,利用数字门电路实现电子密码锁的设计与实现,可以加深自己对所学专业的认识,关联知识,增强自己的动手能力,积累实践经验,为以后的工作打好基础。 2方案比较 2.1.1 方案选择 本方案是用按键式的输入方式输入密码,然后预设密码由74HC160和BCD数码管显示,而输入密码则由4508和BCD数码管显示,密码比较由异或门器件来实现,定时装置由555定时 图2方案二原理框图

电子电路课程设计密码锁(满分实验报告)

密码锁设计报告 摘要: 本系统是由键盘和报警系统所组成的密码锁。系统完成键盘输入、开锁、超时报警、输入位数显示、错误密码报警、复位等数字密码锁的基本功能。 关键字:数字密码锁GAL16V8 28C64 解锁与报警 1

目录: 一、系统结构与技术指标 1、系统功能要求 (4) 2、性能和电气指标 (5) 3、设计条件 (5) 二、整体方案设计 1、密码设定 (6) 2、密码判断 (6) 3、密码录入和判断结果显示 (6) 4、系统工作原理框面 (7) 三、单元电路设计 1、键盘录入和编码电路图 (8) 2、地址计数和存储电路 (12) 3、密码锁存与比较电路 (12) 2

4、判决与结果显示电路 (14) 5、延时电路 (15) 6、复位 (17) 7、整机电路图 (19) 8、元件清单……………………………………………19四、程序清单 1、第一片GAL (21) 2、第二片GAL (23) 五、测试与调整 1、单元电路测试 (25) 2、整体指标测试 (26) 3、测试结果 (26) 六、设计总结 1、设计任务完成情况 (27) 2、问题及改进 (27) 3、心得体会 (28) 3

一、系统结构与技术指标 1.系统功能要求 密码锁:用数字键方式输入开锁密码,输入密码时开锁;如 果输入密码有误或者输入时间过长,则发出警报。 密码锁的系统结构框图如下图所示,其中数字键盘用于输入 密码,密码锁用于判断密码的正误,也可用于修改密码。开锁LED1亮表示输入密码正确并开锁,报警LED2亮表示密码有误或者输入时间超时。 开锁green 键盘密码锁 错误red 4

电子密码锁详细报告

目录 第1节引言 (1) 1.1 电子密码锁述 (1) 1.2 本设计主要任务 (1) 1.3 系统主要功能 (2) 第2节系统硬件设计 (3) 2.1 系统的硬件构成及功能 (3) 2.2 AT89C2051单片机及其引脚说明 (3) 第3节系统软件设计 (5) 3.1 系统主程序设计(流程图) (5) 3.2 软件设计思想 (5) 3.3 储单元的分配 (5) 3.4 系统源程序 (6) 3.5 系统应用说明 (9) 3.6 小结 (9) 结束语 (10) 参考文献 (11) 附录 (12) - 1 -

电子密码锁 第1节引言 1.1 电子密码锁概述 随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。从而使密码锁具有很高的安全性、可靠性。目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。 很多行业的许多地方都要用到密码锁,随着人们生活水平的提高,如何实现家庭或公司的防盗这一问题也变的尤其突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,再者,普通密码锁的密码容易被多次试探而破译,所以,考虑到单片机的优越性,一种基于单片机的电子密码锁应运而生。电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。 设计本课题时构思的方案:采用以AT89C2051为核心的单片机控制方案;能防止多次试探而不被破译,从而有效地克服了现实生活中存在的许多缺点。 1.2 本设计主要任务 (1)共8位密码,每位的取值范围为1~8。 (2)用户可以自行设定和修改密码。 (3)按每个密码键时都有声、光提示。 (4)若键入的8位开锁密码不完全正确,则报警5秒钟,以提醒他人注意。

基于51单片机电子密码锁设计

一、设计目的 1.1课题简介 如何实现防盗是很多人关心的问题,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,使人们的人身及财产安全受到很大威胁。电子密码锁是一种依靠电子电路来控制电磁锁的开和闭的装置,开锁需要输入正确密码,若密码泄露,用户可以随时更改密码。因此其保密性高,使用灵活性好,安全系数高,可以满足广大用户的需要,现在广泛使用的有红外遥控电子密码锁,声控密码锁,按键密码锁等。 1.2课题研究目的 本设计是一种基于单片机的密码锁方案,根据基本要求规划单片机密码锁的硬件电路和软件程序,同时对单片机的型号选择、硬件设计、软件流程图、单片机存储单元的分配等都有注释。现在很多地方都需要密码锁,电子密码锁的性能和安全性大大超过了机械锁,为了提高密码的保密性,必须可以经常更改密码,以便密码被盗时可以修改密码。 本次设计的密码锁具备的功能:LED数码管显示初始状态“——————”,用户通过键盘输入密码,每输入一位密码,LED数码管相应有一位变为“P”,若想重新输入密码,只需按下“CLR”键。密码输入完毕后按确认键“#”,密码锁控制芯片将输入的密码和密码锁控制芯片中存储的密码相比,若密码错误,则不开锁,会有红灯亮提示,同时显示“Error”。若正确,则开锁,会有绿灯亮提示,同时显示“PASS”。用户可以根据实际情况随意改变密码值或密码长度,密码输入正确后可以按下“CHG”修改密码,输入新密码时每输入一位新密码相应有一位变为“H”,以便提示用户此时输入的是新密码,修改新密码时若想重新输入新密码只需按下“CLR”键即可。输入新密码后按确认键即修改成功,新密码写入单片机内部RAM中,以便以后用来确认密码的正确性。按下复位键,系统恢复初始状态,密码也恢复初始密码,本设计中初始密码是“096168”。 本次设计中硬件主要由我完成,软件主要由张振完成。 二、硬件设计 2.1概述 本系统主要由单片机最小系统、电源电路、输入键盘电路、输出显示电路、开锁电路等组成,系统框图如图1所示:

电子密码锁实验报告

电子密码锁实验报告 一,实验目的 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位密码和删除键删除密码,利用存储器的永久存储特性将设定的密码存于存储器中,再次重启程序时,能从存储器中读取出来,从而实现掉电保存。 为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。 Led发光二级管低电平发亮,高电平熄灭的特性实现led提示功能。 利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为20,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,从而实现led亮1秒或3秒。 四,实验设计分析 针对要实现的功能,采用AT89S52单片机进行设计,AT89S52 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。 在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为按键程序、数码管显示程序、发光二级管程序,存储器程序,密码设定程序、密码删除程序、定时器程序,延时程序等。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。 首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解C语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最

单片机电子密码锁报告

目录 第1章概述 (1) 第2章系统总体方案设计 (2) 第3章硬件电路设计 (4) 3.1 键盘电路设计 (4) 3.2LED显示电路 (6) 3.3 开锁电路 (8) 3.4报警电路 (9) 第4章软件设计 (9) 4.1软件设计思路 (10) 4.2 各子程序设计 (10) 第5章系统调试 (16) 第6章心得体会 (17) 第7章参考文献 (18) 第8章附录 (19) 8.1源程序清单 (19) 8.2硬件原理图 (26)

第1章概述 随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。 本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。 本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。

第2章系统总体方案设计 系统总体设计方案框图2.1: 图2.1系统总体设计方案框 本方案采用一种是用以89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。 初步设计思路如下: 1.输入密码用矩形键盘,包括数字键和功能键。 2.LED数码管显示输入密码,用74JS247驱动数码管发光显示数 码,用74LS138控制各位显示器分时进行显示。 3.用发光二极管代替开锁的电路,发光表示开锁。 4.输入密码错误次数超过3次,系统报警。 5.打开电源后,显示器显示“000000”,设原始密码为“123456”, 只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。 6.按“C”键,清除显示器为“000000”。

电子密码锁源程序(带功能简介)

/****************************************************************************** ** 功能键 S6---S15 数字键0-9 S16---更改密码S17---更改密码完毕后确认 S18---重试密码、重新设定S19---关闭密码锁 初始密码:000000 密码位数:6位 注意:掉电后,所设密码会丢失,重新上点时,密码恢复为原始的000000 与P1相连的8位发光LED点亮代表锁被打开;熄灭代表锁被锁上 程序功能: 1、开锁: 下载程序后,直接按六次S7(即代表数字1),8位LED亮,锁被打开,输入密码时, 六位数码管依次显示小横杠。 2、更改密码: 只有当开锁(LED亮)后,该功能方可使用。 首先按下更改密码键S16,然后设置相应密码,此时六位数码管会显示设置密码对应 的数字。最后设置完六位后,按下S17确认密码更改,此后新密码即生效。 3、重试密码: 当输入密码时,密码输错后按下键S18,可重新输入六位密码。 当设置密码时,设置中途想更改密码,也可按下此键重新设置。 4、关闭密码锁: 按下S19即可将打开的密码锁关闭。 推荐初级演示步骤:输入原始密码000000---按下更改密码按键S16---按0到9设置密码---按S17 确认密码更改---按S18关闭密码锁---输入新的密码打开密码锁 ******************************************************************************* / #include #define uchar unsigned char #define uint unsigned int uchar old1,old2,old3,old4,old5,old6; //原始密码000000 uchar new1,new2,new3,new4,new5,new6; //每次MCU采集到的密码输入 uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入数码管显示的变量 uchar wei,key,temp; bit allow,genggai,ok,wanbi,retry,close; //各个状态位 sbit dula=P2^6; sbit wela=P2^7;

6位数字密码锁控制器

得分:_______ 南京林业大学 研究生设计报告 2011 ~ 2012 学年第一学期 课程名称:微机控制与自动化 报告题目:六位数字密码锁控制器 学号: 作者:陈亭亭 联系电话: 任课教师: 二○一一年十二月

六位数字密码锁控制器 一、设计目的: 随着社会的发展,单片机市场已经形成一个规格齐全、品种繁多的大家族,用户有非常大的选择余地。单片机的应用十分广泛,在工业控制领域、家电产品、智能化仪器仪表、计算机外部设备,特别是机电一体化产品中,都有非常重要的用途。本设计作为微机原理与自动化的课程作业,泥实现以下目的: 1.通过自主编程,以熟悉80c51单片机的控制及编程方法; 2.通过设计与编程,熟悉单片机与外设的连接方法; 3.通过使用protel绘画电路图,熟悉protel软件; 4.熟悉液晶显示器的使用方法。 二、设计实现的功能: 1.通过0~9十个数字键实现六位密码的设置,验证和修改,在密码输入错误时系统 会自动报警,可按复位键重新输入密码。 2.通过LED七段数码管显示密码。 三、设计所需的芯片器材 ATMEL公司的AT89C51单片机,74LS273的8D锁存器,74LS244的8位三态缓冲器,LED显示器、按键若干。 四、总体方案设计 1.总体框图设计 选用AT89C51单片机,加上相应的按键、晶振、复位、显示电路,并进行各种软件的设计。密码锁控制器的总体设计框图如图1所示。 2. 显示控制方案 在构成多位LED显示时,点亮数码管的方式有静态显示和动态显示两种。 静态显示方式:LED的静态显示是指当数码管显示某一字符时,相应段的发光二极管处于恒定地导通或截止状态,直到显示另一字符为止。 静态显示方式各位可独立显示。由于各位分别由一个8位I/O接口控制段选码,故在同一时间里,每一位显示的字符可以各不相同。这种显示方式接口,较小的电流即可获得

单片机密码锁设计(汇编语言-)带原理图电路图-

单片机密码锁设计(汇编语言)带原理 图电路图 什么是密码锁 电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。 硬件设计 基于AT89C51为核心的单片机控制的电子密码锁设计。本设计能完成开锁,修改密码,密码错误报警,LCD显示密码等基本的密码锁功能。设计的电路框如图1。 《 , 图一 & 电路的功能单元设计

1.单片机AT89C51组成基本框图 单片机引脚介绍 P0:P0口是一个漏极开路的8位双向I/O口。在访问片外存储器时P0分时提供低8位地址线和8位双向数据线。当不接片外存储器或不扩展I/O口时,P0可作为一个通用输入/输出口。P0口作输入口使用时,应先向口锁存器写“1”,P0口作输出口时,需接上拉电阻。 P1:P1口是一个内部提供上拉电阻的8位双向I/O口,因此它作为输出口使用时,无需再外接上拉电阻,当作为输入口使用时,同样也需先向其锁存器写“1”。 & P2:P2口也是一个内部提供上拉电阻的8位双向I/O口,在访问片外存储器时,输出高8位地址。 P3:P3口除了一般的准双向通用I/O口外,还有第二功能。 VCC:+5V电源 VSS:接地 ALE:地址锁存器控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。 /PSEN:外部程序存储器读选通信号。在读外部ROM时,/PSEN有效(低电平),以实现外部ROM单元的读操作。 /EA:访问程序存储控制信号。当/EA信号为低电平时,对ROM的读操作限定在外部程序存储器;当/EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。 RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用完

单片机密码锁实验报告

二○一六~二○一七学年第一学期 电子信息工程系 电子综合设计II 报告书 班级:电信(产业)1401班 设计时间:2016/12/29 学生姓名:曹子龙 学号:201404135024 指导教师:赵敏

二○一六年十二月

一、设计要求. 题目内容: 设计一个基于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位,且第六位输入之后立即判断,正确则进入,错误则清空重输。

电子密码锁毕业设计开题报告

湖北理工学院 毕业设计(论文) 开题报告 题目:基于单片机的超市储物柜密码锁的设计 学院:电气与电子信息工程学院 专业名称:电子信息工程 学号:201140210122 学生姓名:叶文 指导教师:章磊 2015 年 1 月8 日

1、课题来源 2、研究目的和意义

3、国内外研究现状和发展趋势综述

4、本课题的主要研究内容及方案

方案阐述: 本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分、红外部分组成,软件部分对应的由主程序、初始化程序、12864显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置 程序、EEPROM读写程序和延时程序,红外线程序等组成。用单片机灵活的编 程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接12864液晶显示器用于显示作用。 超市存物柜密码锁设计原理: 本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。密码锁工作的主要过程是12864液晶显示提示开始输入密码,通过键盘输入密码,同时12864液晶显示密码输入情况,其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。 主要的设计实施过程: 1、选用ATMEL公司的单片机AT89C52,以及选购其他电子元器件。 2、使用PROTEUS软件设计硬件电路原理图, 3、使用Keil uVision2软件编写单片机的C语言程序、仿真、软件调试。 4、使用PROTEUS软件进行模拟软、硬件调试。

电子密码锁设计

《嵌入式系统》课程设计报告 题目 院系:机电学院 学生姓名:任 专业: 班级: 1 1 1 指导教师: 完成时间:2014-10-17

目录 1 系统总体方案设计 0 2 硬件电路设计 (2) 2.1 键盘电路设计 (2) 2.2 LCD1206显示电路 (3) 2.3 响应电路 (5) 3 软件设计 (6) 3.1软件设计思路 (5) 3.2 子程序 (6) 4 系统调试 (9) 5 心得体会 (10) 6 参考文献 (11) 附录 (12) (1)源程序 (12) (2)硬件原理图 (15)

摘要:随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。 关键词:4×4矩阵键盘;stm32;密码锁;LCD1602

1 系统总体方案设计 1.1采用数字电路控制 其原理方框图如图1-1所示。 图1.1 数字密码锁电路方案 密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、键盘输入次数锁定电路。 1.2 采用一种是用以stm32为核心的控制方案 利用其灵活的编程设计及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图1.2所示。 图1.2 stm32控制方案

数字逻辑电路课程设计电子密码锁

数字逻辑电路课程设计 课题:电子密码锁设计 姓名: 班级:13通信 学号: 成绩: 指导教师: 开课时间:

目录 摘要 (1) 一课程设计目的内容及安排 (2) 1.1设计目的 (2) 1.2设计内容 (2) 1.3设计安排 (2) 1.4设计内容 (2) 二电子密码锁设计要求及总框图 (3) 2.1设计要求 (3) 2.2总框图 (4) 三各模块电路设计 (5) 3.1密码输入存储比较模块 (5) 3.2五秒计时电路 (6) 3.3二十秒计时电路 (8) 3.4报警电路 (10) 3.5总电路 (11) 四设计心得 (12) 五参考文献 (13)

电子密码锁 摘要:设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(可设置成6位至8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁;从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。密码输入存储及比较部分使用芯片74LS194及74LS85。五秒及时部分采用芯片74LS161和数码显示管。二十秒报警电路由74LS160,555定时器组成的多谐振荡器,LED灯和蜂鸣器组成。利用multisim对电路进行仿真可以得到结果。 关键词:电子密码锁,计时电路,报警电路

一课程设计目的内容及安排 1.1设计目的 1 根据设计要求,完成对交通信号灯的设计。 2 加强对Multisim10仿真软件的应用。 3 掌握交通信号灯的主要功能与在仿真软件中的实现方法。 4 掌握74LS160,74LS192等功能。 1.2 设计内容 设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁; 在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(可设置成6位至8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁; 从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。 1.3设计安排

单片机密码锁实验报告

单片机系统 设计实训报告 专业:生产过程自动化 姓名:李某 班级学号:。。。。。。。。。。。 指导教师:。。。。。。。。 实训期间:。。。。。。。。。。。。。。

目录 一.实验目的: (3) 二.实验要求: (3) 三.实验基本原理: (3) 四.实验设计分析: (4) 1.设计思想: (4) 五.实验要求实现: (5) 1. 电路设计: (5) 2.主流程图: (7) 3.4x4键盘行列式键盘原理电路图: (8) 4. 显示模块 (9) 五.总电路设计如下 (9) 六.程序 (11) 七.实验心得 (16)

一.实验目的: 1.熟悉单片机定时器的编程方法。 2.灵活运用单片机C语言程序中的字符串、数组、指针。 3.熟悉数码显示、LCM1602液晶显示器、YJD12864液晶显示器的编程方法。4.熟悉掌握4x4矩阵键盘的C语言编程。 二.实验要求: 1:用4×4矩阵键盘组成0-f数字键及。 2:可以自行设定或删除8位密码, 3:用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则显示PASS,若密码显示错误时,显示ERR. 4:自由发挥其他功能. 5:要求有单片机硬件系统框图,电路原理图,软件流程图。 三.实验基本原理: 这个密码锁的功能是使用矩阵键盘中的十六个键输入密码0到F还有,输入的同时在八位数码管上显示用户所输入的密码,未输入的位置用横杆填补表述未输入。当输入的密码超出设置的位数时,数据溢出,清零。 用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码

电子密码锁课程设计报告书

渝州科技职业学院 电子密码锁 院系:电子信息工程学院 专业班级: 11 电管2班 学生:任龙龙 学号: 1102120208 指导教师:何健 指导教师职称:讲师 二O一三年十一月

目录 1 绪论 (3) 1.1电子密码锁简介 (3) 1.2本设计所要实现的目标 (3) 1.3设计方案简介 (3) 2 系统总体方案设计 (4) 2.1设计框图 (4) 2.2设计原理 (4) 3 硬件系统构成 (4) 3.1主要源器件 (4) 3.2电路总体构成 (5) 3.3电源输入电路 (5) 3.4键盘输入电路 (5) 3.5密码存储电路 (6) 3.6复位电路 (6) 3.7晶振电路 (7) 3.8显示电路 (8) 3.9报警电路 (8) 3.10开锁电路 (9) 4 软件系统设计 (10) 4.1主程序流程图 (10) 4.2按键软件设计 (11) 4.3密码设置软件设计 (12) 4.4开锁软件设计 (13) 结论 (15) 参考文献 (15) 附录 (15) 附录1硬件原理图 (15) 附录2 C语言程序 (15)

1 绪论 1.1 电子密码锁简介 电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下: 1) 性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。 2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因 人员的更替而使锁的密级下降。 3) 误码输入保护,当输入密码多次错误时,报警系统自动启动。 4) 无活动零件,不会磨损,寿命长。 5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。 1.2 本设计所要实现的目标 本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以有用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入就的密码,在输入新密码的时候要二次确认,以防止误操作。 1.3 设计方案简介 采用以单片机为核心的控制方案 由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度围、有没有低电压检测功能、单片机有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机80C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。密码输完后按下确认键,如果密码输入正确

单片机实验报告--基于PIC单片机的电子密码锁

2016年小学期单片机设计实验报告题目:基于PIC单片机的电子密码锁 班级: 班序号: 实验组号: 学生: 指导教师:

基于PIC单片机的电子密码锁 ——xx班xx 实验摘要 在日常的生活和工作中, 住宅与部门的安全防、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。设计本课题时构思的方案是用以PIC16F877为核心的单片机控制方案。 目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。 本系统由16F877单片机系统(美国微芯Microchip 公司推出的高性能单片机)、4×4矩阵键盘、LCD1602显示和报警系统等组成,具有设置、修改四位用户密码、输入提示、密码错误报警等功能。本系统成本低廉,功能实用。 A b s t r a c t R e p l a c e t h e l o c k o n t h e p r e s e r v a t i o n o f t h e s a f e t y p r e c a u t i o n s i n t h e i r d a i l y l i f e a n d w o r k,h o u s i n g a n d d e p a r t m e n t,u n i t f i l e s,f i n a n c i a l s t a t e m e n t s,a n d s o m e p e r s o n a l i n f o r m a t i o n t o l o c k a p p r o a c h t o s o l v e.I f t h e u s e o f t r a d i t i o n a l m e c h a n i c a l k e y i n t h e l o c k, p e o p l e o f t e n n e e d t o c a r r y m u l t i p l e k e y s,u s e v e r y i n c o n v e n i e n t,a n d t h e l o s s o f k e y s e c u r i t y t h a t i s g r e a t l y r e d u c e d.A l o n g w i t h t h e s c i e n c e a n d t e c h n o l o g y u n c e a s i n g d e v e l o p m e n t,p e o p l e d a i l y l i f e s a f e t y i n s u r a n c e d e v i c e r e q u i r e m e n t s m o r e a n d m o r e h i g h.I n o r d e r t o m e e t t h e p e o p l e o n t h e r e q u i r e m e n t s a n d i n c r e a s e t h e s e c u r i t y o f p a s s w o r d k e y p a s s w o r d l o c k s h i p p e d.P a s s w o r d l o c k i s s a f e,l o w c o s t a n d p o w e r c o n s u m p t i o n i s l o w,e a s y t o o p e r a t e a n d W h e n t h e a d v e n t o f t h e s h o r t c o m i n g s o f l e s s t y p e.I n t h e s e c u r i t y t e c h n o l o g y t o g u a r d a g a i n s t,w i t h a n t i-t h e f t a l a r m f u n c t i o n e l e c t r o n i c p a s s w o r d l o c k g r a d u a l l y r e p l a c e t h e t r a d i t i o n a l m e c h a n i c a l c i p h e r l o c k, o v e r c o m e t h e m e c h a n i c a l p a s s w o r d l o c k,s a f e t y p e r f o r m a n c e i s p o o r,t h e p a s s w o r d l o c k b o t h i n t e c h n o l o g y a n d i n p e r f o r m a n c e a r e g r e a t l y i m p r o v e d s t e p.W i t h l a r g e s c a l e i n t e g r a t e d c i r c u i t t e c h n o l o g y d e v e l o p m e n t,i n p a r t i c u l a r,i s a s i n g l e c h i p,t h e m i c r o p r o c e s s o r i n t e l l i g e n t p a s s w o r d l o c k,w h i c h i s i n a d d i t i o n t o t h e e l e c t r o n i c p a s s w o r d l o c k f u n c t i o n,b u t a l s o i n t r o d u c e d t h e i n t e l l i g e n t m a n a g e m e n t,e x p e r t a n a l y s i s s y s t e m a n d o t h e r f u n c t i o n s,w h i c h e n a b l e p a s s w o r d l o c k h a s a h i g h s a f e t y a n d r e l i a b i l i t y,i s a p p l i e d m o r e a n d m o r e w i d e l y.T h i s d e s i g n t o p i c c o n c e p t i o n s c h e m e I s u s e d t o

相关文档
最新文档