资讯详情

基于单片机的电子密码锁及程序

《基于单片机的电子密码和程序》由会员共享,可在线阅读。请在人文库网上搜索更多基于单片机的电子密码锁和程序(17页收藏版)。

1.随着科学技术和人民生活水平的提高,如何实现家庭防盗的问题变得尤为突出。由于结构简单,传统的机械锁被撬并不少见。电子密码锁保密性好,使用灵活性高,受到广大用户的青睐。本设计为单片机AT89C52作为密码锁的主控芯片和数据存储单元,结合外围矩阵键盘输入,LCD显示、解锁、报警等。,并用C语言编写程序Keil uVision4软件编译设计了具有报警功能的电子密码控制系统,可以更改密码。本设计采用矩阵键盘输入密码,优势高,减少I/O占用口的数量。显示密码LCD实现显示屏,统一使用确保安全*显示密码,重新设置密码时按下修复。

2、改”键,LCD显示数字。蜂鸣器模拟报警系统增加了密码锁的安全性。软件采用C语言编程,采用自上而下的模块化设计理念,使系统向分布式、小型化方向发展,提高系统的可扩展性和运行稳定性。测试结果表明,设计具有电子密码锁的功能。关键字:密码锁,AT89C随着社会科学技术的进步,锁已发展成密码锁、磁锁、电子锁、激光锁、声控锁等。在传统钥匙的基础上,增加了一组或多组密码,不同的声音、不同的磁场、不同的声波、不同的光束光波像,大大提高了锁的安全性。如今,基于电子的安全信息系统的应用越来越广泛,尤其是在机密保护、隐私维护和财产保护方面。

3.密码锁的安全系统是其中的一部分,应用广泛,具有重要的现实意义。电子密码锁可用于日常生活和现代办公室、住宅和办公室安全、单位文件、财务报表和部分个人资料的保存。大大提高了主要材料的安全性。目前使用的密码锁种类繁多,各具特色。本文从经济实用的角度采用AT89C52单机开发了具有防盗自动报警功能的电子密码锁。密码锁设计方法合理,简单易行,成本低,符合住宅、办公锁的要求,具有一定的推广价值。2、 设计目的1. 了解单片机开发系统的组成和结构;2. 掌握I/O口的操作方法;3.. 能够熟练使用protues和keil连接和编程软件,掌握仿真方。

4、法;4. 掌握LCD显示原理;5. 掌握C语言编程方法;6. 培养发现和纠正错误的能力。3、 本设计要求以单片机为主控芯片,结合外围电路组成电子密码控制系统。主要功能有:1. 通过键盘输入6位密码,如果密码正确,锁定,LCD显示“Password Right Lock Opened!”。第一次开锁时,原始密码是万万。2. 重新设置密码时,LCD显示“*按修改键显示值。3. 密码只能输入6位数,不能输入多余数。4. 具有自动报警功能:当密码输入错误三次,报警,蜂鸣器响3秒。5. LED为了确保所有密码的安全,数字管显示密码*”表示。。

5、4、 硬件仿真方案1设计原理. 矩阵键盘盘输入矩阵键盘,包括数字键和功能键。具体功能设计如表1:表1 键盘具体功能设计表按键名功能09数字键输入密码新建键设置新密码确认键比较密码修改修改键显示密码进入键允许输入密码取消键取消输入密码如图所示,矩阵键盘每个水平(线)和垂直线(线)交叉不连接,但通过键连接,利用这种行列式矩阵结构只需要N条行线和M条列线即可组成有个按键的键盘。图一 矩阵键盘的设计需要090个数字键、新键、确认键、修改键、进入键和取消键,所以选择4个X4矩阵按钮。图一 矩阵键盘的设计需要090个数字键、新键、确认键、修改键、进入键和取消键,所以选择4个X4矩阵按钮。单片编码在这个行列式矩阵键盘上。

6.在机器系统中,键盘处理程序首先执行等待按钮,确认是否有按钮按下程序段,并抖动按钮。确认按下按钮后,必须确定按下哪个按钮。本设计采用线反转法。给行线置为0x0f,给列线置为0xf0,逻辑或结果为0xff,按键时,相应的按键位行列为0,行列逻辑或不是0xff,行列逻辑或后值是否为0xff判断是否有按键。根据扫描结果判断按键的位置。数字键和功能键可以通过赋值相应的按键来实现。按键功能可以通过编程相应的软件来实现。使用矩阵键盘可以减少键盘和单片机接口的占用I/O当按键较多时,通常采用线数。2. 本设计采用开锁电路发光。

7.二极管取代电磁锁,二极管D亮表示锁,二极管灭表示没有锁。如图2所示,当输入密码与内置密码匹配时P2.1置0,二极管亮,否则二极管不亮。图二 发光二次管电路3. 报警电路由单片机和蜂鸣器组成,如图3所示P2.蜂鸣器在低电时发出声音报警。每次输入的密码与正确密码进行比较,如果相同,锁开灯亮。如果输入错误,则使用变量记录输入错误的次数。当输入密码错误达到三次时,蜂鸣器工作发出报警声。本设计采用蜂鸣器报警3秒,可听到嘟嘟3秒的声音。图三 报警电路4. LCD显示电路密码显示电路示电路LCD由显示屏组成。如图4所示。为保证密码的保密性,本设置。

8、计采用“*显示所有输入密码,如图4所示。重新设置密码时,按修改键显示数字,如图5所示。本设计只允许输入6次数字密码,6次以上后不能输入数字。图四 LCD显示电路图五 重设密码LCD显示数字5、 本系统软件设计包括主程序、初始化程序、键盘扫描程序、密码输入程序、功能键定义程序、重置密码程序、LCD由显示程序、中断延迟程序、报警程序和延迟程序组成。如图6所示,主程序流程图,开始连接电源,初始化程序,然后在键盘上输入密码,系统扫描键盘,判断密码是否正确,密码解锁正确,密码统计错误密码次数加1。开锁时修改密码,点击确认密码修改成功,否则返回结束。若密码修。

