




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、设计说明书内容基于单片机的电子密码锁设计一、设计要求和条件1.1 设计要求根据单片机开发板所提供的元件特性和硬件电路,编写相关的程序,通过实验开发板实现电子密码锁在LCD1602上显示的功能。1 .搭建proteus仿真电路图平台,模拟单片机要实现的功能;2 .焊接单片机系统开发板;3 .编写程序,实现密码锁相关功能;4 .下载并调试程序,实现密码锁的具体功能。1.2 设计目的1 .熟练掌握KEIL软件的使用方法;2 .熟练掌握PROTEU歆件的使用方法;3 .掌握单片机I/O接口的工作原理;4 .掌握中断系统的工作原理;5 .掌握液晶LCD1602的工作原理及编程方法;6 .掌握蜂鸣器的编程
2、使用;7 .掌握行列式键盘的工作原理及编程使用方法;8 .掌握单片机的ISP下载使用方法。1.3 功能概述本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了硬件设计方案、软件流程图、C语言源程序及详细注释等内容,由于单片机实验板上的矩阵键盘为3*3的,则规定0-5号键为数字键,6-8号键为功能键,其中该密码锁的具体功能介绍如下:(1)按“8”号键则输入密码,初始密码为012345,在LCD1602上显示密码值为*”(密码是保密的),输完6位后键盘就锁定,在LCD1602上显示密码是否正确,若输入的密码长度小于6位,则1602等待密码输入。(2)若
3、密码输入正确后,则绿色的发光二极管亮表示开锁,并且1602上显示“youareright!”,等待是否修改密码。设计说明书内容(3)督码输入错误时显示“codeiswrong,接着会给你第二、第三次机会输入密码,如果三次密码都错误时,发出“叮咚”的报警声,且红色报警指示灯不停闪烁,按复位键清除报警。(4) 按“7”号键表示若密码不小心输入时,可以删除输入错误的密码。(5) 按“6”修改密码,要求输入原密码是正确的,然后按该键后,蓝色密码修改指示灯会亮,并且1602上会显示“Inputnewcode,输入正确要求再次输入,两次输入一致提示“Modifyright!”并返回主菜单。两次不一致时提示
4、“Modifyerror!”,然后返回主菜单。二、硬件设计方案的论证本系统整体主要划分为五大模块,分别是由单片机最小系统、矩阵键盘、LCD显示、报警系统、指示灯电路等组成。单片机系统主要功能是对外部输入的数据进行处理,显示电路将所要操作的步骤显示出来,指导用户使用,报警电路是对输入错误密码时的警告报警。系统能完成开锁、密码输入错误报警、密码删除、修改用户密码基本的密码锁的功能。若依据实际的实验板情况还可以添加遥控和掉电保护功能。2.1 总体方案设计本设计的具体总模块设计方案如下图(1)所示3中键盘输入模块数据采集单片机控制M元密码输入LC匚显示模块声光报警模块修改密码指示灯模块图(1)硬件总方
5、案模块框图2.2 具体模块方案的设计1 .主控芯片的方案选择方案一:采用硬件电路进行电子密码锁设计,比如使用74LS112双2设计说明书内容JK触发器构成的数字逻辑电路控制方案,该种方案可以实现基本功能,而且优点是不需要软件编程,但电路连接比较复杂,关键在于不易实现自行设置密码的要求。方案二:单片机中的STC89C51是具有高性能和低功耗优点的8位可编程控制器,内核具有丰富的指令集和32个通用工作寄存器,可以通过软件编程来实现电子密码锁设计中的各项要求和功能,而且单片机的I/O口也足够使用,硬件电路连接比较简单。综上所述方案论证,本次电子密码锁系统设计的主控芯片选择STC单片机的STC89C5
6、1来完成,采集输入数据对其处理并发出相应的指令。2 .键盘模块方案选择方案一:可以选择独立连接式键盘。对于独立连接式键盘,其每个键都独立的接入一根数据线,平时所有的数据线都被连接成高电平,当任何一个键按下时,与之相连的数据线将被拉成低电平。这种方案在处理多个数据时编程和硬件连接电路会较复杂。方案二:选择矩阵行列式键盘作为输入模块。矩阵式行列式键盘由行线和列线组成,按键位于行、列的交叉点上,行、列分别连接到按键开关的两端,列线通过上拉电阻接到高电平。无按键动作时,列线处于高电平状态;有按键按下时,交点的行线列线接通,列线电平状态将由与此行线相连的行线电平决定。本次通过键盘输入的值有很多种,而矩阵
7、式键盘节省了好多的I/O口,适用于按键数量较多的场合。综上且根据本次设计中的单片机实验板选择使用3*3矩阵键盘来完成输入密码值,此种键盘功能简单实用,如下图(2)所示0123-4l1,-5图(2)矩阵键盘设计说明书内容3 .显示模块方案选择方案一:采用LCD1602作为主液晶显示器。此液晶屏能输入两行的字母或数字,功能比较简单,比较通用。本次设计中要显示输入密码的数据值和各功能的提示,使用LCD1602液晶来作为显示模块较直观形象。如图(3)所示,显示比较直观形象图(3)LCD1602显示方案二:采用数码管来实时显示输入密码的数值,由于密码的个数为6硬件电路连接线路较复杂,连接管脚较多,而且观
8、看起来不清晰、直观。基于以上两种方案比较,本次设计中采用方案一。4 .报警模块方案的选择方案一:采用1602显示特殊数字或字母来表示输入密码正确或者错误,这种方案也可以直观表示。方案二:采用声和光两种方式的双重效果进行报警,如果密码输入错误报警灯闪烁而且蜂鸣器会报警,这样就能多角度进行密码错误报警。经过上述分析比较,使用方案二的声光报警来表示解锁失败,如图(4)所示4设计说明书内容5 .报警解除模块该模块用单片机最小系统中的复位功能,既可以节省了I/O管脚,还可以重新开始输入密码,此模块中的蜂鸣器的功能是当用户输入密码错误的次数超过了3次,蜂鸣器鸣笛报警,键盘处于锁定状态其电路图如图(5)所示
9、上工一L_J*-* :-QF占1三.-曰占-* 11-* 1* =,-I1-=*-图(5)复位电路三、软件设计软件的设计主要有主程序模块,键盘扫描模块,LCD1602显示模块,密码比较模块,开锁程序模块、报警模块等。3.1 主程序模块主程序主要完成LCD初始化、检查有无按键按下、以及调用显示、密码修改程序等等。主程序的流程图如图(6)所示设计说明书内容系统初始化进入W61comm界面8号键按下?开锁子程序否密码正旃A第二次输入密码是否旦否输入新容码第三次输入密码二次输入密码否一JF-?是y入相同?设置新型码成功启动声光报警是百复位键技下?返叵Welcome界面图(6)主程序方框图设计说明书内容
10、3.2 开锁程序模块开锁程序流程图如图(8)所示图(7)开锁子程序模块3.3 LCD1602显示模块本系统使用LCD1602实现显示,参照LCD1602的使用手册进行初始化和程序编写就可以显示,即在程序编写中添加LCD1602的驱动程序。这里的驱动程序主要包括:初始化函数、设置显示坐标、写字符函数及写字符用函数。在时钟界面时显示时间的运行,在密码锁界面时主要显示提示信息和输入的密码,当然,当输入密码数字时,输出不是显示数字,而是用“*”显示代替。LCD1602的部分读写控制时序程序如下图(8)所示:设计说明书内容开使设置显示模式开显示延时程序关闭显示设置第一行显示位置延时程序显示第一行内容清屏
11、程序设置第二行显示位置延时程序显示第二行内容图(8)LCD1602初始化3.4键盘扫描与处理模块该模块具备功能有:逐列扫描键盘确实被按键的具体位置、判断键盘上有无键按下、消除抖动、判断闭合的键是否释放等功能,该模块利用case语句来判断按键的按下与否,方法是:依次给行线送低电平,然后查所有列线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。先给P2口赋值为fe,再对P2口扫描,再与f8相与,看是否相等,若等,则无键按下,不等,则有键按下,再判断在哪列。然后进行按键处理函数,其处理函数的流程图如图(9)所示设计说明书内容四、系
12、统调试4.1 调试部分采用先分别调试各单元模块,调通后再进行整机调试的方法,以提高调试效率。(1)键盘测试在带有单片机的电路板上编程调试3*3矩阵键盘,使其在液晶上显示出键盘锁对应的数字及功能。利用仿真机调试成功后通过设计说明书内容编程器将程序写入芯片中调试。(2)报警及开锁控制电路测试通过矩阵键盘控制输入正确的开锁密码,锁灯亮;当连续输入三次的密码错误时,报警指示灯闪烁,蜂鸣器报警并锁死键盘。(3)显示电路测试通过电位器对1602液晶的对比度和背光灯进行调整,使其在最适合的状态下工作。各功能模块均调通后,进行整机调试,其过程如下:将调好的各功能模块连接在一起,用函数信号发生器模拟电压信号,先
13、用仿真机代替STC89C51单片机进行模拟调试,对每一芯片的片选、启动进行检测,并对数据线也进行检测。调试成功后再将程序写到单片机中进行调试。4.2 软件调试部分(1)KEI的编程,仿真,编译集成环境KEILUV3:将汇编语言源程序编译成*hex文件。STC-ISP-V4.83下载器:将C语言源程序编译成的*.hex文件在线下载到STC单片机中。(3) STC-ISP-V4.83使用说明:(I)双击图标并出现下图画面-|src-isr.Kithticu匕加工的叫,狡木女持tijszSilsCQ(ICUTt选择单片机型M立件徭Ihew。汴Fij.t工证也IsiCWTSmm3000IF卵地症加。C
14、CDrO0CO13CQ皿口soC000030COOBO*JIOOCODOCQ皿口&CrjoccrraioocosotOOCC9DCOOCOt)步骤OpenFile/打开文件宸件范围内未历耳域洒:6超蛤丽班加0校士却I:-R打正件前活匚爆产色处空包空隹Gtcp5/SelectCOMFkirL泮5第a石遑舞串行口最与波特军COM:|6Stt二是寓波特塞I一1请云武说言鼠任沈忘京更星荷双吟军-品优蜥车.针硝(II)选择你需要的单片机型号;(111) 打开“001.HEX”文件;(IV)选择你的串行口,这里选择COM1(V)点击download/下载,即可实现自动下载编程。4.3 调试结果分析10设计
15、说明书内容本系统以STC89C51为核心部件,利用软件模块化编程,通过键盘控制和液晶显示实现了密码锁的功能、报警功能,并能防止多次试探密码,能实现本设计题目的基本要求。在设计时根据实验板的硬件连接尽量做到硬件电路简单稳定、减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。本设计成功仿真实现了1602液晶显示、密码“*”的设置、密码设置,防止多次试探,报警等功能。并且采用C语言编写程序,具有很强的移植性,为系统增减和修改带了方便。在设计中也遇到了许多困难,例如对LCD1602的具体功能不熟悉,于是就在图书馆,网上收索相关资料来进行编程,对其功能模式有了进一步的理
16、解。还有对3*3键盘扫描程序的编程,利用学过的4*4键盘编程的原理方法用了case语句来对其编程。由于时间有限和自身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有许多具体细节问题需要解决。例如:扩展AT2402模块储存密码,红外报警探测技术,密码指纹识别技术,语音识别技术,图像识别技术等等。只有这样更能满足社会的发展和人民的需求。五、模拟仿真结果各模块的仿真结果如下图所示.RPI1,Cf:-95ngi.BWziWFWKLtdl-HfcU图(10)Welcome界面XTALIMr1*r*.41fDXFADaPC.IUADIX-AL2pnarADipdstaoisRETFtja
17、aijP23A1IP7VA1MUF工与明11PZj&AlfrPZ.WAVp-irrsBtrmairn,rF34TTI叮后即f7P-jSF.TFSTflTFT3-阕11yslcone!(-LiuraiyanDLV-0密码012345设计说明书内容叩m.o口4D.1皿wn后心FDJMD7F1四磔F=.*PH承1UPH*l弋,PZSH13FTJWA.UPZJffl.t5I口1RX国KTE3rgnrrrPIEPTSTI叫.MEP3.TIKF自一*目一,产mu一LCD1-1gCO,一.M|7|F85SWQrd米出海由,湖二ATmn上PE.h:m-图(11)输入密码界面HJJI:AA.o-口上i/Q;RI
18、-初始密码0i2M55pc5vuro*douirer.i9hli_LH-ii.XTAL3ui-,oimn*viun4,aUr0LLiFifcr,.,PD.VA&1PCIHRDNXTx隆KT*L!FflTARilPD.A.D.-四口。口与na串口闻四口专RBTPQirADTL.1h4-PZ.ISPNNAItlPZAtlPZ.fc-AliZFXSfRnPEjaAl4KJMtfpseFALEET-J=LA-O-oMm2p1.ifrasxF1ZMJP1.*P1F1MF3J3TRXBFsjfflmPS-iOUpjjErriF3.UTpm才Ji.图(12)开锁界面12./EE-J3riIT-图(13)修改
19、密码界面aea3JcTALfBB值B,7rZBflETEKn.JT31JiiKTAUFDDTADaPO.1iLfi.Df*DJTAD?XTA12FOJihD3,口心MPDSTACSFDlDGfDTfAD?P2帕P2IfW工ar凡1口11m*2JTA1i!RLEJP2.JA1ZKUJM13PZ-9A14P2.rft1SP1UTZP3BXP:f1irrawriEMraaWTnrF1工P14F3.W10P1.伊、斯加rijP3.TTOTTIts-TE.Is=nklvIM5J/.buul-J悭P23ACP23A11”驮七P:册座naiMP3.m15设计说明书内容附录II实物显示16设计说明书内容附录I
20、II源程序#include#defineulongunsignedlong#defineuintunsignedint#defineucharunsignedcharuchartemp,num,flag,r;ucharcodetable1=welcome!(A_A);/Z主界面ucharcodetable2=liuhaiyanDIY;/Z主界面密他错误显示ucharcodetable3=*;/Z密码显示“*ucharcodetable4=codeiswrong!;/ucharcodetable5=youareright!;/开锁显示第三次开锁显示ucharcodetable6=thesecon
21、dtime!;/第二次开锁显示ucharcodetable7=thelasttime!;/ucharcodetable8=Inputnewcode:;/修改密码显示ucharcodetable9=calling.;/报警显示ucharcodetable12=Modifyright!;/修改密码正确ucharcodetable10=password:;/输入密码ucharcodetable11=;/删除密码显示ucharcodetable13=Inputagain:;/再次输入密码ucharcodetable14=Modifyerror!;/修改密码错误/放新修改的输入的密码数据/指令(H/L)
22、选择端使能ucharinit_pswd6=0,1,2,3,4,5;/初始化密码ucharpswd6=0;sbitlcdrs=P1A0;/LCDsbitlcdrw=P1A1;sbitlcden=P1A2;/LCDsbitP1_3=P1A3;/sbitP1_4=P1A4;/sbitP1_5=P1A5;sbitP2_7=P2A7;开锁指示灯修改密码指示灯/报警指示灯/蜂鸣器17设计说明书内容子函数声明*/液晶驱动*/*voiddelay(uintz);voidinit();/初始化子函数voidwrite_com(ucharcom);/写指令子函数voidwrite_data(uchardat1);
23、/写数据子函数uintkeyscan();voidmima();/密码处理子函数voidmima1();/修改密码函数voidAlarm(uchart);/报警函数/*voidinit()lcden=0;write_com(0x38);/设置1602显示,5x7点阵显示,8位数据接口write_com(0x0e);/00001DCB,D(开关显示),C(是否显示光标),B(光标闪烁,光标不显示)write_com(0x06);/000001N0,N(地址指针+-1)write_com(0x01);/清屏指令每次显示下一屏内容时,必须清屏write_com(0x80);/第一行显示voidwri
24、te_com(ucharcom)/写命令子函数lcdrs=0;/低电平选择为写指令lcdrw=0;P0=com;/把指令写入P0口delay(5);lcden=1;/开使能delay(5);/读取指令lcden=0;/关闭使能写数据子函数voidwrite_data(uchardat1)/18设计说明书内容lcdrs=1;/高电平选择为写数据lcdrw=0;P0=dat1;/把数据写入P0口delay(5);lcden=1;/开使能delay(5);/读取数据lcden=0;/关闭使能)voiddelay(uintz)/延时子函数z*1msuintx,y;for(x=z;x0;x-)for(y
25、=110;y0;y-);)uintkeyscan()/P2=0xfe;/temp=P2;temp=temp&0xf8;/while(temp!=0xf8)delay(15);/temp=P2;temp=temp&0xf8;键盘扫描程序先选定第一行列线全为1,行线为0延时去抖while(temp!=0xf8)temp=P2;switch(temp)/判断哪列按下case0xf6:num=0;flag=1;break;/第一列按下case0xee:num=1;flag=1;break;/第二列按下case0xde:num=2;flag=1;break;/第三列按下)while(temp!=0xf8
26、)temp=P2;19设计说明书内容temp=temp&0xf8;)P2=0xfd;/选定第二行,列线为1temp=P2;temp=temp&0xf8;while(temp!=0xf8)delay(15);temp=P2;temp=temp&0xf8;while(temp!=0xf8)temp=P2;switch(temp)/判断哪列按下case0xf5:num=3;flag=1;/第一列按下break;case0xed:num=4;flag=1;/第二列按下break;case0xdd:num=5;flag=1;/第三列按下break;)while(temp!=0xf8)temp=P2;te
27、mp=temp&0xf8;)P2=0xfb;/选定第三行temp=P2;temp=temp&0xf8;20设计说明书内容while(temp!=0xf8)delay(15);temp=P2;temp=temp&0xf8;while(temp!=0xf8)temp=P2;switch(temp)case0xf3:num=6;flag=1;break;case0xeb:num=7;flag=1;break;case0xdb:num=8;flag=1;break;while(temp!=0xf8)temp=P2;temp=temp&0xf8;return(num);voidmain()ucharm=
28、0,w=0;init();/LCD初始化write_com(0x80);/第一行显示for(r=0;r15;r+)write_data(table1r);delay(5);write_com(0x80+0x40);/第二行显示for(r=0;r15;r+)write_data(table2r);21设计说明书内容delay(5);)write_com(0x0c);dokeyscan();while(num!=8);/等待开锁键按下mima();/密码输入处理函数while(pswdm=init_pswdm)&m=6)/密码正确P1_3=0;/开锁指示灯亮keyscan();while(flag
29、=1&num=6);/是否修改密码mima1();/修改密码函数else/密码有误m=0;write_com(0x80+0x40);/显示第二行for(r=0;r14;r+)delay(20);write_data(table4r);delay(2000);init();for(r=0;r16;r+)delay(20);write_data(table6r);delay(2000);mima();/密码输入处理函数22设计说明书内容while(pswdm=init_pswdm)&m=6)P1_3=0;mima1();/修改密码函数elsem=0;write_com(0x80+0x40);for
30、(r=0;r14;r+)delay(20);write_data(table4r);delay(2000);init();for(r=0;r14;r+)delay(20);write_data(table7r);delay(2000);mima();while(pswdm=init_pswdm)&m=6)P1_3=0;/密码正确,则开锁指示灯亮mima1();/密码修改函数elseinit();write_com(0x80+0x40);for(r=0;r13;r+)delay(20);23设计说明书内容write_data(table9r);)write_com(0x0c);while(1)P
31、1_5=P1_5;/报警指示灯闪烁delay(30);Alarm(90);Alarm(120);/产生“滴滴”声)voidmima()/密码输入程序ucharw=0;init();for(r=0;r9;r+)delay(20);write_data(table10r);)doflag=0;keyscan();write_com(0x80+9+w);if(flag=1&num=5)pswdw=num;write_data(table3w);w+;/输入密码if(w=6)write_com(0x0c);24设计说明书内容)if(flag=1&num=7)/删除误输入的密码,即返回上一步w-;/删除
32、密码if(w=255)/删除完密码w=w+1;write_com(0x80+9+w);write_data(table11w+1);if(flag=1&num=5)pswdw=num;write_data(table3w);)while(w=5);)/*输入初始密码正确后,密码修改*Ivoidmima1()ucharf=0,n=0,d=0;write_com(0x80+0x40);for(r=0;r14;r+)delay(20);write_data(table5r);delay(2000);donum=9;/按键不显示,锁住按键keyscan();while(num!=6);if(flag=1&num=6)25设计说明书内容i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钣金安全考试题及答案
- 安全技术试题及答案
- 安全管护培训试题及答案
- 不良资产处置行业创新模式与市场拓展路径研究报告
- 便利店智能支付与无感购物体验研究报告(2025年)
- 门店运营课程培训课件
- 中国南方地区课件
- 中国单一制课件
- 护理文书书写规范
- 原发性肝癌护理课件
- 公安院校公安专业招生政治考察表在校表现考察表面试表
- 教学设计培训课件
- 托克逊县宝源长石矿厂新疆托克逊县桑树园子南山铜矿3万吨/年采矿项目环评报告
- 陕西省西安高中2025届高二化学第二学期期末达标检测试题含解析
- (2025)《公共基础知识》试真题库与答案
- 江西省南昌市第一中学教育集团2023-2024学年八年级下学期数学期末试卷(含答案)
- 2025盘锦市双台子区辅警考试试卷真题
- 教研员考试题库及答案
- 关于卫生院“十五五”发展规划(完整本)
- 地生中考模拟试题及答案
- 慢性病管理中心建设实施方案
评论
0/150
提交评论