基于单片机的电子密码锁电路设计.docx
- 文档编号:7252431
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:44
- 大小:260.11KB
基于单片机的电子密码锁电路设计.docx
《基于单片机的电子密码锁电路设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁电路设计.docx(44页珍藏版)》请在冰豆网上搜索。
基于单片机的电子密码锁电路设计
基于单片机的电子密码锁电路设计
王欢
(陕理工物理与电信工程学院电子信息科学与技术专业电信1202班,陕西汉中723001)
指导教师:
宋卫星
[摘要]设计了基于单片机的智能密码控制系统,对系统的硬件设计和软件实现进行了详细的描述。
本设计从经济实用的角度出发,采用美国Atmel公司的单片微型计算机STC89C51作为主控芯片与数据存储器单元,结合外围电路的键盘输入、LCD液晶显示、报警、开锁等,用C语言编写主控芯片的控制程序,实现了一款可通过程序多次更改密码,具有报警功能的电子密码控制系统。
经实验证明,该密码控制系统设计方法合理,简单易行,符合家庭、办公室的用锁要求,具有一定的应用价值。
[关键词]密码控制;单片机;报警
TheDesignofMiciocomputerControlElectronicLock
HuanWang
(Grade12,Class2,MajorElectronicInformationScienceandTechnology,PhysicsDept.,ShaanxiUniversityofTechnology,Hanzhong723000,Shaanxi)
Tutor:
WeixingSong
Abstract:
Thisintroducestheintelligentpasswordbasedonsinglechipcontrolsystem,thesystemhardwaredesignandsoftwareimplementationaredescribedindetail.Fromtheeconomicalpointofview,bytheUnitedStatesAtmel'sSTC89C51microcontrollerasthemasterchipandthedatamemoryunit,combinedwiththeexternalkeyboard,LCDliquidcrystaldisplay,alarm,unlock,usingClanguagemainchipofthecontrolprocedures,designedaprogrammanytimescanchangethepassword,thepasswordwiththealarmfunctionoftheelectroniccontrolsystem.Theexperimentprovedthatthepasswordcontrolsystemdesignisreasonable,simple,inlinewithhousehold,officelockrequestisworthusing.
Keywords:
Passwordcontrol,SCM,Alarm
引言
在安全技术防范领域内,具有防盗报警功能的电子密码控制系统逐渐代替传统机械式密码控制系统,克服了机械式密码控制系统的密码量少、安全性能差等缺点,使电子密码控制系统无论在技术上还是在性能上都有很大的提高。
随着大规模集成电路技术的迅速发展,特别是单片微型计算机的问世,出现了带微型处理器的智能密码控制系统,它除了具有传统电子密码控制系统的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码控制系统具有较高的安全性、可靠性,它的应用日益广泛。
电子密码控制系统是通过密码输入来控制电路或是芯片工作的,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
电子密码控制不论性能还是安全性都大大超过了机械类。
其特点如下:
(1)保密性能好,编码量多,远远大于机械控制。
随机开锁成功的概率几乎为零。
(2)密码可变,用户可以随时更改电子锁的密码,防止密码被盗,同时也可以避免因人员的更替而使控制的保密性下降。
(3)误码输入保护,当输入密码多次错误时,报警系统会自动启动。
(4)无活动零件,不会磨损,使用寿命长。
(5)灵活性好,不像机械锁必须佩带钥匙才能开锁。
(6)电子密码控制系统具有操作简单,一学即会的特点。
由于电子器件的限制,以前开发的电子密码控制系统,其种类不多,保密性差,最基本的就是仅仅依靠最简单的模拟电子开关来实现功能,制作简单但是很不安全,后来出现了基于EDA来实现的,其电路结构复杂,电子元件比较繁多,也有使用早先的20引脚的2051系列单片微型计算机来实现的,但密码简单,易破解。
随着电子元件的进一步发展,电子密码控制系统也出现了很多的种类,功能也日益增多,使用更加方便快捷,安全保密性更强,由以前的单密码输入发展到现在的密码加感应元器件,实现了更为真正的电子加密系统,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元器件的发展以及人们对保密性需求的提高出现了越来越多的电子密码控制系统。
由于数字、字符、图形图像、人体生物特征和时间等因素均可以成为电子信息,组合使用这些信息能使电子防盗密码控制获得更高的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗密码控制系统。
组合使用信息也能够使电子防盗密码控制系统获得无穷扩展的可能。
可以看出组合使用电子信息将是电子密码控制系统今后发展的一个趋势。
本设计采用单片微型计算机为主控芯片,结合外围的电路,组合成电子密码控制系统,采用0-9六位数字实现简单密码锁功能。
用户想要打开电子密码锁,必先通过提供的按键输入正确的密码才能开锁,密码输入错误有提示,为了提高安全性,当密码输入错误超过三次时,蜂鸣器报警并且锁定键盘。
1方案的比较与选择
1.1采用数字电路控制方案
用74LS112双JK触发器构成的数字逻辑电路作为密码控制系统的控制核心,一共设置九个键作为用户输入键,其中有效的密码按键只有四个,其它的按键作为干扰按键,如果按下的键为干扰按键,此时键盘输入电路将会自动清零,原先输入的密码将视为无效,需要再一次输入密码;如果用户在十秒内没有输入密码(正常情况下,输入时间不会超过十秒,如果用户觉得此设计不方便,可以对电路进行修改)电路将报警十五秒,若电路连续报警三次,电路将锁定键盘三分钟,防止他人非法操作。
采用数字电路设计方案时虽然设计简单,但控制的准确性和灵活性比较差[1]。
故不予采用。
1.2采用单片机控制方案
由于单片微型计算机种类繁多,各种型号都有一定的应用环境,因此在选用时要多加比较,合理选择单片机,才可获得最佳的性价比。
一般来说,在选取单片机时从下面几个方面考虑:
性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的,比如:
中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片微型计算机内有无时钟振荡器、有无上电复位功能等。
在开发过程中单片机还要受到:
开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。
基于以上因素本设计选用单片机STC89C51单片微型计算机作为本次设计的核心元件,利用单片微型计算机灵活的编程设计和其丰富的I/O端口,及其控制的准确性,实现基本的密码控制功能。
在单片微型计算机的外围外接输入按键电路,用于密码的输入和一些功能的控制,外接数码管显示器用于显示输入,提示密码锁状态的作用。
当用户需要开锁时,先按键盘的数字键0~9输入密码。
密码输完后按下确认键#,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警并且锁定键盘。
用户需要修改密码时,要在开锁的状态下,再次输入正确的密码并按下#键,此时听到两声提示,输入新的六位密码并按D键,再重复输入一次新密码并按D,会听到两声提示音,表示重设密码成功,内部保存新密码并存储[2]。
如两次输入的新密码不一样,则重设密码失败。
比较可以看出方案二的控制较灵活,准确性能好,并且保密性强还具有扩展功能,根据现实生活的需要本设计采用此方案。
2主要元器件简介
2.1主控芯片STC89C51
STC89C51单片微型计算机是低功耗、高性能CMOS8位微控制器,它有4K在系统可编程Flash的存储器,芯片图如下2.1所示。
在单芯片上,拥有灵巧的8位CPU,系统可编程Flash等功能,这使得STC89C51能为大部分嵌入式控制系统提供灵活、有效的服务。
STC89C51单片机具有以下标准功能:
4k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,2个16位定时器/计数器,一个六向量二级中断结构,全双工串行口。
另外STC89C51可降至0Hz静态逻辑操作,可选择节电模式,支持两种软件。
空闲的模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
在掉电保护的方式下,RAM内部内容就会被保存,继而冻结振荡器,单片机停止一切工作,一直到下一个中断到来或者硬件复位为止。
最高的运作频率为35Mhz,6T/12T可选。
STC89C51的主要功能:
1、兼容MCS51指令系统;2、4K反复擦写FlashROM;3、32个双向I/O口;4、256x8bit内部RAM;5、两个16位可编程定时/计数器中断;6、时钟频率为0~24MHz,7、两个串行中断;8、可编程UART串行通道;9、两个外部中断源;10、6个中断源,11、两个读写中断口线;12、三级加密位;13、低功耗空闲及掉电模式,14、软件设置睡眠及唤醒功能[3]。
2.2STC89C51的性能简介
2.2.1STC89C51引脚功能说明
①主电源引脚(两根):
VCC(Pin40):
电源输入,正5V电源接入;
GND(Pin20):
地线接入。
②外接晶振引脚(两根):
XTAL1(Pin19):
单片机内部振荡电路的输入端;
XTAL2(Pin20):
单片机内部振荡电路的输出端。
③控制引脚(四根):
RST/VPP(Pin9):
复位引脚,当引脚上出现两个机器周期的高电平时,单片微型计算机将复位;
ALE/PROG(Pin30):
地址锁存允许信号;
PSEN(Pin29):
外部存储器读选通信号;
EA/VPP(Pin31):
程序存储器的内外部选通,接入低电平从外部的程序存储器读指令,如果接高电平时则从内部的程序存储器读指令。
④可编程输入/输出引脚(三十二根):
STC89C51单片机有四组八位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有八位(八根引脚),共三十二根;
P0口(Pin39~Pin32):
8位双向I/O口线,名称是P0.0~P0.7;
P1口(Pin1~Pin8):
8位准双向I/O口线,名称是P1.0~P1.7;
P2口(Pin21~Pin28):
8位准双向I/O口线,名称是P2.0~P2.7;
P3口(Pin10~Pin17):
8位准双向I/O口线,名称是P3.0~P3.7;
频率35兆赫兹,6T/12T可供选。
最小系统包括单片机及所需必要电源、时钟、复位等各个部件,可使单片机一直处于正常运作状态。
电源、时钟等是单片机运行的必备条件,最小系统可作为应用系统的核心部分,通过对其进行存储器的扩展、A/D的扩展等,能使单片机完成较为复杂的功能[4]。
STC89C51是有ROM/EPROM的单片机,所以,这种芯片构成的最小系统简单且相对可靠。
当我们使用STC89C51单片机构成最小应用系统时,只需要将单片机接上时钟电路和复位电路,结构如下图2.2所示,由于受集成度的限制,最小应用系统只可用作于一些小型的控制单元。
2.2.2STC89C51芯片的内部结构
(1)时钟电路
STC89C51单片机时钟信号通常由两种方式形成:
一种是内部时钟方式,第二是外部时钟方式。
在STC89C51单片机内部存在一振荡电路,只需在单片机XTAL1(18)和XTAL2(19)引脚外接石英晶体(简称晶振),就能够构成自激振荡器,并能够在单片机的内部产生时钟脉冲信号。
(2)复位电路
复位电路如图2.3所示。
在STC89C51单片机RST引脚引入高电平,并且保持两个机器周期时,单片机的内部就会执行复位操作(若该引脚持续保持高电平,单片机将会处于循环复位状态)。
在最简单的上电自动复位电路中,上电自动复位是由外部复位电路的电容充电和放电来实现。
只在要VCC的上升时间不大于1mS,就能够实现自动上电复位。
除上电复位外,有时候还需要按键来手动复位。
本次设计就是通过按键手动复位。
按键手动复位有两种方式,分别为:
电平方式和脉冲方式。
电平复位是通过RST(9)端与电源VCC接通来实现的。
(3)STC89C51中断技术
中断技术主要被用于实时的监测及控制,它要求单片机能够及时地响应中断请求源提出的服务请求,并且作出快速的回应、并及时处理。
这是通过片内中断系统来实现的。
在中断请求源发出中断请求时,假如其中断请求被允许,单片机将会暂时中止正在执行的主程序,继而转到中断服务处理程序,然后处理中断服务请求。
当中断服务处理程序处理完中断服务请求之后,再次返回到之前被中止的程序之处(断点),继续执行此前被中断的主程序。
假如单片机没有中断系统,单片机将会浪费大量时间在查询是否有服务请求发生的定时查询操作上面。
使用中断技术完全消除了单片机查询方式中的等待现象,降低了时间浪费,很大程度上提高了单片机的工作效率及实效性[5]。
2.3AT24C02存储芯片
AT24C02是低功耗CMOS型E2PROM,源自Atmel公司,其内是256×8位存储空间,拥有工作电压宽(2.5~5.5V)、擦写次数较多(超于10000次)、写入速度快(不超过10ms)、抗干扰的能力强、数据不易丢失安全性高、体积较小等的特点。
并且其采用了I2C总线式进行数据读写串行器件,占用空间小资源少和I/O线,且支持在线编程,在数据实时的存取时特别方便。
AT24C02含有的片内地址寄存器。
每次写入读出一个数据字节后,他的地址寄存器将会自动加1,以便能够实现对下一个存储单元的读写过程。
所有的字节都会以一种单一的操作方式读取。
为了能够降低总写入时间,单次操作可写入达到8个字节的数据。
I2C总线是一种能够用于IC器件之间连接的二线制的总线。
它由SDA(串行数据线)和SCL(串行时钟线)两根线连接到总线上的器件之间进行信息传递,并且根据地址进行辨识各个器件。
AT24C02正是应用了I2C规程,运用主/从机双向通信,主机(通常为单片机)及其从机(AT24C02)均可运作于接收器和发送器的状态[6]。
其主机将会产生串行时钟信号(通过SCL引脚)并能够发出控制字,并控制总线传送方向,而且会产生开始和及停止的条件。
不管是主机或者从机,只要接收一个字节就必须得发出一个确认信号ACK。
AT24C02的控制字是由8位二进制数组成的,当开始信号发出后,主机将会发出控制字,以便选择从机并且控制总线传递的方向。
图示2.5为AT24C02电路接线图,图AT24C02的1、2、3脚为三条地址线,被用作确定芯片的硬件地址。
第8脚和第4脚依次是正电源、负电源。
第5脚SDA是串行数据的输入/输出,数据将会通过这条双向的I2C总线串行进行传送,第6脚SCL是串行时钟输入线,SDA及SCL都要求在正电源间各接一个10k的上拉电阻。
第7脚则要接地。
24C02中是有片内地址寄存器。
在每次写入或读出一个数据字节时,他的地址寄存器都会自动加1,以便于实现对下一个存储单元的读写。
所有的字节都会用单一操作方式来读取。
为了能够降低总写入时间,单次操作可以写入达8个字节的数据[7]。
3系统硬件设计
3.1工作原理
本设计主要是由单片微型计算机、独立式按键、数码管显示器及密码存储等几部分构成。
其中输入数字密码和各种功能的进行是通过按键来实现的。
用户可通过单片机连接的独立式按键输入密码,之后通过单片机对用户输入的密码和系统保存的密码进行比对,进而判断密码是不是正确的,再控制引脚高低电平传到开锁电路或报警电路来是否控制开锁或者报警。
其系统共两部分组成,分别为硬件部分及软件部,其硬件部分则是由六部分组成,分别为电源输入、键盘输入、复位、晶振、显示和报警部分,软件部分则是由主程序、初始化程序、数码管显示程序、键盘扫描程序、启动程序、关闭程序、键功能程序、密码设置程序及其延时程序等几个部分组成[8]。
系统原理框图如下图3.1所示。
3.2LCD显示模块
LCD1602A为一种常用工业字符型液晶,它可以同时显示16×2,32个字符。
(16列2行)。
在我们的日常生活中,人类对于液晶显示器并不感到陌生。
液晶显示器已被广泛地应用于很多电子产品,例如我们常见的计算器、万用表、电脑显示屏、电子表、液晶电视显示屏,在我们使用的家用电子产品中可以看到,主要是数字、专用符号和图形被显示。
通常在单片微型计算机的人机交流界面中,最常用的输出方式有:
发光管、LED管、液晶显示器。
其中发光管和LED管最为常用,应用在软硬件都是比较简单的[9]。
单片机系统中液晶显示器作为输出器件的优点:
因为液晶显示器各个点接收信号后会一直保持固有色彩和亮度,持久发光,不需要不断刷新新亮点,所以使用液晶显示器画质高不会闪烁。
液晶显示器是数字式,和单片机系统的接口相对简单可靠,操作十分方便。
液晶显示器是由显示屏上电极控制液晶分子状态来达到显示目的,在重量上比传统的要轻得多。
液晶显示器的能耗主要是消耗在内部的电极和驱动上,因此耗电量比其它显示器要少得多。
(1)引脚说明:
第1脚:
GND是地电源;
第2脚:
VCC接5V正电源;
第3脚:
V0是液晶显示器对比度调整端,接正电源时的对比度最弱,接地的对比度是最高的,但是对比度过高则会产生“鬼影”,在操作时可通过10K的电位器调来整对比度;
第4脚:
RS是寄存器选择,高电平时选择数据寄存器、低电平时将会选择指令寄存器;
第5脚:
R/W是读写信号线,高电平时将会会进行读操作,低电平时则会进行写操作。
如果是RS和R/W共同为低电平时则可以写入指令或显示地址,当RS和R/W分别为低电平和高电平时,就可以读忙信号,如果RS是高电平R/W为低电平时,就可以写入数据;
第6脚:
EN端是使能端,如果当EN端从高电平跳变为低电平时,液晶模块则执行命令;
第7~14脚:
D0~D7是8位双向数据线;
第15脚:
背光源正极;
第16脚:
背光源负极[10]。
(2)1602LCD的RAM地址映射及标准字库表
LCD1602液晶模块内部字符发生存储器,它已经不断地存储了160个不同的点阵字符图形,这些字符图分别是:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有其固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,就能看到字母。
它的读写操作、屏幕和光标的操作都是通过指令编程来实现的(说明:
1为高电平,0为低电平)。
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移。
S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示。
C:
控制光标的开与关,高电平表示有光标,低电平表示无光标。
B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线。
N:
低电平时为单行显示,高电平时双行显示。
F:
低电平时显示5X7的点阵字符,高电平时显示5x10的点阵字符(有些模块是DL:
高电平时为8位总线,低电平时为4位总线。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读出忙信号和光标地址。
BF为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙,模块就能接收相应的命令或者数据。
指令10:
写数据。
指令11:
读数据[11]。
图3.2液晶显示模块电路图
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。
如图3.2为液晶显示模块电路。
3.3键盘设计
本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
4×4矩阵键盘的工作原理
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)[12]。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
扫描原理
把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。
比如说扫描码送入01111111,前面的0111是代表此时扫描第一行P1.0列,而后面的1111是让读取的4行接脚先设为VDD,若此时第一行的第三列按键被按下,那读取的结果就会变成01111101(注意1111变成1101),其中LSB的第三个bit会由1变成0,这是因为这个按键被按下之后,会被垂直的扫描码电位short,而把读取的LSB的bit电位拉到0,此即为扫描原理[13]。
由于这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让单片机误判为多次输入同一按键,我们必须在侦测到有按键被按下,就延迟一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。
图3.3为键盘整体模框图。
图3.3键盘整体模框图
3.4声音提示模块
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
;蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。
蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。
有的压电式蜂鸣器外壳上还装有发光二极管。
多谐振荡器由晶体管或集成电路构成。
当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出为1.5~2.5千赫兹的音频信号,阻
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电子 密码锁 电路设计
![提示](https://static.bdocx.com/images/bang_tan.gif)