ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:868.32KB ,
资源ID:24950888      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24950888.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机控制的电子密码锁设计说明.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、单片机控制的电子密码锁设计说明河南大学物理与电子学院开放实验室单片机设计报告基于单片机控制的电子密码锁 设计人:开放实验室入室人员基于单片机控制的电子密码锁开放实验室入室人员(河南大学物理与电子学院,河南 开封,475004)摘 要: 电子密码锁主要由AT89C51单片机、AT24C02存储芯片、128*64液晶显示屏、DS1302时钟芯片、DS18B20温度传感器、4*4矩阵键盘和蜂鸣器报警系统组成。系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码等密码锁的基本功能。除上述基本的密码锁功能外,还具有掉电存储密码、显示日历和温度等功能。关键词: 电子密码锁;单片机;液晶显示屏;温度

2、传感器;自动控制Electronic Coded Lock Controled by MCULiu L.g(School of Physics and Electronics, Henan University, Henan Kaifeng 475004, China)Abstract: Electronic coded lock consists of AT89C51 microcomputer, 4*4 matrix keyboard, 128*64 LCD display, AT24C02 Flash, DS1302 clock chip, DS18B20 temperature tra

3、nsmitter and alarm system.This design has the basic functions of completing the lock, time out alarm, times over locked, the administrator decrypt, modifing the basic user password lock function. And user can input password through the 4*4 matrix keyboard. In addition to the basic lock function, als

4、o can store the password when power is broken, can display current calendar and indoor temperature and so on.Key words: AT89C51; AT24C02; 128*64 LCD; temperature sensor; automatic control0 前言 目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。但在使用中暴露了很多缺点:一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。据统计,每4000把锁中就有两把锁的钥匙

5、齿牙相同或类似,故钥匙齿牙相同的几率较大,安全性较低。根据国外的统计资料,装有电子防盗装置的商业区或居民区盗窃犯罪率平均下降30%左右。二是钥匙一旦丢失,无论谁捡到都可以将锁打开。三是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。出于安全、方便等方面的需要,许多智能锁(如指纹辨别、IC卡识别)已相继问世,但这类产品的特点是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。另外,卡片式的IC卡易丢失,加上其成本一般较高,在一定程度上限制了这类产品的普及和推广1。电子密码锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。如果采用8位密

6、码,则密码组合可达到10的8次方,每增加1位,密码组合就增加10倍;同时可设多组密码,其中有一组是管理员密码,可以增加用户密码又清除所有用户密码。本文设计的电子密码锁具有掉电保护密码功能,可将设置的密码存入能掉电保护数据的RAM中,从而克服了旧式电子密码锁电路断电后所设置密码丢失的缺点。另外,该锁还具有报警、时钟、显示时间和温度等辅助功能。1 系统功能本系统组成元器件简单,主要运用了大学所学的模拟电子、数字电子和单片机应用等课程知识,基本上实现了作为一个密码锁的功能,并在此基础上还实现了一些额外的功能。1.1 基本密码锁的功能开锁:用户可以通过键盘来输入密码,具体情况就是在自己门上固定一个简易

7、的按键键盘来输入数字,同时键盘上面也有相应的取消、更改、确认等按键。修改用户密码:当用户需要修改密码的时候需要重新输入原始密码,用户修改后的密码将会被保存在独立的存储芯片里面,即使系统断电密码也不会丢失。用户每次输入密码验证的时候,系统都会去独立的存储芯片里面读取密码。超次报警:当输入密码错误的次数超过一定的次数,系统就会出现死锁,同时系统的蜂鸣器就会发出预警,密码锁将不会被开启,这就预防了非法用户的侵犯。管理员解密:当系统出现死锁的时候就需要输入管理员密码来解锁。管理员密码理论上可以修改,但不建议修改。1.2 附加功能显示日历:系统具有显示当前日历的功能,能具体显示年、月、日、时、分、秒,用

8、户无需自己调整时间。显示温度:系统能显示屋内的实时温度,能给用户以提示。2 系统组成本系统主要有AT89C51单片机、AT24C02芯片、DS1302芯片、DS18B20芯片、128*64液晶显示屏、矩阵键盘等元器件组成。2.1 AT89C51单片机AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断源,2个中断优先级,2个16位可编程定时计数器,1个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件

9、设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位2。引脚图如图2-1所示。图2-1 AT89C51引脚图2.2 AT24C02芯片AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。AT24C02支持IIC协议。该总线协议规定,任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器

10、件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上3。具体引脚图如图2-2所示。图2-2 AT24C02引脚图2.3 DS1302芯片DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768kHz晶振。DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。DS1302是由DS1202改进

