单片机控制的电子密码锁设计.docx

上传人:b****8 文档编号:12861217 上传时间:2023-06-08 格式:DOCX 页数:20 大小:941.70KB
下载 相关 举报
单片机控制的电子密码锁设计.docx_第1页
第1页 / 共20页
单片机控制的电子密码锁设计.docx_第2页
第2页 / 共20页
单片机控制的电子密码锁设计.docx_第3页
第3页 / 共20页
单片机控制的电子密码锁设计.docx_第4页
第4页 / 共20页
单片机控制的电子密码锁设计.docx_第5页
第5页 / 共20页
单片机控制的电子密码锁设计.docx_第6页
第6页 / 共20页
单片机控制的电子密码锁设计.docx_第7页
第7页 / 共20页
单片机控制的电子密码锁设计.docx_第8页
第8页 / 共20页
单片机控制的电子密码锁设计.docx_第9页
第9页 / 共20页
单片机控制的电子密码锁设计.docx_第10页
第10页 / 共20页
单片机控制的电子密码锁设计.docx_第11页
第11页 / 共20页
单片机控制的电子密码锁设计.docx_第12页
第12页 / 共20页
单片机控制的电子密码锁设计.docx_第13页
第13页 / 共20页
单片机控制的电子密码锁设计.docx_第14页
第14页 / 共20页
单片机控制的电子密码锁设计.docx_第15页
第15页 / 共20页
单片机控制的电子密码锁设计.docx_第16页
第16页 / 共20页
单片机控制的电子密码锁设计.docx_第17页
第17页 / 共20页
单片机控制的电子密码锁设计.docx_第18页
第18页 / 共20页
单片机控制的电子密码锁设计.docx_第19页
第19页 / 共20页
单片机控制的电子密码锁设计.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机控制的电子密码锁设计.docx

《单片机控制的电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《单片机控制的电子密码锁设计.docx(20页珍藏版)》请在冰点文库上搜索。

单片机控制的电子密码锁设计.docx

单片机控制的电子密码锁设计

 

河南大学物理与电子学院

开放实验室单片机设计报告

 

基于单片机控制的电子密码锁

 

 

设计人:

开放实验室入室人员

基于单片机控制的电子密码锁

开放实验室入室人员

(河南大学物理与电子学院,河南开封,475004)

摘要:

电子密码锁主要由AT89C51单片机、AT24C02存储芯片、128*64液晶显示屏、DS1302时钟芯片、DS18B20温度传感器、4*4矩阵键盘和蜂鸣器报警系统组成。

系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码等密码锁的基本功能。

除上述基本的密码锁功能外,还具有掉电存储密码、显示日历和温度等功能。

关键词:

电子密码锁;单片机;液晶显示屏;温度传感器;自动控制

ElectronicCodedLockControledbyMCU

LiuL.g

(SchoolofPhysicsandElectronics,HenanUniversity,HenanKaifeng475004,China)

Abstract:

ElectroniccodedlockconsistsofAT89C51microcomputer,4*4matrixkeyboard,128*64LCDdisplay,AT24C02Flash,DS1302clockchip,DS18B20temperaturetransmitterandalarmsystem.Thisdesignhasthebasicfunctionsofcompletingthelock,timeoutalarm,timesoverlocked,theadministratordecrypt,modifingthebasicuserpasswordlockfunction.Andusercaninputpasswordthroughthe4*4matrixkeyboard.Inadditiontothebasiclockfunction,alsocanstorethepasswordwhenpowerisbroken,candisplaycurrentcalendarandindoortemperatureandsoon.

Keywords:

AT89C51;AT24C02;128*64LCD;temperaturesensor;automaticcontrol

0前言

目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。

但在使用中暴露了很多缺点:

一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。

据统计,每4000把锁中就有两把锁的钥匙齿牙相同或类似,故钥匙齿牙相同的几率较大,安全性较低。

根据国外的统计资料,装有电子防盗装置的商业区或居民区盗窃犯罪率平均下降30%左右。

二是钥匙一旦丢失,无论谁捡到都可以将锁打开。

三是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。

出于安全、方便等方面的需要,许多智能锁(如指纹辨别、IC卡识别)已相继问世,但这类产品的特点是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。

另外,卡片式的IC卡易丢失,加上其成本一般较高,在一定程度上限制了这类产品的普及和推广[1]。

电子密码锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。

