基于VHDL电子密码锁.doc

上传人:博****1 文档编号:559815477 上传时间:2023-04-17 格式:DOC 页数:9 大小:88KB
返回 下载 相关 举报
基于VHDL电子密码锁.doc_第1页
第1页 / 共9页
基于VHDL电子密码锁.doc_第2页
第2页 / 共9页
基于VHDL电子密码锁.doc_第3页
第3页 / 共9页
基于VHDL电子密码锁.doc_第4页
第4页 / 共9页
基于VHDL电子密码锁.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于VHDL电子密码锁.doc》由会员分享,可在线阅读,更多相关《基于VHDL电子密码锁.doc(9页珍藏版)》请在金锄头文库上搜索。

1、基于VHDL的电子密码锁华南师范大课程设计实验报告学/课程名称:可编程数字系统设计课程设计题目:电子密码锁姓名:程硕学院:物理与电信工程学院专业:理综一班年级:2011学号:一、设计原理用VHDL设计电子密码锁方案:作为通用电子密码锁,主要由3个部分构成:数字密码按键输入电路、密码锁控制电路和密码锁显示电路,作为电子密码锁的输入电路。可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。( 1)密码锁输入电路包含时序产生电路、键盘检测电路、键盘消抖电路等几个小的功能电路。( 2)密码锁控制电路包含按键数据储存电路,恢复出厂密码、两次正确输入后可更正密码、密码核对,多次错误报警,清屏等几个小的功

2、能电路。( 3)八段数码管显示电路主要将待显示数据的BCD码变换成数码器的八段显示驱动编码。二、系统解析本次课程设计成功地设计了一个简单的数字电子密码锁,密码为4位。将电子密码锁分为以下几个模块:按键消抖模块、密码锁逻辑控制模块和密码锁显示模块,实现了以下功能:(1) 密码输入:KEY1按下一次,数码管上显示数字加一,相应地址输入密码加一(2) 地址选择:KEY2按下一次,数码管选择位左移一位(3)密码确认:KEY3按下一次,比较外面输入密码与原密码,正确LED长亮,错误LED变暗,同时显示密码置0;(4)密码更正:正确输入两次密码后,按下KEY4一次,将当前输入设为新的密码;(5) 清屏:K

3、EY5按下一次,外面输入置0;(6) 恢复出厂设置:连续按下KEY5三次后恢复出厂密码“1234”;三、程序设计1因为程序稍显宏大,故采纳分层次设计的方法,顶层采纳画图法设计,基层采纳设计。顶层电路图如图1所示VHDL语言进行图1Xiao_dou模块为按键消抖模块,main为密码锁控制模块,yima为数码管显示译码模块。Set_shuma端口为数码管段选端口,用于选择数码管。Led端口为led灯端口,key1,key2,key3,key4,key5为五个按键接口,show_shuma端口为数码管位选选择端口。2 基层设计a) 因为按键为机械按键,故按下一次会产生多次脉冲,当产生第一次降落沿的时

4、候延时一段时间后,再连续检测能否有降落沿产生。主体程序以下:b)数码管译码显示进度:将0至9的4位矢量型数字转变成相应8位数码管显示数字c) 电子密码锁控制电路:i. 数码管地址选择进度:当数码管地址选择时钟到来时,数码管显示位左移一位,利用人眼的视觉余辉成效,产生4位数码管同时点亮的成效。ii. 数码管地址选择时钟信号发生进度:将系统时钟分频,产生500HZ占空比为1:1的方波,用于控制数码管地址选择。iii.整型密码转变成矢量型密码,位选选择进度:利用CASE语句将不一样地址的密码值显示在相应的数码管上。iv. 外面输入密码改正良度:当KEY1按下时外面输入密码加1,并在数码管上显示出来,

