欢迎来到天天文库
浏览记录
ID:14691989
大小:7.58 MB
页数:10页
时间:2018-07-30
《可编程逻辑器件原理与应用综合设计格式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、信息技术学院《可编程逻辑器件原理及应用》课程综合设计报告书姓名:李伟梅班级:B1210学号:0915121023时间:2014年12月21日指导教师:李海成设计题目电子密码锁设计要求和任务设计要求:数据输入:每按一个数字键,就输入一个数值,并在显示器上的最右方显示出该数值,并将先前已经输入的数据依序左移一个数字位置。数码清除:按下此键可清除前面所有的输入值,清除成为“0000”。密码更改:按下此键时将目前的数字设定成新的密码。激活电锁:按下此键可将密码锁上锁。解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。设计
2、任务:设计一密码锁,用VHDL语言描述,用QuartusII工具编译和综合,并仿真,撰写实验报告。 电子密码锁内有预置密码,如果输入的十进制数与锁内密码一致,锁被打开;否则,应封闭开锁电路。十进制数采用矩阵键盘输入,并实现左移功能。同时要实现密码更改和数码清除。设计过程(包括:设计方案、原理、程序与仿真结果、实验结果、收获和体会等)一、设计原理及方案电子密码锁,主要由三部分组成:密码输入电路、密码锁控制电路和密码锁显示电路。 作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。触摸式4*4键
3、盘相比简单方便而且成本低,构成的电路简单,本设计采用触摸式4*4键盘来作为该设计的输入设备。 数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任然使用LED数码管。 根据以上选定的输入设备与显示器件,并考虑到现实各项密码锁功能的体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。整个密码锁系统的总总体框图如图所示。 设计过程二、设计程序1、电子密码锁输入模块1.1矩阵键盘显示1
4、.2密码锁输入程序process(clk)----键盘列扫描beginifrising_edge(clk)then--if(Kr="1111")thenkflag1<='0';kcount<=kcount+1;--if(kcount=0)thenkeyc<="1110";--elsif(kcount=1)thenkeyc<="1101";--elsif(kcount=2)thenkeyc<="1011";--elsekeyc<="0111";--endif;--elseif(Kr="1111")thenkflag1<='0
5、';elsekflag1<='1';endif;keyr<=Kr;keyc<=Kc;--endif;kflag2<=kflag1;endif;endprocess;process(Clk)--键值获取显示左移beginifrising_edge(clk)thenif(kflag1='1'andkflag2='0')thenif(keyr="0111")thencasekeyciswhen"0111"=>buff1<=1;when"1011"=>buff1<=4;when"1101"=>buff1<=7;when"1110"
6、=>buff1<=0;whenothers=>buff1<=buff1;endcase;elsif(keyr="1011")thencasekeyciswhen"0111"=>buff1<=2;when"1011"=>buff1<=5;when"1101"=>buff1<=8;when"1110"=>buff1<=0;whenothers=>buff1<=buff1;endcase;elsif(keyr="1101")thencasekeyciswhen"0111"=>buff1<=3;when"1011"=>buff1<
7、=6;when"1101"=>buff1<=9;when"1110"=>flag3<='1';whenothers=>buff1<=buff1;endcase;elsif(keyr="1110")thencasekeyciswhen"0111"=>flag4<='1';when"1011"=>flag2<='1';whenothers=>buff1<=buff1;endcase;endif;endif;endif;--ifsxhnb='1'andflag3='1'--thenflag3<='0';sxhnb<='0';--
8、elsifflag3='1'thensxhnb<='1';--endif;ifsxhnb='1'thenflag3<='0';endif;iflwmhnb='1'andflag2='1'thenflag2<='0';lwmhnb<='0';elsifflag2='1'thenlwmhnb<='1';en
此文档下载收益归作者所有