密码锁设计

密码锁设计
密码锁设计

目录

1. 绪论 (1)

1.1引言 (1)

1.2电子密码锁的背景 (1)

1.3电子密码锁设计的意义 (1)

2.单片机AT89C51的简单介绍 (2)

2.1单片机的大概构造 (2)

2.2管脚说明 (2)

3.设计目标及要求 (4)

3.1目标 (4)

3.2设计基本要求 (4)

4.硬件设计 (4)

4.1键盘的输入 (4)

4.2密码的判断和计时 (4)

4.3输出信号的控制 (5)

4.4外围电路的选择与设计 (5)

4.5整体电路图如下 (5)

5.软件设计 (6)

5.1程序流程图 (6)

5.2软件任务要求 (6)

5.3程序的设计 (6)

6.程序调试 (7)

6.1KEIL C51的大致简介 (7)

6.2C51工具包的整体结构 (7)

6.3程序调试界面 (7)

7.总结 (8)

参考文献 (9)

附录 (10)

1.绪论

1.1引言

随着人们生活水平的提高,信息化时代逐步进入到我们的家庭,人们对家居、文件资料及各种私人隐私的安全要求也不断提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,已经不能满足人们的要求,针对此现况,设计一款安全可靠的电子锁有着非常重大的意义。电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱。

1.2电子密码锁的背景

随着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像,用指纹,头像等来控制锁的开启。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。

1.3电子密码锁设计的意义

单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC 卡、电子宠物等,这些都离不开单片机。以前没有单片机时,这些东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且成本高,并且由于长期使用,元器件不断老化,控制的精度自然也会达不到标准。在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了,且容易升级改善。而电子密码锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。大大提高了主人物资的安全性,安全可以代替老式机械锁。目前使用的密码锁种类繁多,各具特色。本文从经济实用的角度出发,采用AT89C51单片机,研制了一款具有防盗自动报警功能的电子密码锁。该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁

要求,具有一定的推广价值。

2.单片机AT89C51的简单介绍

2.1单片机的大概构造

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器。主要特性:

?与MCS-51 兼容

?4K字节可编程闪烁存储器

?寿命:1000写/擦循环

?数据保留时间:10年

?全静态工作:0Hz-24MHz

?三级程序存储器锁定

?128×8位内部RAM

?32可编程I/O线

?两个16位定时器/计数器

?5个中断源

?可编程串行通道

?低功耗的闲置和掉电模式

?片内振荡器和时钟电路

2.2管脚说明

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 /INT0(外部中断0)

P3.3 /INT1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通)

P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

3.设计目标及要求

3.1目标

AT89C51单片机P1引脚外接独立式按键S1-S8,分别代表数字键0-5、确定键、取消键。单片机从P3.0-P3.3输出4个信号,分别为1个电磁开锁驱动信号和密码错误指示、报警输出、已开锁指示信号,分别用发光二极管L1-L4指示。P3.4接一有源蜂鸣器,用于实现提示音。

3.2设计基本要求

(1)初始密码为123450,输完后按确定键开锁,取消键清除所有输入,每次按键有短“滴”声按键提示音。

(2)密码输入正确后,输出一个电磁锁开锁信号与已开锁信号,并发出两声短“滴”声提示。4秒后开锁信号与已开锁指示清零。

(3)密码输入错误时,发出一声长“滴”声错误指示提示音,并密码错误指示灯亮,三次密码错误时,发出长鸣声报警,并密码错误指示灯亮,报警指示灯亮,此后15秒内无法再次输入密码,15秒过后,清除所有报警和指示。

(4)5秒内无任何操作后,清除所有输入内容,等待下次输入。

4.硬件设计

根据题目的要求,需要考虑如下几个任务:按键的输入,密码的判断,密码输入正确或错误的计时、输出信号的控制等。

4.1键盘的输入

由于需要输入6个数字作为密码,先要判断按键时数字键还是功能键,若判断为数字键按下,则需要将每次键盘的输入内容依次暂存在一个数组中。在每次按键输入时,需要启动定时器实现待机计时(5秒)。若5秒内没有输入内容则清除已输入的内容。

4.2密码的判断和计时

在按下确认键之后,要将输入的内容与初始密码核对,如果密码正确,输出相应的指示。如果密码错误,错误计数变量增1,同时输出密码指示信号,若错误次数超过3次,则输出报警等信号,同时启动定时器实现15秒的计时。

4.3输出信号的控制

主要根据按键输入与密码的核对情况来决定。

4.4外围电路的选择与设计

采用MCS51系列单片机AT89C51作为主控制器,外围电路器件包括数码管驱动、蜂鸣器的输出驱动、独立式键盘以及发光二极管的输出等。

数码管驱动采用2个四联共阴极数码管显示,由于单片机驱动能力有限,采用74HC244作为数码管的驱动。在74HC244的7段码输出线上串联100欧姆电阻起限流作用。

蜂鸣器的驱动采用PNP三极管8550来驱动,低电平有效。

独立式按键使用上提拉电路连接,在没有键按下时,输出高电平。发光二极管串联500欧姆电阻再接到电源上,当输入为低电平时,发光二极管导通发光。

4.5整体电路图如下

5.软件设计

5.1程序流程图

分析软件任务要求,写出程序设计思路,分配单片机内部资源,画出程序流程图如下:

5.2软件任务要求

软件任务主要包括按键、密码输入及判断、数码管显示、计时、指示信号输出以及蜂鸣器提示音的输出等。

5.3程序的设计

程序分为主程序和中断服务程序两个主要部分。

(1)主程序完成变量和单片机特殊功能寄存器的初始化后,进入一个循环结构。在循环中,首先判断有无按键按下,若有按键则判断是否数字键还是功能键,根据按键的情况执行相应的功能。然后根据密码是否正确的判断情况,执行相应的操作。循环中最后将需要显示的内容通过动态扫描在数码管上显示。

(2)中断服务程序只要实现三个状态的计时,待机时需要计时5秒,密码正确需要计时5s,密码3次输入错误需要计时15秒。当前处于何种计时,由主程序根据密码判断结果来决定。

6.程序调试

6.1KEIL C51的大致简介

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

6.2C51工具包的整体结构

uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

6.3程序调试界面

7.总结

实践是检验真理的唯一标准,当然也是检验学习成果的标准。在经过一段时间的学习之后,我们需要了解自己的所学应该如何应用在实践中,因为任何知识都源于实践,归于实践,所以要将所学的知识在实践中来检验。

