基于vhdl的电子密码锁设计与实现正文内容摘要:
' 0'。 LSIF CLRN=' 1' AND PRN=' 0' THEN Q<=' 1'。 ELSIF CLK' EVENT AND CLK=' 1' THEN Q<= D。 END IF。 此段程序作用是判断输入信号是否有效 ,如有效则输出 ,无效清零。 (2)DEBOUNCING 模块 : D- IN:信号输入端口 彭胜 《 基于 VHDL的电子密码锁设计与实现 》 第 14 页 共 32 页 FLAG_ N:数字输出标志 FLAG_ F:功能输出标志 CLK_ CTR:控制电路工作时钟信号 CLK_ DEBOUNCE:去抖电路工作时钟信号 (仿真时用 ) : CLK:电路工作时钟脉冲 C_ KEYBOARD:键扫信号 “00- 01- 10- 11” 寄存器 C_ DEBOUNCE:去抖时钟信号 C:键盘输入去抖后的寄存器 N, F:数字、功能按键译码值的寄存器 FN, FF:数字、功能按键标志值数字、功能按键 SEL:模块内部信号 Z:按键位置信号 对于 K1 和 K0 信号 ,它们分别代表 1 和 0 的按键开关 ,可以直接送入密码锁逻辑控制模块 CEN2TRE。 但由于它们是由按键产生的 ,其产生时刻和持续时间长短是随机的 ,并且存在因开关簧片反弹引起的电平抖动现象。 因此 ,必须在每个开关后面安排一个消抖和同步化电路模块 XIAOPRO ,目的是保证系统能捕捉到输入脉冲 ,同时 ,保证每按一次键只形成一个宽度固定的脉冲 [3 ]。 在 XIAOPRO 模块中 ,因为变量的赋值是直接的 ,立即生效的 ,它在某一时刻仅包含一个值 ,而信号的赋值是有一定附加时延的 ,故当时钟脉冲下降沿到来时 ,变量 tmp2 和 tmp3 在赋值语句执行后立即分别得到新值 : tmp1 的值和 tmp2 的非值 ,而输入信号 a 经过一定时延赋值给信号 tmp1 ,实现了消除抖动并且同步的功能。 用来描述输入消抖同步电路功能的 V HDL 语言程序如下 : L IBRARY IEEE。 USE IEEE. std_logic_1164. ALL。 ENTITY xiaopro IS PORT(a ,clk1 :in std_logic。 b :out std_logic)。 END xiaopro。 彭胜 《 基于 VHDL的电子密码锁设计与实现 》 第 15 页 共 32 页 ARCHITECTURE xiao_arc OF xiaopro IS SIGNAL tmp1 : std_logic。 BEGIN PROCESS(clk1 ,a) VARIABL E tmp3 ,tmp2 : std_logic。 BEGIN IF clk1 ! event AND clk1 = ! 0 ! THEN tmp1 = a。 tmp2 : = tmp1。 tmp3 : = not tmp2。 END IF。 b = tmp1 AND tmp3 AND clk1。 END PROCESS。 END xiao_arc。 密码锁逻辑控制模块 密码锁控制电路组成 : ELSIF DATA_ F( 0) =' 1' THEN --开锁控制信号有效 IF REG= ACC THEN --密码核对 QA<=' 0' QB<=' 1'; END IF; ELSIF ACC=" 1000100010001000" THEN QA<=' 0'; QB<=' 1'; END IF; 这段程序的作用是在按下 *键时将输入的密码 (暂时寄存于 ACC 中)跟已经存储的密码( REG 中的密码信息)进行对比,如果一样,则密码锁开锁。 而在通过密码验证后可以按#键重新设定密码。 在 这里值得注意的是有一个密码“8888”作为万用密码,也就是不论当前密码是什么,只要输入的密码为 “8888”则都可通过密码锁。 模块 CEN TRE 是整个设计的核心 ,它实现密码锁的逻辑功能。 管理员有权彭胜 《 基于 VHDL的电子密码锁设计与实现 》 第 16 页 共 32 页 在任何时候按动密码初始化按键 LC ,此时锁内密码设置为程序初始化密码值 (在本模块程序中此值为 10010101)。 开锁代码为 8 位二进制数 ,当输入代码的位数和位值与锁内给定的密码一致 ,且按规定程序开锁时 ,方可开锁 ,并点亮开锁指示灯 L T。 否则 ,系统进入 “错误 ”状态 ,并发出报警信号。 串行数字 锁的报警方式是点亮指示灯 L F ,并使喇叭鸣叫 ,直到按下复位开关 ,报警才停止。 此时 ,数字锁又自动进入等待下一次开锁的状态。 该 8 位串行电子密码锁设置 8 位二进制密码 ,要求锁内给定的密码是可调的 ,且设置方便 ,保密性好。 其具体操作分为输入密码和修改密码两部分。 (1) 输入密码 密码锁输入电路: 图 33 密码锁输入电路原件例化 ( 1)模块外部信号端口 CLK- 1K:时钟脉冲输入端口 KEY- IN:按键输入端口 CLK_ SCAN:键盘扫描序列 仿真时用 DATA_ N:数字输出端口 DATA_ F:功 能输出端口 FLAG_ N:数字输入标志 FLAG_ F:功能输入标志 彭胜 《 基于 VHDL的电子密码锁设计与实现 》 第 17 页 共 32 页 EMLOCK:密码锁控制信号输出端口 DATA- BCD:按键显示输出端口 ( 2)模块内部信号 ACC:暂存键盘输入信息 REG:密码存储位置 RR2:寄存器清零信号 R1, R0:模块内部信号,二者差分生成清零信号 NC:移位寄存器 QA, QB:上锁、解锁控制信号 密码输入值的比较主要有两部分 ,密码位数和内容 ,任何一个条件不满足 ,都不能打开锁。 若锁内密码为 “10010101” , K1 和 K0 置低电平 ,分别表示输入 “1” 和 “0”。 输入密码前先进行复位操作 ,再按着从密码最低位到最高位的顺序依次正确输入 1 01 0 1 0 0 1。 若采用共阴极 L ED 接法 ,当输入第 0 位 “1” 后 ,八个二极管中相对应的二极管点亮 (此时二极管指示灯 lamp =“10000000” ,输入密码信号 shif t =“10000000” ) ,接着输入第 1 位 “0”(此时 lamp =“11000000” ,shif t =“01000000” ) …… 依照顺序 ,将 8 位二进制密码全部正确输入完毕后 (此时amp =“11111111” ,shif t =“10010101” ) ,经检验 ,输入的密码 shif t 等于锁内预先设置的密码 lock ,密码锁开启信号 L T 置高电平 ,锁开启。 同时 ,密码修改控制信号LA 置高电平。 若在输入密码的过程中 ,8 位二进制密码出现一位或多位输入错误 ,那么锁不能开启 ,同时 Alm置高电平 ,指示灯 L F 亮 ,发出报警信号 ,通知管理员。 直到按下复位开关 ,报警才停止。 此时 ,数字锁又自动进入等待下一次开锁的状态。 密码锁输入电路主要程序 : KEY_ DECODER: BLOCK SIGNALZ: STD_ LOGIC_ VECTOR( 4 DOWNTO 0) --按键位置 BEGIN PROCESS( CLK) BEGIN Z<= C_ KEYBOARD & C; 彭胜 《 基于 VHDL的电子密码锁设计与实现 》 第 18 页 共 32 页 IF CLK' EVENT AND CLK=' 1' THEN CASE Z IS WHEN" 11101"=> N<=" 0000"; -- 0 WHEN" 00011"=> N<=" 0001"; -- 1 WHEN" 00101"=> N<=" 0010"; -- 2 WHEN" 00110"=> N<=" 0011"; -- 3 WHEN" 01011"=> N<=" 0100"; -- 4 WHEN" 01101"=> N<=" 0101"; -- 5 WHEN" 01110"=> N<=" 0110"; -- 6 WHEN" 10011"=> N<=" 0111"; -- 7 WHEN" 10101"=> N<=" 1000"; -- 8 WHEN" 10110"=> N<=" 1001"; -- 9 WHEN OTHERS=> N<=" 1111"; END CASE; END IF; IF CLK' EVENT AND CLK=' 1' THEN CASE Z IS WHEN" 11011"=> F<=" 0100" ;-- * _ LOCK WHEN" 11110"=> F<=" 0001" ;--#_ UNLOCK WHEN OTHERS=> F<=" 1000"; END CASE; END IF; END PROCESS; 这段程序的作用是通过按键产生的信号进行译码,判断按键是数字还是上锁、解锁控制信号。 (2)修改密码 为防止非管理员任意进行密码修改 ,必须在正确输入密码后 ,才能重新设置密码。 输入正确密码后 ,锁打开 ,同时 ,密码修改控制信号 LA 置高电平 ,就可直接进行修改密码的操作。 修改密码实质就是用输入的新密码去取代原来的旧 密彭胜 《 基于 VHDL的电子密码锁设计与实现 》 第 19 页 共 32 页 码。 存储新密码时 ,输入一位密码 ,密码位数加 1。 若采用共阴极 L ED 接法 ,与输出引脚 lamp 相接的发光二极管由亮变暗。 当输入 8 位密码后 ,8 只发光二极管全变暗。 此时给 CL K 一个低电平 ,新密码产生。 密码锁显示模块 密码锁显示电路: 图 34 密码锁显示电路原件例化 模块外部信号端口 DATA- BCD:密码信号输入端口 BLOCK:密码锁状态信号显示灯 彭胜 《 基于 VHDL的电子密码锁设计与实现 》 第 20 页 共 32 页 4 系统仿真 当各个模块分别编译成功后 ,则创建一个个元件符号。 再用图形编辑器将各元件模块组装起来 ,这就是 本设计中最顶层的图形设计文件。 顶层图形设计文件 lock. gdf 如图 41 所示 ,这个结构框图说明了整个系统的外部输入和输出情况。 为了获得与目标器件对应的、 精确的时序仿真文件 ,在对文件编译前必须选定最后实现本设计项目的目标器件 ,在 Max + plus Ⅱ 环境中我们选 Altera 公司的 FPGA ,然后选择用于编程的目标芯片 :选择菜单 “Assign”→ “Device”, 窗口中的 Device Family 是器件序列栏 , 先 在 此 栏 中 选 择 ACEX1 K。 为。基于vhdl的电子密码锁设计与实现正文
相关推荐
合度、钢筋 应力和温度等监测项目。 (5) 左岸(进水口明渠、坝肩边坡及航道)边坡总长约 1200 m,高约 110 m。 为了解其变形情况,保证施工期的安全, 共 设 4个观测断面,设有测斜管和地下水位观测孔。 5 东游祠主坝监测设计 变形监测设计 a) 混凝土坝段变形监测 水平变位监测采用垂线 +引张线系统,垂直变位监测采用静力水准 +双金属标系统,并辅以人工比测。 1) 正倒 垂线布置
家发改委的核准手续; ; 业主 大唐黑龙江发电有限公司大唐绥化热电厂 联系人:于菲 采购部 电话: 04558229087 地址:黑龙江绥化中直北二中行办公楼 9 楼(筹建处地址) 邮编: 152020 备注:筹建处、电气采购 大唐黑龙江发电有限公司大唐绥化热电厂 联系人:张宇 手机: 13555396354 电话: 04558228092 邮箱: 地址:黑龙江绥化中直北二中行办公楼 9
无尘土。 玻璃镜面保持光亮,无水点、水渍,无手印。 台面、洗手盆、水龙头、皂液盒要求无污物、无水渍、无杂物,清洁光亮。 瓷砖墙面、隔断板、隔断门要保证无污迹、无尘土、无纸末。 恭 桶及坐垫、底盘后侧墙面、小便池上下内外要求保持干净、无黄垢、无毛发、无杂物、光亮白洁。 压水杆及不锈钢扶手、电镀件要保持无水迹、无水印、无污染、光亮如新。 地面要保持干净光洁,边角无杂物、无污迹、无水迹。 垃圾及时清倒
1、318、登海 3670(夏玉米) 由著名的玉米育种和栽培专家李登海研究员培育的登海 3318、登海 3670夏玉米新品种,近日在山东省莱州市农科院通过了国内玉米专家组成的验收组的测产验收,登海 3318平均每亩产量达到 海 3670平均每亩产量达 产双双突破吨粮。 这是继李登海培育的掖单 13号 1989年创夏玉米世界最高记录之后的又一次突破。 登海 3318、登海
过上述的采样电路采样相应的信号量,在进行幅值上的衰减后与设定的阈值比较,超过此电压阈值就保护。 具体电路如图 ,前一级对信号进行衰减,然后通过二极管 峰值 检波电路,取得信号的峰值,与相 应的阈值比较,产生保护信号。 为了使系统安全运行,产生保护信号后,应立即锁存该信号,同时关断全桥逆变器的四个 IGBT管,保护信号锁存电路如图。 产生最终保护锁存信号,通过逻辑门,关闭上述驱动电路的驱动信号
革为统领,行政管理体制、国资国企等领域改革有序推进。 大力实施创新驱动发展战略, 71 项产品具有国际竞争力。 非公经济、外向型经济蓬勃发展, 在我区直接投资的世界 500 强企业达到 56 家,实际利用外资、外贸进出口额连年名列全市第一。 5 年累计实际利用外资大唐下关电厂搬迁扩建 2 660MW 机组烟气脱硝 工程 施工图总说明及卷册目录 15 亿美元、外贸进出口总额 亿美元,分别是