课程设计报告
课程设计题目:8位数字密码锁设计
学 院 机械与电子工程学院 学生姓名 毛建勇 班 级 080612 学 号 08061222
指导老师 黄乡生(教授)
2011年6月20日
基于VDHL的8位数字密码锁设计
摘 要
本文主要介绍设计数字密码锁的方法。仿真结果表明:该数字密码锁能够效验8位十进制数密码,且有预置密码(即万能密码),显示输入密码,设置密码,修改密码,输入错误回删,关锁等功能。该密码锁体积小,功耗低,操作简单,不怕掉电,维护和升级都十分方便,具有非常好的应用前景
关键词:QUARTUSⅡ;数字密码锁
目 录
引言····························································6 1.EDA简介··················································7 2.前言···························································8 3.设计背景·······················································10 4.课程设计目的与内容·············································11 4.1课程设计目的··············································11
4.2课程设计内容·············································11 4.3课程设计提示··············································11 5.电子密码锁设计过程·············································12 5.1设计规划·················································12 6.VHDL源程序···················································13 7.系统仿真······················································16
7.1波形仿真·················································16 7.2仿真结果·················································17 8.心得体会·······················································19 9.参考文献·······················································20
引言
随着人们生活水平的提高,如何实现家庭防盜这一问题也变的尤其的突出, 传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性髙, 使用灵活性好,安全系数高,受到了广大用户的亲昵,电子密码锁的使用体现了人们消费水平、保安意识和科技水平的提髙,而且避免了携带甚至丢失钥匙的麻烦。目前设计密码锁的方法很多,例如用传统的PCB板设计、用PLC设计或者用单片机设计等等。而用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法。VHDL是一种符合IEEE标准的硬件描述语言, 其最大的特点是借鉴高级程序设计语言的功能特性,对电路的行为与结构进行高度抽象化、规范化的形式描述,并对设计的不同层次、不同领域的模拟验证与综合优化等处理,使设计过程延伸到高度自动化。
1 . EDA简介
1.1EDA简介
EDA是电子设计自动化(Electronic Design Automation) 缩写,是90年代初从CAD(计算机辅助设计)、CAM(计箅机辅助制造)、CAT(计箅机辅助测试) 和CAE(计算机辅助工程)的概念发展而来的。EDA技术是以计算机为工具,根据硬件描述语述言HDL ( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包, 即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统組件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。适配器的功能将由综合器产生的网表文件配置与指定的目标器件中,产生最终的下载文件,如JED文件。
2.前 言
计算机系统已明显地朝巨型化、单片化、网络化三个方向发展。巨型化发展的目的在于不断提高计算机的运算速度和处理能力,以解决复杂系统计算和高速数据处理,比如系统仿真和模拟、实时运算和处理。单片化是把计算机系统尽可能集成在一块半导体芯片上,其目的在于计算机微型化和提高系统的可靠性,这种单片计算简称单片机。单片机的内部硬件结构和指令系统主要是针对自动控制应用而设计的所以单片机又称微控制器MCU(Micro Controller Unit)。用它可以很容易地将计算机嵌入到各种仪器和现场控制设备中,因此单片机又叫做嵌入式微控制器(Embedded MCU)。单片机自20世纪70年代问世以来,以其鲜明的特点得到迅猛发展,已广泛应用于家用电器、智能玩具、智能仪器仪表、工业控制、航空航天等领域,经过30多年的发展,性能不断提高,品种不断丰富,已经形成自动控制的一支中坚力量。据统计,我国的单片机年容量已达1~3亿片,且每年以大约16%的速度增长,但相对于国际市场我国的占有率还不到1%。这说明单片机应用在我国有着广阔的前景。对于从事自动控制的技术人员来讲,掌握单片机原理及其应用已经成为必不可少的学习任务。
单片机经过30多年的发展,已经形成一个规格齐全、品种繁多的大家族,用户有非常大的选择余地。下面为读者简单介绍目前市面上常见的主流单片机。
单片机的应用十分广泛,在工业控制领域、家电产品、智能化仪器仪表、计算
机外部设备,特别是机电一体化产品中,都有重要的用途。其主要的用途可以分为以下方面。
l 显示:通过单片机控制发光二极管或是液晶,显示特定的图形和字符。
l 机电控制:用单片机控制机电产品做定时或定向的动作。
l 检测:通过单片机和传感器的联合使用,用来检测产品或者工况的意外发生。
l 通信:通过RS-232串行通信或者是USB通信,传输数据和信号。
l 科学计算:用来实现简单的算法。
那么单片机是不是解决上述应用的唯一选择呢?淡然不是!目前,在自动控制中,一般有三种选择,分别是嵌入式微机、DSP和单片机。
单片机最明显的优点是价格便宜,从几元人民币到几十元人民币。这是因为这类芯片的生产量很大,技术也很成熟。
其次,单片机的体积也远小于其他两种方案。单片机本身一般用40引脚封装,当然功能多一些的单片机也有引脚比较多的,如68引脚,功能少的只有10多个或20多个引脚,有的甚至只有8只引脚。
当然,单片机无论在速度还是容量方面都小于其他两种方案,但是在实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能。例如,控制电冰箱的控制器就不需要使用嵌入式系统,用一片51就可以轻松实现。所以应用的关键是看能否够用,是否有很好的性能价格比。51系列的单片机已经面世十多年,依然没有被淘汰,还在不断发展中,这就说明是他有广阔的应用前景。
我们的密码所控制器就是以单片机为核心设计的,本设计采用的是ATMEL公司的ATC51芯片,此芯片根据了充分的静止CMOS 控制器与三级节目记忆锁,共有32 条I/O 线, 2 定时计数器, 6 个中断来源,4 K 闪存, 128 个字节在芯片RAM。
随着社会的发展,密码所控制器也在不断的发展,最早的有4位密码的密码锁控制器,发展到8位,甚至可以设计出具有语音功能(声控)、红外线感应功能等先进的密码锁控制器。
在这里,我们设计的是一个可以设置8位密码的密码所控制器。
3.设计背景
社会背景
随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型
号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。
课题背景
单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以以软件控制来实现,并能够实现智能化,现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。为了紧跟时代步伐,系特此安排此次实习,以提高对单片机的认识及对其更深一步的理解与掌握。
4.课程设计的目的与内容
4.1课程设计的目的
随着人们生活水平的提高,如何实现家庭防盜这一问题也变的尤其的突出, 传统的机械锁由于其构造的简单,被撬的^件屡见不鲜,电子锁由于其保密性髙, 使用灵活性好,安全系数高,受到了广人用户的亲,电子密码锁的使用也体现了人们消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的麻
4.2 课程设计的内容
设计一个数字密码锁,在锁开的状态下输入密码,设置密码共8位,用数据开关k1-k10分别代表数字 1,2,..,,9,0,输入的密码用七段数码管显示。
具体要求如下。
数字密码锁的密码为8位十进制数字,密码可以设置和修改;开锁时间定为30秒;可用七段显示器显示开锁倒计时时间值;开锁计时时间30秒到,锁没开则用蜂鸣器报警,开锁时允许修改输入错误的密码数字。万能密码设置:供主人忘记密码时使用。并用1位LED状态表示锁的开闭状态。
4.3 课程设计提示
此系统可以分为密码输入删除控制模块,寄存模块,比较模块,扫描显示模块,定时模块几部分
密码输入与删除控制模块设计考虑;
<1>编码器:对数据开关K1—K10的电平信号,分别代表1-9,0;采用一热码方式编码。
<2>设置与删除密码操作及显示按设计要求处理。 <3>信号设置
Set: 密码确认信号-----当8位密码输入完成后,按Set键则密码送锁存器锁存,比较模块得数据A,密码显示电路清零。
Back:数字删除按键-----每按一次删除最后输入的数字,密码显示右移一位,同时左边空位补“0”。
Lock:密码锁状态显示信号-----Lock=0(LED灯灭)表示锁未开,Lock=1(LED灯亮)锁已开。
Close:关锁信号-----当密码送寄存器锁存后,按下Close,则密码锁Lock=0,锁被锁上。
Check:密码效验信号-----在Lock=0状态下,从数据开关输入8位开锁密码后按下Check,则开锁数码送寄存模块锁存为B。如果A=B,则D触发器置“1”,锁被锁上。
5 电子密码锁的设计过程
5.1设计规划
密码锁流程图如图3-1所示:
6. VHDL源程序
module
mimasuo(n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,reset,back,check,set,close,lock,num1,num2,num3,num4,num5,num6,num7,num8,qh,ql,cout,clk,cin ,
in1,in2,in3,in4,in5,in6,in7,in8,clk1,flag,a,b,c,d,e,f,g); input[3:0] in1,in2,in3,in4,in5,in6,in7,in8; output a,b,c,d,e,f,g; output[2:0] flag; reg a,b,c,d,e,f,g; reg[2:0] flag;
input n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,back,check,set,close,cin; input clk,clk1; input reset; output lock;
output[3:0]num1,num2,num3,num4,num5,num6,num7,num8; reg[3:0]num1,num2,num3,num4,num5,num6,num7,num8; reg[31:0]code; reg[4:1]temp; reg lock; output cout;
output[3:0]qh,ql; reg[3:0]qh,ql;
always@(posedge clk) begin
if({n0,n1,n2,n3,n4,n5,n6,n7,n8,n9}!=10'b0000000000)//密码输入控制模块 begin
case({n9,n8,n7,n6,n5,n4,n3,n2,n1,n0}) 10'b0000000001:temp=4'd0; 10'b0000000010:temp=4'd1; 10'b0000000100:temp=4'd2; 10'b0000001000:temp=4'd3; 10'b0000010000:temp=4'd4; 10'b0000100000:temp=4'd5; 10'b0001000000:temp=4'd6; 10'b0010000000:temp=4'd7; 10'b0100000000:temp=4'd8; 10'b1000000000:temp=4'd9; endcase
num8<=num7; num7<=num6; num6<=num5; num5<=num4; num4<=num3; num3<=num2; num2<=num1; num1<=temp; end
else if(back) begin
num1<=num2; num2<=num3; num3<=num4; num4<=num5; num5<=num6; num6<=num7; num7<=num8; num8<=1'd0; end end
always@(posedge clk)//定时与报警模块 begin
if(lock||check||qh==2&&ql==9) begin qh<=0;ql<=0;end
else if(cin) begin if(ql==9) begin ql<=0; if(qh==2)qh<=0; else qh<=qh+1; end
else ql<=ql+1; end end
assign cout=(qh==2&&ql==9&&cin&&lock==0)?1:0;
always@(posedge clk)//开锁控制模块 begin
if(lock==0&&check) begin
if(code=={num8,num7,num6,num5,num4,num3,num2,num1})lock<=1; else
if({num8,num7,num6,num5,num4,num3,num2,num1}==32'b00000000000000000000000000000111)
lock<=1; end
else if(lock==1&&close) lock<=0; else if(lock==0&&cout==1) lock<=0; end
always@(posedge clk) begin
if(!reset) code<=32'h00000007;
else if(lock==1&&set)
code<={num8,num7,num6,num5,num4,num3,num2,num1}; end
always @(posedge clk)//动态显示模块 begin
flag=flag+1; case(flag)
0:begin temp=in1;end 1:begin temp=in2;end 2:begin temp=in3;end 3:begin temp=in4;end 4:begin temp=in5;end 5:begin temp=in6;end 6:begin temp=in7;end 7:begin temp=in8;end
default:begin temp=in1;end endcase case(temp)
4'd0:{a,b,c,d,e,f,g}=7'b1111110; 4'd1:{a,b,c,d,e,f,g}=7'b0110000; 4'd2:{a,b,c,d,e,f,g}=7'b1101101; 4'd3:{a,b,c,d,e,f,g}=7'b1111001; 4'd4:{a,b,c,d,e,f,g}=7'b0110011; 4'd5:{a,b,c,d,e,f,g}=7'b1011011; 4'd6:{a,b,c,d,e,f,g}=7'b1011111; 4'd7:{a,b,c,d,e,f,g}=7'b1110000; 4'd8:{a,b,c,d,e,f,g}=7'b1111111; 4'd9:{a,b,c,d,e,f,g}=7'b1111011; default:{a,b,c,d,e,f,g}=7'bzzzzzzz; endcase end endmodule
7波形仿真
7.1波形仿真
将仿真成功后原理图进行波形仿真,并设置相应参数,表现其各种功能,仿真成功后总波形图如图5-2:
图5-2
7.1仿真结果
<1>万能密码功能:如图5-3-1
图5-3-1
<2>设置密码功能:如图5-3-2
图5-3-2
说明:设置的8位十进制密码为10000009,关锁后用新密码10000009打开了锁
<3>修改密码功能:如图5-3-3
图5-3-3
说明:原密码为10000009修改新密码为00000008,之后check开了锁,说明修改密码功能正确
<4>输入错误回删功能:如图5-3-4
图5-3-4
说明:输入0000000即7位后输入错误数1之后使用back回删功能再输入8之后check,锁开了..说明错误回删功能正确
<5>30秒计时警报功能:如图5-3-5
图5-3-5
说明:当输入状态下30秒未输入正确密码则输出高电平..
8.心得体会
通过这次单片机课程设计,我收获了许多。第一,在课程设计的两天内,在实践的基础上,使我对理论的掌握更熟练了,对理论的理解更深了;第二,我知道了理论联系实践的重要性,理论始终要与实践紧密的结合起来;第三,我懂得了实践是检验真理的唯一标准的真正含义,任何理论在没有经过实践这块试金石检验之前都是软弱无力的;第四,对科学要有一种严谨的作风,不能马虎;第五,通过实践,使我对单片机,,数码管的功能与原理理解的更深了,并通过编辑程序使我对计算机汇编语言有了进一步的掌握。了自己的不足。还常寻求老师的帮助,他们使我获得了不少的知识。在这里,首先我要感谢学校能给我们这次理论联系实践的机会以及给予我们物质上的大力支持;其次,我要郑重的感谢黄乡生老师的栽培和教导,黄老师虽然年纪稍大了,但是对教学工作的认真负责使我印象非常深刻,在此非常感谢黄老师的悉心教导,也祝愿黄老师身体健康,工作顺心。
9.参考文献
[1]王金明,数字系统设计与Verilog HDL(第三版).北京:电子工业出版社,2009 1
[2] 卢毅,赖杰,VHDL与数字电路设计.北京:科学出版社,2002 3 [3]边计年,薛宏熙,用VHDL设计电子线路.北京:清华大学出版 社,2000 8
东华理工大学 课程设计评分表
学生姓名:毛建勇 班级: 080612 学号:08061222 课程设计题目:8位数字密码锁设计 选 题 项目内容 能结合所学课程知识、有一定的能力训练。符合选题要求 (5人一题) 工作量适中,难易度合理 能熟练应用所学知识,有一定查阅文献及运用文献资料能力 能 力 水 平 理论依据充分,数据准确,公式推导正确 能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等 能体现创造性思维,或有独特见解 总体设计正确、合理,各项技术指标符合要求。 说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰 设计说明书栏目齐全、合理,符号统一、编号齐全。 格式、绘图、表格、插图等规范准确,符合国家标准 有一定篇幅,字符数不少于5000 指导教师评语: 指导教师签名: 年 月 日
满分 10 10 10 10 10 10 10 10 10 10 100 实 评 成 果 质 量 总 分
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务