在做设计写论文期间,我遇到了好多问题,比如:程序总是出现错误,电路图画不出来,程序加载进去,不能运行,或者运行出错。但是在周围同学的帮助下,这些问题都得到了解决。由于对知识的不了解,许多地方不是很懂,需要通过其他同学和老师的指点才能明白。感谢周围同学的大力帮助还有老师的谆谆教导,才使我完成此次的结课论文。

通过这次的设计,我得到了许多宝贵的经验。经验如下:思想上,学会了用坚持不懈的精神去解决问题,很多事情看起来很简单,但实际做起来会发现有许多很困难。中间有许多你想不到的东西。学习上,使自已在大学所以的知识在这次得到实践,学到一些书本上无法学到的经验,对电子元件有了进一步的认识。同时,也明白了知识是需要实践的,很多你能说出来的东西,但是在实际应用的时候,并不是那么顺利。所以以后,我们要注重理论与实践的结合。

这次设计把我们这一学期的知识基本上都包括了,前期学的一些关于电路图的基本知识,包括数码管的极性以及显示的原理,还有各个器件的名称,还有一些基本画法,器件的排布等等。以及后面老师讲的编程,还有生成hex文件,然后加载到仿真软件中运行,这些在设计中都有用到。并且通过此次设计,我们对这些知识的记忆更加深刻,之前掌握不太好的现在也能熟练运用了。

参考文献

【1】林立,张俊亮.单片机原理及应用——基于proteus和keil(第3版)【M】北京:电子工业出版社

【2】程国钢,杨后川.proteus原理图设计与电路仿真【M】北京:电子工业出版社

【3】 PROTEL99 SE电路设计与制板【M】机械工业出版社

【4】杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践)【J】电子工业出版社

附录

#include"reg51.h"

#include"main.h"

unsigned int Time_Num=0;

unsigned char Dis_Time=0;

unsigned char Key_Time=0;

unsigned char Key_down=0;

unsigned char Key_Enter=0;

unsigned char Esc_Enter=0;

unsigned char pass_flag=0;

unsigned char error_flag=0;

unsigned char Key0_num=0;

unsigned char Key1_num=0;

unsigned char Key2_num=0;

unsigned char Key3_num=0;

unsigned char Key4_num=0;

unsigned char Key5_num=0;

unsigned char Enter_num=0;

unsigned char Esc_num=0;

void main(void)

{

timer0_init();

Home_data();

while(1)

{

if((0==pass_flag)&&(0==error_flag))Key_import();

if(1==pass_flag)

{

Relay_Open=0;

Pw_Error=0;

if(Time_Num>2000)

{

Time_Num=0;

Relay_Open=1;

Pw_Error=1;

pass_flag=0;

Home_data();

}

}

if(1==error_flag)

{

Open_Lock=0;

Alarm_Out=0;

if(Time_Num>7500)

{

Time_Num=0;

Open_Lock=1;

Alarm_Out=1;

error_flag=0;

Home_data();

}

}

if((Time_Num>2500)&&(0==error_flag)&&(0==pass_flag))

{

Time_Num=0;

pass_flag=0;

error_flag=0;

Key_down=0;

Key_Enter=0;

Esc_Enter=0;

Home_data();

}

}

}

void timer0_init(void)

/*****************定时器0初始化函数***********************/ {

TMOD=0x01; //定时器0工作在方式1

TH0=0xF8; //仿真测试约2ms的定时

TL0=0xCD; //仿真测试约2ms的定时

EA=1; //开总中断

ET0=1; //开定时器0中断

TR0=1; //定时器0开始工作

}

void Key_import(void)

{

if(Key_Time>10)

{

Key_Time=0;

if(P1!=0xFF)

{

if(0==Key0)

{

Key0_num++;

if(Key0_num>1)Audio_out=0;

if(Key0_num>2)

{

while(0==Key0);

Key_down++;

if(Key_down>6)Key_down=8;

Time_Num=0;

Audio_out=1;

Display_Code[Key_down]=Led_Seg_Code[0];

Key0_num=0;

}

}

if(0==Key1)

{

Key1_num++;

if(Key1_num>1)Audio_out=0;

if(Key1_num>2)

{

while(0==Key1);

Key_down++;

if(Key_down>6)Key_down=8;

Time_Num=0;

Audio_out=1;

Display_Code[Key_down]=Led_Seg_Code[1];

Key1_num=0;

}

}

if(0==Key2)

{

Key2_num++;

if(Key2_num>1)Audio_out=0;

if(Key2_num>2)

{

while(0==Key2);

Key_down++;

if(Key_down>6)Key_down=8;

Time_Num=0;

Audio_out=1;

Display_Code[Key_down]=Led_Seg_Code[2];

Key2_num=0;

}

}

if(0==Key3)

{

Key3_num++;

if(Key3_num>1)Audio_out=0;

if(Key3_num>2)

{

while(0==Key3);

Key_down++;

if(Key_down>6)Key_down=8;

Time_Num=0;

Audio_out=1;

Display_Code[Key_down]=Led_Seg_Code[3];

Key3_num=0;

}

}

if(0==Key4)

{

Key4_num++;

if(Key4_num>1)Audio_out=0;

if(Key4_num>2)

{

while(0==Key4);

Key_down++;

if(Key_down>6)Key_down=8;

Time_Num=0;

Audio_out=1;

Display_Code[Key_down]=Led_Seg_Code[4];

Key4_num=0;

}

}

if(0==Key5)

{

Key5_num++;

if(Key5_num>1)Audio_out=0;

if(Key5_num>2)

{

while(0==Key5);

Key_down++;

if(Key_down>6)Key_down=8;

Time_Num=0;

Audio_out=1;

Display_Code[Key_down]=Led_Seg_Code[5];

Key5_num=0;

if(Key_down>6)Key_down=6;

}

}

if(0==Enter)

{

Enter_num++;

if(Enter_num>1)Audio_out=0;

if(Enter_num>2)

{

while(0==Enter);

Key_down++;

if(Key_down>6)Key_down=8;

Time_Num=0;

Audio_out=1;

Key_Enter=1;

Enter_num=0;

}

}

if(0==Esc)

{

Esc_num++;

if(Esc_num>1)Audio_out=0;

if(Esc_num>2)

{

while(0==Esc);

Time_Num=0;

Key_down++;

if(Key_down>6)Key_down=8;

Audio_out=1;

Esc_Enter=1;

Esc_num=0;

}

}

}

if((1==Key_Enter)&&(0x40!=Display_Code[6]))

{

if((0x06==Display_Code[1])&&(0x5b==Display_Code[2])&&(0x4f==Displ ay_Code[3])&&(0x66==Display_Code[4])&&(0x6d==Display_Code[5])&&(0x3f= =Display_Code[6]))

{

pass_flag=1;

Time_Num=0;

Key_down=0;

Key_Enter=0;

Esc_Enter=0;

Display_Code[0]=0x73;

Display_Code[1]=0x40;

Display_Code[2]=0x40;

Display_Code[4]=0x40;

Display_Code[5]=0x40;

Display_Code[6]=0x40;

}

else

{

error_flag=1;

Time_Num=0;

Key_down=0;

Key_Enter=0;

Esc_Enter=0;

Display_Code[0]=0x79;

Display_Code[1]=0x40;

Display_Code[2]=0x40;

Display_Code[3]=0x40;

Display_Code[4]=0x40;

Display_Code[5]=0x40;

}

}

if(1==Esc_Enter)

{

Key_down=0;

Key_Enter=0;

Esc_Enter=0;

Home_data();

}

}

}