5、数字从1至9循环;后半部分为当清屏信号到来时,外面输入密码置0。v. 按键地址选择进度:KEY2按下时数码管地址选择端左移一位,后半部分为当清屏信号到来时,地址置0。vi.密码设置,重置进度:当密码连续正确两次后,按下KEY4键,将此刻显示的密码置为新密码。后半部分为恢复出厂设置密码。vii.清屏,恢复出厂设置进度:当KEY5按下时产生清屏信号,当KEY5连续按下三次后产生恢复出厂设置信号。后半部分为清屏与恢复出厂设置信号的除去程序,用于除去产生的清屏与恢复出厂设置信号。viii.密码比较进度:比较当前输入密码与内部密码的值,如同样则LED长亮,如不一样则LED暗,如连续3次输入错误密码则LE

6、D闪耀报警。ix. LED闪耀脉冲发生进度:用于产生LED闪耀所需方波脉冲四、仿真/实验结果1. 密码正确:2. 密码错误:3. 清屏:五、结论或解析各项实验结果均成功,能够很好的实现,密码比较,设置密码,清屏,恢复出厂设置等各项功能。六、使用说明1. S5:KEY1按下后外面输入密码加1;2. S4:KEY2按下后输当选择地址左移一位;3. S3:KEY3按下后比较输入密码与内部密码;4. S4:KEY4连续输入两次正确密码后按下,将当前显示密码设为新密码;5. S5:KEY5按下一次清屏,连续按下三次后恢复出厂设置。七、源程序1. 控制电路源程序libraryieee;usemainisp

7、ort(key1,key2,key3,key4,key5:instd_logic;clk:instd_logic;num_shuma:outstd_logic_vector(3downto0);set_shuma:outstd_logic_vector(3downto0);led:outstd_logic:=0;sel:outstd_logic);endentitymain;architecturelockofmainissignaltemp_1,temp_led,temp_shuma,reset_all,reset_mima,temp_reset,key1_clear,key2_clear,

8、key3_clear,key4_clear:std_logic;signalbit_one_in:integerrange0to9:=1;-insideofnumbersignalbit_two_in:integerrange0to9:=2;signalbit_three_in:integerrange0to9:=3;signalbit_four_in:integerrange0to9:=4;signalshow_shuma_location:std_logic_vector(1downto0);ofshumasignalbit_one_out,bit_two_out,bit_three_ou

9、t,bit_four_out:integerrange0to9;-outsideofnumbersignallocation:std_logic_vector(1downto0);-insidelocationofnumbersignalnumber_led:integerrange0to5000000;signalnumber_shuma:integerrange0to50000;signalnumber_error:integerrange0to3;signaltwice:integerrange0to2;signalclear_num:integerrange0to3;beginshow

10、_location_set:process(temp_shuma)-thelocationofshuma_guanbeginif(temp_shumaeventandtemp_shuma=1)thenshow_shuma_locationnum_shuma=conv_std_logic_vector(bit_one_out,4);set_shumanum_shuma=conv_std_logic_vector(bit_two_out,4);set_shumanum_shuma=conv_std_logic_vector(bit_three_out,4);set_shumanum_shuma=c

11、onv_std_logic_vector(bit_four_out,4);set_shuma=0111;endcase;if(reset_all=1)thennum_shuma=0000;-xianshizhi0endif;endprocess;shuma_200:process(clk)-usetodelaylocationsetbeginif(clkeventandclk=1)thenif(number_shuma=50000)thennumber_shuma=0;temp_shuma=nottemp_shuma;elsenumber_shuma=number_shuma+1;endif;

12、endif;endprocessshuma_200;add_outside:process(clk,reset_all)-key1addnumbeginif(key1eventandkey1=0)thenkey1_clearbit_one_out=bit_one_out+1;if(bit_one_out=9)thenbit_one_outbit_two_out=bit_two_out+1;if(bit_two_out=9)thenbit_two_outbit_three_out=bit_three_out+1;if(bit_three_out=9)thenbit_three_outbit_four_out=bit_four_out+1;if(bit_four_out=9)thenbit_four_out=0;endif;endcase;endif;if(clear_num=0)thenkey1_clear=0;endif;if(reset_all=1)thenbit_one_out=0;bit_two_out=0;b

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

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