如果采用8位密码,则密码组合可达到10的8次方,每增加1位,密码组合就增加10倍;同时可设多组密码,其中有一组是管理员密码,可以增加用户密码又清除所有用户密码。

本文设计的电子密码锁具有掉电保护密码功能,可将设置的密码存入能掉电保护数据的RAM中,从而克服了旧式电子密码锁电路断电后所设置密码丢失的缺点。

另外,该锁还具有报警、时钟、显示时间和温度等辅助功能。

1系统功能

本系统组成元器件简单,主要运用了大学所学的模拟电子、数字电子和单片机应用等课程知识,基本上实现了作为一个密码锁的功能,并在此基础上还实现了一些额外的功能。

1.1基本密码锁的功能

开锁:

用户可以通过键盘来输入密码,具体情况就是在自己门上固定一个简易的按键键盘来输入数字,同时键盘上面也有相应的取消、更改、确认等按键。

修改用户密码:

当用户需要修改密码的时候需要重新输入原始密码,用户修改后的密码将会被保存在独立的存储芯片里面,即使系统断电密码也不会丢失。

用户每次输入密码验证的时候,系统都会去独立的存储芯片里面读取密码。

超次报警:

当输入密码错误的次数超过一定的次数,系统就会出现死锁,同时系统的蜂鸣器就会发出预警,密码锁将不会被开启,这就预防了非法用户的侵犯。

管理员解密:

当系统出现死锁的时候就需要输入管理员密码来解锁。

管理员密码理论上可以修改,但不建议修改。

1.2附加功能

显示日历:

系统具有显示当前日历的功能,能具体显示年、月、日、时、分、秒,用户无需自己调整时间。

显示温度:

系统能显示屋内的实时温度,能给用户以提示。

2系统组成

本系统主要有AT89C51单片机、AT24C02芯片、DS1302芯片、DS18B20芯片、128*64液晶显示屏、矩阵键盘等元器件组成。

2.1AT89C51单片机

AT89C51具有如下特点:

40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断源,2个中断优先级,2个16位可编程定时计数器,1个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。

空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位[2]。

引脚图如图2-1所示。

图2-1AT89C51引脚图

2.2AT24C02芯片

AT24C02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。

AT24C02有一个16字节页写缓冲器。

该器件通过IIC总线接口进行操作,有一个专门的写保护功能。

AT24C02支持IIC协议。

该总线协议规定,任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器。

数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。

主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上[3]。

具体引脚图如图2-2所示。

图2-2AT24C02引脚图

2.3DS1302芯片

DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。

采用普通32.768kHz晶振。

DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。

DS1302是由DS1202改进而来,增加了以下的特性。

双电源管脚用于主电源Vcc2和备份电源供应Vcc1,为可编程涓流充电电源附加七个字节存储器。

它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域。

DS1302芯片内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。

实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。

DS1302芯片与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:

①RES(复位);②I/O(数据线);③CLK(串行时钟)[4]。

具体引脚图如图2-3所示。

图2-3DS1302引脚图

2.4DS18B20芯片

DS18B20数字温度计提供9-12位摄氏温度测量,而且有一个由高低电平触发的可编程的不因电源消失而改变的报警功能。

DS18B20通过一个单线接口发送或接受信息,因此在中央处理器和DS18B20之间仅需一条连接线(不算地线)。

它的测温范围为-55~+125℃,并且在-10——+85℃精度为±0.5℃。

除此之外,DS18B20能直接从单线通讯线上汲取能量,除去了对外部电源的需求[5]。

每个DS18B20都有一个独特的64位序列号,从而允许多只DS18B20同时连在一根单线总线上;因此,很简单就可以用一个微控制器去控制很多覆盖在一大片区域的DS18B20,这一特性在HVAC(供热通风与空气调节)环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。

2.5128*64液晶显示屏

128*64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16*16点阵)、128个字符(8*16点阵)及64*256点阵显示RAM(GDRAM)。

可与CPU直接接口,提供两种界面来连接微处理机:

8-位并行及串行两种连接方式。

具有多种功能:

光标显示、画面移位、睡眠模式等。

3系统的功能单元设计

3.1开锁机构

通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。

其原理如图3-1所示。

图3-1密码锁开锁机构示意图

当用户输入的密码正确而且是在规定的时间(普通用户要求在12秒内输入正确的密码,管理员要求在5秒内输入正确的密码)输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。

其实际电路如图3-2所示。

图3-2密码锁开锁机构电路图