void Home_data(void)

{

unsigned char Home_temp=0;

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

Display_Code[Home_temp]=Home_Code[Home_temp];

}

void timer0_interrupt(void) interrupt 1

/*****************定时器0中断函数***********************/ {

TH0=0xf8; //仿真测试约2ms的定时

TL0=0xCD; //仿真测试约2ms的定时

Time_Num ++;//定时器计数标志自增

if(1==pass_flag)

{

if((Time_Num>0)&&(Time_Num<500))

if((Time_Num>500)&&(Time_Num<1000))

{Display_Code[7]=0x4f;Audio_out=1;}

if((Time_Num>1000)&&(Time_Num<1500))

{Display_Code[7]=0x5b;Audio_out=0;}

if((Time_Num>1500)&&(Time_Num<2000))

{Display_Code[7]=0x06;Audio_out=1;}

}

if(1==error_flag)

{

if((Time_Num>0)&&(Time_Num<500))

{Display_Code[6]=0x06;Display_Code[7]=0x6d;Audio_out=0;} if((Time_Num>500)&&(Time_Num<1000))

{Display_Code[6]=0x06;Display_Code[7]=0x66;}

if((Time_Num>1000)&&(Time_Num<1500))

{Display_Code[6]=0x06;Display_Code[7]=0x4f;}

if((Time_Num>1500)&&(Time_Num<2000))

{Display_Code[6]=0x06;Display_Code[7]=0x5b;}

if((Time_Num>2000)&&(Time_Num<2500))

{Display_Code[6]=0x06;Display_Code[7]=0x06;}

if((Time_Num>2500)&&(Time_Num<3000))

{Display_Code[6]=0x06;Display_Code[7]=0x3f;}

if((Time_Num>3000)&&(Time_Num<3500))

{Display_Code[6]=0x3f;Display_Code[7]=0x6f;Audio_out=1;} if((Time_Num>3500)&&(Time_Num<4000))

{Display_Code[6]=0x3f;Display_Code[7]=0x7f;}

if((Time_Num>4000)&&(Time_Num<4500))

{Display_Code[6]=0x3f;Display_Code[7]=0x07;}

if((Time_Num>4500)&&(Time_Num<5000))

{Display_Code[6]=0x3f;Display_Code[7]=0x7d;}

if((Time_Num>5000)&&(Time_Num<5500))

{Display_Code[6]=0x3f;Display_Code[7]=0x6d;}

if((Time_Num>5500)&&(Time_Num<6000))

{Display_Code[6]=0x3f;Display_Code[7]=0x66;}

if((Time_Num>6000)&&(Time_Num<6500))

{Display_Code[6]=0x3f;Display_Code[7]=0x4f;}

if((Time_Num>6500)&&(Time_Num<7000))

{Display_Code[6]=0x3f;Display_Code[7]=0x5b;}

if((Time_Num>7000)&&(Time_Num<7500))

{Display_Code[6]=0x3f;Display_Code[7]=0x06;}

}

if((0==pass_flag)&&(0==error_flag))

{

if((Time_Num>0)&&(Time_Num<500))

{Display_Code[7]=0x6d;}

if((Time_Num>500)&&(Time_Num<1000))

{Display_Code[7]=0x66;}

if((Time_Num>1000)&&(Time_Num<1500)) {Display_Code[7]=0x4f;}

if((Time_Num>1500)&&(Time_Num<2000)) {Display_Code[7]=0x5b;}

if((Time_Num>2000)&&(Time_Num<2500)) {Display_Code[7]=0x06;} }

Key_Time ++;

P2=~(0x80>>Dis_Time);

P0=Display_Code[Dis_Time];

Dis_Time++;

if(Dis_Time>7)Dis_Time=0;

}

模块化

#ifndef __main_H__

#define __main_H__

#include

sbit Key0=P1^0;

sbit Key1=P1^1;

sbit Key2=P1^2;

sbit Key3=P1^3;

sbit Key4=P1^4;

sbit Key5=P1^5;

sbit Enter=P1^6;

sbit Esc=P1^7;

sbit Relay_Open=P3^0;

sbit Pw_Error=P3^1;

sbit Alarm_Out=P3^2;

sbit Open_Lock=P3^3;

sbit Audio_out=P3^4;

unsigned char Home_Code[8]={0x76,0x40,0x40,0x40,0x40,0x40,0x40,0x40}; unsigned char Display_Code[9]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; unsigned char code Led_Seg_Code[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x40,0x80,0x73,0x79,0 x76};//LED显示数组,分别是012345,"-",".","P","E","H",("P"是PASS。"E"是ERROR。"H"是主界面的意思HOME)

void timer0_init(void);

void Key_import(void);

void Home_data(void);

#endif

基于51单片机的无线电子密码锁课程设计[优质文档]

单片机课程设计报告书 基于89C51单片机 课题名称 无线电子密码锁的设计姓名刘武 学号131220330 学院通信与电子工程学院 专业电子信息工程 指导教师祝秋香讲师 2015年12月20日

