基于51单片机开发的电子密码锁

本系统采用以单片机为核心元件的控制方案。由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些方面外,还有一些最基本的条件,比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中还要考虑开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等因素。基于以上因素本设计选用单片机STC89C516作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用

硬件设计

硬件连接如下:       

           P1 -->矩阵键盘

P20--> EEPROM模块SDA

P21--> EEPROM模块SCL

P22-->继电器模块J15

其他管脚说明:

P0        LCD1602_DATAPINS

P2^7   LCD1602_E;

P2^5 LCD1602_RW;

P2^6 LCD1602_RS;

P1       矩阵键盘

P2^1;  存储模块  24C02 SCL

P2^0   存储模块 24C02 SDA

2.2存储模块24c02

存储模块的设计是把WP引脚接到GND上因为要让器件进行正常的读/写操作,把SDA串行数据/地址与单片机的P2.0引脚使AT24C02与单片机进行所有数据的发送或接收,把SCL串行时钟引脚与单片机的P2.1引脚相连接,让单片机产生一个AT24C02工作的时钟,使其正常的工作。存储模块电路如图所示。

AT24C02的特点:数据线看门狗定时器;可编程复位门级;高数据传输速率400kHz速率和I2C总线;2.7V至7V电压;低功耗CMOS工艺兼容;16 bespate写缓冲区;反撇写保护芯片;高低电平复位信号输出;100万擦除周期;保存长达100年。

2.3显示模块LCD1602

如果想要了解系统的运行与工作状态显示器是不可缺少的,显示器是一个典型的输出设备并且它的实际应用也是极为广泛的,几乎所有的电子产品都会使用到显示器其差别仅在于显示器的结构类型不同而已。最简单的显示器可以是LED发光二极管或者数码管,它可以给出一个简单的开关信息或者数字显示,而需要显示复杂的完整的信息上述的器件就不能胜任,而液晶的出现就很好的解决了这一问题,它不仅显示内容丰富而且好节约了单片机的管脚资源。本设计采用的是液晶显示LCD1602。LCD1602内部的字符已经储存了不同的字符形式,每一个字符都有一个固定的代码,其代码与标准的ASCII字符代码一致。因此只要写入显示字符的ASCII码即可,这种标准化的设计给使用带来很大的方便。比如英文字母“C”的ASCII代码是01000011(43H),显示时单片机往液晶模块写入显示指令,模块就会把地址为43H中的点阵字符图形识别出,并会在液晶屏相应位置上看到字母“C”

目前市场字符液晶绝大多数是基于HD44780的液晶芯片,控制原理是完全相同的,因此基于HD44780的写控制程序可以很容易地应用到市场上大部分的字符液晶。LCD1602液晶的几个特性:+5V电压、对比度可调、内含复位电路;提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;有80字节显示数据存储器DDRAM;内建有160个5X7点阵的字型的字符发生器CGROM 8个可由用户自定义的5X7的字符发生器CGRAM。1602的引脚如下所示: 

 

LCD1602采用标准的16脚接口,其中VSS为地电源,VDD接5V正电源,VEE为液晶显示器。RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,高电平1时进行读操作,低电平0时进行写操作。E端为使能端。D0~D7为8位双向数据线。

2.4键盘输入模块

键盘是单片机十分重要的输入设备,是实现人机对话的纽带。键盘是由一组规则排列的按键组成,一个按键实际上就是一个开关元件,即键盘是一组规则排列的开关。根据按键与单片机的连接方式不同,按键主要分为独立式按键和矩阵式按键 ,有了这些按键,对单片机的控制就方便多了。

本设计按键数量较多,所以采用矩阵式按键以节省I/O口线。将16个按键分为4排4列排列好,下图是矩阵键盘硬件结构。当有一个键按下时,通过某一边引脚赋低电平,扫描全部引脚看是否与最初的赋值一样,不一样则根据相应的算法(通过改变后的值与初始值相或,根据结果赋值)确定是哪个键按下。

 

2.5开锁电路

开锁电路的功能是当输入正确的密码后密码锁将被锁定,既开锁。当单片机P2.2引脚发出信号经三极管放大后,触动电磁阀即会把锁打开。一旦输入密码,单片机便会与初始密码进行比对,如果密码输入3次都与原始密码不相符即会报警。其原理图如图3-11所示

按键扫描

按键扫描程序如下:

#include "key.h"

u8 KeyValue=0;

void delay(u16 i)

{

while(i--);

}

u8 KeyDown(void)

