基于vhdl数字电路设计内容摘要:
复位 信号 喇叭 4 方波生成模块 FEN 分频占空比为 1: 1000 的方波,用于消除抖动。 分频电路的输入时钟CLK是由外部时钟提供的,外部时钟周期取 200ns。 FEN模块程序如下: LIBRARY IEEE。 USE ENTITY fen IS PORT(clk:in std_logic。 clk1:out std_logic)。 END fen。 ARCHITECTURE fen_arc OF fen IS BEGIN PROCESS(clk) VARIABLE t:integer range 0 to 9999。 BEGIN IF clk’event’ AND clk=39。 139。 then IF t=9999 then t=0。 clk1=39。 139。 ELSE t:=t+1。 clk1=39。 039。 END IF END IF。 END PROCESS。 END fen_arc。 消抖同步模块 对于 K1和 K0信号,它们分别代表 1和 0的按键开关,可以直接送入密码锁逻辑控制模块CORNAA。 但由于它们是由按键产生的,其产生时刻和持续时间长短是随机的,并且存在因开关簧片反弹引起的电平抖动现象 .因此,必须在每个开关后面安排一个消抖和同步化电路模块XIAOPRO,目的是保证系统能捕捉到输入脉冲,同时,保证每按一次健只形成一个宽度固定的脉冲。 在 XIAOPRO模块中,因为变量的赋值是直接的,立即生效的,它在某一时刻仅包含一个值,而信号的赋值是有一个值,而信号的赋值是有一定附加时延的,故当时钟脉冲下 降沿到来时,变量 temp2和 temp3在赋值语句执行后立即分别得到新值: tmp1的值和 tmp2的非值,而输入信号a经过一定时延赋值给信号 tmp1,实现了消除抖动并且同步的功能。 用来描述输入消抖同步电路功能的 VHDL语言程序如下: LIBRARY IEEE。 USE。 ENTITY xiaopro IS PORT(a,clk1:in std_logic。 b:out std_logic)。 END xiaopro。 5 ARCHITECTURE xiao_arc OF ziaopro IS SIGNAL tmp1:std_logic。 BEGIN PROCESS(clk1,a) VARIABLE tmp3,tmp2:std_logic。 BEGIN IF clk1 ’event and clk 1=39。 039。 then tmp1=a。 tmp2:=tmp1。 tmp3:=not tmp2。 END IF。 b=tmp1 and tmp3 and clk1。 END PROCESS。 END xiao_arc。 密码锁逻辑控制模块 模块 CORNAA 是整个设计的核心,它实现密码锁的逻辑功能。 管理员有权在任何时候按动密码初始化按键 LC,此时锁内密码设置为程序初始化密码值(在本模块程序中初值为 10010101)。 开锁代码为 8位二进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯 LT。 否则,系统进入“错误”状态,并发出报警信号。 串行数字锁的报警方式是点亮指示灯 LF,并使喇叭鸣叫,直到按下复位开关,报警才停止。 此时,数字锁又自动进入等待下一次开锁的状态。 该 8位串行电子密码锁设置 8位二进制密码,要求锁内给定的密码是可调的,且设置方便,保密性好。 其具体操作分为输入密码和修改密码两部分[16]。 ( 1) 输入密码 密码输入值的比较主要有两部分,密码位数和内容,任何一个条件不满足,都不能打开锁。 若锁内密码为“ 10010101”, K1和 K0置低电平,分别表示输入“ 1”和“ 0”。 输入密码前先进行复位操作,再按着从密码最低位到最高位的顺序依次正确输入 10101001。 若采用共阴极 LED接法,当输入第 0位“ 1”后,八个二极管中相对应的二极管点亮(此时二极管指示灯 lamp=“ 10000000” ,输入密码信号 shift=“ 10000000” ) ,接着输入第 1位“ 0”(此时 lamp=“ 11000000” , shift=“ 01000000” )„„依照顺序,将 8 位二进制密码全部正确输入完毕后(此时 lamp=“ 11111111” , shift=“ 10010101” ),经检验,输入的密码 shift等于锁内预先设置的密码lock,密码开锁信号 LT置高电平,锁开启。 同时,密码修改控制信号 LA置高电平。 若在输入密码的过程中, 8位二进制密码出现一位或多位输入错误,那么锁不能开启,同时 ALM置高电平,指示灯 LF 亮,发出报警信号,通知管理员。 直到按下复位开关,报警才停止。 此时,数字锁又自动进入等待下一次开锁的状态。 ( 2) 修改密码 为防止非管理员任意进行密码修改,必须在正确输入密码后,才能重新设置密码。 输入正确。基于vhdl数字电路设计
相关推荐
两条横线的长度与版芯尺寸相同,线粗 )。 页眉 、 页脚 边距分别为 和。 页码。 页码 用小五号字,居中标于页面底部。 摘要、目录等文前部分的页码用罗马数字单独编排,正文以后的页码用阿拉伯数字编排。 摘要 中文摘要一般为 300字左右,外文摘要应与中文摘要内容相同,在语法、用词和书写上应正确无误,摘要页勿需写出论文题目。 中、外文摘要应各占一页,编排装订时放置正文前,并且中文在前,外文在后。
MOV 22H,00H。 一小时时间到 ○ 2 74LS161 构成二十四进制计数器 : 二十四进制计数器,也是用两个 74LS161 集成块来实现的,方法与二十四进制计数器大同小异,但其要求个位是十进制,状态变化在 0000~ 1001 间循环,十位是二进制,状态变化在 0000~ 0010 间循环,显示为 0~23 时。 原理:由分计数器送来的进位脉冲送入时个位计数器
的设计输入、处理和校验功能全部集成在统一的开发环境下,这样可以加快动态调试进程。 它提供丰富的库单元供设计者使用,包括 74系列的全部器件、多种特殊的逻辑宏功能( macrofunction)和参数化功能模块( LPM: Library of Parameterized Modules),但更为重要的是 Max Plus II 还提供了原理图输入多层次设计功能,使得用户能设计更大规模的电路系统
39。 039。 then if clk39。 event and clk=39。 139。 then 信号为 1时有效 if(count=100) then 当扫描为次数为 100 次时 q=39。 039。 count :=0。 else count:=count+1。 否则开始计数 end if。 end if。 else q=39。 139。 end if。 秒 /分
5ns的时钟信号;清 0端( reset)前面一小段( 100ns)为低电平,后面均为高电平;置数端( set)前面一小段( 200ns)为低电平,后面均为高电平;时重置端( h1)可设置数值为 20时,保存波形图,进行仿真,产生如下波形: 由上述波形可以清楚的看到:当清 0信号( reset)无效时,时计时器置数,从 20时开始计数,到 23时回到 0,并且从 enhour输出一个高电平。
if min1b=0101 then min1b=0000。 if hou1b=0010 and hou2b=0011 then hou1b=0000。 hou2b=0000。 elsif hou2b=1001 then hou2b=0000。 hou1b=hou1b+1。 else hou2b=hou2b+1。 end if。 end if。 end if。 end if。 ELSE