密码锁开锁机构由电路驱动和开锁两级组成。

由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管,如9014、9018都可以满足要求。

D5作为开锁的提示,由D6、C24、T11组成。

其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。

T11可选用中功率的三极管,如8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量[6]。

本文设计中,作为仿真,暂时用发光二极管代替电磁锁,发光管亮,为开锁状态;灭,表示锁住状态。

3.2按键电路设计

本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。

其原理如图3-3所示。

图3-3行列式键盘原理电路图

每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。

在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就要识别哪一个按键按下。

对键的识别通常有两种方法:

一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。

对照图3-3所示的4*4键盘,说明线反转法的工作原理。

首先辨别键盘中有无键按下,由单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。

方法是:

向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。

如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。

判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。

方法是:

依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

3.3掉电存储单元的设计

掉电存储单元的作用是在电源断开的时候,存储当前设定的密码信息。

AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10uA(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便[7]。

其电路如图3-4所示。

图3-4掉电存储电路原理图

3.4密码锁的电源电路设计

为了防止停电情况的发生,本电路设计了小型后备电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成[8]。

电源电路图如图3-5所示。

图3-5市电供电电路

220V市电通过变压器降压成12V的交流电,再经过整流桥整流,7805稳压到5V送往电子切换电路,由于本电路功耗较少,所以选用10W的小型变压器。

由R8、R9、R6、R7及IC14构成电压比较器,正常情况下,V+V-,IC14输出高电平,由T3、T4构成的达林顿管使继电器J开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的正常工作(视电池容量而定持续时间)。

其电路图如下图3-6所示。

图3-6停电检测及电子开关切换电路

T1、T2构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中D1亮为正在充电,D2为工作指示。

由R4、R5、T1构成电压检测电路,蓄电池电压低,则T1、T2导通,实现对其充电;充满后,T1、T2截止,停止充电,同时D1熄灭,电路中C4的作用是滤除干扰信号[9]。

其电路图如图3-7所示。

图3-7蓄电池自动充电电路

3.5设计总框图

设计总框图如图3-8所示。

 

图3-8总体设计框图

图3-8设计总框图

 

图3-8设计总框图

4系统原理

基本原理是通过将当前输入的密码与原始密码相比较,若二者相同则让液晶屏显示密码正确相应的画面,画面显示的是一副图片,同时会使4个相应的发光二极管工作;否则显示“对不起,密码错误”字样。

若要修改密码,必须输入原始正确密码,以进行修改。

其中,原始密码的取得是从AT24C02芯片中取得的数据,当用户修改密码时,新的密码会被存储在AT24C02芯片中。

由于密码时存储在独立的存储设备中,所以就实现了密码的掉电存储。

本设计中还有管理员密码,当密码输入错误的次数超过3次时,会强制锁住密码锁,这时需要输入管理员密码来解锁,同样管理员密码也可以修改,但不建议修改。

4.1系统流程图

系统具体流程图如图4-1和图4-2所示。

4.2仿真电路图

本系统在设计之初在仿真软件protues中做了全面的仿真,并且可以实现预期的所有功能。

具体仿真图如图4-3和4-4所示。

(额外评语:

下面仿真图中12864是用的不带字库的,到写本文为止,还没有发现带汉字库的12864能仿真,而用不带字库的12864,则要求单片机的ROM较大,两种12864都可以实现同样功能,报告这样写,作者本意可能是表示两种方案他均能做到,但易给报告阅读者造成误解)

图4-3输入密码

图4-4修改密码

4.3实物图

按仿真图制作的实物,基本实现了本设计中所写的所有功能,具体实物图如图4-5所示。

本图为开机画面,显示制作单位“河南大学通信工程”、当时时间、温度等。

图4-5实物图

4.4具体程序代码(部分)

#include

#include

#include

unsignedcharcodeIC_DAT1[]={"0123456789:

#-."};

unsignedcharpassword[6]={1,2,3,4,5,6};//原始密码//

unsignedcharn=0,temp,key,b=0,i,flag,num,t0,temp1;

voidjianpan()

{P0=0xfe;

temp=P0;

temp=temp&0xf0;

if(temp!

=0xf0)

{temp=P0;

temp=temp&0xf0;

if(temp!

=0xf0)

{temp=P0;

switch(temp)

{

case0xee:

key=1;b1[t]=key;t++;

break;

case0xde:

key=2;b1[t]=key;t++;

break;

case0xbe:

key=3;b1[t]=key;t++;

break;

case0x7e:

init();//恢复原始密码//

for(i=0;i<6;i++)

{write_add(i,c1[i]);delayms

(2);}

break;

}//程序太长不宜写在报告中,完整程序请

}//联系QQ154401855(或154401856)下载

P0=0xfd;

temp=P0;

temp=temp&0xf0;

if(temp!

=0xf0)

{temp=P0;

temp=temp&0xf0;

if(temp!

=0xf0)

{temp=P0;

switch(temp){

case0xed:

key=4;b1[t]=key;t++;

break;

case0xdd:

key=5;b1[t]=key;t++;

break;

case0xbd:

key=6;b1[t]=key;t++;

break;

case0x7d:

//重新输入//

t=0;

lcd_mesg(IC_DAT);

TransferData(0x9c,0);

break;

}

}

P0=0xfb;

temp=P0;

temp=temp&0xf0;

if(temp!

=0xf0)

{temp=P0;

temp=temp&0xf0;

if(temp!

=0xf0)

{temp=P0;

switch(temp)

{case0xeb:

key=7;b1[t]=key;t++;

break;

case0xdb:

key=8;b1[t]=key;t++;

break;

case0xbb:

key=9;b1[t]=key;t++;

break;

}

}

P0=0xf7;

temp=P0;

temp=temp&0xf0;

if(temp!

=0xf0)

{temp=P0;

temp=temp&0xf0;

if(temp!

=0xf0)

{temp=P0;

switch(temp)

{case0xe7:

init();

for(i=0;i<6;i++)

{a1[i]=read_add(i);}

for(i=0;i<6;i++)

{if(a1[i]==b1[i]){h++;}}

if(h==6){newpassword();t=0;h=0;flag=1;}break;

case0xd7:

key=0;b1[t]=key;t++;

break;

case0x77:

//确认//

for(i=0;i<6;i++)

{write_add(i,b1[i]);}

else

{for(i=0;i<6;i++)

{a1[i]=read_add(i);}

for(i=0;i<6;i++)

{if(a1[i]==b1[i]){h++;}

if(h==6){right();}

else{wrong();}

break;

}

}

}

voidmain(void)

{initinal();

lcd_mesg(IC_DAT);//显示中文汉字//

while

(1){

jianpan();

}

}

5结论

本设计主要运用的大学期间所学的单片机应用、模拟电子技术基础、数字电子技术基础、电路和通信电子线路等课程所学的知识,由AT89C5单片机、AT24C02存储芯片、128*64液晶显示屏、DS1302时钟芯片、DS18B20温度传感器、4*4矩阵键盘和蜂鸣器报警系统等元器件实现的作为一个密码锁的基本功能。

能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码等密码锁的基本功能。

除上述基本的密码锁功能外,还具有掉电存储密码、显示日历和温度等功能。

本设计还可以完善的地方:

(1)增加无线收发模块,是用户不仅可以在现场通过键盘来输入密码,还可以通过手持的无线设备来在一定的距离之外发送密码,这比较适合在用在工厂或企业的大门或仓库的情况下,当用户开着大货车给仓库运货的时候就不必再下车手动输入密码开门了。

(2)可以把液晶屏换为液晶触摸屏,这样就省去了实际的存在的键盘了,这不仅可以使用户使用起来更为方便,也可以节省密码锁设备多占用的空间,可以使整个设备更轻盈、小巧,看起来更美观。

参考文献

[1]郭天祥.51单片机C语言教程[M].北京:

机械工业出版,2009年1月.165~182

[2]何立民.单片机中级教程[M].北京:

北京航空大学出版社,2005年10月.23~25

[3]何立民.单片机应用技术选编[M].北京:

北京航空大学出版社,1992年2月.65~82

[4]陈明荧.8051单片机课程设计实训教材[M].北京:

高等教育出版社,2005年10月.

134~138

[5]康华光.电子技术基础[M].北京:

高等教育出版社,2006年1月.47~48

[6]邱关源.电路[M].北京:

高等教育出版社,2006年5月.102~108

[7]阎石.数字电子技术基础(第四版)[M].北京:

高等教育出版社,1998年11月.234~257

[8]华成英等.模拟电子技术基础(第四版)[M].北京:

高等教育出版社,2006年5月.

79~80

[9]梁宗山.新型集成模块应用[M].武汉:

华中理工大学出版社,2004年6月.59~61

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2