{

char a=0;

GPIO_KEY=0x0f;

if(GPIO_KEY!=0x0f)//有按键按下

{

delay(1000);//延时10ms去抖

if(GPIO_KEY!=0x0f)//有按键按下

{

GPIO_KEY=0X0F;

switch(GPIO_KEY)

{

case(0X07): KeyValue=0;break;

case(0X0b): KeyValue=1;break;

case(0X0d): KeyValue=2;break;

case(0X0e): KeyValue=3;break;

}

GPIO_KEY=0XF0;

switch(GPIO_KEY)

{

case(

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、设计目的 1.1课题简介 如何实现防盗是很多人关心的问题,传统的机械锁由于其构造简单,被撬的事件屡见 不鲜,使人们的人身及财产安全受到很大威胁。电子密码锁是一种依靠电子电路来控制 电磁锁的开与闭的装置,开锁需要输入正确密码,若密码泄露,用户可以随时更改密码 。因此其保密性高,使用灵活性好,安全系数高,可以满足广大用户的需要,现在广泛 使用的有红外遥控电子密码锁,声控密码锁,按键密码锁等。 1.2课题研究目的 本设计是一种基于单片机的密码锁方案,根据基本要求规划单片机密码锁的硬件电路 和软件程序,同时对单片机的型号选择、硬件设计、软件流程图、单片机存储单元的分 配等都有注释。现在很多地方都需要密码锁电子密码锁的性能和安全性大大超过了机 械锁,为了提高密码的保密性,必须可以经常更改密码,以便密码被盗时可以修改密码 。 本次设计的密码锁具备的功能:LED数码管显示初始状态"——————",用户通过键盘输 入密码,每输入一位密码,LED数码管相应有一位变为"P" ,若想重新输入密码,只需按下"CLR"键。密码输入完毕后按确认键"#" ,密码锁控制芯片将输入的密码与密码锁控制芯片中存储的密码相比,若密码错误,则 不开锁,会有红灯亮提示,同时显示"Error" 。若正确,则开锁,会有绿灯亮提示,同时显示"PASS" 。用户可以根据实际情况随意改变密码值或密码长度,密码输入正确后可以按下"CHG"修 改密码,输入新密码时每输入一位新密码相应有一位变为"H" ,以便提示用户此时输入的是新密码,修改新密码时若想重新输入新密码只需按下"CLR " 键即可。输入新密码后按确认键即修改成功,新密码写入单片机内部RAM中,以便以后用 来确认密码的正确性。按下复位键,系统恢复初始状态,密码也恢复初始密码,本设计 中初始密码是"096168"。 本次设计中硬件主要由我完成,软件主要由张振完成。 二、硬件设计 2.1概述 本系统主要由单片机最小系统、电源电路、输入键盘电路、输出显示电路、开锁电路 等组成,系统框图如图1所示: 图1 系统框图 2.2最小系统 1.单片机:单片机最小系统包括单片机、晶振电路、复位电路等,最小系统是整个系 统的核心部分,也是设计中首先应该设计的部分,其中单片机的选择直接决定着之后整个 设计应该如何进行, 因为我们刚刚学完单片机,学习时是以MCS- 51单片机为主的,对51系列单片机最熟悉,因此决定选用51系列单片机, 51系列单片机中Atmel89C51应用最为广泛,且价格较低,性能完全能满足本次设计,因 此决定选用AT89C51芯片。AT89C51外形及引脚排列如图2所示: 图2 AT89C51外形及引脚排列 AT89C51主要特性:   ·与MCS-51 兼容   ·4K字节可编程闪烁存储器   ·1000次写入/擦除循环   ·数据保留时间:10年   ·全静态工作:0Hz-24MHz   ·三级程序存储器锁定   ·128×8位内部RAM   ·32可编程I/O线   ·两个16位定时器/计数器   ·5个中断源   ·可编程串行通道   ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路 2.晶振电路 图3 晶振电路 AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别 是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体一起构成自 激振荡器,晶振电路如图3所示。 石英晶体振荡电路对外接电容C2和C3虽没有十分严格的要求,但电容容量的大小会轻 微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度,一般电容使用30pF±1 0pF,这里使用30pF的独石电容。 因此晶振电路中使用12M晶振,30pF独石电容。 3.复位电路 如图4所示为80C51单片机复位电路。结合实际需求,本次设计加入了手动复位。RC构 成微分电路,在接电瞬间,产生一个微分脉冲,其宽度若大于2个机器周期,80C51型单 片机将复位,为保证微分脉冲宽度足够大,这里取10μF电容、10KΩ电阻。若按下复位键 ,则C1被短路,R1两端电压为Vcc,产生的高电平时间足以使单片机复位 图4 复位电路 关于复位电路的计算如下: AT89C51的最低复位电平是0.7Vcc V1 为电容最终可充到的电压值 Vt 为t时刻电容上的电压值 则, Vt=V1×[1-exp(-t/RC)] 即, t = RC×Ln[V1/(V1-Vt)] 在C1充电到0.7Vcc前,R1上电压均大于0.7Vcc,即为有效复位电压,因此需要求电容 充电到0.3Vcc的时间。 将V1=Vcc,Vt=0.3Vcc代入上式: 0.3VCC=Vcc×[1-exp(-t/RC)] 即[1-exp(-t/RC)]=0.3; exp(-t/RC)=0

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值