现代电子综合课程设计论文电子语音密码锁.doc

上传人:laozhun 文档编号:3988390 上传时间:2023-03-30 格式:DOC 页数:17 大小:178.50KB
返回 下载 相关 举报
现代电子综合课程设计论文电子语音密码锁.doc_第1页
第1页 / 共17页
现代电子综合课程设计论文电子语音密码锁.doc_第2页
第2页 / 共17页
现代电子综合课程设计论文电子语音密码锁.doc_第3页
第3页 / 共17页
现代电子综合课程设计论文电子语音密码锁.doc_第4页
第4页 / 共17页
现代电子综合课程设计论文电子语音密码锁.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《现代电子综合课程设计论文电子语音密码锁.doc》由会员分享,可在线阅读,更多相关《现代电子综合课程设计论文电子语音密码锁.doc(17页珍藏版)》请在三一办公上搜索。

1、现代电子综合课程设计论文电子语音密码锁Electronic Voice Password Lock系名称: 电子工程系 专业班级:07通信工程 设计成员:指导老师: 2010 年 5 月电子语音密码锁摘要 在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操

2、作等优点。 在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。 本系统由单片机系统、语音提示系统、矩阵键盘、LED 显示和报警系统修改用户密码等功能。除上述基本的密码锁功能外,依据实际的情况还可以添加遥控功能。本系统成本低廉,功能实用。 关键词 STC89C51 语音提示 LCD

3、 电子密码锁 矩阵键盘Summary :In daily life and work, residence and sector of security, the units paper files, financial statements, and some personal information in order to save more than locking solution to. The use of traditional mechanical key lock, people often need to carry multiple keys, use very inco

4、nvenient, and the key is lost or compromised security. With the continuous development of science and technology, people in daily life insurance for the safety devices have become increasingly demanding. To meet peoples use of the lock request to increase their safety, replace the key with a passwor

5、d lock came into being. Lock with high security, low cost, low power consumption, easy to operate. In the field of Security and Protection, with an electronic anti-theft alarm lock gradually replace the traditional mechanical lock, mechanical locks to overcome the password less, have poor safety per

6、formance, so that lock both technically and in performance greatly improve the step. With the development of large scale integrated circuit technology, particularly the advent of single chip, there has been smart with microprocessor lock, except it has the electronic code lock function, but also the

7、 introduction of intelligent management, expert analysis system and other functions, so lock high security, reliability, widely used. The system consists of single chip systems, voice prompt system, matrix keypad, LED display and alarm system to modify user passwords and other functions. In addition

8、 to the basic lock function, based on the actual situation can also add a remote control. The system cost, functional and practical. Keywords: STC89C51 voice prompts matrix LCD electronic lock keypad第一章 引言 在日常的生活和工作中, 鉴于目前社会治安低下、个人资料保密性低的各种问题,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存已经慢慢被社会各界重视,期望能改进和完善当今的

9、生活数据保存质素。然而,假如使用传统的机械式钥匙,人们旺旺需携带多把钥匙,加上金属密度高,笨重,使用极不方便, 且钥匙丢失后面临各种保密性漏洞,安全性因此而大打折扣。随着科学技术的不断发展,我们也对日常生活中的任何安全器件的要求越来越高,期待越来越大。所以为满足人们对锁的使用要求,增加其安全性、实用性,密码代替钥匙的密码锁应运而生,占据当今社会的保密设备的前列。密码锁具有安全性高、成本低、功耗低、易操作等优点。为智能化家具提供更好的支持。鉴于目前机械锁的不足,我们作了分析,如何才能利用现代的科技,解决过去的不足,从而达到划时代的进步。因此我们找到单片机这种智能芯片技术,利用单片机的可编程性、刷

10、写性还有便携性,我们决定利用单片机进行密码判断、地址寄存和发送等方面的研究,编出理想的程序,实现其密码判定和修改的功能,从而解决机械锁的各种不良的影响,实现其保护数据的功能另外,在安全技术防范领域,防盗报警功能的电子密码锁,利用现代的智能芯片技术,逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,还可以根据其他用户的需要,扩展其功能。使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展和利用,低廉化的制作工艺,尤其是单片机的问世,低廉的价格,逐渐民用化,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功

11、能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛,生活更方便。 本系统由单片机系统、语音提示系统、矩阵键盘、LED 显示和报警系统修改用户密码等功能。除上述基本的密码锁功能外,依据实际的情况还可以增加遥控、IC卡功能。本系统生产成本低廉,功能实用。为未来步入现代城市化生活提供良好的援助第二章 系统总体设计概况 2.1 密码锁的背景状况分析 随着电子工业的发展,数字电子技术已经深入到了人们生活的各个层面,在国内外各种各样的电子产品也正在日新月异地向着高精尖技术发展。在安全技术防范领域,具有防盗报警功能的电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁

12、无论在技术上还是在性能上都大大提高一步。 从目前的技术水平和市场认可程度看,国内外使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优点、克服弱点,键盘式电子密码也在不

13、断发展中,如“任意设定密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新;而“更改密码”技术使得本次输入的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者窥测,显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以窥测出密码。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁仍然“老树发新芽”,不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。 2.2 电子密码锁的设计分析在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开

14、锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有

15、很高的安全性、可靠性,应用日益广泛。 在国内外电子防盗锁应用于金融业,其根本的作用是“授权”,即被“授权”的人才可以存取钱、物。广义上讲,金融业的“授权”主要包括以下三种层次的内容:1、授予保管权,如使用保管箱、保险箱和保险柜;2、授予出入权,如出入金库、运钞车和保管室;3、授予流通权,如自动存取款。目前,金融行业电子防盗锁的应用主要集中在前两个层面上。下面将介绍几种在金融行业中使用较多的电子防盗锁以及它们的技术发展方向。 当然,以上所说的授权技术再高超,都必须由精良的“锁具”担当承载结构部件,实现开启、闭锁的功能,而且承担实体防护作用,抵抗住或尽量延迟破坏行为,让电子防盗锁“软、硬不吃” 。

16、一般情况下,锁具防盗的关键是锁身外壳、闭锁的部件(如伸缩的锁舌或锁栓、锁扣盒锁扣板以及依靠电磁力直接闭锁的电磁部件等)的强度(应有足够的机械强度和刚度,能够承受一定数值、一定方向的静压力和冲击力以及力矩)、锁止型式(能承受某些方式和工具的作用) 、配合间隙(防止采用机械的、电子的方法探入锁具内部而被开启)和布局(将薄弱的、与锁的开启直接相关的零部件和电路置于壳体保护之下,并且不易被识别出来)。提高电子防盗锁之防护能力的必然途径是报警,在许多场所有人值守、有电视监控,具有报警功能,可以综合物理防范和人力防范两种作用。报警的前提是具备探测功能,根据电子防盗锁的使用场所和防护要求,可选择多种多样的探

17、测手段。在中国的城市金融业中,实现联网报警已经成为对各金融网点的基本要求。 根据国内外的实践经验,安全防范风险等级很有必要,即依据使用的防盗报警器材的性能、安装布局和人员值守状况等,可以评估被防护物或区域的防护能力,得出风险等级,其中,电子防盗锁的性能至关重要。第三章 硬件电路设计1. 开锁机构用户通过 LCD 提示信息,用键盘输入正确密码,从而达到开锁的目的。其原理如下 当用户输入的密码正确并且是在按下确定键的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的电路。2. 键盘设计 本设计就采用行列式键盘, 同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比

18、较多的时候,通常采用这样方法。 每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要 N 条行线和 M 条列线,即可组成具有 NM 个按键的键盘。 在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。 44 矩阵键盘的工作原理在键盘中按键数量较多时,为了减少 I/O 口的占用,通常将按键排列成矩阵形式,如图 2 所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如 P1口)就可以构成 4*4=16 个按键,比之直接将端口线用于键盘多出了一倍,而

