电子密码锁设计.docx
- 文档编号:26273636
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:13
- 大小:247.54KB
电子密码锁设计.docx
《电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《电子密码锁设计.docx(13页珍藏版)》请在冰豆网上搜索。
电子密码锁设计
课 程 设 计
课程EDA技术课程设计
题目电子密码锁
院系电子科学学院
专业班级电子信息工程
学生姓名
学生学号
指导教师
2013年3月8日
东北石油大学课程设计任务书
课程 EDA技术课程设计
题目 电子密码锁
专业 电子信息工程 姓名 学号
主要内容、基本要求、主要参考资料等
主要内容:
设计一个密码锁的控制电路,第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,当输入正确代码时,输出开锁信号以推动执行机构工作。
基本要求:
1、设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;
2、在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(设置成8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁;
3、从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号,并输出一个信号推动LED不断闪烁。
主要参考资料:
[1]潘松著.EDA技术实用教程(第二版).北京:
科学出版社,2005.
[2]康华光主编.电子技术基础模拟部分.北京:
高教出版社,2006.
[3]阎石主编.数字电子技术基础.北京:
高教出版社,2003.
完成期限 2013.3.8
指导教师
专业负责人
2013年3月4日
一、总体设计思想
1.基本原理
随着社会物质财富的日益增长,安全防盗已成为全社会关注的问题。
基于EDA技术设计的电子密码锁,以其价格便宜、安全可靠、使用方便,受到了人们的普遍关注。
而以现场可编程逻辑器件(FPGA)为设计载体,以硬件描述语言(VHDL)为主要表达方式,以QuartusⅡ开发软件设计工具设计的电子密码锁,由于其能够实现数码输入、数码清除、密码解除、密码更改、密码上锁和密码解除等功能,因此,能够满足社会对安全防盗的要求。
基本原理如下:
在控制电路中储存一个可以修改的4位代码,当我们把第一个按钮触动后开始计时,若5秒后未将锁打开,电路自动进自锁状态,红灯亮绿灯灭,同时由扬声器发出持续20秒的报警信号,并输出一个信号推动LED不断闪烁此;如果在触动按钮的5秒内,输入的4位代码等于存储代码时,输出开锁信号以推动执行机构工作,此时,用绿灯亮、红灯熄灭表示开锁。
2.设计框图
键盘 按键
输入 数据
输入
工作时钟脉冲信号
键盘扫描信号
图1设计框图
二、设计步骤和调试过程
图2总体电路
1、模块设计和相应模块程序
1.1.1密码锁输入模块
扫描信号
按键输入
图3密码锁输入模块电路框图
密码锁输入模块的电路框图如图3所示,它由时序产生电路、键盘扫描电路、弹跳消除电路、键盘译码电路和按键存储电路组成。
时序产生电路用于产生中三种不同频率的工作脉冲波形,包括系统时钟信号、弹跳消除取样信号和键号键盘电路可提供键盘扫描信号。
该信号由ky3~ky0进入键盘,其变化的顺序1110-1101-1011-0111-1110……周而复始。
扫描信号0111代表扫描的为*、0、这一排按键,当*这个按键被按下时,由kx2~kx0读出的值为011。
按键位置的数码关系如表1所列。
弹跳消除电路可避免误操作发生。
由于设计中采用的矩阵式键盘是机械开关结构,因此,在开关切换的瞬间,会在接触点出现信号来回弹跳的现象。
为使电子密码锁可靠工作,必须加上弹跳消除电路。
弹跳消除电路采用软件延时的方法消除抖动,其仿真波形如图3所示。
从图3中可以看出,若采样信号连续两次或超过两次检测到高电平信号,说明按键状态确实发生了变化,此时电路输出一个时钟周期的按键信号;否则当作抖动处理而不予理会,以此来消除抖动。
对于键盘译码电路,由于图2中的键盘按键分为数字按键和功能按键,每一个按键可负责不同的功能,而键盘所产生的输出(也就是扫描回复信号)却无法直接拿来用作密码锁控制电路的输入,所以必须由键盘译码电路来规划每个按键的输出形式,以便执行相应的动作。
键盘存储电路可将每次扫描产生的新按键数据存储下来,因此新数据可能会覆盖前面的数据,所以需要一个按键存储电路,以将整个键盘扫描完毕的结果记录下来。
图4所示是密码锁输入模块的仿真波形,图中,数字键数据“0、1、2、3、4、5、6、7、8、9”和功能键数据“0100、0001”所得到的输出不同,由此可证明密码锁输入模块的正确性。
图4电子密码锁键盘输入
本模块主要是将设置的密码锁存到中间变量ram中去,同时控制灯的变化,由于这里的灯并不能作为最终的输出,所以这里先用led_r_temp1、led_r_temp2代替。
process(enter1,set)
begin
if(enter1'eventandenter1='1')then
if(set='0')then
ram<=datain;
led_r_temp1<='1';led_g_temp1<='0';
elseled_r_temp1<='0';led_g_temp1<='0';
endif;
endif;
endprocess;
图5弹跳消除电路仿真波形
图6密码锁输入模块仿真波形
1.1.2控制模块
密码锁控制电路是整个电路的控制中心,主。
要完成对数字键输入和功能键输入的响应和控制。
密码锁控制电路的仿真波形如图6所示。
从图6可见,其数字键输入的响应控制过程如下:
(1)按下数字键,第一个数字会在显示器的最右端显示,随后每按下一个新数字,显示器上已经存在的数字整体会向左移一位,并将以新的数字显示出来;
(2)若要更改输入数字,则可按*键清除所有输入的数字,再重新输入数字。
(3)电子密码锁为4位,当输入超过4位时,电路不予理会,且不显示第4个以后的数字。
功能按键的输入响应控制功能如下:
(1)清除功能:
按下*键,可清除所有输入的数字,显示为“----”。
(2)更改密码:
按下55#键,输入旧密码(设计中为“0000”),再按#键,即可解除旧密码。
接着输入4位数字,再按下#键,就可以将4位数
字作为新密码。
(3)密码上锁:
输入4位新的密码数字之后,再按11#键,就可以将密码锁上锁。
(4)密码解锁:
按下99#键可输入密码解锁,假如输入“2345”这个密码,然后按下#键,系统将比较键盘输入的数码和寄存器中的数码,如果一致,就会给出一个开锁信号,密码锁开锁;否则密码输入无效。
本模块是实现当开锁信号产生时,相应的指示灯由红亮绿灭变成红灭绿亮。
这里同样先用led_r_temp2、led_g_temp2代表红灯和绿灯。
process(clk_1k,state)
begin
if(clk_1k'eventandclk_1k='1')then
if(state='1')then
if(unlock='1')then
led_r_temp2<='0';led_g_temp2<='1';
elseled_r_temp2<='1';led_g_temp2<='0';
endif;
endif;
endif;
endprocess;
提示音模块:
当开锁信号产生时,扬声器发出两秒的提示音。
这里用speaker_temp2代替
signalcount_2:
std_logic_vector(1downto0);
signaltemp:
std_logic;
begin
process(clk)
begin
if(clk'eventandclk='1')then ——1秒Hz
if(unlock='1')then
if(count_2="10")then
count_2<="10";temp<='0';
elsecount_2<=count_2+1;temp<='1';
endif;
endif;
endif;
endprocess;
speaker_temp1<=clk_1kandtemp;
图7控制电路仿真波形
2、仿真及仿真结果分析
图8密码锁输入模块的仿真图
图9密码锁控制模块的仿真图
图10控制电路仿真波形
3、实验调试结果
经调试,实验结果完全符合任务书里的要求,第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,当输入正确代码时,输出开锁信号以推动执行机构工作。
三、结论及心得体会
这次EDA课程设计历时一个星期,在整整一个星期的日子里,可以说是苦多于甜,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。
特别是当每一个子模块编写调试成功时,心里特别的开心。
但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。
在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示:
在设定输入的时钟信号后,数字秒表开始计数,但是始终看不到秒和小时的循环计数。
后来,在数十次的调试之后,才发现是因为输入的时钟信号对于器件的延迟时间来说太短了。
经过屡次调试,终于找到了比较合适的输入数值。
其次,在连接各个模块的时候一定要注意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只要让各个线宽互相匹配,才能得出正确的结果,否则,出现任何一点小的误差就会导致整个文件系统的编译出现错误提示,在器件的选择上也有一定的技巧,只有选择了合适当前电路所适合的器件,编译才能得到完满成功。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
总的来说,这次设计的电子密码锁还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。
最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
参考资料
[1]潘松著.EDA技术实用教程(第二版).北京:
科学出版社,2005.
[2]谭会生,张昌凡.EDA技术及应用(第二版).西安:
西安电子科技大学出版社
[3]徐光军,徐光辉.CPLD/FPGA的开发与应用.北京:
电子工业出版社,2002
[4]李国丽,朱维勇.EDA与数字系统设计.北京:
机械工业出版社,2004
课程设计成绩评价表
课程名称
EDA技术课程设计
题目名称
电子密码锁
学生姓名
学号
指导教师姓名
职称
序号
评价项目
指标
满分
评分
1
工作量、工作态度和出勤率
按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。
20
2
课程设计质量
课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
45
3
创新
工作中有创新意识,对前人工作有一些改进或有一定应用价值。
5
4
答辩
能正确回答指导教师所提出的问题。
30
总分
评语:
指导教师:
2013年 3 月 11 日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 密码锁 设计