基于89C51单片机无线电子密码锁的设计 1 设计目的 (1)了解MCS-51单片机使用方法和熟悉蓝牙模块; (2)掌握AT89C51芯片的使用方法及蓝牙模块的连接与使用; (3)熟悉单片机程序仿真软件Proteus的使用; (4)了解MCS-51单片机开发板工作原理以及芯片的组合; (5)熟悉无线电子密码锁的设计及实现。 2设计思路 2.1 选择设计电路 设计51单片机与蓝牙连接的电路。 2.2 所选设计电路的原因 (1)由于无线电子密码锁的设计需要用到蓝牙模块,用到的单片机资源并不是很多,而51单片机的资源有8位CPU、4KB的ROM、128B的RAM、2个16位定时/计数器、4组8位的I/O、1个串口和5个中断源,可以更有效率的利用到51单片机的资源。 (2)可现实无线功能的模块有:蓝牙模块、无线模块、红外遥控模块,因为相对之下,蓝牙模块更容易实现,更容易操作,最后选择蓝牙模块实现手机远程控制。 (3)为了提高效率,可以利用51单片机开发板的硬件,用LED灯模拟密码锁的开关,当LED灯亮起时代表锁已经开启,熄灭则代表密码锁被关闭。应用在实际中可用继电器替代LED的亮灭去控制强电开关。 3 设计过程 3.1 设计总框图 无线电子密码锁分为两个主要功能模块:51单片机模块,蓝牙实现模块。这两个模块共同工作完成本电路的功能实现。其中利用AT89C51芯片来实现51单片机模块功能,完成数码管、发光二极管的实现,同时利用HC06蓝牙模块来

电子密码锁设计报告概要

课程设 计说明 学生姓名: 学 号: 指导教师: 2013年05月17日 课程名称: 《单片机技术》 设计题目: 基于51单片机的电子密码锁 院(部): 电子信息与电气工程学院 专业班级: 12通信工程(专升本) 马亚林 丁莹亮

课程设计任务书 设计要求: 设计以单片机AT89C51为核心的电子密码锁,包括电子密码锁完整的设计过程以及外围的开锁电路和报警电路的设计。 电子密码锁要完成以下部分的设计:按键接口电路、电子密码锁的控制电路、输出八段显示电路。 电子密码锁控制电路能完成以下功能设计:数字按键的数字输入、存储和清除、功能按键的功能设计、密码的清除和复位、报警信号产生电路密码核对、解除电锁电路、输出八段显示电路完成以下电路设计:数据选择电路、八段显示器扫描电路。 学生应完成的工作: 1.运用Proteus软件设计电路原理图; 2.用Proteus软件进行仿真; 3.焊接电路板并调试实现其功能; 4.完成实习报告; 5.我的任务是设计电路原理图并仿真。 参考文献阅读: [1]杜尚丰.CAN总线测控技术及其应用.北京:电子工业出版社,2007.1 [2]杜树春.单片机C语言和汇编语言混合编程实例详解.北京:北京航空航天大学出版社,2006.6 工作计划: 2013.5.6熟悉课题并查阅相关资料,同时消化吸收资料内容; 2013.5.7―― 2013.5.8 根据设计题目确定硬件设计方案,并交与指导老师修改; 2013.5.9 ―― 2013.5.10 开始着手课题的软件设计,与指导老师进行沟通; 2013.5.13申请领用元器件; 2013.5.14―― 2013.5.17 进行实物制作,并撰写课程设计报告。 任务下达日期:2013年5月6 日 任务完成日期:2013年5月17 日

密码锁课程设计

课程设计报告 课程设计题目:4位串行数字密码锁 学号 学生姓名:谢渊良 专业:通信工程 班级:1421302 指导教师:钟凯 2017年1月5日 1.摘要 随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未来使用的趋势。本设计使用EDA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。使用EDA环境完成电路的系统综合设计和仿真。用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁。本设计基于Verilog HDL 语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为键盘模块、连接模块、控制模块进行了介绍,给出各个模块的主要代码,在对各个模块的功能进行仿真。 关键字:密码锁 Verilog HDL 2.设计内容 设计一个4位数字密码锁子系统 1)1.2设计要求开锁密码为4位二进制,当输入密码与锁内给定的密码一致时,方可开锁。否则进入“错误”状态,发出报警信号。 2)锁内的密码可调。 3)串行数字密码锁的报警,直到按下复位开关,才停下。此时,数字密码锁又自动等待下一个开锁状态。 3.系统设计 本设计中,FPGA系统采用硬件描述语言Verilog按模块化方式进行设计,并用modersim软件对各个模块进行编写仿真。 3.1键盘模块 键盘电路理想接口图: Set

本模块采用2×2的扫描键盘电路,对输入信号进行采集,此模块的主要功能是每按下一个按键,flag产生一个矩形波,作为连接模块的触发信号。同时key_value值为所按下键的编码值,与flag一同传入连接模块。 实际设计接口图: 当输出kevalue:11值的时候,flag再次出现上跳沿。实际上,上面的图写的测试文件是有一点错误的,当a扫描到第三个值(01)时,b在实际电路中应该是01而不是11,此时根据程序flag应置为1,当然此时flag本来就是1,不会发生错误。在实际中,时钟频率跳的如此之快,人按一下按键的持续时间还是有的,所以flag应在按键按完后再下降下来。不然多出很多无用的矩形波,这个装置就没用了。 3.2连接模块 连接模块接口图: keyvalue 送入连接模块进行运算,当连续四个0和1键按下时,中,如果按下的是set键,则set置1,如果按下的是0键,则a_led置1,若是1键,则b_led 置1。 这里有一个需要注意的点是,当第一次按了0键后马上按reset键,再按一下1键时,a的值是1,而不是0。每次按了reset或set,a,b,c,d都是要重新赋值的,这才符合实际情况。 3.3控制模块: 因为这个密码锁是循环使用的,就一定有不同的状态。这里采用有限状态机的方法进行设计。所以把开锁过程分为三个部分: 1.等待输入状态; 2.重设密码状态; 3.输出结果状态; 状态转换图如下所示: 控制模块接口图: flag2 ena

电子密码锁的设计与制作

天津大学网络教育学院 专科毕业论文 题目:电子密码锁的设计与制作 完成期限:2016年1月8日至 2016年4月20日 学习中心:嘉兴 专业名称:电气自动化技术 学生姓名:张伟强 学生学号:132092433077 指导教师:刘斌

