智能门禁系统详细设计概要.docx

上传人:小飞机 文档编号:5333636 上传时间:2023-06-27 格式:DOCX 页数:34 大小:535.12KB
返回 下载 相关 举报
智能门禁系统详细设计概要.docx_第1页
第1页 / 共34页
智能门禁系统详细设计概要.docx_第2页
第2页 / 共34页
智能门禁系统详细设计概要.docx_第3页
第3页 / 共34页
智能门禁系统详细设计概要.docx_第4页
第4页 / 共34页
智能门禁系统详细设计概要.docx_第5页
第5页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《智能门禁系统详细设计概要.docx》由会员分享,可在线阅读,更多相关《智能门禁系统详细设计概要.docx(34页珍藏版)》请在三一办公上搜索。

1、智能门禁系统摘 要:智能门禁系统采用凌阳十六位单片机作为系统控制核心,利用其强 大的语音识别功能,不仅实现了语音播放功能,完成了语音提示的要求,而且实 现了语音控制门禁系统;利用其内置的Flash闪存,实现了密码的断电保护。除 此而外,在键盘输入方面,强大的功能选择键满足了系统的要求;16*2液晶显示 器的选择使操作要求清晰明了。此套智能门禁系统强烈体现了其人性化的一面。关键词:智能门禁系统、语音识别、凌阳十六位单片机。引言家用防盗门早已经进入到千家万户,但防盗门的操作麻烦给用户带来了许多 不便,当今市场迫切需要一种既安全又方便的门禁系统,鉴于此,我们的“智能 门禁系统”一一带语音识别、液晶显

2、示功能的电子密码锁便应运而生。为了向大家介绍此智能门禁系统,我们将从以下几个方面介绍:1、系统的制作意义。2、系统的制作早期构想及其实现方案简介。3、系统功能最终实现及演示。4、系统硬件部分原理介绍。5、系统软件部分设计实现。6、对系统的自我评价。(存在及要解决的问题)7、制作心得和体会。8、参考文献。9、附录(一):凌阳单片机最小系统。10、附录(二):凌阳单片机下电子密码锁程序实现。11、附录(三):器件列表。1 .系统的制作意义现在人们生活水平提高了,安全防范,是人们考虑的首要问题。而锁是解决 安全问题的重要产品。目前市场上的电子锁产品功能不全,性能和安全性不高, 且造价高。低质量的电子

3、锁,给用户的财产安全造成很大威胁,同时,由于功能 的不健全,给用户的使用带来了一定麻烦。故我们试图研制一种智能化、多功能、 更人性化的门禁系统。我们研制的带语音识别功能电子控制密码锁,不仅给用户带来了安全的保障, 方便的享受,而且此电子锁的语音识别功能更加体现了他人性化的一面,此种类 型的电子密码锁将成为未来社会的供求亮点。2.系统的制作早期构想及其实现方案简介1 .早期构想预期实现功能如下:(1) 、键盘简化及编码方式的改进;键盘简化及编码方式的改进:普通数字键密码锁虽然有使用简单的特点,但 是键盘暴露在外,易受破坏,或者保密性不高;此外,键盘数量的简化又同时增 加了使用的难度,用户使用不方

4、便。大家可能见到过一些进口的温控制器(如日 本RKCINSTRUMENT INC.生产的REX_C700温控器)的面板设计为:温度测量只用 4位LED数码管显示,输入设定值显示也用4位LED。综合以上因素考虑,我们 采取四按键的形式,输入键分为加、减、左、右移动键,按下加法键(减法键) 确定一位密码的值,然后使用左右移动键移向下一位密码,再一次使用加、减键 确定此位密码的值。(备注:这部分虽然没有实现,但我们的16位键盘设置更 加体现了系统功能的强大性)(2) 、语音识别系统控制;语音识别功能,语音控制门禁开关。(3) 、语音提示功能;(4) 、自动实现报警;当门禁系统输入密码错误过多时,自动

5、报警(5) 、断电密码保护;出现断电、多次错误密码输入时的处理(6) 、限时开门系统;(这部分功能我们没能实现,很是遗憾)(7) 、液晶显示功能;在初期设计电路时,我们计划采取51单片机作为我们的控制核心,然而, 语音识别功能、语音提示功能、密码断电保护功能需要我们外扩集成芯片才能满足系统要求。其功能实现原理方框图如下:在此种条件下我们用51单片机做出了一个简单的系统,基本实现了电子密码 锁的键盘输入和液晶显示功能。具体电路图如下:语眷m号处理模媒统行构系执机液晶显 示部分其软件编程实现程序见附录(一):其实现功能如下:1、设置密码,断电不保护;2、输入密码,与系统原有密码或者设置新密码比较;