19、且线数越多,区别越明显,比如再多加一条线就可以构成 20 键的键盘,而直接用端口线则只能多出一键(9 键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。 扫描原理 把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个 bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。 比如说扫描码送入 01111111,前面的 0111 是代表此时扫描第一行 P1.0 列,而后面的1111 是让读取的 4 行接脚先设为 VDD,若此时第一行的第三列按键被按下,那读取的结果就会变成 01

20、111101(注意 1111 变成 1101),其中 LSB 的第三个 bit 会由 1 变成 0,这是因为这个按键被按下之后,会被垂直的扫描码电位 short,而把读取的 LSB 的 bit 电位拉到0,此即为扫描原理。 由於这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让 8051 误判为多次输入同一按键, 我们必须在侦测到有按键被按下,就 Delay 一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。下图为键盘框图 图23. 显示电路设计 显示设计采用字符型液晶屏设计,以方便人机更好的交互,和单片机连接的电路框架图如下图34. 24C

21、02 掉电存储单元的设计 掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。AT24C02 是ATMEL 公司的 2KB 字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到 2.5V,额定电流为 1mA,静态电流 10Ua(5.5V),芯片内的资料可以在断电的情况下保存 40 年以上,而且采用 8 脚的 DIP 封装,使用方便。其电路如图所示。5.电子语音密码锁实物图第四章 软件程序设计因设计主要是作用C语言来开发的8051项目程序,所以首先必须有一个可以在Windows XP操作系统下执行的 8051C 语言编译器,本设计采用 Keil C编译器进行编程,因为

22、它可以支持很多不同种类的 8051。 1. 主程序模块 主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等。主程序的流程图如下所示。 2. 键盘扫描及识别子程序 键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。其程序流程如下图3. 调电存储服务程序 24c02 它是同步通信的一种特殊形式,具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点, I2C 总线是由数据线 SDA 和时钟信号 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、IC与 IC 之间进行双向

23、传送,当比较密码的时候,需要读 AT24C02 程序,将存储在芯片内的数据读到 RAM 中,然后和输入的密码相比较。当修改密码的时候,需要把输入的密码保存到 AT24C02 中,其程序流程如图8 所示 4.参考程序密码锁主程序:#include #include #include #include#define unint unsigned int#define unchar unsigned char#define lcd P0#define keybord P1sbit speak=P37;sbit LCD_BLED = P20;/*键盘定义*/sbit row1=P14;sbit row

24、2=P15;sbit row3=P16;sbit row4=P17;/*LCM*/sbit lcd_rs=P21;sbit lcd_rw=P22;sbit lcd_e=P23;sbit lcd_bf=P07;/*显示字符组*/unchar psw4;unchar psw_mem4;unchar psw_mem24;unchar code input5=0x49,0x4e,0x50,0x55,0x54;unchar code password8=0x50,0x41,0x53,0x53,0x57,0x4f,0x52,0x44;unchar code wrong5=0x57,0x52,0x4f,0x

25、4e,0x47;unchar code press14=0x50,0x52,0x45,0x53,0x53,0x20,0x41,0x4e,0x59,0x20,0x4b,0x45,0x59,0x21;unchar code change6=0x43,0x48,0x41,0x4e,0x47,0x45;unchar code newpsw3=0x4e,0x45,0x57;unchar code ok4=0x4f,0x4b,0x21,0x21;unchar code unlocked8=0x55,0x4e,0x4c,0x4f,0x43,0x4b,0x21,0x21;unchar code again6=

26、0x41,0x47,0x41,0x49,0x4e,0x3a;unchar code table=0xc0,0xf9,0xa4,0xb0 ,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e ;/*消抖函数*/void del1(unchar n)unchar i;unint j;for (i=1;i=n ;i+ )for (j=1;j8888 ;j+ );/*廷时函数x*0.5MS*/del(unchar n)unchar i;while (n-)for (i=0;i125 ;i+ );/*按键判断*/bit key_scan

27、(void)keybord=0xf0;/高4位为1,低4位为0/ if (keybord!=0xf0) / return 0;/有键按下为0elsereturn 1;/无键按下为1/*LCD忙信号检测*忙则返回1,闲返回0*/bit lcd_busy(void)bit flag;lcd_rs=0;lcd_rw=1;lcd_e=1;del(1);if (lcd_bf)flag=1;elseflag=0;lcd_e=0;return flag;/*LCD写入指令函数*/void lcd_c_send(unchar lcdcommand)while (lcd_busy();lcd=lcdcomman

28、d;lcd_rs=0;lcd_rw=0;lcd_e=1;del(1);lcd_e=0;/*LCD数写入据函数*/void lcd_d_send(unchar lcddata)while (lcd_busy();lcd=lcddata;lcd_rs=1;lcd_rw=0;lcd_e=1;del(1);lcd_e=0;/*LCD初始设定函数*/void lcd_rest(void)lcd_c_send(0x38);/8位,2行lcd_c_send(0x01);/CLSlcd_c_send(0x06);/光标移动,显示区不移动/*显示函数*INPUT PASSWORD:*/dis_inputpsw(

29、)unchar i;lcd_c_send(0x01);/CLSlcd_c_send(0xe);/开显示,光标lcd_c_send(0x80);for (i=0;i5;i+ )lcd_d_send(inputi);/INPUTlcd_d_send(0x20);/空格 for (i=0;i8;i+ )lcd_d_send(passwordi);/PASSWORDlcd_d_send(0x3a);/:LCD_BLED=0;/*显示函数*PASSWORD WRONG*/dis_pswwrong()unchar i;lcd_c_send(0x01);/clslcd_c_send(0xc);lcd_c_s

30、end(0x81);for (i=0;i8;i+ )lcd_d_send(passwordi);lcd_d_send(0x20);for (i=0;i5;i+ )lcd_d_send(wrongi);lcd_c_send(0xc1);for (i=0;i14 ;i+ )lcd_d_send(pressi); addr=0X05; play();while (key_scan();/任意键退出del1(1);while (key_scan();/按键松开否del1(1);speak=1;/*显示函数*CHANGE PASSWORD*/dis_changepsw()unchar i;lcd_c_s

31、end(0x01);/CLSlcd_c_send(0xe);/开显示,光标lcd_c_send(0x80);for (i=0;i6 ;i+ )lcd_d_send(changei);lcd_d_send(0x20);for (i=0;i8;i+ )lcd_d_send(passwordi);lcd_d_send(0x3a); addr=0X3E8; play();/*显示函数*NEW PASSWORD*/dis_newpsw()unchar i;lcd_c_send(0x01);/CLSlcd_c_send(0xe);/开显示,光标lcd_c_send(0x80);for (i=0;i3 ;i

32、+ )lcd_d_send(newpswi);lcd_d_send(0x20);for (i=0;i8 ;i+ )lcd_d_send(passwordi);lcd_d_send(0x3a);/*显示函数*OK!*/dis_ok()unchar i;lcd_c_send(0x01);/CLSlcd_c_send(0xc);/lcd_c_send(0x80);for (i=0;i4 ;i+ )lcd_d_send(oki);/*显示函数*unlocked*/dis_unlocked()unchar i;for (i=0;i8;i+ )lcd_d_send(unlockedi);while (ke

33、y_scan();del1(1);while (key_scan();del1(1);/*显示函数*AGAIN*/dis_again()unchar i;lcd_c_send(0x01);/CLSlcd_c_send(0xe);/开显示,光标lcd_c_send(0x80);for (i=0;i6 ;i+ )lcd_d_send(againi);/*获取键值 键盘扫描*/unchar getkey(void)unchar keynum,perp;while (key_scan()del1(1);keybord=0xfe;/P1.0为0for (perp=0;perp4;perp+ ) if (

34、row1=0)keynum=perp+0;break;/1行值为0if (row2=0)keynum=perp+4;break;/2 行值为4if (row3=0)keynum=perp+8;break;/3为8if (row4=0)keynum=perp+12;break;keybord=_crol_(keybord,1);/转下列扫描 while (key_scan()del1(1);return keynum;/*密码存入*/unchar getpsw(void)unchar flag,i,key;flag=0;for (i=0;i4 ;i+ )psw_memi=1; /?10lcd_c

35、_send(0xc0);for (i=0;i4;i+ )key=getkey();if (key=14)flag=1;break;/按E号键返回1if (key=15)flag=0;break;/按F号键返回0if (key=13)flag=2;break;/按D返回2if (key=12)flag=3;break;/按C号键返回1if (key=11)flag=4;break;/按E号键返回1while (key=10 )/非1-9的数字则不响应key=getkey();psw_memi=key;lcd_d_send(0x2a);/*号好显示 return flag;/*密码验证*/bit

36、psw_check(void)unchar i;bit flag;Read_N_Bytes(psw,4,0x10);for (i=0;i4;i+ )if (pswi!=psw_memi)/ if (pswi=psw_memi&getpsw()=0)/已改!=为= flag=0为1?flag=0;break;/有一位不同则flag=0,返回 flag=1;return flag;/*修改密码存储验证*/bit psw_mem_check(void)unchar i;bit flag;for (i=0;i4;i+ )if (psw_memi!=psw_mem2i)/有一位不同则返回0flag=0;

37、break;flag=1;return flag;/*密码修改*/void psw_change(void)unchar i;dis_changepsw();while (getpsw();/?按E键取消则重置 if (psw_check()/密码正确进入修改,错误则退出while (1)dis_newpsw();while (getpsw();/按E键取消则重置 /加LCM显0? for (i=0;i4 ;i+ ) psw_mem2i=psw_memi;/密码暂存 dis_again();/有问题?没有第二次输入 while (getpsw();/按E键取消则重置 if (psw_mem_c

38、heck()/两次密码是否相同,相同则修改 for (i=0;i4 ;i+ ) pswi=psw_memi;/更新密码 Write_A_Page(psw,0x10);dis_ok();speak=0;del(200);speak=1;while (key_scan();del1(1);while (key_scan();del1(1);break;/跳出循环elsedis_pswwrong();/不同则重新输入 for(i=1;i=3;i+)/输入错误报警三声 speak=0;del(3000);speak=1;del(3000);/*主函数*/main()del1(3);speak=1;lc

39、d_rest();while (1)dis_inputpsw();switch (getpsw()case 0: if (psw_check()/验证密码 dis_ok();dis_unlocked();/welcom use! addr=0X1194; play();speak=0;del(10);/延时100*x秒?speak=1; elsedis_pswwrong();speak=0;del(10);speak=1; break;case 1:break;/按E号键直接退出case 2:psw_change();break;/D修改密码case 3: break; /C上锁case 4:

40、break; default: break; /break; /ISD4004语音播放部分/#include #include #define uchar unsigned char#define uint unsigned int/定义放音命令,定义常量/#define ISDPOWERUP 0X20 /ISD4004上电#define ISDSTOP 0X10 /ISD4004下电#define OPERSTOP 0X30 /ISD4004停止当前操作#define PLAYSET 0XE0 /ISD4004从指定地址开始放音#define PLAYCUR 0XF0 /ISD4004从当前地址开始放音#define RECSET 0XA0 /ISD4004从指定地址开始录音#define RECCUR

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号