电子密码锁的设计与制作 第1章方案选择和总体设计 1.1 国内外现状 目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。但在使用中暴露了很多缺点:一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。据统计,每4000把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。二是钥匙一旦丢失,无论谁捡到都可以将锁打开。三是机械锁的材料大多为黄铜,质地较软,容易损坏。四是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。由于人们对锁的安全性,方便性等性能有更高的要求,许多智能锁(如指纹辨别、IC卡识别)也相继问世,但这类产品的特点是针对特定指纹或有效卡,但能适用于保密要求高且仅供个别人使用的箱、柜、房间,其成本一般较高,在一定程度上限制了这类产品的普及和推广。 随着人们生活水平的提高,电子密码防盗锁作为防盗卫士的作用日趋重要。电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。根据国外的统计资料显示,装有电子防盗装置的商业区或居民区盗窃犯罪率平均下降30%左右。目前西方发达国家已经大量地应用这种智能门禁系统,但在我国的应用还不广泛,成本还很高。 1.2设计目标 利用51系列单片机为核心,采用矩阵键盘作为数字输入;6位数字密码显示;可重新设置新密码,EPROM存储密码,掉电不丢失;当输入密码与存储密码一致时,开锁,并响音乐,若连续三次输入错误,则报警灯亮并且蜂鸣器响。

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

渝州科技职业学院 电子密码锁 院系:电子信息工程学院 专业班级: 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输入密码。密码输完后按下确认键,如果密码输入正确

密码锁-单片机课程设计

1 绪论 随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。电子锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性和方便性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点随着人们对安全的重视和科技的发展,对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。具有报警功能的电子密码锁保密性高,使用灵活性好,安全系数高,密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有推广价值。电子密码锁采取电子电路控制,通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务。 本次设计使用AT89S52单片机构成最小系统,接以键盘,报警系统,液晶显示构成人性化的方便易用的电子密码锁。

2 设计任务、功能要求说明及总体方案介绍 2.1 设计目的与任务 本设计采用AT89S52单片机为主控芯片,结合外围电路矩阵键盘、液晶显示器LCD 1602A等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,组成的电子密码锁系统。 2.2 设计内容及要求 (1)课程设计中,锁体用LED代替(如“绿灯亮”表示开锁,“红灯亮”表示闭锁)。 (2)其密码为方8位十进制代码(代码自设定)。 (3)开锁指令为串行输入码,当开锁密码与存储密码一致时,锁被打开。当开锁密码与存储密码不一致时,电路则报警并实现自锁。(报警动作为响1分钟,停10秒) (4)选择电路方案,完成对确定方案电路的设计。计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。安装调试设计电路,查阅至少5篇参考文献。按《湖南工学院课程设计工作规范》要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。 2.3 设计总体方案及工作原理说明 采用以单片机AT89S52为核心的控制方案,总体框图见图1。 单片机作为本装置的核心器件,在系统中起到控制声光报警、以及数码动态显示的作用。一般来说在选择单片机时下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机AT89S52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O 端口,以及控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接加

电子密码锁总体设计方案

电子密码锁设计 一、目标 1、任务和目标 本项目设计一种基于AT89C51单片机控制的电子密码锁,要求达到以下任务目标: (1)可通过键盘输入密码控制开关的开锁和闭锁; (2)可通过扩展的LCD显示器显示输入的密码; (3)密码可以多次改写和重置; (4)连续三次输入密码错误,报警装置开始工作,密码锁进入锁机状态。 2、功能需求简述

二、详细设计方案的选择及设计思路概述 1、设计方案的选择 本次设计的密码锁在理论上可以利用多种设计方法及原理进行设计,依据设

计的简单、高效、易于实现等原则,主要有两种设计方案可供选择,即:数字电路控制和以AT89C51为核心的单片机控制两种方案。现在对其两种方案进行可行性对比分析。 方案一:采用数字电路控制。其原理图下图1所示。 图1 数字密码锁电路方案 电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。 采用数字密码锁电路的好处就是设计简单。用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入。密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。 方案二:采用一种是用以AT89C51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加多组密码设置、报警提示等控制功能。其原理如下图2所示。

电子密码锁课程设计

目录 摘要 本次课程设计的题目是电子密码校验设计,由输入密码、设定密码、寄存电路、比较电路、显示电路、修改密码等模块组成。 该电子密码锁利用数字逻辑电路,实现对锁的电子控制,突破了传统的机械锁的单一性、保密性低、易撬性的缺点,数字电子密码锁具有保密性高、使用灵活性好、安全系数高的优点。

主要工作部分是将输入密码与正确密码进行比较,密码正确时绿色发光二极管亮,密码错误则红色发光二极管亮。输入电路将6位密码并行输入,密码是否相等利用与非门将输入的密码和预定密码进行比较,当相等时便触发绿色发光二极管,不相等则作用到红色发光二极管和蜂鸣器。 1.设计目的 本课程为电子、通信类专业的独立实践课,该课程设计建立在电路基础、低频与高频电子线路等课程的基础上,主要让学生加深对电子线路理论知识的掌握,使学生能把所学的知识系统地、高效地贯穿到实践中来,避免理论与实践的脱离,同时提高学生的动手能力,并在实践中不断完善理论基础知识,有助于培养学生综合能力。 2.设计要求 1)要求电子器件设计制作密码锁的控制电路,使之在输入正确的代码时,输出信号以 启动执行机构动作,并且用红、绿LED指示关锁、开锁状态。 2)密码锁控制器中存储一个4位代码,当开锁按钮开关设置9位,其中只有4位有效) 的输入代码等于存储代码时启动开锁控制电路,并且用绿灯亮、红灯灭表示开锁状态。 3)从第一个按钮触动后的5秒内若未能将锁打开,则电路自动复位并由扬声器发出 20秒的报警信号,同时用绿灯灭、红灯亮表示关锁状态。 4)要求性能可靠、操作简便。 5)密码锁控制器中存储的4位密码可以修改。 3.方案选择 第一方案555集成电路构成的密码锁电路 图3-1555时基集成电路组成的电子密码锁电路

数字密码锁设计

