版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、海 南 大 学EDA技术课程设计数字密码锁设计 题 目 : 数字密码锁设计 学 号 : 20121601310095 姓 名 : 朱 正 芬 年 级 : 2012 级 学 院 : 信 息 学 院 专 业 : 电子 指导老师 : 龙 翔 完成日期 : 2015.1.12 数字密码锁设计目录:1、 设计任务及要求2、 设计分析3、 设计的最终源程序digtlkeycoded.vhd4、 源程序digtlkeycoded.vhd的仿真的结果和分析五、课程设计总结和心得体会1、 设计任务及要求1、 密码由4位十进制数字(09)组成;2、 有09的数字键;3、 有密码设置键(起始密码0000);4、 有
2、开锁键;5、 有清屏键;6、 有显示:4位密码LED(开锁时可见、密码设置时显示X)、锁状态1红(LOCK)1绿(OPEN)、密码错误1红(闪烁);7、 若密码错误,则报警(声音);8、 若连续3次开锁失败,则将键盘锁死,同时按下某组合键,清除原密码设置;状态?STAR输入密码清屏?保存密码OPEN=1LOCK=1密码正确? O_CNT+1O_CNT=3?报警结束YNYNNY9、 译码器(键盘k1-k100-9)、寄存器、存储器、计数器(3)、比较器、控制模块。二、设计分析1、密码锁功能分析数字密码锁在现实生活中十分常见,结合生活中的实例与该设计的课题要求,现对设计要求分析如下:1、 开启设备
3、,系统应初始工作状态和初始密码,初始化状态为等待状态,初始化密码为(0000)D,密码输入次数计数器初始化为0;2、 通过开锁键,激活设备进入正常工作状态。3、 输入密码,同时将输入的密码送4位密码LED端口显示。4、 判断输入的密码序列与预先设定的密码是否相同。(1)若相同则设备开锁成功,绿色(open)指示灯点亮;(2)若不相同,则密码错误1红(闪烁)指示灯点亮,同时密码输入计数加一,使清屏键产生一个高电平,给出一个预定的警告信号。接着判断密码输入次数计数器的值是否等于3,若等于3则设备锁定,锁状态1红(LOCK)指示灯点亮,同时使密码清零键有效将预置密码清零;若不等于3返回重新输入。 5
4、、开锁成功的条件下,用户可以通过密码重置键进入密码重设状态,将显示器显示值设置为X ,重新设置设备的开锁密码。通过以上分析,得到设备功能的功能流图:结束开锁成功绿色(open)指示灯被点亮用户获得设备密码重置等权限开锁失败,红灯闪烁密码输入计数器加一产生清屏信号,给出警告信号密码输入计数器COUNTKEY是否为3同时将输入的密码送4位密码LED端口显示同时将输入的密码送4位密码LED端口显示设备锁定,锁状态1红(LOCK)指示灯点亮,并使密码清零键有效,将预置密码清零同时将输入的密码送4位密码LED端口显示密码重置键是否有效同时将输入的密码送4位密码LED端口显示将显示器显示值设置为X和重新设
5、置开锁密码 开锁键是否有效输入密码,同时将输入的密码送4位密码LED端口显示输入密码是否正确同时将输入的密码送4位密码LED端口显示设备开启键有效设备初始化为等待状态(000)B初始化密码order_code(0000)D,初始化密码输入计数器COUNTKEY:0设备开启保持等待状态 无效 有效 正确 错误 否 否 是 否 是 一定时间无操作 2、状态转换分析 (1)、保持等待的状态: 000 正常工作的状态: 100 开锁成功的状态: 111 密码输入错误时警告的状态: 001 准备进入重置密码时状态:101 键盘锁死状态: 011(2)、各状态之间的转换顺序与转换条件:0110011111
6、00000 开锁键有效 codein=order_code openboxkey codeiorder_code reset=1 一定时间的无输入 COUNTKEY3101 3、端口说明 (1)时钟输入端口clk 功能:提供时钟信号 类型:IN std_logic openboxkey功能:有效时,使设备从等待状态进入工作状态 类型:IN std_logic 重置密码选择键reset 功能:选择设备的密码重设功能,使之进入密码重设状态 类型:IN std_logic 密码输入端口codein 功能:记录用户输入的4位十进制密码(压缩型BCD码表示) 类型:IN std_logic_vector
7、(0 to 15) 设备状态端口state 功能:表示设备现在的状态 类型:BUFFER类型的三位二进制数 设备初始化端口onopenw 开启设备,使设备初始化类型:IN std_logic三、设计的最终源程序-digtlkeycoded.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity digtlkeycoded isport( onopenw: in std_logic; reset:in std_logic; clk
8、:in std_logic; openboxkey:in std_logic; codein:in std_logic_vector(0 to 15); state:buffer std_logic_vector(0 to 2); end entity digtlkeycoded;architecture art of digtlkeycoded is signal order_code:std_logic_vector(0 to 15):="0000000000000000" signal countkey:std_logic_vector(0 to 1):="
9、00" signal opened:std_logic:='1' signal time:std_logic_vector(0 to 5):="000000" signal ok:std_logic_vector(0 to 1); signal t:std_logic;beginprocess(codein,openboxkey,reset,order_code,countkey,opened,time) begin if onopenw='1' then opened<='1' order_code<=
10、"0000000000000000" elsif openboxkey'event and openboxkey='1' then if opened='1' then state<="100" if reset='1' and state="111" then state<="101" order_code<=codein; countkey<="00" elsif codein=order_code then s
11、tate<="111" countkey<="00" else countkey<=countkey+1; if countkey>="10" then state<="011" opened<='0' ; else state<="001" end if; end if; else state<="011" if time="111100" then opened<='1
12、9; countkey<="00" state<="000" else state<="011" end if;end if; end if;end process;process(opened,clk,ok,t) begin if clk'event and clk='1' then ok(0 to 1)<=ok(1)&opened; if ok="10" then time<="000000" t<='0'
13、end if; if opened='0'and ok="00" and t='0' then time<=time+1; end if; end if; if time="111100" then t<='1' end if;end process;end architecture;四、源程序digtlkeycoded.vhd的仿真的结果和分析将上图放大一些看:1、设备首次开机后,系统给clr信号一个高电平,实现设备初始化,使系统进入等待状态。2、输入正确的密码后,设备进入开锁状态。3、在开锁
14、状态下,使reset信号置为1,设备进入重置密码状态,输入新密码,设备记忆新密码,使order_code等于键入的新密码。4、重新输入刚刚设备的新密码,设备进入开锁状态,说明设备修改密码成功。5、首次输入错误密码,开锁失败,红灯闪烁,产生清屏信号,给出警告信号,同时countkey加一,即countkey=1,判断countkey是否等于3。此处不等于,再次读入输入密码。6、第二次输入错误密码,设备进入警告状态,红灯再次闪烁,清屏信号再次产生,给出警告信号,同时countkey加一,countkey=2,判断countkey是否大于等于3。此处不等于,再次读入输入密码。7、第三次输入错误密码,
15、设备进入警告状态,红灯闪烁,清屏信号产生,给出警告信号,同时countkey加一,countkey=3,判断countkey是否大于等于3。判断结果是countkey是否大于等于3成立。锁状态1红(LOCK)指示灯点亮,并使密码清零键有效,将预置密码清零,设备进入锁死状态。8、若设备进入锁死状态,则经过一定的反应时间后,开始计数。 9、 在键盘锁死状态下,即使输入正确密码,开锁亦是失败,输入错误密码,设备也不进入警告状态。设备不再响应用户的开锁请求,说明开锁键锁死成功。10、计时达到规定的最大无输入时间时,设备回到等待状态,随后countkey清零。11、设备回到等待状态后,输入正确密码,开锁成功,绿色(open)指示灯点亮,用户获得设备的密码重置等权限。12、再次输入三次错误密码后,系统再次进入锁死状态,同时计数值time被清零,密码置为四个零。说明该设备可以在硬件允许的条件下连续使用,实现各个状态循环转换。五、课程设计总结和心得体会通过课程设计,巩固了课本上所学的知识,更进一步的了解VHDL语言的应用。总的来说,设计是成功的。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业员工法律意识培训方案
- 2024年医疗设备采购及技术支持协议
- 2024年团结共进:合伙人创业协议
- 2024年合作发展借款协议
- 2024年城市公交线路特许经营合同
- 2024年医疗健康数据共享与转让协议
- 2024年品牌营销与推广合同:社交媒体广告策略
- 拉挤树脂相关行业投资方案
- 2024年大型商业综合体建设与运营合同
- 2024年卫星遥感信息服务合作协议
- 最新一年级数学上册比轻重题汇总
- 生产计划管理实务-多种少量生产方式(2)
- 心电图的基础知识课件.ppt
- 科普知识讲座(火箭)PPT精选课件
- 高三一模动员主题班会-课件(PPT演示)
- 钛加工工艺方法综述
- 车辙的形成原因及预防措施
- 2022年同济大学单独考试研究生报考资格审查表
- 施工单位试验室验收方案
- 从PK-PD看抗菌药物的合理应用
- 癃闭中医护理方案解答
评论
0/150
提交评论