修改密码之前必须再次输入密码,在输入新密码时候需要进行二次确认,以防止误操作 。
2.2总体设计方案选定
方案一:采用数字电路控制。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制单元,一共设了9个用户输入键,其中只有几个特定个是有效的密码按键,然后其它的都是干扰按键,如若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过设定值秒(一般情况下,用户不会超过10秒,然后用户觉得不便,还可以(修改)电路将报警15秒,若电路连续报警三次,电路将锁定键盘,防止他人违反操作。采用数字电路设计的方案好处就是设计简单但控制的准确性和灵活性差。故不采用。
方案二:采用一种是用以STC89C51为核心的单片机控制方案。
采用单片机STC89C51 作为本设计的核心元件,利用单片机灵活的编程和丰富多样的IO口,及其控制的准确性,实现基本的密码锁的开锁、修改密码等功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。其原理如下图2.1所示:
图2.1 单片机控制密码锁原理图
可以看出方案二控制灵活准确性好且保密性强还具有扩展功能,根据现实生活的需要此次设计采用此方案
6 第三章 系统硬件设计
3.1 设计原理
本设计主要由AT89C51单片机、4*4矩阵键盘、1602液晶显示器和密码存储AT24C02、5伏电压带动的简易密码锁等部分组成。其中4*4矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。
该系统由两部分组成,即硬件和软件组件。硬件部分由外部电力输入单元,矩阵键盘输入部分,密码存储,复位部分,所述晶体部分,显示部分,报警部,锁定解除部组。相应主程序,初始化程序,LCD显示程序,键盘扫描仪软件,启动程序,关闭程序,以建立的功能程序,密码设置,EEPROM读写程序和延时程序等组成如图3.1所示。
3.1 电子密码锁原理框图
3.2 单片机STC89C51简介
STC89C51是一种低功耗,高性能CMOS 8位微控制器与4K系统内可编程闪存。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有下列标准特性:4K字节的Flash,512字节RAM,32位I O口线,看门狗定时器,2个16位定时器计数器,一
7 个6向量2中断结构,全双工串行线口。 STC89C51也可以减少到0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止,允许RAM,定时器计数器,串行口,中断工作。掉电保护功能,RAM将被保存的内容,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位。 35MHZ的最大工作频率,6T 12T是可选的。如表1所示STC89C51主要功能,DIP封装图如图2所示:
表1:STC89C51主要功能
主要功能特性 兼容MCS51指令系统 32个双向IO口 2个16位可编程定时计数器中断 2个串行中断 2个外部中断源 2个读写中断口线 低功耗空闲和掉电模式 4K可反复擦写Flash ROM 256x8bit内部RAM 时钟频率0-24MHz 可编程UART串行通道 共6个中断源 3级加密位 软件设置睡眠和唤醒功能 STC89C52引脚介绍
① 主电源引脚(2根)
VCC(Pin40):电源输入,接+5V电源 GND(Pin20):接地线 ②外接晶振引脚(2根)
XTAL1(Pin19):片内振荡电路的输入端 XTAL2(Pin20):片内振荡电路的输出端 ③控制引脚(4根)
RSTVPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。 ALEPROG(Pin30):地址锁存允许信号 PSEN(Pin29):外部存储器读选通信号
EAVPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
④可编程输入输出引脚(32根)
STC89C52单片机有4组8位的可编程IO口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
P0口(Pin39~Pin32):8位双向IO口线,名称为P0.0~P0.7 P1口(Pin1~Pin8):8位准双向IO口线,名称为P1.0~P1.7 P2口(Pin21~Pin28):8位准双向IO口线,名称为P2.0~P2.7 P3口(Pin10~Pin17):8位准双向IO口线,名称为P3.0~P3.7 作频率35Mhz,6T12T可选。
8 U11234567891011121314151617181920P10P11P12P13P14P15P16P17RESETP30/RXDP31/TXDP32/INT0P33/INT1P34/T0P35/T1P36WRP37/RDX2X1GNDSTC89C52VCCP00P01P02P03P04P05P06P07EA/VPALE/PPSENP27P26P25P24P23P22P21P204039383736353433323130292827262524232221 图3.2 STC89C51 DIP封装图
最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单片机始终处于正常的运行状态。电源、时钟等电路是使单片机能运行的必备条件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、AD扩展等,使单片机完成较复杂的功能。
STC89C51是片内有ROMEPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用STC89C52单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,结构如图2-3所示,由于集成度的限制,最小应用系统只能用作一些小型的控制单元。
图3.3单片机最小系统原理框图
(1) 时钟电路
STC89C51单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。内部时钟方式如图2-4所示。在STC89C51单片机内部有一振荡电路,只要在单片机的XTAL1(18)和XTAL2(19)引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在5~30pF,典型值为30pF。晶振CYS的振荡频率范围在1.2~12MHz间选择,典型值为12MHz和6MHz。
C21830pFY1C311.0592MHz19图3.4 STC89C51内部时钟电路
(2) 复位电路
当引入STC89C51单片机的RST引脚高并保持两个机器周期,MCU将进行复位操
9 30pF 作(如果引脚连续举办高,MCU在复位状态循环)。
最简单的自动电源接通复位电路,在电源由外部复位电路的电容充电自动复位和放电,以实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST(9)端与电源Vcc接通而实现的。
VCCS49C1R110uF10k 图3.5 STC89C51复位电路
(3) STC89C51中断技术概述
中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源提出的服务请求,并作出快速响应、及时处理。这是由片内的中断系统来实现的。当中断请求源发出中断请求时,如果中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求。中断服务处理程序处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。
图2-6为整个中断响应和处理过程。
图3.6 中断响应和处理过程
图3.6 中断过程
如果单片机没有中断系统,单片机的大量时间可能会浪费在查询是否有服务请求发生的定时查询操作上。采用中断技术完全消除了单片机在查询方式中的等待现象,大大地提高了单片机的工作效率和实时性。 3.3 AT24C02存储芯片
AT24C02是美国Atmel的低功耗CMOS型E2PROM,含256×8位存储空间,具有较宽
的工作电压(2.5?5.5 V),更强的续航能力(超过10,000),写入速度(小于10毫秒),抗干扰能力强,容易丢失数据,体积小等特点。他用读I2C总线数据并写入串口设备,占用很少的资源和I O线,并支持在线编程,实时数据访问是非常方便的。 AT24C02芯片与地址寄存器。每个写入或读取一个数据字节后,地址寄存器自动由1,以实现下一个位置的读写递增。所有的单字节读取操作。以减少总写入时间,一次操作可以写入最多8个字节的数据。 I2C总线是用于两线总线的IC器件之间的连接。他由SDA(串行数据线)和SCL(串行时钟线)的两行连接到总线的设备之间传送信息,并在地址来识别每个设备。 AT24C02是采用了I2C协议,采用主从双向通信,主机(通
10