9.改变成功后,执行以前的操作。初始化键盘扫描子程序开始,调用密码重置子程序调用报警子程序密码q 1重设密码?密码正确?输入密码数量N=6?LCD显示子程序输入密码子程序Nq=3?调用延时子程序开锁Y N N Y Y Y N 图六 本次调试采用主程序流程图6。protues和keil模拟软件。首先运用keil本设计主要采用C语言编写电子密码锁源程序。编制源程序后,运行生成目标文件protues仿真调试。图七为LED图7显示六位密码 LCD当密码正确按下确认键时,显示密码图亮二极管并锁定。如图八图八 密码码输入错误时,蜂鸣器三次发出声音报警,如图所示。

九所示图九 从图9可以看出,蜂鸣器接地端为蓝色,即此时为低电平,因此蜂鸣器发出报警声。Protues模拟电路图如图十所示 protues模拟电路图7。设计总结和展望课程设计是培养学生发现、提出、分析和解决实际问题、锻炼实践能力的重要环节,是学生实际工作能力的具体培训和调查过程。随着科学技术的飞速发展,单片机已成为当今计算机应用中前所未有的活跃领域,在生活中无处不在。因此,作为21世纪的大学生,掌握单片机开发技术是非常重要的。经过多次修改和整理,本设计能够满足基本要求。密码正确,锁定;密码输入错误三次,报警;输入密码超过6位后无效;LCD。

11显示屏显示密码*”。在设计过程中遇到了各种各样的问题,如断电密码保护设计,由于电路和编程过于复杂,没有加入设计。编程过程中也存在许多问题。由于程序较长,当实现此功能时,不能很好地实现另一个功能,因此应实现模块与模块之间的连接。我们也努力克服一些问题。回顾单片机课程的设计,我仍然感受到很多。在设计过程中,我们可以从理论到实践,巩固我们以前学到的知识,知道如何将理论与现实联系起来。只有理论知识远远不够,只有把理论运用到实践中,才能真正为社会服务。七、附录源程序清单:#include#include#define uchar 。

12、unsigned charstatic unsigned char table6=0,0,0,0,0,0;/Declare functionsuchar Busy_Check();void Initialize_LCD();void Write_LCD_Data(uchar dat);void Write_LCD_Command(uchar cmd);void Display_String(uchar x,uchar y,uchar *str);void Display_char(uchar hang,uchar lie,char sign);/void write_add(uchar add。

13、ress,uchar date);/向AT24Cxx在数据中写入指定地址uchar read_add(uchar address);/ 从AT24Cxx读取指定地址中的数据void init();uchar h=20; sbit touch=P21;sbit touch1=P22;sbit speaker=P20;void delay(unsigned char ms) / 延时*msunsigned char i;while(ms-)for(i=250;i0;i-)_nop_();_nop_();_nop_();_nop_();unsigned char keyscan() / 扫描键盘un。

14、signed char temp,y,j;unsigned char anjian=0xfe,0xfd,0xfb,0xf7; for(y=0;y4;y )P1 = anjiany;temp = 0x10;for(j=0;j4;j )if(!(P1&temp)return(j y*4);temp = _crol_(temp,1);void judge()P1 = 0xf0;if(P1!=0xf0) / 判断是否有按键delay(50);delay(50); / 消抖if(P1!=0xf0)h=keyscan();void main() unsigned char a=1,i=0,k=0,l=1,。

15、m=1,n,f=0,s=0;int q;Initialize_LCD();init();Display_String(1,1,Welcome To Use );Display_String(2,1, );touch1=0;/第一个while循环 while(1) judge();if(h10)if(h=tablei)k ;Display_String(2,a,*);a ;i ;if(a=7)a=1;if(i=6)i=0;h=16;if(h=14) Display_String(1,1,Input Password);Display_String(2,1, );h=16;touch=1;touc。

16、h1=0;k=0;l=1;q=0;if(h=12)if(k=)Display_String(1,1,Password Right);Display_String(2,1,Lock Opened!);touch=touch;else Display_String(1,1,Password Error);Display_String(2,1, );l=0;q+;while(q=3)speaker=0;delay(200);delay(200);delay(200);speaker=1 ;q=0;h=14;delay(255);k=0;h=16;while(l)judge();if(h=11) D。

17、isplay_String(1,1,New Code);Display_String(2,1, );while(m=1) judge();touch1=touch1; if(h10)tablen=h;write_add(s,h);s+;Display_String(2,a,*);a+;n+;h=16;if(n=6) n=0;s=0; if(h=15)if(n=0)n=6;s=6;a-;s-;Display_String(2,a, );n-;h=16;if(h=13)m=0;if(h=13)h=13;f=1;if(h=14) l=0; if(h=13) Display_String(2,1, )。

18、; for(n=0;n6;n+)Display_char(2,n+1,(uchar)(tablen+48) );h=13;l=0;f=1; k=0;if(h=15)a-;Display_String(2,a, );k-;i-;h=16;if(h=13) if(f=1) for(n=0;n6;n+)Display_char(2,n+1,(uchar)(tablen+48) );f=0; elseDisplay_String(2,1, * );delay(255);delay(255);Display_String(1,1, Welcome To Use );Display_String(2,1, );l=1;a=1;k=0;n=0;m=1;h=16;for(s=0;s6;s+) tables=read_add(s);delay(50);。

标签: h1k二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台