11、而来,增加了以下的特性。双电源管脚用于主电源Vcc2和备份电源供应Vcc1,为可编程涓流充电电源附加七个字节存储器。它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域。DS1302芯片内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。DS1302芯片与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:RES(复位);I/O(数据线);CLK(串行时钟)4。具体引脚图如图2-3所示。图2-3

12、DS1302引脚图2.4 DS18B20芯片DS18B20数字温度计提供9-12位摄氏温度测量,而且有一个由高低电平触发的可编程的不因电源消失而改变的报警功能。DS18B20通过一个单线接口发送或接受信息,因此在中央处理器和DS18B20之间仅需一条连接线(不算地线)。它的测温范围为-55125,并且在-1085精度为0.5。除此之外,DS18B20能直接从单线通讯线上汲取能量,除去了对外部电源的需求5。 每个DS18B20都有一个独特的64位序列号,从而允许多只DS18B20同时连在一根单线总线上;因此,很简单就可以用一个微控制器去控制很多覆盖在一大片区域的DS18B20,这一特性在HVAC

13、(供热通风与空气调节)环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。2.5 128*64液晶显示屏128*64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16*16点阵)、 128个字符(8*16点阵)及64*256点阵显示RAM(GDRAM)。可与CPU直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。3 系统的功能单元设计3.1 开锁机构通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。其原理如图3-1所示。图3-1 密码锁开锁机构示意图当用户输入的密码正

14、确而且是在规定的时间(普通用户要求在12秒内输入正确的密码,管理员要求在5秒内输入正确的密码)输入的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。其实际电路如图3-2所示。图3-2 密码锁开锁机构电路图密码锁开锁机构由电路驱动和开锁两级组成。由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管,如9014、9018都可以满足要求。D5作为开锁的提示,由D6、C24、T11组成。其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。T11可选用中功率的三极管,如8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量

15、6。本文设计中,作为仿真,暂时用发光二极管代替电磁锁,发光管亮,为开锁状态;灭,表示锁住状态。 3.2 按键电路设计本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图3-3所示。89C51D0D1D2D3D4D5D6D7D8D9D105.1 k X 45.1 k X 3VCC图3-3 行列式键盘原理电路图每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有NM个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行

16、等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图3-3所示的4*4键盘,说明线反转法的工作原理。首先辨别键盘中有无键按下,由单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,

17、则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。3.3 掉电存储单元的设计掉电存储单元的作用是在电源断开的时候,存储当前设定的密码信息。AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10uA(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便7。其电路如图3-4所示。图3-4 掉电存储电路原理图3.4 密码锁的电源电路设计 为了防止停电情况的发生,本电路设计了小型后备电源,它包括市电供电电路,停电检测电路

18、,电子开关切换电路,蓄电池充电电路和蓄电池组成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构成的蓄电池自动充电电路,它在电池充满

19、后自动停止充电,其中D1亮为正在充电,D2为工作指示。由R4、R5、T1构成电压检测电路,蓄电池电压低,则T1、T2导通,实现对其充电;充满后,T1、T2截止,停止充电,同时D1熄灭,电路中C4的作用是滤除干扰信号9。其电路图如图3-7所示。图3-7 蓄电池自动充电电路3.5 设计总框图设计总框图如图3-8所示。图38总体设计框图图3-8 设计总框图图3-8 设计总框图4 系统原理基本原理是通过将当前输入的密码与原始密码相比较,若二者相同则让液晶屏显示密码正确相应的画面,画面显示的是一副图片,同时会使4个相应的发光二极管工作;否则显示“对不起,密码错误”字样。若要修改密码,必须输入原始正确密码

20、,以进行修改。其中,原始密码的取得是从AT24C02芯片中取得的数据,当用户修改密码时,新的密码会被存储在AT24C02芯片中。由于密码时存储在独立的存储设备中,所以就实现了密码的掉电存储。本设计中还有管理员密码,当密码输入错误的次数超过3次时,会强制锁住密码锁,这时需要输入管理员密码来解锁,同样管理员密码也可以修改,但不建议修改。4.1 系统流程图系统具体流程图如图4-1和图4-2所示。开始初始化有键按下?调用显示启动定时识别按键全部按完?超时?比较密码开门开始自动清除3次?锁定NNYYYYNNYN图4-1 主程序流程图图4-2 修改密码流程图按下F2启动定时输入密码存入缓冲再输入一次比较密

21、码调用24C02调用显示按F2退出重新输入4.2 仿真电路图本系统在设计之初在仿真软件protues中做了全面的仿真,并且可以实现预期的所有功能。具体仿真图如图4-3和4-4所示。(额外评语:下面仿真图中12864是用的不带字库的,到写本文为止,还没有发现带汉字库的12864能仿真,而用不带字库的12864,则要求单片机的ROM较大,两种12864都可以实现同样功能,报告这样写,作者本意可能是表示两种方案他均能做到,但易给报告阅读者造成误解)图4-3 输入密码图4-4 修改密码 4.3 实物图按仿真图制作的实物,基本实现了本设计中所写的所有功能,具体实物图如图4-5所示。本图为开机画面,显示制

22、作单位“河南大学通信工程”、当时时间、温度等。图4-5 实物图4.4 具体程序代码(部分)#include #include #include unsigned char code IC_DAT1=0123456789:# -.;unsigned char password6=1,2,3,4,5,6;/原始密码/unsigned char n=0,temp,key,b=0,i,flag,num,t0,temp1;void jianpan() P0=0xfe; temp=P0; temp=temp&0xf0; if(temp!=0xf0) temp=P0; temp=temp&0xf0; if(

23、temp!=0xf0) temp=P0; switch(temp) case 0xee: key=1;b1t=key; t+; break; case 0xde: key=2;b1t=key; t+;break; case 0xbe: key=3;b1t=key;t+; break; case 0x7e: init(); /恢复原始密码/ for(i=0;i6;i+) write_add(i,c1i); delayms(2); break; /程序太长不宜写在报告中,完整程序请 /联系QQ154401855(或154401856)下载 P0=0xfd; temp=P0; temp=temp&0

