ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:323.05KB ,
资源ID:11469499      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11469499.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字电路设计实验简易密码锁.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字电路设计实验简易密码锁.docx

1、数字电路设计实验简易密码锁 数字电路设计实验报告 简易密码锁学院:班级:学号: 姓名:目录 任务要求 系统设计 设计思路 总体框图 分块设计 波形仿真及波形分析 源代码 功能分析 故障分析及问题解决 总结及结论 任务要求 设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。基本要求: 1、密码设置:通过键盘进行4 位数字密码设定输入,在数码管上显示所输入数字。通过密码设置确定键(BTN 键)进行锁定。 2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。输入四位核对密码后,按“开锁

2、”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。 3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。闭锁状态下不能清除密码。 4、用点阵显示开锁和闭锁状态。提高要求: 1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。 2、密码锁的密码位数(46 位)可调。 3、自拟其它功能。 系统设计 设计思路 将电子密码锁系统分为三个部分来进行设计,数字密码输入部分、密码锁控制电路和密码锁显示电路。密码锁输入电路包括时序产生电路,键盘扫描电路,键盘译码电路等,将用户

3、手动输入的相关密码信息转换为软件所能识别的编码,作为整个电路的输入。密码锁控制电路包括相应的数据存储电路,密码核对电路,能够进行数值的比较,进行电路解锁,开锁,密码的重新设置等。密码锁显示电路包括将待显示数据的BCD码转换成数码管的七段显示驱动编码,密码锁在相应的状态下的点阵输出以及蜂鸣器的报警输出。 总体框图按复位键键入初始密码0000密码错误密码正确按确认键按复位键按确认键 分块设计 键盘扫描电路 首先,向列扫描地址逐列输出低电平,然后从行码地址读回,如果有键摁下,则相应行的值应为低,如果没有按键按下,由于上拉的作用,行码为高。这样就可以通过输出列码和读取的行码来判断按下的是什么键。在判断

4、有按键的按下后,要有一定的延时,防止键盘抖动。entity keyboard is port( row:in std_logic_vector(3 downto 0); col:out std_logic_vector(3 downto 0); keyout:out std_logic_vector(3 downto 0); q:out std_logic; clk:in std_logic );end keyboard;architecture struct of keyboard issignal col_buffer1:std_logic_vector(3 downto 0);signa

5、l col_buffer2:std_logic_vector(3 downto 0);signal key :std_logic_vector(7 downto 0);signal counter:integer range 0 to 3;signal delay:integer range 0 to 10;signal stop:std_logic;begin col = col_buffer2; q = stop; process(CLK,row,stop) begin if clkevent and clk = 1 then if counter = 3 then counter = 0

6、; else counter col_buffer1 col_buffer1 col_buffer1 col_buffer1 = 0111; end case; end if; end process; key stop=1;keyout stop=1;keyout stop=1;keyout stop=1;keyout stop=1;keyout stop=1;keyout stop=1;keyout stop=1;keyout stop=1;keyout stop=1;keyout stop = 0;/仅仅在摁09的时候会有显示,在摁除了这十个键之外的键的时候是不会有反应的,将keyout

7、的值转换为相应的数码管值,来控制数码管的显示 end case ; end if; end process; process(clk,stop) begin if clkevent and clk = 1then if stop = 0 then col_buffer2 = col_buffer1; end if; end if; end process;end struct; 点阵显示电路 采用行扫描的方式,每经过一段时间,给一行一个低电平。则若在列的方向上如果接入高电平,则会使相应的二极管发光。由于人眼的的暂留效应就回使我们看到我们想要的图案。library ieee;use ieee.s

8、td_logic_1164.all;entity led isport( row:out std_logic_vector(7 downto 0); num:in std_logic_vector(1 downto 0); clk:in std_logic; col:out std_logic_vector(7 downto 0); end entity;architecture struct of led issignal counter : integer range 0 to 7;beginprocess(clk)begin if clkevent and clk = 1 then if

9、 counter = 7 then counter = 0; else counter = counter +1; end if; end if;end process;process(clk,counter)begin if clkevent and clk = 0 then if num row = 11111110; col row = 11111101; col row = 11111011; col row = 11110111; col row = 11101111; col row = 11011111; col row = 10111111; col row = 0111111

10、1; col row = 11111110; col row = 11111101; col row = 11111011; col row = 11110111; col row = 11101111; col row = 11011111; col row = 10111111; col row = 01111111; col row = 11111110; col row = 11111101; col row = 11111011; col row = 11110111; col row = 11101111; col row = 11011111; col row = 1011111

11、1; col row = 01111111; col row = 11111110; col row = 11111101; col row = 11111011; col row = 11110111; col row = 11101111; col row = 11011111; col row = 10111111; col row = 01111111; col cat = 111110;ao cat = 111101;ao cat = 111011;ao cat = 110111;ao cat = 101111;ao cat = 011111;ao a a a a a a a a a

12、 a a aled_row,num=num,clk=clk_1000,col=led_col);IC4:seg port map(r=r,clk=clk_1000,cat=cat,a=a,w=w,input=input,num=seg_num);-statusprocess(s,rr,status)begin if rr = 1 then if status = 2 then status = 0; elsif status = 3 then status = 1; end if; elsif sevent and s = 1 then if status = 0 then status =

13、1; password = p1&p2&p3&p4; elsif status = 1 then if password = p1&p2&p3&p4 then status = 2; else status = 3; end if; else status = 1; end if; end if;end process;/statue 0代表的是输入状态,statue 1是闭锁状态,statue 2 是开锁状态,statue 3 是报警状态,状态转移图在前面已经画出process(s,rr,clk_1000)begin if rr = 1 then r = 1; elsif s = 1 then r = 1; elsif clk_1000event and clk_1000 = 0 then r = 0; end if;end process;-num_counterprocess(s,rr,q,clk_1000)begin if s = 1 then num_counter = 0; elsif rr = 1 then num_counter = 0; elsif qevent and q = 0 then if status = 0 or status = 1 then i

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1