VHDL密码锁实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华南师范大学实验报告 学生姓名: 彭小澎 学 号: 20103100202_ 专 业: 通信工程 年级班级: 11级电通6C 课程名称: 可编程数字系统 实验项目: VHDL设计一密码锁 试验时间: 2013年05月18日 指导老师: 冯寿廷 一、课程设计目的 熟悉EDA工具,掌握用VHDL语言进行数字系统设计的基本方法和流程,提高工程设计实践能力。 二、设计任务 设计一密码锁,用VHDL语言描述,用QuartusII工具编译和综合,并在实验板上实现,撰写实验报告。 数字锁即电子密码锁,锁内有预置密码,如果输入代码与锁内密码一致,锁被打开;否则,应封闭开锁电路,若多次输入错误密码,应发出报警信号。? 三、功能要求与技术指标 本设计设计一个4 位数字锁,并验证其操作。 1、基本功能:? (1 )开锁密码为 4 位十进制数,通过按钮输入密码,输入的密码在4个数码管上显示,若与锁内预置的密码一致,输出开锁信号(以点亮一个LED灯表示开锁)。 (2)按钮开关输入须消抖处理。 2、扩展功能: (1)用户可以设置锁内的密码; (2)若输入密码三次不正确,输出报警信号,报警信号可以通过闪烁LED或某个数码管上小数点指示。 (3)设置一个复位按键,忘记密码后可通过该复位按键恢复出厂原始密码,如原始密码为“1234”; (4)其它实用功能。 四、设计原理 在数字电路设计中,自顶向下设计方法的主要思想是对数字系统进行划分,将复杂的设计原理简化为相对简单的模块设计,不同的模块用来完成数字系统中某一部分的具体功能。此密码锁的设计可以分为以下几个模块: 分频模块时钟模块密码错误报警模块按键消抖模块密码检验模块数码管移位模块动态扫描模块 分频模块 时钟模块 密码错误报警模块 按键消抖模块 密码检验模块 数码管移位模块 动态扫描模块 数码管显示模块 数码管显示模块 密码设置模块 密码设置模块 数码管计数模块 数码管计数模块 密码锁原理框图 五、系统分析 1、根据原理框图:系统大致可分为时钟模块,显示模块,控制模块。 CLK1Khz时钟模块时钟模块:密码锁的工作时钟由外部晶振提供,时钟频率为50Mhz。对CLK进行分频输出三路时钟CLK1Khz,CLK1,CLK2,频率分别为1Khz,5hz,1hz。由此,时钟分频模块原理框图如下: CLK1Khz 时钟模块 CLK1 CLK CLK1 CLK2 CLK2 显示模块: 数码管动态扫描模块以及数码管显示模块的时钟频率分别由CLK1Khz和CLK提供。数码管动态扫描模块的原理是利用人体的视觉暂留特性,只要每秒扫描次数大于25次,就感觉数码管一直在亮。数码管显示模块由四个数码管分别显示四位十进制密码。四个数码管为共阳极连接,其中一段输入低电平则点亮,否则不亮;且由各自位选信号控制,被选通数码管则显示数据,其余关闭。 控制模块: 根据密码锁的功能可划分为以下五个模块。 按键消抖模块:消抖是为了避免在按键按下或是抬起时电平剧烈抖动带来的影响。一般来说,软件消抖的方法是不断检测按键值,直到按键值稳定。实现方法:假设未按键时输入1,按键后输入为0,抖动时不定。可以做以下检测:检测到按键输入为0之后,开始计数,延时10ms,再次检测,如果按键还为0,那么就认为有按键输入。延时的10ms恰好避开了抖动期。 数码管移位模块:当CLK时钟上升沿到来时,设置按键S3对数码管进行移位控制。通过闪烁的方式显示当前其控制的数码管位置。 数码管计数模块:当CLK时钟上升沿到来时,设置按键S2对数码管进行加数控制。 密码检验模块:该模块的作用是将输入的密码跟程序中预置的密码进行对比,如果一样,则密码锁开锁。在这里值得注意的是设“1111”为初始密码,如果修改密码后但是又忘记了密码,重新下载或者按复位键(rst)之后只要输入的密码为“1111”则都可通过密码锁。此模块是整个设计的核心 ,它实现密码锁的逻辑功能。在任何时候按动密码初始化按键内密码设置为程序初始化密码值 “1111”代码为 4 位二进制数 ,当输入代码的位数和位值与锁内给定的密码一致 ,且按规定程序开锁时 ,方可开锁 ,并点亮开锁指示灯且数码管显示“PASS”字样。否则 ,系统进入 “错误”状态 ,并闪烁LED发出报警信号,且数码管显示“FFFF”字样。 密码设置模块:为防止任意进行密码修改 ,必须在正确输入密码后 ,才能重新设置密码。输入正确密码后 ,锁打开 ,同时 ,密码修改控制信号M置高电平 ,就可直接进行修改密码的操作。修改密码实质就是用输入的新密码去取代原来的旧密码, 按确定键, 存储新密码。此功能

文档评论(0)

浅唱愁淡 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档