智能密码锁控制系统设计.pptVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
智能密码锁控制系统设计

题目:智能密码锁控制系统设计 大作业摘要 基于FPGA设计的点子密码锁是一个小型的数字系统,与普通机械锁相比,具有许多独特的有点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。目前使用的点子密码锁大部分是基于单片机技术,在实际应用中,程序容易跑飞,系统的可靠性较差。此设计是一种基于现场可编辑门阵列FPGA器件的电子密码锁的设计方法,采用VHDL语言对系统进行描述,并在EP3C10E144C8上实现。 设计的背景、目的和意义 密码锁就是要有一定的自我保护功能,并且能够定时更新防止破译的危险。密码锁控制器是硬件与软件的结合。 Verilog HDL只需要根据系统设计的要求施加不同的约束条件,即可设计出实际电路。利用计算机的强大功能,在EDA工具的支持下,把逻辑验证与具体工艺库相匹配,将布线及延迟计算分成不同的阶段来实现,减少了设计者的繁重劳动。 设计任务及要求 课程设计的任务 设计一个6位的数字密码锁,利用Verilog HDL语言来实现,并用QuartusⅡ 记性仿真与测试。 课程设计的要求 设计一个简单的数字密码锁,密码为3位 1.在内部设置密码,其密码用3位十进制数表示 2输入密码时,每次输入一位数,输入后按# 进行确认。 3当输入的密码顺序与设置的密码一致时,密码锁打开,否则,则报警。连续三次错误则锁死。 确定输入和输出变量 Input:nRST,MIMA_IN,QUEREN,CLK; Output: OPEN,ERROR; 确定输入状态 input: output: CLK:主时钟 open:开锁成功 open=1 nREST:复位 ERROR:开锁错误 QUEREN:确认密码 ERROR=1 MIMA_IN:密码输入 整体设计框图 方案论证 方案1:采用数字电路控制,用以CMOS构成的数字逻辑电路作为密码锁的控制核心,用verilog HDL硬件描述语言来进行仿真。 方案2:采用以AT89C51单片机为核心控制的方案。能完成开锁,修改密码,密码错误报警,LCD显示密码等基本的密码锁功能。 基于单片机的实现方案原理复杂,调试比较麻烦,所用到的器件比较多,而用数字电路的实现过程相对而言比较简单,软件易于实现,容易调试。 状态机设计(状态转换图) 状态机设计(状态编码) odule mimasuo( clk, //主时钟,直接接17号引脚,不需要外接 nrst, //复位按键,接上面一排的按键 mima_in, //密码输入,接三个下面的拨码开关 queren, //确认输好密码,接上面一排的按键 lock, //三次错误,锁死,接LED灯 0-锁死 open //密码正确,打开,接LED灯 0-打开 ); parameter mima=3b011; //设置默认密码 input clk; input nrst; input [2:0]mima_in; input queren; output lock; output open; reg is_right; reg [1:0]count; reg [3:0]cs; //当前状态 reg [3:0]ns; //下一个状态 parameter [3:0] idle=4b0001,tanqi=4b0010,sancisuosi=4b0100,kaisuo=4b1000; //四个状态,空闲,确认键按下,三次锁死,成功开锁 wire key_out; //将确认键消抖后给了输出 detect u1(.clk(clk),.reset(nrst),.pin_in(queren),.h2l_sig(h2l_sig));//按键消抖模块 delay u2(.clk(clk),.reset(nrst),.h2l_sig(h2l_sig),.pin_out(key_out));//按键消抖模块 //第一个always语句块,顺序状态转化(三段式第一段) always@(posedge clk , negedge nrst) begin if(!nrst) cs=idle; else cs=ns;

文档评论(0)

celkhn5460 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档