欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    VHDL课程设计 数字密码锁电路.doc

    • 资源ID:85465172       资源大小:914.50KB        全文页数:7页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VHDL课程设计 数字密码锁电路.doc

    VHDL课程设计数字密码锁一、 设计要求设计一个简易的数字密码锁,该锁应在收到3位与规定码相符的十进制数码时翻开,使相应的指示灯点亮;假设收到的代码与规定的不符或者开锁程序有误,表示错误的只是灯点亮。二、 系统功能描述1、 系统接通电源后,首先按动set键前方投入运行。运行时标志开门的指示灯和报警灯、铃皆不工作,系统处于安锁状态。2、 开锁代码是3位十进制数,是系统内部设定好的。代码缺乏3位或超出3位时均不能开锁。3、 开锁程序由设计者确定,用户必须严格执行所规定的程序,方可开锁。4、 开锁代码和程序正确,表示数字锁翻开的指示灯亮。5、 允许用户在开锁过程中有1次错误输入代码错误或开锁程序错误,只要出错,表示错误的指示灯必定点亮。如果有2次错误,那么报警器喇叭名叫,以示情况异常。6、 开锁程序为:(1) 按启动键START启动开锁程序,此时系统内局部处于初始状态。(2) 依次键入3个十进制码。(3) 按开门键iopen准备开门。假设按上述程序执行且拨号正确,那么开门继电器工作,绿灯亮;假设密码输入错误或未按上述程序执行,那么按动开门键iopen后报警装置鸣叫单频,红灯亮。(4) 开锁事务处理完毕后,应将门关上,按set键,使系统重新进入安锁状态。假设在报警,按set或start均不起作用,应另用一内部的I_set键才能使系统进入安锁状态。(5) 假设按错号码,可在按iopen键之前按start键重新启动开锁程序。7、 号码0-9,start,iopen均用按键产生。三、 密码锁控制器的MDS图及其功能说明。 Set=1 Set=1 Set=1St3St2St1St0 Start=1 result=1 iopen=1 Set=1 Result=0 iopen=1 St0:安锁状态St4 Result=1' St1: 接受密码状态 i_set=1 St2: 准备开锁状态 Result=0 St3: 开锁状态 iopen=1 St4:密码一次错误状态 St5:密码两次错误状态 St5 当系统处于st0状态时,为安锁状态;当按下start键之后进入st1状态,这时可以输入密码,如果密码正确可进入st2状态,这是如果按下iopen键,进入st3状态,并且表示开门的指示灯和绿灯亮;如果在st1状态输入的密码错误并且按下了iopen键,进入st4状态,指示错误的红灯亮;这时,如果再输入一次错误密码那么进入st5状态,这时表示错误的红灯亮,并且报警器响,这时start,iopen,set键均不起作用,只有内部复位I_set起作用,使系统回到st0状态;如果在st4状态,按下set键可回到st0状态,重新输入密码。四、 顶层电路结构图五、 主要功能模块设计说明及源程序。1、 主控模块,是整个系统的控制器,用于控制各个状态之间的转换 其源代码为: library ieee;use ieee.std_logic_1164.all;Entity icontrol isport(i_set,set,start,iopen,result,clk1,clk:in std_logic; en,green,red,jibao:out std_logic);end icontrol;Architecture icontrol_1 of icontrol is type states is(st0,st1,st2,st3,st4,st5); signal st:states; signal sp:std_logic;begin process(i_set,set,start,iopen,result,clk1,clk) begin if(i_set='1')then en<='0'green<='0'red<='0'sp<='0' elsif(clk'event and clk='1') then case st is when st0=>en<='0'green<='0'red<='0'sp<='0' if(start='1')then st<=st1; else st<=st0; end if; when st1=>en<='1'green<='0'red<='0'sp<='0' if(result='1')then st<=st2; elsif(iopen='1')then st<=st4; elsif(set='1')then st<=st0; else st<=st1; end if; when st2=>en<='1'green<='0'red<='0'sp<='0' if(iopen='1')then st<=st3; elsif(set='1')then st<=st0; else st<=st2; end if; when st3=>en<='0'green<='1'red<='0'sp<='0' if(set='1')then st<=st0; else st<=st3; end if; when st4=>en<='1'green<='0'red<='1'sp<='0' if(result='1')then st<=st2; elsif(set='1')then st<=st0; elsif(result='0' and iopen='1')then st<=st5; else st<=st4; end if; when st5=>en<='0'green<='0'red<='1'sp<='1' if(set='1')then st<=st0; else st<=st5; end if; when others=>st<=st0; end case; end if;end process; jibao<=(sp and clk1);end icontrol_1;2、 比拟器模块:将用户输入的密码与选择器选出的密码进行比拟,如果一样result为1,否那么为0。其源代码为:library ieee;use ieee.std_logic_1164.all;entity bjq isport(sel:in std_logic_vector(1 downto 0); din,mm:in std_logic_vector(3 downto 0); result:out std_logic);end bjq;Architecture bjq_1 of bjq isbegin process(sel) begin if(sel="01")then if(din=mm)then result<='1' else result<='0' end if; elsif(sel="10")then if(din=mm)then result<='1' else result<='0' end if; elsif(sel="11")then if(din=mm)then result<='1' else result<='0' end if; else result<='0' end if; end process;end bjq_1;3、 编码器模块:将用户输入的10位2进制数编码.其源代码为:library ieee;use ieee.std_logic_1164.all;entity bmq isport(s :in std_logic_vector(9 downto 0); d1:out std_logic_vector(3 downto 0); en :in std_logic; sor:out std_logic);end bmq;Architecture bmq_1 of bmq is signal d0:std_logic_vector(3 downto 0); begin process(en,s) begin if(en='1')then if(s="0000000001")then d0<="0000"sor<='1' elsif(s="0000000010")then d0<="0001"sor<='1' elsif(s="0000000100")then d0<="0010"sor<='1' elsif(s="0000001000")then d0<="0011"sor<='1' elsif(s="0000010000")then d0<="0100"sor<='1' elsif(s="0000100000")then d0<="0101"sor<='1' elsif(s="0001000000")then d0<="0110"sor<='1' elsif(s="0010000000")then d0<="0111"sor<='1' elsif(s="0100000000")then d0<="1000"sor<='1' elsif(s="1000000000")then d0<="1001"sor<='1' else d0<="1111"sor<='0' end if; else d0<="1111"sor<='0'end if;end process;d1<=d0;end bmq_1;六、引脚锁定情况:clk 1 s0 28clk1 43 s1 29set 49 s2 30I_set 50 s3 35iopen 44 s4 36start 84 s5 37green 25 s6 38red 24 s7 39jibao 27 s8 47kaimen 23 s9 48七总结及体会 通过这次课程设计,我学到了许多知识。在设计过程中我遇到了一些问题,在同学的帮助和老师的指导下,使问题根本得以解决。自己设计的密码锁仍存在一些缺乏之处,我会在以后的学习中逐步改良。 在这次课程设计过程中,我得到王玲玲老师的耐心指导和悉心照顾,在此表示感谢。

    注意事项

    本文(VHDL课程设计 数字密码锁电路.doc)为本站会员(e****s)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开