6、3、液晶显示功能;4、报警功能;显然,这个“最小系统”的制作无法满足我们预期的功能实现,如果采用外 扩集成芯片的做法,不仅从技术上,还是从经济方面考虑都不是一个明智的选择。 鉴于此,我们采用凌阳单片机作为我们的控制电路核心,凌阳十六位单片机不仅 内置32kFlash(闪存),而且集成了语音识别模块,从根本上,凌阳单片机满足了 系统的基本要求,具体功能实现以及电路设计在以下详细介绍。3 ,系统功能最终实现及演示此系统现阶段包括以下几个模块:1)、键盘输入密码此系统采用4*4按键输入模式,密码初始设置为4位,(从软件上很容易实 现更多位数的密码操作,为操作演示计,我们采用4位)。各个按键功能的定义

7、如下:1、09数字健指定为密码设置健(仅且只有他们能够作为密码值)2、A确认健(按下此键,即比较输入密码值正确如否)3、B取消键(按下此键,即取消上一次操作)4、C开启语音功能键(按下此键,再次输入密码,就可以开启语音控 制功能)5、D关闭语音功能键(按下次键,就可以关闭语音控制功能)6、E修改密码键(按下次键,再次输入密码,通过验证后,连续输入 两次新的密码就可以设置新的密码)7、F更改语音控制口令(按下次键,再次输入密码,通过验证后,即 可进入语音口令修改程序操作)2)、语音控制输入进入语音控制功能后,先进行语音控制训练操作(训练过后此操作可跳过), 训练成功后,方可进行语音控制,并且时时

8、可以关闭语音功能。此外,语音口令还可以时时修改,再次进行语音控制训练操作即可。3)、密码修改操作此系统的密码设置存在Flash中,断电不丢失,密码修改后,系统原密码作废, 新的密码生效,并存入Flash中。4)、语音提示操作对应于每一种操作,系统均给予一定的语音提示。如:“请输入密码”、“密码 错误”等。5)、液晶显示功能对应于每一种操作,系统均给予一定的显示提示,方便操作。6)、液晶背光功能实现为了实现液晶背光功能,我们设计了一下三种电路:超声波探测电路、光敏 传感电路、按键触发电路,在光线好的情况下,液晶不背光显示,光线差时,有 按键或探测到有人接近时背光显示。7)、系统执行机构系统执行机

9、构我单片机I/O 口输出控制的继电器。8)、报警蜂鸣器9)、电源信号指示灯10)、控制信号指示灯4 .系统硬件部分原理介绍此系统硬件部分电路核心部分为凌阳单片机及其外围电路(包括语音识别、 输出电路),外围电路有:键盘输入、液晶显示、执行机构电路,此外,为了实 现液晶显示器的背光功能,我们采用了超声波探测电路、光敏传感电路、输出延 时电路等。电路总体设计模块方框图如下:为了详细介绍我们的电路功能模块,我们将在下面分块介绍本系统的各个功 能模块:1、电源部分:2、电源信号灯:3、凌阳十六位单片机控制电路:见附录(一)4、被控制的继电器:5、控制信号灯:6、蜂鸣器:7、键盘输入部分:8、液晶显示部

10、分:9、背光功能控制模块基本方框图如下:1)、超声波探测发射部分:(含波形)2)、超声波探测接收放大电路:4)、输入信号延迟电路:pnSP IDE工作界面如下: hrijvEl lArEUijH2、此系统功能复杂,但软件设计较为简单,程序功能实现简介图如下:对操作程序的解释以及要求:1、直接输入密码开门;输入四位密码后按确认键,比较密码,密码正确表开启门禁系统,并有“门 已经打开,请进”的提示余音。2、设置新的密码;按下B键后,输入原密码,确认后输入新的密码,确认后再次输入新的密码, 检验正确后,密码修改成功,原密码作废。3、开启语音功能;按下C键,输入密码确认后,进入语音识别模式。如果是第一

11、次进入语音识 别模式,需要进行语音识别训练,训练两遍正确后,完成训练操作,此时语音识 别功能实时监测。在语音识别实时监测的同时,我们的键盘扫描并没有停止,也 就是说我们的键盘输入等级高于语音识别模式,在任何情况下键盘输入都是有效 的。4、关闭语音识别功能;按下D键,不需要输入密码即可关闭语音识别功能,要想开启此项功能,必 须按下C键开启语音识别功能。5、更改语音口令;按下E键,进入语音识别口令修改模块,输入密码确认后,进入语音口令修 改训练模块,根据语音提示以及液晶显示很方便的就可以成功更改语音口令。6、取消键;按下F键,即可取消所有操作,回到系统初始化后的界面。主程序见附录(二):6.对系统