数字密码锁设计 一、设计任务与要求 设计由编码器、集成逻辑门电路、声光报警指示电路构成的密码锁电路,研究门电路的接口与驱动技术、学习组合逻辑电路的设计方法;用Proteus 软件仿真;实验测试逻辑功能。具体要求如下: (1)密码锁电路由密码输入电路、密码设置电路和密码控制电路组成,密码输入及密码设置均采用十进制数形式,密码输入通过键盘或按键输入。密码设置通过开关输入。 (2)如果输入的密码与预先设定的密码相同,则保险箱被打开,密码控制电路的输出端E =1,F=0;否则电路发出声、光报警信号,即输出端E=0,F=1。 (3)实验时,“锁被打开”的状态可用绿色发光二极管指示;声、光报警可分别用红色发光二极管及蜂鸣器指示。 (4)写出设计步骤,画出最简的逻辑电路图。 (5)对设计的电路进行仿真、修改,使仿真结果达到设计要求。 (6)安装并测试电路的逻辑功能。 (7)拓展内容:如果考虑一个开锁用的钥匙插孔输入端G,当开锁时(G=1),密码输入才有效,试在上述电路基础上修改该电路。 二、课题分析及设计思路 (1)密码输入电路及密码设置电路的设计思路 由于密码输入及密码设置均采用十进制数形式,故可利用8421BCD 码编码器分别实现,以一位密码输入及密码设置为例,其实现框图如下: 图1 密码输入及密码设置电路的实现框图 (2)密码控制电路的设计思路 分析以上设计任务与要求,密码控制电路的实现框图如下:

