北邮数字电路综合实验报告

上传人:大米 文档编号:512524940 上传时间:2023-07-01 格式:DOCX 页数:25 大小:727.95KB
返回 下载 相关 举报
北邮数字电路综合实验报告_第1页
第1页 / 共25页
北邮数字电路综合实验报告_第2页
第2页 / 共25页
北邮数字电路综合实验报告_第3页
第3页 / 共25页
北邮数字电路综合实验报告_第4页
第4页 / 共25页
北邮数字电路综合实验报告_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《北邮数字电路综合实验报告》由会员分享,可在线阅读,更多相关《北邮数字电路综合实验报告(25页珍藏版)》请在金锄头文库上搜索。

1、数字电路综合实验报告简易智能密码锁一、实验课题及任务要求设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。基本要求:1、密码设置:通过键盘进行4位数字密码设定输入,在数码管上显示所输入数字。通过密码设置确定键(BTN键)进行锁定。2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led闪烁报警。3、在开锁状态下,可以通过密码复位键(BTN键)来清除密码,恢复初始密码“0000”。

2、闭锁状态下不能清除密码。4、用点阵显示开锁和闭锁状态。提高要求:1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。2、密码锁的密码位数(46位)可调。3、自拟其它功能。二、系统设计2.1 系统总体框图2.2 逻辑流程图启动开锁状态闭锁状态输入密码2.4分块说明程序主要分为6个模块:键盘模块,数码管模块,点阵模块,报警模块,防抖模块,控制模块。以下进行详细介绍。1.键盘模块本模块主要完成是4X4键盘扫描,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。键盘扫描的实现过程如下:对于4X4键盘,通常连接为4行

3、、4歹U,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出高电平,在读入输出的行值时,通常高电平会被低电平拉低,当当前位置为高电平“1”时,没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。由此可确定按键位置。X789X456X123XX0x(X为无效按键)*消抖*键盘译码按键储存键盘扫描11山0001C100101101111100。111011匚

4、I 匚二 1 二 IU t匚 -I2.数码管模块本实验采用六位七段共阴极数码管,通过选通6个位选管脚,向相应的IO口送低电平来点亮其中任何一位数码管,因为现在采用四位密码锁,所以只是用了其中四个,最高位两位数码管位选全部置1.如下附上7段共阴极数码管真值表兄F*F*F,FfF.11110110110111110110101110111110111111113 .点阵模块点阵模块,共由8*8*2个发光二极管组成,行低电平有效,列高电平有效。要求在开锁模式和闭锁模式显示不同的图案,则先将要显示的每幅图像画8*8个小方格的矩形框中,再在有图案下落处的小方格里填上“1”,无图案处填上“0”,这样就形成

5、了与图案所对应的二进制数据在该矩形框上的分布。当闭锁时以红色点阵显示,此时绿色点阵全部置0,反之亦然。4 .报警模块当报警程序被调用,蜂鸣器输出高电平进行报警,表示输入密码错误5 .防抖按键输入只有为15ms以上的高电平时才会读出按键值从而消除电路中的抖动。6 .控制中心lockmode=1表示关锁,此时点阵显示落锁,按任何键都不会显示密码,清零或者开锁,在此时输入密码kwei从。开始不断加1,输入的密码位数在数码管上依次左移,当输入密码m与寄存器中预设密码m浒目同时,按下确认键btn2切换为开锁状态,lockmode=0,此时按下btnl表示清零,恢复为初始密码0000,按set键寄存器内密

6、码,按下btnloc切换为关锁状态。三、仿真波形分析在QUARTUS2应用系统自带的功能进行波形仿真,这里采用了分模块仿真。主程序仿真在主要功能程序方面波形如下,在初始化模式按下set键系统进入修改密码状态,setmode波形显示高电平。为仿真方便,仅使kbin(即行输入信号)在1011和1111两个状态下相互转换,在不同的kbout(即列扫描输出信号)下分别对应4、5、6、7四个数字,故密码寄存器mx为输入的修改后的密码。按下btn2(确认键)确认密码后,setmode变为低电平,即修改密码状态结束。按下btn1时清零,密码寄存器取值还原为0000,至此均为开锁状态下的操作,lockmode