24、xf0; if(temp!=0xf0) temp=P0; temp=temp&0xf0; if(temp!=0xf0) temp=P0; switch(temp) case 0xed: key=4;b1t=key;t+; break; case 0xdd: key=5;b1t=key; t+; break; case 0xbd: key=6;b1t=key; t+; break; case 0x7d: /重新输入/ t=0; lcd_mesg(IC_DAT); TransferData(0x9c,0); break; P0=0xfb; temp=P0; temp=temp&0xf0; if(t

25、emp!=0xf0) temp=P0; temp=temp&0xf0; if(temp!=0xf0) temp=P0; switch(temp) case 0xeb: key=7;b1t=key; t+; break; case 0xdb: key=8;b1t=key;t+; break; case 0xbb: key=9; b1t=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) case 0

26、xe7: init(); for(i=0;i6;i+) a1i=read_add(i); for(i=0;i6;i+) if(a1i=b1i) h+; if(h=6)newpassword();t=0;h=0;flag=1; break; case 0xd7: key=0;b1t=key;t+; break; case 0x77: /确认/ for(i=0;i6;i+) write_add(i,b1i); else for(i=0;i6;i+) a1i=read_add(i); for(i=0;i6;i+) if(a1i=b1i) h+; if(h=6)right(); else wrong(

27、); break; void main(void) initinal(); lcd_mesg(IC_DAT); /显示中文汉字/ while(1)jianpan(); 5 结论本设计主要运用的大学期间所学的单片机应用、模拟电子技术基础、数字电子技术基础、电路和通信电子线路等课程所学的知识,由AT89C5单片机、AT24C02存储芯片、128*64液晶显示屏、DS1302时钟芯片、DS18B20温度传感器、4*4矩阵键盘和蜂鸣器报警系统等元器件实现的作为一个密码锁的基本功能。能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码等密码锁的基本功能。除上述基本的密码锁功能外,还具有掉电存储密码、

28、显示日历和温度等功能。本设计还可以完善的地方:(1)增加无线收发模块,是用户不仅可以在现场通过键盘来输入密码,还可以通过手持的无线设备来在一定的距离之外发送密码,这比较适合在用在工厂或企业的大门或仓库的情况下,当用户开着大货车给仓库运货的时候就不必再下车手动输入密码开门了。(2)可以把液晶屏换为液晶触摸屏,这样就省去了实际的存在的键盘了,这不仅可以使用户使用起来更为方便,也可以节省密码锁设备多占用的空间,可以使整个设备更轻盈、小巧,看起来更美观。参考文献1 郭天祥.51单片机C语言教程M.北京:机械工业出版,2009年1月.1651822 何立民.单片机中级教程M.北京:北京航空大学出版社,2

29、005年10月.23253 何立民.单片机应用技术选编M.北京:北京航空大学出版社,1992年2月.6582 4 陈明荧.8051单片机课程设计实训教材M.北京:高等教育出版社,2005年10月.1341385 康华光.电子技术基础M.北京:高等教育出版社,2006年1月.47486 邱关源.电路M.北京:高等教育出版社,2006年5月. 1021087 阎石.数字电子技术基础(第四版)M.北京:高等教育出版社,1998年11月.234257 8 华成英等.模拟电子技术基础(第四版)M.北京:高等教育出版社,2006年5月.79809 梁宗山.新型集成模块应用M.武汉:华中理工大学出版社,2004年6月.5961

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1