图2 密码控制电路实现框图 很容易得到:)()()()(1111D D C C B B A A F E ⊕?⊕?⊕?⊕== 由上述逻辑表达式可确定相应的逻辑电路图。 (3)TTL 集成门电路与LED 发光二极管的接口电路设计 TTL 集成门电路除了可驱动门电路外,还能驱动一些其它器件如LED 发光二极管。以集成反相器为例,有如下两种情况如图3(a )、(b)所示: 图3(a ) 输出高电平时LED 亮 图3 (b) 输出低电平时LED 亮 电路中串接的电阻R1、R2 为限流电阻,其作用是保护LED 因过流而烧坏。其大小按如下公式进行选择: D F OH I V V R -=1 D OL F CC I V V V R --=2 上述两式中,I D 为LED 正常发光时的电流,V F 为LED 导通电压,V OH 、V OL 分别为反相器的高、低电平输出电压。如I D =5mA ,V F =2.2V ,V OH =3.4V ,V OL =0.2V 时,算得R1=240欧,R2=520 欧。 注意:① 图3(a )接法时,发光二极管的电流不能超过门电路的“最大拉电流”,图3(b) 接法时,发光二极管的电流不能超过门电路的“最大灌电流”,否则会导致输出电平的 混乱。当然,如果该门电路处于整个逻辑电路的最末端,则发光二极管的电流可不受此限制。

EDA电子密码锁设计报告

- -- 目录 摘要: .................................................................. 错误!未定义书签。第一章:系统设计总述 ................................................................ - 1 - 1.1设计要求....................................................................... - 1 - 1.2 设计方案...................................................................... - 1 - 第二章:总体程序设计 ................................................................ - 2 - 2.1整体组装设计原理图 ......................................................... - 2 - 2.2 顶层模块程序调用 ........................................................... - 3 - 2.2.1程序部分............................................................... - 3 - 2.2.2 整体原理文件......................................................... - 4 - 第三章:单元模块程序设计........................................................... - 5 - 3.1 输入模块...................................................................... - 5 - 3.1.1 输入模块程序 ....................................................... - 5 - 3.1.2输入模块元件 ......................................................... - 6 - 3.1.3输入模块仿真 ......................................................... - 7 - 3.2 电子密码锁系统控制模块.................................................. - 7 - 3.2.1控制模块程序 ......................................................... - 8 - 3.2.2控制模块元件 ........................................................ - 10 - 3.2.3控制模块仿真 ........................................................ - 11 - 3.3显示模块...................................................................... - 11 - 3.3.1显示模块元件 ........................................................ - 14 - 3.3.2显示模块仿真 ........................................................ - 15 - 第五章:收获与体验 .................................................. 错误!未定义书签。参考文献................................................................ 错误!未定义书签。- .

电子密码锁设计方案

密码锁设计方案 第一部分:课题背景描述 ●课题来源: 课题思路来源于本次大赛的参考题目 ●市场分析: 电子密码锁是一种通过单片机来控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。 ●国内外研究现状 在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。电子密码锁特点如下:保密性远远大于弹子锁。随机开锁成功率几乎为零。 密码可变。用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。 误码输入保护。当输入密码多次错误时,报警系统自动启动。 4. 电子密码锁操作简单易行,一学即会。 另外,随着科学技术的发展,用户在生活中需要使用的锁类越来越多,电子密码锁能为用户提供安全无忧的服务,因此市场前景十分广阔。 第二部分:功能描述 本项目设计一种基于STC90C52单片机控制的电子密码锁,具有如下功能:

①可通过薄膜键盘输入密码控制开关的开锁和闭锁 ②可通过扩展的LED显示器显示输入的密码 ③密码可以多次改写和重置 ④连续三次输入密码错误延迟10秒钟后,声光报警装置工作 第三部分:可行性分析 ●设计思路: 本课题选用以STC90C52单片机为核心,辅以扩展的薄膜按键键盘以及LED显示模块组成完整的系统。通过键盘采集输入的信息,与单片机内的储存值比较,如果密码正确,则开锁电路打开,并且绿灯亮;如果密码错误,则报警电路的红灯电路打开,若连续三次输入密码错误,声光电路打开,红灯闪烁;在以上工作的同时显示电路工作,同步显示输入数值,具有较高的安全性。 关键词:STC90C52、电子密码锁、7805、12864、薄膜矩阵键盘、数码管动态显示、声光显示。 ●应用的技术分析: 本课题的实现,需要使用到以下关键技术: ①基于STC90C52单片机简单设计及外围扩展电路 ②键盘输入及单片机间的数据传输 ③LED显示技术、动态输出及单片机间的数据传输 ●设计者当前已具备的技术条件: ①课题组成员都参阅过相关的51单片机开发方面的书籍,熟悉Altium Designer Winter 09电路设计,有一定的项目开发及电路设计基础。 ②课题组成员系统学习过基于Keil C51,对C语言函数库的调用有一 定的了解,具备C语言程序设计开发基础。

简易电子密码锁课程设计

江西理工大学应用科学学院 微机控制系统课程设计报告 题目:简易电子密码锁 姓名: 学号: 专业班级: 指导教师: 完成时间: 设计报告综合测试平时总评 格式(10分) 内容 (10分) 图表 (5分) 功能测试 (35分) 答辩 (20分) 考勤 (20分)指导教师签名:

目录 摘要.................................................... - 1 - 第一章系统概述.. (2) 第二章基本功能设计.................................... - 3 - 2.1 实验任务........................................ - 3 - 2.2 基本设计要求.................................... - 3 - 2.2.1 基本要求.................................. - 3 - 2.2.2发挥部分 .................................. - 3 - 2.3 主要元件介绍 (3) 2.3.1 P89C51芯片 (3) 2.4 系统框图 (5) 第三章硬件设计 (5) 3.1 硬件电路的设计 (5) 3.1.1 硬件工作接线口 (5) 3.1.2 LED显示器结构与原理 (5) 3.1.3 复位电路 (7) 3.1.4 振荡电路 (7) 3.1.5 按键设置 (8) 3.1.6 报警器和发光二极管 (9) 3.2 硬件电路图 (9) 第四章软件设计 (11) 4.1 系统软件设计 (11) 4.1.1密码开锁功能 (12) 第五章系统PROTUSE仿真图 (13) 第六章设计总结 (16) 参考文献 (17) 附录 (18)

密码锁设计方案

密码锁设计方案 第1章绪论 1.1课题背景 密码锁是锁的一种,开启时用的是一系列的数字或符号。密码锁的密码通常都只是排列而非真正的组合。部分密码锁只使用一个转盘,把锁内的数个碟片或凸轮转动;亦有些密码锁是转动一组数个刻有数字的拨轮圈,直接带动锁内部的机械。 此单片机设计(密码锁)是一种能防止多次探密码的基于单片机的密码锁设计方案,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择,硬件设计,软件流程图,汇编语言源程序等内容。密码锁应用非常广泛,如生活中的密码箱等;到取款机取款时插入卡后要输入个人设定的密码;银行里的密码柜,再比如核武器在发射时也有密码的等等。 很多行业的许多地方都需要密码锁,但普通密码锁的密码容易被多次试探而破译。我们的设计给出了一种能防止多次试探密码的密码锁设计方法,利用单片机控制。因为单片机不但具有体积小,成本低,控制灵活,便于产品化等特点,而且单片机具有新的发展,具体主要体现在单片机片内资源越丰富,用它构成的单片机控制系统的硬件开销就会越少,产品的体积和可靠性就会越高,所以,使用单片机系统控制密码锁,体积小,成本低,控制灵活,便于产品化,可以防止多次试探,从而有效地克服了上述缺点。 1.2本设计课题的研究现状 随着电子技术的发展单片机功能的增强,出现了带微处理器的智能密码锁,它除了具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性。目前发达国家已经大规模地应用智能门禁系统,可以通过多种更加安全,更加可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,主要出现在保险柜、密码箱、高级宾馆等场所,家居用的较少,究其原因,我认为有以下几点: (1)价格原因 (2)厂商的推广力度不够。

电子密码锁设计报告概要

课程设计说明 书 课程名称:《单片机技术》设计 题目:基于51单片机的电子密码锁 院(部):学生姓名:电子信息与电气工程学院 马亚林 学号: 专业班级:指导教师:12 通信工程(专升本) 丁莹亮 2013 年05月17日

设计题目 课 程 设 计 任 务 书 基于 51 单片机的电子密码锁 学生姓名 设计要求: 12 通信工程(专 升本) 设计以单片机 AT89C51 为核心的电子密码锁,包括电子密码锁完整的设计过程以及外围 的开锁电路和报警电路的设计。 电子密码锁要完成以下部分的设计:按键接口电路、电子密码锁的控制电路、输出 八段显示电路。 电子密码锁控制电路能完成以下功能设计:数字按键的数字输入、存储和清除、功 能按键的功能设计、密码的清除和复位、报警信号产生电路密码核对、解除电锁电路、 输出八段显示电路完成以下电路设计:数据选择电路、八段显示器扫描电路。 学生应完成的工作: 1. 2. 3. 4. 5. 运用 Proteus 软件设计电路原理图; 用 Proteus 软件进行仿真; 焊接电路板并调试实现其功能; 完成实习报告; 我的任务是设计电路原理图并仿真。 参考文献阅读: [1] 杜尚丰. CAN 总线测控技术及其应用.北京:电子工业出版社,2007.1 [2] 杜树春.单片机 C 语言和汇编语言混合编程实例详解.北京:北京航空航天大学出版社,2006.6 工作计划: 2013.5.6 熟悉课题并查阅相关资料,同时消化吸收资料内容; 2013.5.7——2013.5.8 2013.5.9——2013.5.10 根据设计题目确定硬件设计方案,并交与指导老师修改; 开始着手课题的软件设计,与指导老师进行沟通; 2013.5.13 申请领用元器件; 2013.5.14——2013.5.17 进行实物制作,并撰写课程设计报告。 任务下达日期:2013 年 5 月 6 日 任务完成日期:2013 年 5 月 17 日 指导教师(签名): 学生(签名):王立斌 王立斌 所在院部 基于 51 单片机 的电子密码锁 专业、年级、 班

14位数字密码锁两种设计方案

设计方案 系统设计方案 利用所学的电子技术知识和电子设计方法,设计出一个电子密码锁有以下两种基本方案可以选择: 方案一:利用数字逻辑电路,运用各种门电路,计数器,触发器,锁存器,编/译码器等数字逻辑器件实现电子控制。从而实现想要设计的电子密码锁的功能。此方法设计简单,但硬件电路比较多,操作起来比较复杂。 方案二:使用MCS-51系列单片机为核心控制附加一些简单的外围电路,利用单片机的一个I/O端口组成4×4键盘作为输入电路,采用汇编语言编写程序来实现电子密码锁的各项功能,程序语言功能强大,调试较为简单。具有很强的实用性。 设计方案选择 综上提出的两种方案,方案一给出的采用数字逻辑电路的设计方法的好处就是设计简单,因为采用数字逻辑电路可以分成各个功能模块来设计,每个模块实现各自的一个功能。这钟方法设计的密码锁电路大致包含:按键输入、密码核对、密码修改、开锁电路、错误提示电路等功能模块。采用数字电路虽然设计简单但是操作繁琐,要运用很多数字逻辑器件,硬件电路复杂,而且可能会出现较多器件故障,同时难以检查和维护。方案二提出的使用单片机为核心控制的方案,利用单片机丰富的I/O端口和灵活的编程设计,不但能实现密码锁的功能,而且控制准确性高,外围电路少硬件电路简单,方便灵活,调试简单不易出错,体积小成本低也利于现实中实现,具有较高的实际意义和实用价值。这个设计方案的最关键的地方就在于编程,利用程序的执行来实现密码锁的基本功能,因此单片机方案还有较大活动空间,能在很大程度上扩展功能,方便对系统进行升级。 针对第一种方案:系统vhdl设计 功能描述: 假设设计的密码锁有7个数据输入键,分别用K1到K7表示;一个“确认键”(按一下确认键,密码锁内部就产生一个正脉冲),用CLK_AFFIRM表示;一个“重置和修改密码使能键”,用S/W 表示;一个开锁状态指示灯GREENLED;一个密码输入错误报警器REDLED. 1.密码预置。未使用过的密码锁初始状态为“打开”,内部密码为随机数,故使用前必须进行密码 预置。通过按键将S/W调为“1”,密码锁进入密码预置模式,按照K1~K7→确认键→K1~K7→确认键的顺序输入想要设置的密码,其中K1~K7表示的意思是,给K1到K7赋值,赋值顺序可任意改变,但一旦按下确认键,K1到K7分别对应的数值便不可改变。整个过程中只要按下两次确认键,密码预置便成功完成。 2.密码验证。通过按键将S/W调为“0”,密码锁进入密码验证模式。按照K1~K7→确认键→K1~K7 →确认键的顺序输入密码,如果密码与预置的密码(如果修改过密码,则与最后一次修改成功后的密码)相匹配,开锁指示灯GREENLED变亮,同时锁子被打开。如果没反应,需要重新输入密码,但是输入密码的次数最多为3次,如果3次都输入了错误密码,那么错误报警器REDLED 就会报警,如果继续输入了正确密码,报警器就会解除警报。 3.密码修改。用户必须提供正确的密码后方能进入密码修改模式,否则,修改无效。如果用户通 过了密码验证,那么此时将S/W调为“1”便可顺利进入密码修改模式。修改密码过程与重置类

课程设计-密码锁

课程设计课程名称: 设计题目: 专业: 姓名: 学号:

一、设计内容和要求 题目:密码锁 该锁有4个密码拨动开关(设定0和1)来设置密码,一个开箱钥匙孔(能接通电池)。当用钥匙开箱时,如果输入的4位密码正确,箱被打开;否则,电路将发出警报(发光二极管亮表示)。要求锁的密码在第一次使用时能由用户自行进行一次性设定(机械方式)。 具体要求: 1)写出该组合逻辑电路的分析和设计方法; 2)画出电路原理图,标明要使用的芯片。 二、电路设计 1.题目分析 从题目要求来看,该密码锁必须具备以下几个条件: (1).所设置的密码必须为4位,例如1000。 (2).密码错误时,必须发出警报,此时二极管亮。 (3).可以进行密码设定。 2.设计思路 因为每一位密码只有两个状态,即0和1,因此可以用单刀双掷开关结合高低电平来实现密码的设定以及输入,而设定密码与输入密码的比对可以通过异或门来实现。具体可以是4个异或门连接输入端,然后与反向器相连接,再连接4输入与非门,最后连接一个开关,一个500欧姆的限流电阻,一个发光二极管。 3.具体电路 总电路图如下图所示:

开始的8个单刀双掷开关和VCC以及GND部分是密码的设定以及输入部分,期中J2-J5是密码的设定,J6-J9是密码的输入。开关拨到上输入1,开关拨到下输入为0。上图的设定密码为1010,此时输入密码也为1010,密码正确,因此发光二极管不亮。如果输入密码为1011,此时与设定密码不相符,就会发出警报,表现为二极管发光,如下图: 从图可以看出,二极管发出绿光,说明密码错误,需要重新输入。 开关J1与开箱钥匙孔相连接。当用钥匙开箱时,开关J1闭合,电路接通。 如果密码错误二极管就会发光。 4.电路分析 异或门电路的性质:两个引脚输入相同时输出为0,输入相异时输出为1。由此可知,如果设置密码与输入密码相同时,U9A的输出电平为低电平,因此发光二极管不发光。如果设置密码与输入密码不同,则U9A的输出电平为高电平,此时二极管发光。如果J1断开,即不用钥匙开箱,则无论输入是什么,都不可能发光。如果J1接通,即用钥匙开箱,则需要满足输入与设定不同是才会发光。 5.芯片需求 54LS86是一个有4二输入异或门的芯片,引脚图如下:

密码锁的研究与设计

《计算机控制技术》 学号: 201172020143 姓名: 张淑英班级: 电子信息工程一班 成绩: 评语: (考试题目及要求) 密码锁的研究与设计 通过对计算机控制课程的学习,结合课程中对单片机知识的复习以及对计算机控制的基本原理的理解,完成了该设计。该课程作业主要是对密码锁的研究与设计。本控制器AT89C51单片机为核心键盘、显示电路,输出控制电路,告警提示电路等构成。利用目前使用的微处理器AT89C51 作为控制元件设计了一种电子密码锁。其具有可设置多组密码、多次改写和保存密码的优点,克服了普通锁需要随身携带钥匙且易丢失、保密性差的缺点,在宾馆、办公大楼、 仓库、保险柜和家庭普遍适用。

目录 一、课题背景及意义....................................................................................... - 3 - 二、设计要求................................................................................................... - 4 - 三、设计思路及设计方案............................................................................... - 4 - (一)设计方案选择............................................................................... - 4 - (二)总体方案思路............................................................................... - 6 - (三)系统硬件设计............................................................................... - 6 - 1.键盘设计........................................................................................ - 6 - 2. LED显示设计.............................................................................. - 7 - 3.开锁电路........................................................................................ - 7 - 4.报警电路........................................................................................ - 8 - (四)软件设计....................................................................................... - 8 - 1.键盘的读取.................................................................................... - 8 - 2.LED显示程序............................................................................... - 9 - 3.密码比较和报警程序.................................................................... - 9 - 四、程序调试................................................................................................ - 11 - (一)KEIL C51简介 ........................................................................... - 11 - (二)调试过程..................................................................................... - 11 - 五、设计总结................................................................................................. - 12 - 参考文献......................................................................................................... - 13 - 附录................................................................................................................. - 14 -

相关文档
最新文档