1、广工eda课程设计数字密码锁课 程 设 计 课程名称 硬件描述语言及EDA技术 题目名称 数字密码锁 学生学院 材料及能源 专业班级 学 号 学生姓名 指导教师 陈 先 朝 2017年 6月 11日 摘要:随着数字集成技术和电子设计自动化(EDA)技术的迅速发展,数字密码锁应运 而生。本文采用先进的EDA技术,利用QUARTUS 工作平台和Verilog HDL语言,设计了一种新型的数字密码锁,它不但可以完成锁具的基本功能,还能附加一些其他的智能,例如:报警、识别功能,数字密码锁具功能齐全,安全系数高,有机械锁无可比拟的优越性,它的造价成本低,易于操作,越来越受到众多客户的青睐,可以优先占领市
2、场有利份额。 关键词:EDA技术;QUARTUS 工作平台;Verilog HDL语言;数字密码锁 1 引言 1.1 课程设计背景 数字密码锁随着电子工业的发展,数字电子技术已经深入到了人们生活的各个层面, 而且各种各样的电子产品也正在日新月异地向着高精尖技术发展。由于电子产品 的功能不断增加,使用也越来越方便,有些产品已经成为了人们日常生活中不可 缺少的必备物品。发展历史悠久的机械式门锁,因其功能单一,安全性能较差等 缺点,必将被新一代的电子门锁所代替。新颖的多功能电子门锁,集电子门锁、 防盗报警器,门铃等功能于一身,而且还具有定时器呼唤,断电自动报知,显示 屋内有无人和自动留言等诸多附加功
3、能。在未来的生活中,数字密码锁必将在学 领域再创新的成绩,将给我们的生活带来更大的便利,前景不可估量。 1.2 课程设计目的 1. 掌握Verilog HDL语言编程方法,通过实践加深对理论知识的理解。 2. 学会Quartus软件的使用方法。 3.掌握数字密码锁的设计方法。 4.掌握波形仿真,学会分析实验现象,提高分析问题的能力。1.3 课程设计内容设计一个数字密码锁,用户可输入4位的二进制数,连续输入3次不正确则报警。开锁密码可手动预置,并可进行修改密码,取消报警。2 数字密码锁设计 2.1系统设计 根据系统的设计要求,系统设计采用自顶向下的设计方法。2.2程序代码module mms(r
4、eset,set,a1,a2,a3,a4,enter,cancel,sel_led,sel,green,clk100, save,clk1);input reset,set,a1,a2,a3,a4,enter,cancel,clk100,clk1,save;output reg 7:0sel_led,sel;output reg 7:0green;reg1:0 scan;reg3:0 password,word;reg o1,o2,o3,o4,num,sum,bee;always(posedge clk1) begin/重置密码 if(!reset) begin o1=0; o2=0; o3=
5、0; o4=0; end/输入密码 else if(!a1) begin o1=o1; word0=o4; end else if(!a2) begin o2=o2; word1=o3; end else if(!a3) begin o3=o3; word2=o2; end else if(!a4) begin o4=o4; word3=o1; end/设置密码 else if(!set) begin/密码输入正确时才可修改密码if(word0=password0&word1=password1&word2=password3&word3=password3) begin if(!a1) be
6、gin o1=o1; password0=o4; end else if(!a2) begin o2=o2; password1=o3; end else if(!a3) begin o3=o3; password2=o2; end else if(!a4) begin o4=o4; password3=o1; end end end/确认密码 else if(!enter) beginif(word0=password0&word1=password1&word2=password3&word3=password3) begin green=8b10000000;/密码输入正确亮一个红灯 s
7、um=0; end else sum=sum+2b01; end else if(!cancel)/关闭红灯 green=8b00000000; end always(posedge clk100) begin if(scan=2b11) scan=2b00; else scan=scan+2b01; endalways (scan)/进行数码管位选,高电平有效begin case(scan) 2b00:begin num=o1;sel=8b01000000;end 2b01:begin num=o2;sel=8b00100000;end 2b10:begin num=o3;sel=8b000
8、10000;end 2b11:begin num=o4;sel=8b00001000;end default:sel=8b00000000; endcaseendalways(num) /BCD码译成七段数码管显示 begin case(num) 1b0:sel_led=8b00111111; 1b1:sel_led=8b00000110; endcase end/密码连续输入累计三次错误后,亮所有红灯 always(sum) begin if(sum=2b10) begin sum=0; green=8b11111111; end end endmodule2.3仿真结果波形分析:上电后,系
9、统的初始密码为“0000”,按下reset键由键盘key输入密码“0000”,输入密码正确按确认键enter键锁开按,锁关闭开锁输出标志信号kai无效为1,显示开锁;在开锁状态下下拨set修改密码键后,由键盘key输入新密码0001后按确认键enter密码修改成功,上拨set键密码锁上锁,此时密码锁密码为新密码;若按下start键后输入的密码错误如图“1111”及密码锁密码“0000”不同,累积三次后,报警信号有效,锁不开且报警。若按下start键后输入的密码正确如图“1111”及密码锁密码“1111”相同,kai开锁信号有效,锁开且不报警。4 应收集的资料及主要参考文献1.陈先朝,硬件描述语
10、言及EDA技术实践指导书,2017年3月2.潘松等编著,EDA技术及Verilog HDL ,电子工业出版社,2013年;3.现代数字电子技术及Verilog设计,清华大学出版社,2014年; 4.王金明等编著,EDA技术及Verilog HDL设计,电子工业出版社,2013年;5.刘靳等编著,Verilog程序设计及EDA ,西安电子科技大学出版社,2012年;6.刘福奇主编,Verilog HDL 应用程序设计实例精讲,电子工业出版社,2012年;7.周润景等主编,基于Quartus 的数字系统Verilog HDL设计实例详解,电子工业出版社,2010年。发出任务书日期: 2017年6月 5日 指导教师签名:陈先朝计划完成日期: 2017年6月 9日 基层教学单位责任人签章:主管院长签章: