电子密码锁设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河南科技大学

课程设计说明书

课程名称EDA课程设计

题目电子密码锁设计

学院电子信息工程学院

班级电信科074班

学生姓名马保林

指导教师宋萧

日期2010年9月22日

课程设计任务书

课程设计名称EDA课程设计学生姓名马保林专业班级电信科074班设计题目电子密码锁设计

一、课程设计目的

1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题

的能力;

2、结合理论知识,考察阅读参考资料、文献、手册的能力;

3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的

实现方法和应用技巧;

4、锻炼撰写研究报告、研究论文的能力;

5、通过本实践环节,培养科学和严谨的工作作风。

二、设计内容、技术条件和要求

1、设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工

作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;

2、在锁的控制电路中储存一个可以修改的4位二进制代码,当开锁按钮开关的输入代

码等于储存代码时,开锁;

3、从第一个按钮触动后的30秒内若未将锁打开,则电路长报警30S,若输入密码错误

1或2次,则每次短报警5S,若输错三次密码则长报警。

三、时间进度安排

1周:(1) 完成设计准备,确定实施方案;(2) 完成电路文件的输入和编译;(4) 完成功能仿真。

2周:(1) 完成文件至器件的下载,并进行硬件验证;(2) 撰写设计说明书。

四、主要参考文献

(1)谭会生、瞿遂春,《EDA技术综合应用实例与分析》,西安电子科技大学出版社,2004

(2)高有堂,《EDA技术及应用实践》,清华大学出版社,2006

(3)亿特科技,CPLD/FPGA应用系统设计与产品开发》,人民邮电出版社,2005

(4)曹昕燕、周凤臣等,《EDA技术实验与课程设计》,清华大学出版社,2006

指导教师签字:2010年9月5日

一、设计思路

该电子密码锁的设计主要有两个模块组成:1)按键输入译码部分yima_count5_shift 和2)控制电路contra

结构图如下:

图1

其中key_in[0..4]是五个密码输入按键,在控制端s的控制下可以输入0~9十个数字。Change用于修改密码,在电锁打开状态下,按下change可以对密码锁的密码进行修改;在电锁未打开,输入密码时候按一下change键可以对已输入的密码清零,重新输入密码。当输完密码后按下ok键,密码输入到电锁内部。稍后,会将已输入的密码进行清零。

Ff是报警信号,当按下第一个密码输入按键后,五秒内电锁未打开,则输出256hz 报警信号驱动蜂鸣器报警,并且红灯闪烁,均持续20s;若五秒内密码输入正确,电锁打开,则输出128hz的提示信号,告诉用户电锁已打开,并且绿灯亮红灯灭。提示信号持续20s,电锁打开时间为60s,超过60s后,电锁自动上锁,红灯亮,绿灯灭。

输入密码和修改密码时,输入的数字都会在数码管上显示,当输入完毕按下ok确认后,数码管清零,不再显示。

二、各部分的详细说明以及功能介绍

1、按键输入译码部分yima_count5_shift

主要功能是,识别密码按键的输入,并将输入码译为对应的BCD码,同时进行移位操作,内部置有串行输入并行输出移位寄存器,每输入一位密码,就将其译为BCD 并在数码管上输出,同时输出给控制部分contra。再次按下密码输入按键后,数码左移,直到四位密码全部输入。有计数器控制,只能允许输入四位密码,超过密码长度的输入,既不显示也不移位。

该部分的电路主要有yima,count5和shift三部分以及逻辑门组成,结构图如下:

图2

1)5进制计数器count5

主要功能是记录按键的次数,用于控制密码个数的输入。计数器开始值为0,驱动信号cp为key_in[0..4]五个按键信号相或得到,五个按键中任意一个按下,cp就为'1'否则为'0'。当rst清零信号为'1'时计数器清零,否则,计数器在cp的上升沿,计数。当计数器的值不为0时,c_out置为'1',其余为'0';当计数器记到4时,不再增加,且oc置为'0',其余oc为'1'。

部分程序如下:count5.vhd

architecture one of count5 is

signal cnt:natural range 0 to 5:=0;

begin

process(cp,rst)

begin

if rst='1' then cnt<=0;

elsif cp'event and cp='1' then

if cnt=4 then cnt<=4;

else cnt<=cnt+1;

end if;

end if;

end process;

process(cnt,rst)

begin

if rst='1' then oc<='1';c_out<='0';

else

if cnt=4 then oc<='0';else oc<='1';end if;

if cnt=0 then c_out<='0'; else c_out<='1';end if;

end if;

end process;

end;

2)译码器yima

译码器的主要功能是,将key_in[0..4]和s六个按键的输入识别并转换为对应的数字的BCD码。

Key_in[0..4]五个按键每一按键输入代表两个数字,译码结果由s选择,按键s按下后为'1',不按下时为'0'。当s='0'时,按键输入的数字由key_in(0)到key_in(4)分别代表0到4(BCD码为0000,0001,0010,0011,0100);当s='1'时,代表5到9(BCD码为0101,0110,0111,1000,1001)。

部分程序如下yima.vhd

architecture yima of yima is

signal tmp :std_logic_vector(3 downto 0);

begin

相关文档
最新文档