12、的自我评价在总体上,我们对这个系统的设计还是比较满意的,但是,虽然我们对这 个项目投入了大量的时间和精力,由于知识有限,我们在很多方面有很多的不足 之处。以下我将从硬件和软件两个方面来阐述这个系统的各个部分:硬件部分:1. 我们认为,我们做得比较成功的地方就是通过超声波探测、光敏传感以 及延时电路的组成实现了液晶显示器的背光功能2. 此外,我们的液晶显示和键盘电路十分简洁。3. 遗憾的是,超声波探测精度不高,准确性有待改进。软件部分:1. 一提的是,在整个系统设计过程中,语音控制和语音输出提示一直是我 们软件设计的重点,同时也是我们的亮点,体现了我们设计系统人性化的一面。2. 键盘扫描和液晶驱

13、动工程中,我们详尽地应用了科学的软件设计思想, 使程序简洁,有效。3. 此外,我们的主程序设计,结构鲜明,条理清晰。4. 但是,美中不足的是,我们在开启语音功能时,系统时钟不断变化,所 以造成键盘扫描的不成熟,此处有待改进。7 .系统设计过程中的实践体验通过对该系统的设计,我们不仅收获颇丰,而且体会也颇深。1. 过这次设计,我们深深体会到,理论指导着实践,但实践才是最终的目 标。我们在设计过程中,往往遇到这样的情况,设计的电路从理论上毫无差错, 但实现起来却是困难重重。只有在不断的摸索中才能找到界却问题的方法。2. 们深深体会到团体合作,在项目制作过程中十分重要,好的合作精神需 要我们时时刻刻

14、牢记在心。3. 在任何时候,科技离不开创新,在设计项目的同时,我们需要抛弃成见, 标新立异,敢于实现。在这一点上,我认为我们做得比较成功。在设计系统初始, 我们采用51系列单片机,而语音功能却只能外扩专用芯片,实现起来比较困难, 最后我们大胆采用凌阳单片机一举解决语音控制问题。制作过程中,齐明老师在技术上给予极大的帮助和支持。在此,感谢齐明老 师对我们电子制作的指导!总之,这次活动给我们带来了无穷的收获和乐趣,感谢学校和老师给我们提 供了一个锻炼的大舞台。8.参考文献凌阳十六位单片机应用教程MCS-51单片机应用设计元器件手册9.附录附录(一):凌阳单片机最小系统:附录(二):凌阳单片机下电子

15、锁程序实现:#include bsrsd.h #define HaveKey 1#define NoKey 0#define NAME_ID0x100#define RSP_AGAIN1#define RSP_NOVOICE2#define RSP_NAMEDIFF3#define RSP_CMDDIFF4#define RSP_STAR5#define RSP_NOISY6宏定义#define HaveKey 1#define NoKey 0/全程变量extern void ClearWatchDog();int PlayFlag = 0;unsigned int Key_Value;uns

16、igned int KeyDownTimes;保存按键次数按键标识/* */函数声明void Clear_Password();unsigned int F_Affirm_New_Password();unsigned int F_Affirm_Password();void Save_New_Pwd_To_Flash();void LCD_SHOW(char Sentence);void PlayRespond(int Result);int TrainWord(int WordID, int RespondID);全局变量定义extern Pwd_Init1;unsigned int Pa

17、ssword4;unsigned int Password_Temp4;unsigned int Key_Flag=0;unsigned int Key_Num=0;unsigned int Trained=0;/* */ main()int res, timeCnt = 0, random_no = 0,Error_No=0,NoKey_Times=10;int i;int Pass=0;/* */变量定义unsigned State=1,Voice_State=0; /这个变量用于判断目前除在哪中输入状态 中/1:普通开门状态2:更改密码,输入原密码状态3 :更改密 码,第一次输入新密码状

