密码锁
2.1系统总设计结构图
第 3 页 共 24 页
数码管显示 密码输入设备 单片机AT89C51 开锁机构
图 2.1系统总设计结构图
本设计由主控芯片51单片机,键盘,LED显示屏和开锁电路组成。单片负责控制整个系统的执行过程。
2.2 开锁机构的设计
通过单片机送给开锁执行机构(本设计用LED灯和扬声器代替继电器打开电磁阀的开锁执行机构)实现开锁或警报的表示过程。
AT89C51单片机 开锁驱动电路 开锁/警报 图 2.2密码锁开锁结构示意图
当用户输入的密码正确而且是在规定的时间及次数输入之内,单片机便输出开锁信号送到开锁驱动电路,达到开门的目的
2.2.1 主控芯片(AT89C51单片机)的简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh
密码锁
第 4 页 共 24 页
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个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路 管脚说明:
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口缓冲器可接收,
密码锁
第 5 页 共 24 页
输出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
密码锁
信号将不出现。
第 6 页 共 24 页
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。
图 2.3 AT89C51芯片图
3 系统硬件设计
3.1 键盘设计
本实验采用4×4行列式矩阵键盘,用数字键输入密码,ENTER键确认;如果密码输入错误,用DEL键清除;密码输入完毕并且确认后,如果需要重新输入,先按Esc退出,然后重新输入;若用户想要自行更改密码,需要先正确输入密码并确认后,按ALT进行修改,再按ENTER进行确认,密码更改完毕。
3.2 系统电路设计
本系统电路主芯片AT89C51(内含晶振和复位电路),外接上拉电阻,数码
密码锁
管显示器,扬声器、LED灯和外接电阻组成开锁电路。 3.2.1键盘电路及连线图
第 7 页 共 24 页
每一条行线和列线交叉处通过一个按键来连接,利用这种行列式矩阵结构
只需要N条行线和M条列线就可组成N*M个按键。
在这种行列式矩阵键盘非键盘编码的单片机中,键盘处理程序先执行等待按键并有无键盘按下的程序段。确认有键盘按下后,下一步执行识别哪一个键按下。 对照4*4键盘,首先识别键盘中有无键盘按下,然后判断键盘中哪一个键被按下,使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后检查行输入状态来实现。如果全为1,则所按下键不在此列,如果不全为1则按下的键必在此列。而且是与零电平线相交的交点上的键。理想的按键信号是一个标准脉冲,但键的按下和释放都需要一个过程来实现,在这一过程中是处于高低电平之间一种不稳定状态,称为抖动。抖动时间的长短,频率的高低与按键机械特征有关,一般在5到10ms之间。这就有可能造成CPU对一次按键过程进行多次处理。为了避免这种情况应采取措施消除抖动。消抖常见有两种方法,硬件消抖:如用滤波器,双稳态电路等。另一种用软件来实现,即当发现有键按下时,间隔10ms以上时间,才能进行下一次查询,这样就让过了抖动过程,键的释放进行同样处理。本设计为减少电路复杂程度,减少成本。采用软件消抖的方法。
图 3.1 键盘电路
本实验采用共阴极数码管,即将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,
当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。 3.2.2 数码管显示电路及连线图