7、一直为低电平。按下闭锁键btnloc后,lockmode从0跳变到1,由此进入闭锁模式。El按键消抖模块仿真当按下键时得到的高电平为输入x,持续一定时间后方可输出一个高电平,而无论按下的时间多长,都只输出一个高电平y,从而实现消除按键电路中的抖动。分频模块仿真为仿真方便,改变分频比。原程序在50Mhz时钟输入下,输出分别为1Mhz、200hz1000hz、500hz,分别用于键盘扫描、消抖模块输入、点阵扫描以及数码管扫描。数码管模块仿真由smgcatout输出可以看出低四位数码管依次选通。第i位选通时,smgzf为mi的七段数码管的译码值。点阵模块仿真当lockmode=1时dzcolr全部为

8、0仅dzcolg显示图案;当lockmode=0时dzcolg全部为0由dzcolr显示图案;而dzrow一直在进行行扫描,形成了两种不同颜色点阵。报警模块仿真当bj=0时,fmq为0;bj=1时,fmq将clk分频后输出,即蜂鸣器发出声响。四、源程序顶层文件libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitylockisport(clk:instd_logic;setmode:outstd_logic;lockmode:outstd_logic;set:instd_logic;btn1,btn

9、2,btnloc:instd_logic;smgzf:outstd_logic_vector(6downto0);smgcatout:outstd_logic_vector(5downto0);kbin:instd_logic_vector(3downto0);kbout:bufferstd_logic_vector(3downto0);dzrow,dzcolr,dzcolg:outstd_logic_vector(7downto0);fmq:outstd_logic);endlock;architecturebehaveoflockissignalsetm:std_logic;signall

10、ockm:std_logic;signallbj:std_logic;signallkwei:integerrange0to4;signallm1,lm2,lm3,lm4:integerrange0to9;signalclk_1:std_logic;-1MHzsignalclk_2:std_logic;-200Hzsignalclk_3:std_logic;-1000Hzsignalclk_4:std_logic;-500Hzcomponentkbis键盘模块port(clk:instd_logic;set:instd_logic;btn1,btn2,btnloc:instd_logic;kb

11、in:instd_logic_vector(3downto0);kbout:bufferstd_logic_vector(3downto0);bj:outstd_logic;setmod:outstd_logic;lockmod:outstd_logic;kbwei:outintegerrange0to4;m1x,m2x,m3x,m4x:outintegerrange0to9);endcomponent;componentsmgis数码管显示模块port(clk:instd_logic;setmode:instd_logic;lockmode:instd_logic;kwei:inintege

12、rrange0to4;m1,m2,m3,m4:inintegerrange0to9;smgzf:outstd_logic_vector(6downto0);smgcatout:outstd_logic_vector(5downto0);endcomponent;componentdzis点阵模块port(clk:instd_logic;-set:instd_logic;lockmode:instd_logic;dzrow,dzcolr,dzcolg:outstd_logic_vector(7downto0);endcomponent;componentalarmis报警模块port(clk:i

13、nstd_logic;bj:instd_logic;fmq:outstd_logic);endcomponent;componentfenpinis分频模块port(clk:instd_logic;clk_out1:outstd_logic;clk_out2:outstd_logic;clk_out3:outstd_logic;clk_out4:outstd_logic);endcomponent;begina1:fenpinportmap(clk=clk,clk_out1=clk_1,clk_out2=clk_2,clk_out3=clk_3,clk_out4=clk_4);u1:kbpor

14、tmap(clk=clk,set=set,btn1=btn1,btn2=btn2,btnloc=btnloc,kbin=kbin,kbout=kbout,bj=lbj,setmod=setm,lockmod=lockm,kbwei=lkwei,m1x=lm1,m2x=lm2,m3x=lm3,m4x=lm4);u2:smgportmap(clk=clk_4,setmode=setm,lockmode=lockm,kwei=lkwei,m1=lm1,m2=lm2,m3=lm3,m4=lm4,smgzf=smgzf,smgcatout=smgcatout);dzcolr=dzcolg,u3:dzportmap(clk=clk_3,lockmode=lockm,dzrow=dzrow,dzcolg=dzcolr);u4:alarmportmap(clk=clk,bj=lbj,fmq=fmq);setmode=setm;lockmode=lockm;end;键盘模块libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitykbisport(clk:instd_logic;set:inst

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 市场营销

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号