电子密码锁控制电路设计-毕业设计
- 格式:pdf
- 大小:5.00 MB
- 文档页数:47
目录摘要: (I)Abstract: ..................................................................................................................................... I I 第1章绪论 (1)1.1 课题背景 (1)1.2 课题设计目标 (2)第2章系统方案论证 (4)2.1 主控部分的选择 (4)2.2 密码输入方式的选择 (5)第3章系统总体设计和主要芯片介绍 (6)3.1 系统总体设计 (6)3.2 主要芯片介绍 (6)3.2.1 AT89C51 (6)3.2.2 存储芯片AT24C02 (10)3.2.3 显示电路(LCD1602) (11)第4章系统硬件构成 (13)4.1 系统整体电路图 (13)4.2 单片机最小系统原理图 (13)4.3 复位电路 (14)4.4 时钟电路 (15)4.5 键盘输入部分 (16)4.6 密码存储部分 (17)4.7 显示部分 (18)4.8 报警部分 (19)第5章软件的设计与实现 (20)5.1 软件系统的总体设计 (20)5.2 主程序流程图 (20)5.3 键功能程序流程图 (22)第6章结论 (23)附录 (26)附件1:英文原文及中文翻译 (26)附件2:任务书 (40)附件3:开题报告 (41)附件4:原理图 (46)附件5:实物图 (47)附件6:程序 (48)附件7:元件清单 (66)基于单片机的智能密码锁的设计摘要:随着科学技术的不断发展,人们在日常生活与工作中对保险器件的要求越来越高。
同时,电子设备也正在向智能化与微型化不断发展,电子密码控制系统已经越来越符合人们的要求。
而单片机已经成为电子产品研制和开发中首选的控制器。
为了满足人们对锁的使用要求,增加其安全性,同时克服传统锁具带来的不方便性,用数据密码代替钥匙的智能密码锁便应运而生。
基于51单片机电子锁设计摘要随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。
本设计以单片机AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。
根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。
而且采用键盘输入的电子密码锁具有较高的优势。
采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。
软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。
测试结果表明,本系统各项功能已达到本设计的所有要求。
关键词:单片机;密码锁;单片机设计,电子锁。
Electronic Lock Design with 51 Serires Single Chip ControllerAbstractAlong with the exaltation of social science and the living level of people, how carry out the family to guard against theft, this problem also change particularly outstanding.Because of the simple construct of traditional machine lock,the affairs of theft is hackneyed.the electronics lock is safer because of its confidentiality, using the vivid good, the safe coefficient is high, being subjected to the large customer close.It can carry out the key information to register in the main on board initial attestation, the password information encrypt etc. Go to correspond by letter the principle according to the string between 51 machines, this is easy to encrypt and protect to the passwords information random. Adopt the numerical signal codes,not only can carry out many controls of the road information, raise the anti- interference that signal deliver, reduce the mistake action,but also the power consume is low, Respond quickly,the efficiency deliver is high, work stable credibility etc. The software design adoption the design thought from top to bottom, to make the system toward wear distribute type,turn to the direction development of small, strengthen the system and can expand the stability and circulate.Test the result enunciation, various functions of this system are already all request of this design.keyword:singlechip;cryptogram lock;singlechip design; electronics lock.目录1 绪论 (1)1.1 引言 (1)1.2 电子密码锁的背景 (1)1.3 电子锁设计的意义的本设计特点 (2)2.系统设计 (3)2.1系统总设计结构图 (3)2.2.开锁机构设计 (3)2.2.1主控芯片AT89C51单片机的简介 (4)3系统硬件设计 (6)3.1键盘设计 (6)3.2系统电路设计: (8)3.2.1 晶振时钟电路 (8)3.2.2复位电路设计 (8)3.2.3串口引脚功能介绍 (8)3.2.4 其它引脚 (9)3.3电路图的绘制 (9)3.3.1 PROTEL 99 SE简介: (12)3.4原器件采购 (14)3.5电路焊接 (14)4.软件设计 (17)4.1 系统软件设计整体思路 (17)4.2系统软件设计流程图 (18)5 程序调试 (19)5.1 程序调试用到的软件及工具 (19)5.2 KEIL C51简介 (19)5.3 调试过程 (19)6 设计总结与展望 (22)致谢 (23)参考文献 (24)附录 (25)1 绪论1.1 引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱。
基于PLC的电子密码锁毕业论文设计摘要本毕业设计介绍了可编程序控制器(PLC)和PLC控制系统的基本知识,包括PLC的定义、特点、分类、技术指标、基本结构、工作原理、硬件知识及PLC控制系统等相关知识。
采用松下公司系列的PLC,设计了一个简单的密码锁控制系统。
密码锁控制系统通过了可编程序控制器来控制和实现开锁和报警过程。
可编程控制器是以计算机为核心的通用自动控制装置,它的功能强、可靠性极强、编程简单、使用方便、体积小。
现已广泛应用于工业生产所控制的各个领域。
它以微处理器为核心,用编写的程序的方式进行逻辑控制、定时、记数和算术运算等,并通过数字量和模拟量的输入/输出来控制机械设备或生产过程。
本文从经济实用的角度出发,结合外围的矩阵键盘输入、LED液晶显示、报警、开锁等,用C语言编写主控芯片的控制程序,设计了一款可以多次更改密码,具有报警功能的电子密码控制系统。
这种电路设计具有防试探按键输入、智能控制上锁、开锁、报警、修改密码等多种功能。
密码保密性强、灵活性高。
该设计采用松下公司的系列可编程控制器。
系列有被已在国内广泛使用的系列代替的趋势。
我们在这里有必要详细介绍松下的系列可编程控制器的性能指标,硬件组成和指令。
PLC的学习比一般编程学习困难在于,要完成一个控制系统不仅需要掌握一定的编程技术,更为重要的是要知道如何针对实际应用的需要选择合适的PLC型号,然后进行资源配置,设计控制系统。
该设计为密码锁自动控制的PLC控制,主要介绍了密码锁自动控制系统的工作原理,控制系统的PLC的选型和资源的配置,控制系统程序设计与调试,控制系统PLC程序。
最后,在该设计过程中给予极大鼓励和帮助的老师、同学,在此表示衷心的感谢。
由于在设计过程中存在许多不足,希望老师和同学给我指出,我会及时改正。
本设计主要介绍密码锁的设计和原理。
关键词:可编程控制器; 密码锁; 梯形图; 交流接触器; 电磁目录1 绪论 (1)1.1PLC的历史由来 (1)1.2PLC的硬件组成 (2)1.3PLC的软件组成 (2)2 电子密码锁的背景 (3)2.1密码锁的发展 (3)2.2电子密码锁的概念 (4)2.3电子密码锁的性能特点 (4)2.4电子密码锁的电路组成部分 (4)2.5电子密码锁的应用 (5)2.6 PLC的应用克服电子密码锁缺陷 (5)3 PLC的结构和工作原理 (5)3.1 PLC的基本结构 (5)3.2整体式结构的PLC (5)3.3模块式结构的PLC (6)3.4 PLC各组成部分介绍 (7)3.5基本指令 (11)4 PLC在密码锁里的应用 (12)4.1 PLC在密码锁里的控制 (12)4.2循环扫描技术 (13)4.3 PLC的输入/输出响应时间 (14)5 PLC控制系统设计原则和设计步骤 (15)5.1设计原则 (15)5.2设计步骤 (16)6 密码锁控制系统设计 (17)6.1在设计密码锁之前,需要明白计数器的原理 (18)6.2密码锁控制系统的控制要求 (18)6.3密码锁控制系统的PLC选型和资源配置 (20)6. 4 密码锁控制系统程序设计和调试 (28)参考文献 (32)致谢 (33)1 绪论1.1 PLC的历史由来一种新型的控制装置,一项先进的应用技术,总是随着工业生产的实际需要而产生的。
密码锁本设计以STC89C52RC单片机为核心,利用AT24C02存储密码,做到掉电存储密码的电子密码锁。
电路:程序:#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned char#define N 7#define OP_READ 0xa1 // 器件地址以及读取操作#define OP_WRITE 0xa0 // 器件地址以及写入操作#define MAX_ADDR 0x7f // AT24C02最大地址sbit SCL=P2^0;sbit SDA=P2^1;sbit CSH=P3^0;sbit e=P3^4;sbit rs=P3^5;sbit sp=P3^6;sbit lock=P3^1;sfr duan=0x80;sfr key=0x90;uint ci;uchar kc,sc,sc2;int shu1,shu2,jh,jg;uchar code table[] =" LOCK "; uchar code table2[]="WELLCOME TO USE!"; uchar code table3[]="PASS WORD:";uchar code table4[]="ERRO!";uchar code table5[]="OPEN!";uchar code table6[]="NEW PASS WORD"; uchar code table7[]="SUCCESSFUL!";uchar code table8[]="FAIL!";uchar code cmm[6]={1,2,3,3,2,1};uchar mm[6];uchar tablesuan[N];void init();void writec(uint com);void writed(uint dat);void delay(uint shu);uchar keyscan();void xieshuzu(uchar a[],uchar add);void shuru();void kaiji();void bijiao();void xies(uchar a,uchar add);void delayms(unsigned char ms);void gmm();/***********************//***********************//***********************/void start()// 开始位{SDA = 1;SCL = 1;_nop_();_nop_();SDA = 0;_nop_();_nop_();_nop_();_nop_();SCL = 0;}void stop()// 停止位{SDA = 0;_nop_();_nop_();SCL = 1;_nop_();_nop_();_nop_();_nop_();SDA = 1;}unsigned char shin()// 从AT24Cxx移入数据到MCU{unsigned char i,read_data;for(i = 0; i < 8; i++){SCL = 1;read_data <<= 1;read_data |= (unsigned char)SDA;SCL = 0;}return(read_data);}bit shout(unsigned char write_data)// 从MCU移出数据到A T24Cxx{unsigned char i;bit ack_bit;for(i = 0; i < 8; i++) // 循环移入8个位{SDA = (bit)(write_data & 0x80);_nop_();SCL = 1;_nop_();_nop_();SCL = 0;write_data <<= 1;}SDA = 1; // 读取应答_nop_();_nop_();SCL = 1;_nop_();_nop_();_nop_();_nop_();ack_bit = SDA;SCL = 0;return ack_bit; // 返回A T24Cxx应答位}void write_byte(unsigned char addr, unsigned char write_data) // 在指定地址addr处写入数据write_data{start();shout(OP_WRITE);shout(addr);shout(write_data);stop();delayms(10); // 写入周期}unsigned char read_current()// 在当前地址读取{unsigned char read_data;start();shout(OP_READ);read_data = shin();stop();return read_data;}unsigned char read_random(unsigned char random_addr)// 在指定地址读取{start();shout(OP_WRITE);shout(random_addr);return(read_current());}void delayms(unsigned char ms)// 延时子程序{unsigned char i;while(ms--){for(i = 0; i < 120; i++);}}/***********************//***********************//***********************/ //主程序/void main(){ init();kaiji();delay(1000);writec(0x01);xieshuzu(table3,0x80);if(CSH==0){write_byte(2,cmm[0]); //在24c02的地址2中写入数据secdelayms(2);write_byte(3,cmm[1]); //在24c02的地址2中写入数据sec delayms(2);write_byte(4,cmm[2]); //在24c02的地址2中写入数据sec delayms(2);write_byte(5,cmm[3]); //在24c02的地址2中写入数据sec delayms(2);write_byte(6,cmm[4]); //在24c02的地址2中写入数据sec delayms(2);write_byte(7,cmm[5]); //在24c02的地址2中写入数据sec delayms(2);}mm[0]=read_random(2);delayms(2);mm[1]=read_random(3);delayms(2);mm[2]=read_random(4);delayms(2);mm[3]=read_random(5);delayms(2);mm[4]=read_random(6);delayms(2);mm[5]=read_random(7);while(1){lock=0;shuru();bijiao();}}/***********************/ //初始化/ void init(){lock=0;writec(0x01);writec(0x38);writec(0x0c);IT0=1;EX0=1;}/***********************/ //写开机画面/ void kaiji(){xieshuzu(table,0x80);xieshuzu(table2,0xc0);}/***********************/ //写数组/ void xieshuzu(uchar a[],uchar add){uchar cis;writec(add);for(cis=0;a[cis]!='\0';cis++){writed(a[cis]);delay(2);}}/***********************/ //写数字/ void xies(uchar a,uchar add){writec(add);writed(0x30+a);}/***********************/ //写指令/ void writec(uint com){e=0;rs=0;duan=com;delay(2);e=1;delay(2);e=0;}/***********************/ //写数据/void writed(uint dat){e=0;rs=1;duan=dat;delay(2);e=1;delay(2);e=0;}/***********************/ //延时/ void delay(uint shu){uint i,j;for(i=shu;i>0;i--)for(j=110;j>0;j--);}/***********************/ //现盘扫描/ uchar keyscan(){uchar k,skey;key=0xfe;skey=key;sp=1;if(skey!=0xfe){delay(10);skey=key;if(skey!=0xfe){switch(skey){case(0xee):k=7;kc++;break;case(0xde):k=8;kc++;break;case(0xbe):k=9;kc++;break;case(0x7e):k=0x0a;kc++;break;default:break;}while(skey!=0xfe)skey=key;sp=0;return k;}}key=0xfd;skey=key;if(skey!=0xfd){delay(10);skey=key;if(skey!=0xfd){switch(skey){case(0xed):k=4;kc++;break;case(0xdd):k=5;kc++;break;case(0xbd):k=6;kc++;break;case(0x7d):k=0x0b;kc++;break;default:break;}while(skey!=0xfd)skey=key;sp=0;return k;}}key=0xfb;skey=key;if(skey!=0xfb)delay(10);skey=key;if(skey!=0xfb){switch(skey){case(0xeb):k=1;kc++;break;case(0xdb):k=2;kc++;break;case(0xbb):k=3;kc++;break;case(0x7b):k=0x0c;kc++;break;default:break;}while(skey!=0xfb)skey=key;sp=0;return k;}key=0xf7;skey=key;if(skey!=0xf7){delay(10);skey=key;if(skey!=0xf7){switch(skey){case(0xe7):k=0x0d;kc++;break;case(0xd7):k=0; kc++;break;case(0xb7):k=0x0e;kc++;break;case(0x77):k=0x0f;kc++;break;default:break;}while(skey!=0xf7)skey=key;sp=0;return k;}}}/***********************/ //输入数据处理/ void shuru(){uchar k=0,xw=0x80;sc=0;kc=0;xieshuzu(table3,0x80);do{while(kc==sc)k=keyscan();if(kc==1)writec(0x01);tablesuan[sc]=k;//xies(tablesuan[sc],xw);xies(tablesuan[sc],0xc0);writec(xw);writed(0x2A);xw++;if(sc==5)goto out;}while((tablesuan[sc++]<=9)&&(sc<N));out:;if(sc>N){writec(0x01);xieshuzu(table4,0x80);}}void bijiao(){if((tablesuan[0]==mm[0])&&(tablesuan[1]==mm[1])&&(tablesuan[2]==mm[2])&&(tablesuan[3] ==mm[3])&&(tablesuan[4]==mm[4])&&(tablesuan[5]==mm[5])){EA=1;lock=1;writec(0x01);xieshuzu(table5,0x80);delay(6500);EA=0;}else{writec(0x01);xieshuzu(table3,0x80);}}void gmm(){uchar k=0,xw=0x80;sc2=0;kc=0;xieshuzu(table6,0x80);do{while(kc==sc2)k=keyscan();if(kc==1)writec(0x01);mm[sc2]=k;xies(mm[sc2],0xc0);writec(xw);writed(0x2A);xw++;if(sc2==5)goto out2;}while((mm[sc2++]<=9)&&(sc2<N));//out:;//if(sc>N)//{writec(0x01);xieshuzu(table8,0x80);goto out3;//}out2:;writec(0x01);xieshuzu(table7,0x80);write_byte(2,mm[0]); //在24c02的地址2中写入数据secdelayms(2);write_byte(3,mm[1]); //在24c02的地址2中写入数据secdelayms(2);write_byte(4,mm[2]); //在24c02的地址2中写入数据secdelayms(2);write_byte(5,mm[3]); //在24c02的地址2中写入数据secdelayms(2);write_byte(6,mm[4]); //在24c02的地址2中写入数据secdelayms(2);write_byte(7,mm[5]); //在24c02的地址2中写入数据secdelayms(2);out3:;}void INTT0() interrupt 0{EA=0;gmm();EA=1;}。
基于单片机控制的电子密码锁设计目录摘要 (I)关键词 (I)Abstract ................................................................................................................... I I Key words ............................................................................................................... I I 1 绪论. (1)1.1 课题背景 (1)1.2 课题的目的和意义 (1)1.3 电子密码锁发展趋势 (1)1.4 本设计完成的工作 (2)2 总体方案设计 (2)2.1 电源模块 (3)2.2主控制器模块 (3)3 硬件实现及单元电路设计 (4)3.1 主控制模块 (4)3.2 单片机的时钟电路与复位电路设计 (4)3.3 单片机管脚说明 (5)3.4 键盘电路设计 (6)3.5 数码管显示电路设计 (6)3.6 存储芯片电路设计 (7)3.7 报警电路 (7)3.8 密码锁电路 (7)4 红外遥控电路设计 (8)4.1 红外通信基本原理 (8)4.2红外通信标准 (9)4.3 红外线遥控原理 (10)4.4 主要模块设计 (10)5 系统软件设计方案 (11)5.1 主程序流图 (11)5.2 开锁软件设计 (12)6 系统的安装与调试 (15)6.1硬件的安装 (15)6.2单片级密码锁的仿真 (16)结论 (16)致谢 ...................................................................................... 错误!未定义书签。
参考文献 (17)附录1 整机电路原理图 (18)附录2 部分源程序 (18)附录3:实物图 (27)基于单片机控制的电子密码锁设计摘要:本设计研究的对象是单片机密码锁,单片机密码锁由硬件和软件组成,硬件部分有电源输出电路、晶振电路、复位电路、键盘接口电路、开锁电路、报警电路、继电器、以及51单片机组成。
毕业综合训练课题名称单片机密码锁学院信息工程学院专业电子信息工程技术班级10级电信(专)一班姓名闫鹏学号110105010010 指导老师王蓓江西科技学院毕业综合训练任务书学院信息工程学院专业电子电子信息工程技术年级10级班级10电信(专)一班姓名闫鹏起止日期2012年10月—2012年11月题目单片机密码锁1.毕业综合训练任务及要求密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:(1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。
(2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。
(3)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。
2.毕业综合训练的原始资料及依据随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。
但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。
而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。
加上其成本较高,一定程度上限制了这类产品的普及和推广。
鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。
3.主要参考资料、文献[1] 王迎旭.单片机原理及及应用.机械工业出版社 2001[2] 周航慈.单片机应用程序设计技术.周航慈北京航空航天大学出版社[3] 张洪润单片机应用技术教程北京:清华大学出版社,1997指导教师王蓓2012年11月15日指导教师评语建议成绩:优良中及格不及格指导教师签字年月日最终评定成绩:优良中及格不及格院长签章年月日目录第一章引言 (5)第二章系统总体方案设计 (6)第三章硬件电路设计 (7)3.1 键盘电路设计 (7)3.2LED显示电路 (8)3.3 开锁电路 (10)3.4报警电路 (10)第四章软件设计 (11)4.1软件设计思路 (11)4.2 各子程序设计 (11)第五章系统调试 (13)第六章心得体会 (14)第七章参考文献 (14)第一章引言在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
电子密码锁毕业设计电子密码锁毕业设计近年来,随着科技的不断发展,电子密码锁作为一种新型的安全设备,逐渐成为人们生活中不可或缺的一部分。
作为一名大学生,我也对电子密码锁产生了浓厚的兴趣,并决定将其作为我的毕业设计主题。
首先,我对电子密码锁的基本原理进行了深入的研究。
电子密码锁主要由密码输入模块、控制模块和电机驱动模块组成。
通过密码输入模块,用户可以输入自己设定的密码。
控制模块负责接收用户输入的密码,并与预设的密码进行比对,如果输入正确,则通过电机驱动模块控制锁的开关。
这种设计简单而高效,能够有效地保护用户的财产安全。
接下来,我开始着手设计我的电子密码锁。
我决定采用微控制器作为控制模块,并使用数字密码键盘作为密码输入模块。
为了增加系统的稳定性和安全性,我还添加了指纹识别模块和蓝牙模块。
通过指纹识别模块,用户可以使用自己的指纹进行解锁,这种方式更加方便快捷。
而蓝牙模块则可以实现手机远程开锁的功能,用户只需通过手机发送指令,即可控制电子密码锁的开关。
这种设计不仅提高了用户的使用便利性,同时也增加了系统的安全性。
在设计过程中,我遇到了许多挑战。
首先是如何保证系统的稳定性和安全性。
为了解决这个问题,我进行了大量的实验和测试,不断优化系统的设计。
其次是如何提高系统的响应速度。
通过对系统的硬件和软件进行优化,我成功地将响应时间缩短到了毫秒级别。
最后是如何保证系统的可靠性。
我进行了多次的测试和模拟,确保系统在各种条件下都能正常工作。
在完成设计后,我进行了一系列的实验和测试。
通过对系统的各项指标进行评估,我发现我的电子密码锁在安全性、稳定性和响应速度等方面都达到了预期的要求。
同时,我还对系统进行了实际应用测试,得到了用户的积极反馈。
他们对电子密码锁的使用体验非常满意,并对我的毕业设计表示了赞赏和肯定。
通过这次毕业设计,我不仅深入了解了电子密码锁的原理和设计方法,还提高了自己的动手实践能力和解决问题的能力。
同时,我也意识到科技的发展给我们的生活带来了巨大的改变,我们应该积极拥抱科技,并将其运用到实际生活中,为人们带来更多的便利和安全。
毕业设计(论文)标题:基于PLC密码锁的系统设计学生姓名:系部:电力工程系专业:电气自动化班级:指导教师:第一章绪论 (5)1.1密码锁的优点 (5)第二章密码锁的硬件设计 (6)2.1 S7—200的系统组成 (6)2.2 控制要求 (7)2.3 PLC的选型 (8)2.4 口分配表 (9)2.5 PLC外部接线图 (11)第三章密码锁的软件设计 (12)3.1梯形图 (18)3.2程序分析 (19)3.3 程序设计的局限性和优点 (20)结论 (21)致辞 (22)【参考文献】 (23)基于西门子PLC密码锁电气控制系统的研究中文摘要随着社会的不断发展,电子技术也获得了飞速的发展,在其推动下,现在电子产品几乎渗透了社会的各个领域,有力地推动了社会生产里的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
在安全方面,以电子门锁防盗报警功能的逐渐取代了传统机械锁,克服了机械锁量少、安全性能密码质量较差,使无论在密码锁技术或性能大大提高一步。
摘要随着大规模集成电路的技术,特别是介绍单片机,出现了带微处理器的智能锁,它除具有电子门锁的功能外,并介绍了智能化管理,专家分析系统等功能,使密码锁具有很高的安全性、可靠性,应用越来越广泛。
随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛作为通用电子密码锁,主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路[8]。
作为电子密码锁的输入电路,可供选择的方案有数字机械式键盘和触摸式数字键盘等多种本设计是采用西门子可编程控制器程序设计密码的程序,适用于近20计数器。
组合锁的外观设计类似银行的自动取款机上的键盘。
给人的感觉,那种输入密码的方法。
其实不然,设计与特点的计数器,计数器设定次数几次这样的相应的关键是几次。
本科毕业设计(论文)题目基于单片机的电子密码锁设计院(系部)河北大学专业名称电子信息工程年级班级学生姓名指导教师2011年月日摘要本课题设计了一种基于单片机的数字电子密码锁,这种数字电子密码锁以单片机作为数据处理主控芯片。
电子密码锁的设计主要由四部分组成:4×4矩阵键盘接口电路、以AT89S52芯片为核心的密码锁的数据处理及控制电路、掉电情况下依然能保存密码的EEPROM存储器芯片,输出七段显示电路。
另外系统还有LED提示灯,报警蜂鸣器,单片机复位电路等。
电子密码锁设计的关键问题是实现密码的输入、清除、开锁、更改等功能。
同时该密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,符合住宅,办公室等场所的用锁要求,具有推广价值。
关键词单片机密码锁 4*4矩阵键盘 EEPROM存储芯片实用经济AbstractThis project designed a digital electronic lock which used a MCU as data process and control chip. The main functions digital electronic lock are as follows:The design of the electronic password lock is mainly made up of four parts: 4×4 matrix keyboard interface circuit, data processing and control circuit, eeprom memory chip that is used to keep password when the lock loses power and display circuit. In addition the system also consists of LED lights, alarm buzzers, single-chip reset circuit and so on..The key question of the electronic lock designing is the realization of functions, such as the input password, clear password, unlock, change password and other functions.And the designed cipher lock is characterized by its reasonable designing methods, simple operation, low cost and property of safety and practicality.Besides,it works well as a residence lock and has great potential for commercial development.Key words: SCM Cipher lock 4*4matrix keyboard EEPROM Practical economy目录1 绪论 (1)1.1国内外研究综述 (1)1.2选题的目的和意义 (2)1.3本论文的任务 (3)2电子密码锁总体设计 (4)2.1系统总体设计 (4)2.2单片机 (5)2.3密码存储芯片选择 (10)2.4键盘输入方案比较 (12)2.5显示方案比较 (13)3电子密码锁的硬件设计 (1)3.1系统结构框图 (1)3.2主控部分 (2)3.3显示部分 (3)3.4键盘输入部分 (4)3.5密码存储部分 (5)3.6电源部分 (5)3.7其它功能部分 (8)3.8 电子密码锁的电路原理图 (10)4电子密码锁的软件组成 (12)4.1系统软件设计流程 (12)4.2 Keil uVision2软件介绍 (13)4.3各主要部分的功能实现程序设计 (14)4.3.1初始化程序设计 (14)4.3.2按键处理程序设计 (17)4.3.3密码更改程序设计 (21)5系统仿真 (24)5.1系统仿真过程 (24)5.2仿真调试中遇到的问题及解决办法 (25)总结 (1)致谢 (2)参考文献 (3)附录 (4)1 绪论1.1国内外研究综述在电子锁出现以前人们广泛的使用机械锁,但是随着时间的推移机械锁已不能满足人们的要求,于是电子锁应用而生。
人生最大的幸福,是发现自己爱的人正好也爱着自己。
基于单片机的电子密码锁设计摘要在日常的生活和工作中住宅和部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决若使用传统的机械式钥匙开锁人们常需携带多把钥匙使用极不方便且钥匙丢失后安全性即大打折扣在安全技术防范领域具有防盗报警功能的电子密码锁逐渐代替了传统的机械式密码锁电子密码锁具有安全性高、成本低、功耗低、易操作等优点本文从经济实用的角度出发采用美国Atmel公司的单片机AT89S51作为主控芯片和数据存储器单元结合外围的矩阵键盘输入、LCD液晶显示、报警、开锁等用C语言编写的主控芯片控制程序和EEPROM AT24C02读写程序相结合并用Keil软件进行编译设计了一款可以多次更改密码具有报警功能的电子密码控制系统这种密码锁的电路设计具有防试探按键输入、智能控制上锁、开锁、报警、修改密码等多种功能密码长度可变、保密性强、灵活性高、使用日益广泛关键词密码锁单片机报警 LCD显示Design of Electric Password Lock Based on MCUABSTRACTIn the daily life and the workthe way to the house's and department's safe guardunit's document filethe financial reporting as well as some individual material preservation almost need many locks. If we use tradition mechanical key to openthe people often must carry many keysbut it is not extremely convenient. If the key lostthe security will decline greatly. In the safety work guard domainthe lock with security warning function electronic combination have replaced the traditional mechanical combination lock graduallythe electronic combination lock have the highly securitythe lowly costthe lowly power wastageeasy to operate and so on merits.This article is based on the economical and practical point of viewuses the United States Atmel Corporation AT89S51 microcontroller as a master chip and the data memory unitit combines with the external matrix keyboard inputLCD digital displayalarmunlock and so on circuitsdominates by the C programming language chip EEPROM of the control procedures and carries on the translation with Keil softwarethe password can be changed many timesthe electronic the password control also has the alarming function.This password lock circuit design has anti-test button inputintelligent control lockunlockalarm and change the password multiple functions. Password length can be changed great security and high flexible than othersit is widely used.Key Words: Password lock; MCU; Alarm; LCD Display目录摘要第一章绪论1.1电子密码锁简介 (1)1.2电子密码锁的发展趋势 (1)1.3本设计所要实现的目标 (2)1.4设计方案简介 (2)第二章主要元器件介绍2.1主控芯片AT89S51 (3)2.1存储芯片AT24C02 (6)2.3 LCD1602显示器 (7)2.4 晶体振荡器 (8)第三章硬件系统构成3.1设计原理.............................................................................. (10)3.2电路总体构成 (10)3.3电源输入电路 (11)3.4键盘输入电路 (12)3.5密码存储电路 (12)3.6复位电路.............................................................................. (13)3.7晶振电路.............................................................................. (14)3.8显示电路.............................................................................. (14)3.9报警电路.............................................................................. (15)3.10开锁电路 ............................................................................. .15第四章软件系统设计4.1主程序流程图 (17)4.2按键软件设计 (18)4.3密码设置软件设计 (19)4.4开锁软件设计 (20)第五章调试和实现5.1硬件调试 ............................................................................. . (21)5.2软件调试 ............................................................................. . (21)5.3 Pruteus仿真 (22)结论和展望致谢参考文献附录第一章绪论1.1 电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作从而控制机械开关的闭合完成开锁、闭锁任务的电子产品它的种类很多有简易的电路产品也有基于芯片的性价比较高的产品现在使用较广的电子密码锁是以芯片为核心通过编程来实现的其性能和安全性已大大超过了机械锁其特点如下:1) 保密性好编码量多远远大于弹子锁随机开锁成功率几乎为零2) 密码可变用户可以随时更改密码防止密码被盗同时也可以避免因人员的更替而使锁的密级下降3) 误码输入保护当输入密码多次错误时报警系统自动启动4) 无活动零件不会磨损寿命长5) 使用灵活性好不像机械锁必须佩带钥匙才能开锁6) 电子密码锁操作简单易行一学即会1.2 电子密码锁的发展趋势日常生活和工作中住宅和部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决目前门锁主要用弹子锁其钥匙容易丢失;保险箱主要用机械密码锁其结构较为复杂制造精度要求高成本高且易出现故障人们常需携带多把钥匙使用极不方便且钥匙丢失后安全性即大打折扣针对这些锁具给人们带来的不便若使用机械式钥匙开锁为满足人们对锁的使用要求增加其安全性用密码代替钥匙的密码锁应运而生由于电子器件所限以前开发的电子密码锁其种类不多保密性差最基本的就是只依靠最简单的模拟电子开关来实现的制作简单但很不安全在后为多是基于EDA来实现的其电路结构复杂电子元件繁多也有使用早先的20引角的2051系列单片机来实现的但密码简单易破解随着电子元件的进一步发展电子密码锁也出现了很多的种类功能日益强大使用更加方便安全保密性更强由以前的单密码输入发展到现在的密码加感应元件实现了真真的电子加密用户只有密码或电子钥匙中的一样是打不开锁的随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁出于安全、方便等方面的需要许多电子密码锁已相继问世但这类产品的特点是针对特定有效卡、指纹或声音有效且不能实现远程控制只能适用于保密要求高且供个人使用的箱、柜、房间等由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息组合使用这些信息能够使电子防盗锁获得高度的保密性如防范森严的金库需要使用复合信息密码的电子防盗锁组合使用信息也能够使电子防盗锁获得无穷扩展的可能使产品多样化对用户而言是"千挑百选、自得其所"可以看出组合使用电子信息是电子密码锁以后发展的趋势1.3 本设计所要实现的目标本设计采用单片机为主控芯片结合外围电路组成电子密码锁用户想要打开锁必先通过提供的键盘输入正确的密码才能将锁打开密码输入错误有提示为了提高安全性当密码输入错误三次将报警密码可以有用户自己修改设定锁打开后才能修改密码修改密码之前必须再次输入就的密码在输入新密码的时候要二次确认以防止误操作1.4 设计方案简介采用以单片机为核心的控制方案由于单片机种类繁多各种型号都有其一定的使用环境因此在选用时要多加比较合理选择以期获得最佳的性价比一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素基于以上因素本设计选用单片机AT89S51作为本设计的核心元件利用单片机灵活的编程设计和丰富的I/O端口及其控制的准确性实现基本的密码锁功能在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制外接AT24C02芯片用于密码的存储外接LCD1602显示器用于显示作用当用户需要开锁时先按键盘开锁键之后按键盘的数字键0-9输入密码密码输完后按下确认键如果密码输入正确则开锁不正确显示密码错误重新输入密码当三次密码错误则发出报警;当用户需要修改密码时先按下键盘设置键后输入原来的密码只有当输入的原密码正确后才能设置新密码新密码输入无误后按确认键使新密码将得到存储密码修改成功第二章主要元器件2.1主控芯片AT89S51单片机AT89S51功能介绍AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-Falsh Programmable and Erasable Read Only Memory)的低电压高性能CMOS8位微处理器俗称单片机该器件采用ATMEL高密度非易失存储器制造技术制造和工业标准的MCS-51指令集和输出管脚相兼容由于将多功能8位CPU和闪烁存储器组合在单个芯片中ATMEL的AT89S51是一种高效微控制器为很多嵌入式控制系统提供了一种灵活性高且价廉的方案AT89S51芯片引脚图如图2-1所示主要特性:·和MCS-51 兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路管脚说明:下面按其引脚功能分为四部分叙述这40条引脚的功能1、主电源引脚VSS和VSSAT89S51芯片引脚图VSS--(40脚)接+5V电压;VSS--(20脚)接地2、外接晶体引脚XTAL1和XTAL2XTAL1(19脚)接外部晶体的一个引脚在单片机内部它是一个反相放大器的输入端这个放大器构成了片内振荡器当采用外部振荡器时对HMOS单片机此引脚应接地;对SHMOS单片机此引脚作为驱动端XTAL2(18脚)接外晶体的另一端在单片机内部接至上述振荡器的反相放大器的输出端采用外部振荡器时对HMOS单片机该引脚接外部振荡器的信号即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS此引脚应悬浮3、控制或和其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP①RST/VPD(9脚)当振荡器运行时在此脚上出现两个机器周期的高电平将使单片机复位推荐在此引脚和VSS引脚之间连接一个约8.2k的下拉电阻和VSS引脚之间连接一个约10μF的电容以保证可靠地复位VSS掉电期间此引脚可接上备用电源以保证内部RAM的数据不丢失当VSS主电源下掉到低于规定的电平而VPD在其规定的电压范围(5±0.5V)内VPD就向内部RAM提供备用电源②ALE/PROG(30脚):当访问外部存贮器时ALE(允许地址锁存)的输出用于锁存地址的低位字节即使不访问外部存储器ALE端仍以不变的频率周期性地出现正脉冲信号此频率为振荡器频率的1/6因此它可用作对外输出的时钟或用于定时目的然而要注意的是每当访问外部数据存储器时将跳过一个ALE脉冲ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路对于EPROM单片机(如8751)在EPROM编程期间此引脚用于输入编程脉冲(PROG)③PSEN(29脚):此脚的输出是外部程序存储器的读选通信号在从外部程序存储器取指令(或常数)期间每个机器周期两次PSEN有效但在此期间每当访问外部数据存储器时这两次有效的PSEN信号将不出现PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入④EA/VPP(引脚):当EA端保持高电平时访问内部程序存储器但在PS(程序计数器)值超过0FFFH(对851/8751/80S51)或1FFFH(对8052)时将自动转向执行外部程序存储器内的程序当EA保持低电平时则只访问外部程序存储器不管是否有内部程序存储器对于常用的8031来说无内部程序存储器所以EA脚须常接地这样才能只选择外部程序存储器对于EPROM型的单片机(如8751)在EPROM编程期间此引脚也用于施加21V的编程电源(VPP)4.控制或和其它电源复用引脚 RST/VpdALE/PROGPSEN 和EA/VppRST/Vpd 当振荡器运行时在此引脚上出现两个机器同期的高电平(由低到高跳变)将使单片机复位在 VSS掉电期间此引脚可接上备用电源由 Vpd向内部 RAM提供备用电源以保持内部RAM中的数据ALE/PROG 正常操作时为ALE功能(允许地址钱存)提供把地址的低字节锁存到外部锁存器ALE引脚以不变的频率(振荡周期的1/6)周期性地发出正脉冲信号因此它可用作对外输出的时钟或用于定时目的但要注意每当访问外部数据存储器时将跳过一个 ALE脉冲ALE端可以驱动(吸收或输出电流)八个 LSTTL电路对于 EPROM型单片机在 EPROM编程期间此引脚接收编程脉冲(PROG功能)PSEN 外部程序存储器读选通信号输出端在从外部程序存储器取指令(或数据)期间;PSEN 在每个机器周期内两次有效 PSEN 同样可以驱动八个LSTTL输入EA/Vpp EA为内部程序存储器和外部程序存储器选择端当EA为高电平时访问内部程序存储器(PS值小于4K)当EA为低电平时则访问外部程序存储器对于EPROM型单片机在EPROM编程期间此引脚上加21VEPROM编程电源(Vpp)5、输入/输出(I/O)引脚P0、P1、P2、P3(共32根)①P0口(39脚至32脚):是双向8位三态I/O口在外接存储器时和地址总线的低8位及数据总线复用能以吸收电流的方式驱动8个LS型的TTL负载②P1口(1脚至8脚):是准双向8位I/O口由于这种接口输出没有高阻状态输入也不能锁存故不是真正的双向I/O口P1口能驱动(吸收或输出电流)4个LS型的TTL负载对8052、8032P1.0引脚的第二功能为T2定时/计数器的外部输入P1.1引脚的第二功能为T2EX捕捉、重装触发即T2外部控制端对EPROM编程和程序验证时它接收低8位地址③P2口(21脚至28脚):是准双向8位I/O口在访问外部存储器时它可以作为扩展电路高8位地址总线送出高8位地址在对EPROM编程和程序验证期间它接收高8位地址P2可以驱动(吸收或输出电流)4个LS型的TTL负载④P3口(10脚至17脚):是准双向8位I/O口在MSS-51中这8个引脚还用于专门功能是复用双功能口P3能驱动(吸收或输出电流)4个LS型的TTL负载作为第一功能使用时就作为普通I/O口用功能和操作方法和P1口相同作为第二功能使用时各引脚的定义如表所示值得强调的是P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能表2-1 P3口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)2.2 存储芯片AT24C02如图2-2为AT24C02的芯片引脚图图2-2 AT24C02的芯片引脚图特点:低压和标准电压运行模式- 2.7 (VCC = 2.7V to 5.5V)- 1.8 (VCC = 1.8V to 5.5V)内建128x8存储序列2线制串行接口双向数据传送协议100kHz(1.8V2.5V2.7V) 和400kHz(5V)兼容写同步时钟(最大10ms)高可靠性极限:1M写时钟周期数据保存:100年不断推进的芯片等级扩大了设备的可用温度范围AT24C02提供电可擦除的串行1024位存储或可编程只读存储器(EEPROM)128字(8位/字) 芯片在低压的工业和商业使用中进行了最优化设备操作:CLOCK 和DATA变化:SDA管脚通常外部要拉高SDA管脚上的数据只能在SCL低期间改变数据在SCL高期间改变定义为一个开始或停止信号开始状态:在任何操作之前必须有一个开始信号----在SCL为高时SDA上产生一个下降沿停止状态: SCL为高时SDA产生一个上升沿是停止信号停止信号后将停止所有通信在一个读的序列之后停止信号将让EEPROM进入备用电源模式2.3 LCD16022显示器液晶显示模块已作为很多电子产品的通过器件如在计算器、万用表、电子表及很多家用电子产品中都可以看到显示的主要是数字、专用符号和图形1602型LCD显示模块具有体积小功耗低显示内容丰富等特点1602型LCD可以显示2行16个字符有8位数据总线D0-D7和RSR/WEN三个控制端口工作电压为5V并且具有字符对比度调节和背光功能接口信号说明:1602型LCD的接口信号说明如表2-2所示表2-2 LCD1602接口信号说明符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D015BLA背光源正极8D1数据16BLK背光源负极1602型LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.5-5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm1602型LCD基本操作程序如下表所示:表2-3 LCD1602基本操作程序读状态输入RS=LR/W=HE=H输出D0-D7=状态字写指令输入RS=LR/W=LD0-D7=指令码E=高脉冲输出无读数据输入RS=HR/W=HE=H输出D0-D7=数据写数据输入RS=HR/W=LD0-D7=数据E=高脉冲输出无2.4晶体振荡器晶体振荡器简称晶振其作用在于产生原始的时钟频率这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率以声卡为例要实现对模拟信号44.1kHz或48kHz的采样频率发生器就必须提供一个44.1kHz或48kHz的时钟频率如果需要对这两种音频同时支持的话声卡就需要有两颗晶振但是现在的娱乐级声卡为了降低成本通常都采用SCR将输出的采样频率固定在48kHz但是SRC会对音质带来损害而且现在的娱乐级声卡都没有很好地解决这个问题现在使用最广泛的是石英晶体振荡器石英晶体振荡器是一种高精度和高稳定度的振荡器石英晶体振荡器也称石英晶体谐振器它用来稳定频率和选择频率是一种可以取代LC谐振回路的晶体谐振元件石英晶体振荡器广泛地使用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中为数据处理设备产生时钟信号和为特定系统提供基准信号在单片机中为其提供时钟频率石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片它可以是正方形、矩形或圆形等)在它的两个对应面上涂敷银层作为电极在每个电极上各焊一根引线接到管脚上再加上封装外壳就构成了石英晶体谐振器简称为石英晶体或晶体、晶振其产品一般用金属外壳封装也有用玻璃壳、陶瓷或塑料封装的只要在晶体振子板极上施加交变电压就会使晶片产生机械变形振动此现象即所谓逆压电效应当外加电压频率等于晶体谐振器的固有频率时就会发生压电谐振从而导致机械变形的振幅突然增大第三章硬件系统设计3.1 设计原理本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成其中矩阵键盘用于输入数字密码和进行各种功能的实现由用户通过连接单片机的矩阵键盘输入密码后经过单片机对用户输入的密码和自己保存的密码进行对比从而判断密码是否正确然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可当然也可以用继电器的常开触点去控制电磁铁吸合线圈本系统共有两部分构成即硬件部分和软件部分其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成图3-1 电子密码锁原理框图3.2 电路总体构成在确定了选用什么型号的单片机后就要确定在外围电路其外围电路包括电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成根据实际情况键盘输入部分选择4*4矩阵键盘显示部分选择字符型液晶显示LCD1602密码存储部分选用AT24C02芯片来完成其原理图如图3-2所示:图3-2 电路总体结构图3.3 电源输入电路密码锁主要控制部分电源需要用5V直流电源供电其电路如图3-3所示而5V电源输入时往往伴有杂波所以加一个2.2uF的电容滤波这样输出的电压一般能满足要求图3-3 电源输入电路原理图3.4 键盘输入电路由于本设计所用到的按键数量较多而不适合用独立按键式键盘采用的是矩阵式按键键盘它由行线和列线组成也称行列式键盘按键位于行列的交叉点上密码锁的密码由键盘输入完成和独立式按键键盘相比要节省很多I/O口本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用比如清空显示功能等键盘的每个按键功能在程序设计中设置其大体功能(看键盘按键上的标记)及和单片机引脚接法如图3-4所示:图3-4 键盘输入原理图3.5 密码存储电路AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片采用两线串行的总线和单片机通讯电压最低可以到2.5V额定电流为1mA静态电流10Ua(5.5V)芯片内的资料可以在断电的情况下保存40年以上而且采用8脚的DIP封装使用方便其电路如图3-5所示图中1、2、3脚是三条地址线用于确定芯片的硬件地址在AT89S51上它们都能接地第5脚和第8脚分别为正、负电源AT24C02中带有片内地址寄存器每写入或读出一个数据字节后该地址寄存器自动加1以实现对下一个储存单元的读写所有字节均以单一操作方式读取3.6 复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态并从这个状态开始工作例如复位后PC=0000H使单片机从第-个单元取指令无论是在单片机刚开始接上电源时还是断电后或者发生故障后都要复位在复位期间(即RST为高电平期间)P0口为高组态P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效地址锁存信号ALE也为高电平根据实际情况选择如图2-8所示的复位电路该电路在最简单的复位电路下增加了手动复位按键在接通电源瞬间电容C1上的电压很小复位下拉电阻上的电压接近电源电压即RST为高电平在电容充电的过程中RST端电压逐渐下降当RST端的电压小于某一数值后CPU脱离复位状态由于电容C1足够大可以保证RST高电平有效时间大于24个振荡周期CPU能够可靠复位增加手动复位按键是为了避免死机时无法可靠复位当复位按键按下后电容C1通过R5放电当电容C1放电结束后RST端的电位由R11和R15分压比决定由于R11<<R15 因此RST为高电平CPU处于复位状态松手后电容C1充电RST端电位下降CPU脱离复位状态R11的作用在于限制按键按下瞬间电容C1的放电电流避免产生火花以保护按键触电图3-6 复位电路原理图3.7 晶振电路AT89C51引脚XTAL1和XTAL2和晶体振荡器及电容C2、C1按图3-7所示方式连接晶振、电容C2/C3及片内和非门(作为反馈、放大元件)构成了电容三点式振荡器振荡信号频率和晶振频率及电容C1、C2的容量有关但主要由晶振频率决定范围在0~33MHz之间电容C2、C3取值范围在5~30pF之间根据实际情况本设计中采用12MHZ做系统的外部晶振电容取值为20pF图3-7 晶振电路原理图3.8 显示电路为了提高密码锁的密码显示效果能力本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成只有按下键盘上的开启按键后显示器才处于开启状态同理只有按下关闭按键后显示器才处于关闭状态否则显示器将一直处于初始状态当需要对密码锁进行开锁时按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码每按下一个数字键后在显示器上显示一个*输入多少位就显示多少个*当密码输入完成时按下确认键如果输入的密码正确的话LCD子显示"RIGHT"单片机其中P2.0引角会输出低电平使三极管T2导通电磁铁吸合电子密码锁被打开。