课程设计报告-基于vhdl的电子密码锁设计内容摘要:
elsif(sel(2)=39。 039。 )then szkzj=39。 039。 gnkzj=39。 139。 elsif(sel(3)=39。 039。 ) then szkzj=39。 039。 gnkzj=39。 139。 end if。 elsif(R(3)=39。 039。 ) then 第 三 章 硬件原理及软件设计 10 if(sel(0)=39。 039。 )then querenj1=39。 139。 szkzj=39。 039。 gnkzj=39。 139。 else querenj1=39。 039。 end if。 if(sel(1)=39。 039。 ) then sanchuj1=39。 139。 szkzj=39。 039。 gnkzj=39。 139。 else sanchuj1=39。 039。 end if。 if(sel(2)=39。 039。 )then gaimij1=39。 139。 szkzj=39。 039。 gnkzj=39。 139。 else gaimij1=39。 039。 end if。 if(sel(3)=39。 039。 ) then rest1=39。 139。 szkzj=39。 039。 gnkzj=39。 139。 else rest1=39。 039。 end if。 end if。 end if。 end process p4。 p8:process(szkzj,gnkzj) begin if szkzj=39。 139。 and gnkzj=39。 039。 then dataout=temp。 else dataout=null。 end if。 if gnkzj=39。 139。 and szkzj=39。 039。 then querenj=querenj1。 sanchuj=sanchuj1。 gaimij=gaimij1。 rest=rest1。 else querenj=null。 sanchuj=null。 gaimij=null。 rest=null。 end if。 end process p8。 szkzj1=szkzj。 gnkzj1=gnkzj。 第 三 章 硬件原理及软件设计 11 END arth。 键盘消抖电路 因为按键大多是机械式开关 , 在开关切换的瞬间会在接解点出现来回弹跳的现象 , 虽然只是按了一次键 , 实际产生的按键信号却不只跳动一次 , 经过取样信号的检查后 , 将会造成误码判断 , 认为是按了两次键。 消除按键抖动可以用硬件电路来实现,例如,利用 R— S 触发器来锁定按键状态,消除抖动的影响。 也可以利用现成的专用消抖电路,如 MC14490 就是六路消抖电路。 较为简单的方法是用软件延时方法来消除按键的抖动,也就是说,一旦发现有按键按下,就延时 20ms 以后在测按键的状态。 这样就避免开按键发生抖动的那一段时间,使 CPU 能可靠地读按键状态。 在编制键盘扫描程序时,只要发现按键状态有变化,即无论是按下还是松开,程序都应延时 20ms 以后再进行其他操作。 如果调整取样频率 , 弹跳现象可得到改善。 本论文 应用 D 触发器可以实现消抖作用。 原理图如图 34VHDL 语言键盘消抖电路原理图所示: 图 34 键盘消抖电路原理图 键盘消抖电路的程序代码: library ieee。 use。 entity d4 is port is( clk:in std_logic。 a: in std_logic_vector(3 downto 0)。 rest1,querenj1,gaimij1,sanchuj1:in std_logic。 第 三 章 硬件原理及软件设计 12 q:out std_logic_vector(3 downto 0)。 rest2,querenj2,gaimij2,sanchuj2:out std_logic)。 end d4。 architecture f of d4 is signal qi:integer range 0 to 3。 signal clk_temp:std_logic。 begin process(clk) begin if rising_edge(clk) then if qi=3 then qi=0。 clk_temp=not clk_temp。 else qi=qi+1。 end if。 end if。 end process。 process(clk_temp) begin if clk_temp 39。 event and clk_temp =39。 139。 then q =a。 rest2=rest1。 querenj2=querenj1。 gaimij2=gaimij1。 sanchuj2=sanchuj1。 end if。 end process。 end f。 移位寄存电路 表 31 移位寄存器功能表 输入数据 输出数据 第 三 章 硬件原理及软件设计 13 第一次 0000 0000 第二次 0001 00000001 第三次 0010 000000010010 第四次 0011 0000000100100011 第五次 0100 0001001000110100 由于按键按下时,键盘输入的是 4 位二进制数,每次输入后都会前一次输入的都会消失,所以必须对键盘输出进行移位储存才能得要 16 位二进制数即 4 位十进制数。 移位寄存工作原理就是在下一次数据输入前,对其进行移位寄存以确保不会丢失,如我们定义输入为 4 位二进制数,输出为 16 为二进制数,由低位向高位移位,第一次输入的是 0000,第二次输入的是 0001,第三次输入的是 0010,第四次是 0011,这时输出的就是 0000000100100011。 如表 31 当用户发现输入密码错误时可以进行 删除,这里删除采用了移位操作,按一次删除键输出数据就向低位移动已达到删除功能。 原理图如图 35 VHDL 语言 移位寄存电路 原理图所示: 图 35 移位寄存电路 移位寄存电路程序代码: library ieee。 use。 entity yw is port(input:in std_logic_vector(3 downto 0)。 rest,shanchu,clk :in std_logic。 output :out std_logic_vector(15 downto 0))。 第 三 章 硬件原理及软件设计 14 end yw。 architecture behave of yw is signal output_temp: std_logic_vector(15 downto 0)。 signal output_temp(3 downto 0): std_logic_vector(3 downto 0)。 begin process(clk) begin if rest=39。 139。 then output=null。 elsif (rising_edge(clk)) then if shanchu=39。 039。 then output_temp(15 downto 12)=output_temp(11 downto 8)。 output_temp(11 downto 8)=output_temp(7 downto 4)。 output_temp(7 downto 4)=output_temp(3 downto 0)。 output_temp(3 downto 0)=input。 else output_temp(。课程设计报告-基于vhdl的电子密码锁设计
相关推荐
(gca,39。 Position39。 ),... 39。 Xaxislacation39。 ,39。 bottom39。 ,... 39。 YAxislocation39。 ,39。 ringt39。 ,39。 Color39。 ,39。 None39。 ,... 39。 Xcolor39。 ,39。 k39。 ,39。 YColor39。 ,39。 k39。 )。 ht=line(t,x
size 数字( KB) 最大返回数据,可限制用户下载的数据大小 reference_age 数字 LRU 算法中指定 LRU 时间 quick_abort_min 数字 (KB) 断点续传最小值 quick_abort_max 数字 (KB) 断点续传最大值 quick_abort_pct 数字 (percent) 超过值认为续传成功 negative_ttl 数字
y 的返回数据 如: system(“ echo \” mute 0\” /tmp/fifo” )。 //写命令 fgets(buf,1000,mp)。 //读取 mplay 返回数据 而 Qt 给我们提供了更方便的实现方法。 通过定义一个 QProcess 对象调用已编译好的 Mplayer。 QProcess *process = new QProcess()。
,成本较低,安全可靠,操作方便。 本次设计的电子密码锁是以手动键盘输入密码的,通过这两个星期对电子密码锁的研究学习,发觉这种密码输入方式可以进行改革。 在越来越高科技化的今天,遥控控制显的愈发重要,今后的电子密码锁应该具有以红外技术或无线电技术为辅助的密码按键输入远程交互技术,这样就能远程输入密码完成操作。 也可以放弃传统的按键输入密码模式,借助传感器技术运用声控来实现密码输入
第四章 详细设计与实现 系统数据库设计 数据库表格设计 本系统采用 MySQL作为后台数据库,数据库设计包括创建数据库、建表、关系、储存过程、触发器等。 根据对系统的详 细分析,我设计出以下数据库表。 如表 1数据库表所示: 表 1 数据库表 下面是主要表格设计: 11 基于 JAVA的 BBS 设计与实现 12 数据库结构的实现 在得到数据库的表格设计之后,就可以在
统 的 显 示 原 理 ,学 习 数 码 管显 示 数 字 和 字 符 的 编 程 方 法 . 试设计一简易秒表,使得七段符显示管的 ag 分别接在单片机的 P 口上,输出低电平时,显示管点亮, 要求从数字“ 0”显示到数字“ 9”,延时间隔为 1 秒。 设计要求 [1]显示时间 范围 ; [2]按键开关按下,电路复位。 方案的选择与论证 . 1 总体设计方案 方案 1:在方案 1 中