18、态/4 :更改密码,第二次输入新密码状态5:进入语音系统时输入密码状态6:进入语音系统重新训练/ 输入密码验证/* */Protect_Clock();InitIO();/ 键盘KeyDownTimes = 0;Key_Flag = NoKey;ClearWatchDog();/初始化存储器RAMBSR_DeleteSDGroup(0);LCD_INIT();INIT_GONGNENG();Clear_Password();LCD_SHOW(Welcome!);SET_Address2();LCD_SHOW(A?B?C?D?E?F?.);if(F_FlashRead(Pwd_Init)F_Fl

19、ashErase(0xfe00);for(i = 0;i4;i+)F_FlashWrite1Word(0xfe00+i,i);F_FlashWrite1Word(Pwd_Init,0);while(1)ClearWatchDog();Protect_Clock();InitIO();/键盘if(Voice_State)Protect_Clock_fast();elseProtect_Clock();F_Key_Scan();while(Key_Flag = HaveKey)/ 有按键按下Key_Value=F_Get_Key();if(Voice_State=0)while(NoKey_Tim

20、es!=0)F_Key_Scan();if(Key_Flag=NoKey)NoKey_Times-;else NoKey_Times=10;NoKey_Times=10;LCD_LIGHT_OPEN();打开背光功能Key_Flag = NoKey;switch(Key_Value) 判断键值/09表示输入的是密码,将等待下一个键的输入case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8:case 9:if(Key_Num = 0)LCD_CLEAR();LCD_SHOW(Password:);SET_Ad

21、dress2();if(Key_Num 4) Key_Num +; LCD_ADD(*); DELAY(); break; case 10:/6 :进入语音系统重新训练输入密码验证 LCD_CLEAR(); LCD_SHOW(Train the voice!); SET_Address2(); LCD_SHOW(Check you ID:); PlayRespond(6);/语音提示 *请输入密码(6) !Protect_Clock(); State=6; Key_Num =0; break; case 11:/确认键输入新密码时的两个状态处理方式有所不同 if(State = 3) if(K

22、ey_Num = 4) LCD_CLEAR(); LCD_SHOW(Please Again!); SET_Address2(); LCD_SHOW(Input new PWD:);PlayRespond(8);语音提示 *“ 请再次输入新密码(7) “!Protect_Clock(); for(i = 0;i4;i+)/*把这个密码存到临时变量 Password_Temp 中*/Password_Tempi=Passwordi;Pass=0;Key_Num =0;State = 4;break;elseLCD_CLEAR();LCD_SHOW(4 bit PSW!);SET_Address2

23、();LCD_SHOW(Please Again!);PlayRespond(7);语音提示 *“ 密码错误(3)”! !Protect_Clock();LCD_CLEAR();LCD_SHOW(Welcome!);SET_Address2();LCD_SHOW(A?B?C?D?E?F?.”);Key_Num =0;State = 1;break;else if(State = 4)Pass=0;Pass = F_Affirm_New_Password(); 第二遍输入密码时的验证elsePass=0;Pass = F_Affirm_Password(); 验证密码if(Pass = 1)/

24、密码正确判断目前状态,确定这个正确的密码是用来干吗的Pass = 0;Error_No=0;LCD_LIGHT_OFF();switch(State)case 1:DOOR_OPEN();/* 开门 */LIGHT_OPEN();LCD_CLEAR();LCD_SHOW(DOOR OPENED);PlayRespond(12);/ 语 音提示*“主人您好,门已经开了(!Protect_Clock();SET_Address2();LCD_SHOW(Best Wishes!);DOOR_OFF();LIGHT_OFF();LCD_CLEAR();LCD_SHOW(Welcome!);SET_Ad

25、dress2();LCD_SHOW(A?B?C?D?E?F?.);Key_Num=0;State = 1;break;case 2:LCD_CLEAR();LCD_SHOW(Password right!);SET_Address2();LCD_SHOW(New password:);PlayRespond(8);/ 语音提示*请输入新密码!Protect_Clock();State = 3;break;case 4:Save_New_Pwd_To_Flash(); / 保存新密码LCD_CLEAR();LCD_SHOW(Successfully!);SET_Address2();LCD_SH

26、OW(Remenber The New);PlayRespond(9);/ 语音提示*密码修改成功,要记住哦!Protect_Clock();LCD_CLEAR();LCD_SHOW(Welcome!);SET_Address2();LCD_SHOW(A?B?C?D?E?F?.);State = 1; break;case 5:if(Trained)Voice_State=1;elsewhile(TrainWord(NAME_ID,0) != 0);BSR_InitRecognizer(BSR_MIC);/辨识器初始化Protect_Clock();* 保护时钟 *BSR_EnableCPUI

27、ndicator();启动实时监控PlayRespond(RSP_STAR);/*播放开始辨识的提示音Protect_Clock();/*保护时钟“ 小小小小小小小小小小小小小小小小小小小小小小小小Trained = 1;Voice_State=1;LCD_CLEAR();LCD_SHOW(Voice on);SET_Address2();LCD_SHOW(Remember it!);PlayRespond(13);/ 语 音提示*语音功能已经开启!Protect_Clock();LCD_CLEAR();LCD_SHOW(Welcome!);SET_Address2();LCD_SHOW(A?

28、B?C?D?E?F?.);State=1;break;case 6:/重新输入开始语音训练Trained=0;if(Trained)VOice_State=1;elseBSR_DeleteSDGroup(0);/初始化存储器RAMwhile(TrainWord(NAME_ID,0) != 0);BSR_InitRecognizer(BSR_MIC);/辨识器初始化BSR_EnableCPUIndicator();启动实时监控PlayRespond(RSP_STAR);播放开始辨识的提示音Protect_Clock();Trained = 1;Voice_State=1;LCD_CLEAR();

29、LCD_SHOW(Voice Trained!);SET_Address2();LCD_SHOW(Remember it!);PlayRespond(9);/ 语音提示*语音密码修改成功!Protect_Clock();InitIO();/ 键盘KeyDownTimes = 0;Key_Flag = NoKey;/BSR_DeleteSDGroup(0);/初始化存储器RAMLCD_INIT();INIT_GONGNENG();LCD_CLEAR();LCD_SHOW(Welcome!);SET_Address2();LCD_SHOW(A?B?C?D?E?F?.);State=1;break;

30、default:break; /Switch(State)Clear_Password();Key_Num=0;break;/if(pass=1)elseError_No+;if(Error_No 0)识别出命令switch(res)case NAME_ID:触发命令响应DOOR_OPEN();/* 开门 */ LIGHT_OPEN();LCD_CLEAR();LCD_SHOW(DOOR OPENED);PlayRespond(12);/ 语 音提示*“主人您好,门已经开了 !Protect_Clock();SET_Address2();LCD_SHOW(Best Wishes!);DOOR_

31、OFF();LIGHT_OFF();LCD_CLEAR();LCD_SHOW(Welcome!);SET_Address2();LCD_SHOW(A?B?C?D?E?F?.”);Key_Num=0;/*?State = 1;/*?break;/if(Voice_state=1)/while(1)/main()/void Clear_Password()int i;for(i = 0;i4;i+)Passwordi = 0;Password_Tempi = 0;Key_Num = 0;/unsigned int F_Affirm_New_Password()int i;for(i=0;i4;i+

32、)if(Passwordi!=Password_Tempi)return 0;return 1;/unsigned int F_Affirm_Password()int i;unsigned temp;for(i=0;i4;i+)确定返回值是r1temp = F_FlashRead(0xfe00 + i);if(Passwordi != temp) return 0;return 1;/void Save_New_Pwd_To_Flash()int i;F_FlashErase(0xfe00);for(i=0;i4;i+)F_FlashWrite1Word(0xfe00+i,Passwordi

33、);/void LCD_SHOW(char Sentence)int i;for(i=0; Sentencei != 0; i+)LCD_ADD(Sentencei);/void PlayRespond(int Result)BSR_StopRecognizer();SACM_S480_Initial(1);SACM_S480_Play(Result, 3, 3);while(SACM_S480_Status()&0x0001) != 0)SACM_S480_ServiceLoop();ClearWatchDog();SACM_S480_Stop();BSR_InitRecognizer(BS

34、R_MIC);BSR_EnableCPUIndicator();/int TrainWord(int WordID, int RespondID)int res;PlayRespond(RespondID);/请输入 触发名 称-(0)while(1)ClearWatchDog();Protect_Clock_fast();res = BSR_Train(WordID,BSR_TRAIN_TWICE);Protect_Clock();if(res = 0) break;switch(res)case -1:/没有检测出声音(1)PlayRespond(RSP_NOVOICE);return -

35、1;case -2:需要重新训练一遍(2)PlayRespond(RSP_AGAIN);break;case -3:环境太吵(3)PlayRespond(RSP_NOISY);return -1;case -4:数据库满return -1;case -5:检测出声音不同if(WordID = NAME_ID) PlayRespond(RSP_NAMEDIFF);/ 两次输 入名称不同(4)elsePlayRespond(RSP_CMDDIFF);/ 两次输入命令不同(5)return -1;case -6:序号错误return -1;Protect_Clock();return 0;Protect_Clock();附录(三):器件列表凌阳单片机最小系统一套;16*2 16位液晶显示器一块;4*4键盘一个;C945三极管若干;继电器一块;555定时器若干;超声波探头一对;LM567音频解码器一个;电阻电容若干;74LS00与非门一块;

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号