




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、前言电子密码锁的使用体现了人们的消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的麻烦。目前设计密码锁的方法很多,例如传统的PCB板设计、用PLC设计或者单片机设计等等。而用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法。VHDL是一种符合IEEE标准的硬件描述语言,其最大的特点是借鉴高级程序语言的功能特性,对电路的行为与结构进行高度的抽象化、规范化的形式描述,并对设计的不同层次、不同领域的模拟验证与综合优化等处理,使设计过程延到高度自动化。二、方案设计 密码锁的的构成主要由密码输入、密码设置、比较控制和报警部分组成,此外密码锁必须能够保存已设置的密
2、码,因而需要一个寄存器来保存密码,同时由于控制电路和报警电路要用到不同的时钟,因而需要一个时序产生电路来生成需要的不同信号,采用分频方法实现。 根据密码锁的电路特点,选用的是实验箱的模式6电路,根据电路功能,在这里设计的密码锁以4位2进制代码作为密码的电子密码锁。其原理框图如下所示: 报警电路时序产生电路比较控制密码输入开锁信号寄存器(保存设置的密码)密码设置图一、电子密码锁原理框图三、功能模块的实现1、时序电路 在密码锁的电路中,输入计时、报警计时需要的1HZ的时钟脉冲信号,而驱动蜂鸣器工作需要的很高频率的脉冲信号,因而这里采用输入一个高频脉冲(1024HZ)信号来驱动蜂鸣器,采用分频的方法
3、得到1HZ的计时脉冲,程序如下:process(clk_1k) variable cnt1:integer:=0;beginif rising_edge(clk_1k) thenif cnt1=512 thenclk_1<=not clk_1;cnt1:=0;else cnt1:=cnt1+1;end if;end if;end process;程序说明:clk_1k为输入的1024HZ高频脉冲,cnt为分频得到的1HZ计时脉冲。2、密码设置为了安全性,密码锁必须能够重复的设定密码,在设定密码锁后,应该设置一个寄存器来存储设定的密码,程序如下:process(rst,password,e
4、nter_p) is beginif rst='0' thenif enter_p='1' thenram<=password;en1<='1'end if;end if;end process;程序说明:rst低电平时所有的模块复位,只有密码设置模块工作;password为设置密码时的输入端,ram就是存储密码的寄存器;enter_p为在这里为密码设置使能端,高电平有效。 密码设置的仿真波形如下图,由图中可以清楚地看到在enter_p高电平时寄存器ram中得到了输入的密码1001。 图二、密码设置仿真波形3、 密码输入 密码输入部分
5、要求在密码开始输入时进行计时,超时了要求报警,因此在 密码输入时设置一个计时使能信号en2,密码开始输入时使能信号en2有效,控制电路的计时器开始计时;而且在密码确认键按下之前,电路不能对输入密码和已设置密码进行比较,因此需要设置一个寄存器,来存储输入的数据,当确认键按下时,就将寄存器里的数据送给控制部分进行比较。程序如下: process(rst,enter_c,en1,code) begin if rst='1' thenif en1='1' thenif enter_c='1' thencode_tmp<=code;en2<=&
6、#39;1'end if; else code_tmp<="0000"en2<='0'end if; else code_tmp<="0000"en2<='0'end if;end process; 程序说明: rst置高,设置密码模块不工作,其他部分正常工作,en1为高时代表密码设置完毕,密码锁开始工作;enter_c是密码输入使能信号,高电平时表示开始密码输入,此时code_tmp中开始存储输入的数据,计时使能信号en2也变成高电平。 密码输入仿真波形如下,由图中可清楚的看到在enter
7、_c为高时,寄存器code_tmp中存储了输入的数据code(系统仿真时有10ns的延时)。 图三、密码输入仿真波形4、 控制部分此部分是密码锁设计的核心模块,它实现密码锁的逻辑功能。开锁代码为4位二进制数,当输入代码的位数和位值与锁内设置的密码一致,且在规定时间内开锁,方可打开,并且点亮开锁指示灯led_g;否则,系统进入“错误”状态,并且发出警报。警报的方式为蜂鸣器发出警报,指示灯led_r闪烁。直到30秒过后或者按下复位键,经行下一次密码输入。模块源程序:process(rst,clk_1,en2) variable lock:std_logic:='0'variable
8、 cnt3:integer:=0;beginif rst='0' thenlock:='0'cnt3:=0;sp_en<='0'led_g<='0'led_r<='0'elseif rising_edge(clk_1) thenif lock='0' thenif en2='1' thenif cnt3=5 thensp_en<='1'led_g<='0'led_r<='1'cnt3:=0;lock:
9、='1'else if code_en='1' then if ram=code_tmp thensp_en<='0'led_g<='1'led_r<='0'lock:='1' else sp_en<='1' led_g<='0'led_r<='1' end if;end if;cnt3:=cnt3+1;end if;end if;else cnt3:=0;end if;end if;end if;end proce
10、ss; 程序说明:、lock为自锁信号,lock为1时,系统进入自锁状态,不再工作。、Cnt3为密码输入计时信号,en2为1(即开始输入密码)时开始计时,当超过5秒而没有输入正确密码时,系统自锁并报警。、code_en为密码确认键,此键按下时,系统开始将输入的密码和设置的密码进行比较,若二者一致则发出开锁信号,若不一致则发出报警信号,系统进入自锁状态。5、 报警电路报警电路的作用就是在密码输入错误或者输入超时的情况下经行报警,蜂鸣器发出声音,并且警报灯不停闪烁,直到复位键按下或者计时30s结束。源程序如下: process(rst,sp_en,clk_1,clk_1k) variable tm
11、p_en1:std_logic:='0'variable cnt4:integer:=1; beginif rst='1' thenif rising_edge(clk_1) thenif sp_en='1' and cnt4>0 thenif cnt4=31 thencnt4:=0;tmp_en1:='0'else cnt4:=cnt4+1; tmp_en1:='1'end if;end if;end if;else tmp_en1:='0'cnt4:=1;end if;speaker<
12、;=tmp_en1 and clk_1k;led_f<=tmp_en1 and clk_1; end process;程序说明:Cnt4是一个30进制计数器,对报警时间进行计时。 Sp_en是控制电路发出的报警信号。四、 软件仿真将完整的程序在Quartus软件下进行编译,通过之后进行波形仿真,观察仿真波形看是否实现了密码锁的逻辑功能,下面是在密码输入正确、密码输入超时和密码输入错误时的仿真波形图。图四、密码输入正确仿真波形 如图所示,首先在rst为0时将密码设为1001,然后输入密码1001,当确认键code_en按下时,系统判断密码正确,输出一个开锁信号,开锁指示灯led_g点亮。图五、密码输入错误仿真波形 如图,密码设置仍然为1001,但输入一个错误的密码1000,当密码确认按下时,系统发出错误警报,蜂鸣器Speaker发出响声,报警灯led_f闪烁。图六、出入超时仿真波形 如图,密码设置不变,依旧是1001,但是密码输入按键enter_c按下,输入密码后不按下确认键,五秒过后,系统判断密码输入超时,此时输出超时警报,蜂鸣器报警,led_g点亮,led_f闪烁。五、 心得体会这次的课程设计安排在了假期以后,上学期的VHDL语言已经有些生疏了,这给编程带来了一些难度,但是经过复习还是重新熟悉了编程的方法和技巧。在写程序的时候有时候不注意仿真,犯了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年考试系统集成试题及答案
- 崭新系统分析师知识点试题及答案
- 系统分析师考试的关键能力提升与试题及答案
- 新课标试题及答案
- 建筑厂房安全管理制度
- 建筑公司用工管理制度
- 数据基础设施管理制度
- 电工实训室消防管理制度
- 中级社会工作者考试相关主题的全面分析及试题及答案
- ps考试题目模拟试题及答案
- 结缔组织病伴发的间质性肺病的中医辨证与治疗方法
- 智能网联汽车概论 课件 4-3 了解智能网联汽车控制执行技术的应用
- 上位机操作说明
- 品控部考核表
- 数据链系统与技术(第2版) 课件 第10、11章 典型数据链系统的作战运用、数据链的新发展
- 智慧供应链王睿课后参考答案
- 前列腺疾病的诊断和治疗
- 铁尾矿砂混凝土耐久性能的试验研究
- 《一次性物品巧“变身”》第二课时说课稿-四年级劳动北师大版
- 石灰购销合同
- 免疫增殖病及检验(免疫学检验课件)
评论
0/150
提交评论