智能密码锁控制系统设计_第1页
智能密码锁控制系统设计_第2页
智能密码锁控制系统设计_第3页
智能密码锁控制系统设计_第4页
智能密码锁控制系统设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题目:智能密码锁控制系统设计

大作业摘要基于FPGA设计的点子密码锁是一个小型的数字系统,与普通机械锁相比,具有许多独特的有点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。目前使用的点子密码锁大部分是基于单片机技术,在实际应用中,程序容易跑飞,系统的可靠性较差。此设计是一种基于现场可编辑门阵列FPGA器件的电子密码锁的设计方法,采用VHDL语言对系统进行描述,并在EP3C10E144C8上实现。设计的背景、目的和意义密码锁就是要有一定的自我保护功能,并且能够定时更新防止破译的危险。密码锁控制器是硬件与软件的结合。VerilogHDL只需要根据系统设计的要求施加不同的约束条件,即可设计出实际电路。利用计算机的强大功能,在EDA工具的支持下,把逻辑验证与具体工艺库相匹配,将布线及延迟计算分成不同的阶段来实现,减少了设计者的繁重劳动。设计任务及要求课程设计的任务设计一个6位的数字密码锁,利用VerilogHDL语言来实现,并用QuartusⅡ记性仿真与测试。课程设计的要求设计一个简单的数字密码锁,密码为3位1.在内部设置密码,其密码用3位十进制数表示2输入密码时,每次输入一位数,输入后按#进行确认。3当输入的密码顺序与设置的密码一致时,密码锁打开,否则,则报警。连续三次错误则锁死。确定输入和输出变量Input:nRST,MIMA_IN,QUEREN,CLK;Output:OPEN,ERROR;确定输入状态input:output:CLK:主时钟open:开锁成功open=1nREST:复位ERROR:开锁错误QUEREN:确认密码ERROR=1MIMA_IN:密码输入整体设计框图方案论证方案1:采用数字电路控制,用以CMOS构成的数字逻辑电路作为密码锁的控制核心,用verilogHDL硬件描述语言来进行仿真。

方案2:采用以AT89C51单片机为核心控制的方案。能完成开锁,修改密码,密码错误报警,LCD显示密码等基本的密码锁功能。基于单片机的实现方案原理复杂,调试比较麻烦,所用到的器件比较多,而用数字电路的实现过程相对而言比较简单,软件易于实现,容易调试。状态机设计(状态转换图)

状态机设计(状态编码)odulemimasuo(clk,//主时钟,直接接17号引脚,不需要外接nrst,//复位按键,接上面一排的按键mima_in,//密码输入,接三个下面的拨码开关queren,//确认输好密码,接上面一排的按键lock,//三次错误,锁死,接LED灯0-锁死open//密码正确,打开,接LED灯0-打开);parametermima=3'b011;//设置默认密码inputclk;inputnrst;input[2:0]mima_in;inputqueren;outputlock;outputopen;regis_right;reg[1:0]count;reg[3:0]cs;//当前状态reg[3:0]ns;//下一个状态parameter[3:0]idle=4'b0001,tanqi=4'b0010,sancisuosi=4'b0100,kaisuo=4'b1000;//四个状态,空闲,确认键按下,三次锁死,成功开锁wirekey_out;//将确认键消抖后给了输出detectu1(.clk(clk),.reset(nrst),.pin_in(queren),.h2l_sig(h2l_sig));//按键消抖模块delayu2(.clk(clk),.reset(nrst),.h2l_sig(h2l_sig),.pin_out(key_out));//按键消抖模块//第一个always语句块,顺序状态转化(三段式第一段)always@(posedgeclk,negedgenrst)beginif(!nrst)cs<=idle;elsecs<=ns;end//第二个always语句块,根据不同的输入转换到不同的状态(三段式第二段)always@(nrst,cs,key_out,count)begincase(cs)idle:if(key_out)ns=tanqi;elsens=idle;tanqi:if(count==2'd3)ns=sancisuosi; else if(count<2'd3&&is_right) ns=kaisuo; else ns=idle;sancisuosi:ns=sancisuosi;kaisuo:ns=kaisuo;endcaseend//标志寄存器,判断密码输入是否正确regrlock;regropen;//密码输入错误计数//第三个always模块,状态机的输出,根据状态不同输出不同的信号(三段式第三段)always@(posedgeclk,negedgenrst)beginif(!nrst){rlock,ropen}<=2'b11;elsebegin{rlock,ropen}<=2'b11;case(cs)idle:{rlock,ropen}<=2'b11;tanqi:{rlock,ropen}<=2'b11;sancisuosi:{rlock,ropen}<=2'b01;kaisuo:{rlock,ropen}<=2'b10;endcaseendend//第4个always语句块,在确认键按下的时候判断密码是否正确同时使错误数加一,来判断是否进行锁死always@(negedgequeren,negedgenrst)beginif(!nrst)begincount<=0;is_right<=0;endelseif(!queren)if(mima_in==mima)is_right<=1;elsebegincount<=count+1'b1;is_right<=0;endendassignopen=ropen;assignlock=rlock;endmodule状态机设计原理图RTL图仿真时序图正确开锁的时序图演示照片三灯亮表示密码正确开锁三五两灯同时亮表示密码输入错误并且报警四个灯亮表示连续输入三次错误密码锁死并且报警设计结论及评价优点:设计的密码锁控制器设置的是六位密码,在系统复位后,用户按键6次,输入一个完整的密码串,输入完后,系统会进行比对,如果发现密码吻合,则开门,否则系统报警,直到输入正确的密码,报警声停止。这样的设计可以很好的满足人们的日常需求。同时,密码锁还具有密码修改功能,方便操作,使得密码锁的使用更加安全、便捷。

不足:在软件、硬件设计和仿真过程中遇到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论