《EDA技术(机械)实验报告--数字锁.docx》由会员分享,可在线阅读,更多相关《EDA技术(机械)实验报告--数字锁.docx(6页珍藏版)》请在第一文库网上搜索。
1、实验报告(计算机类)开课学院及实验室:实验时间:年月日学生姓名学号成绩学生所在学院年级/专业/班课程名称EDA技术(机械)课程代码实验项目名称数字锁项目代码指导教师项目学分1 一、实验目的2 .了解VHD1语言编程方法,学会熟练运用quartus软件3 .了解数字锁的运作原理4 .了解如何使用VHD1设计一个数字锁二、内容与设计思想1 .数字锁即电子密码锁,锁内有若干密码,所用密码可由用户自己选定。2 .数字锁有两类:一类是并行接收数据称为并行锁;另一类是串行接收数据,称为串行锁。如果输入代码与锁内密码一致,锁被打开;否则封闭开锁电路并发出警报。3 .设计一个8位串行数字锁:(1)开锁代码为8
2、位二进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁,方可开锁,并点亮指示灯1T。否则系统进入“错误状态”并发出警报信号。(2)开锁程序由设计者确定,并要求锁内给定的密码是可调的,且预置方便,保密性好。(3)串行数字锁的报警方式是点亮指示灯1F,并使喇叭鸣叫报警,直到按下复位键,报警才停止。此时,数字锁自动进入等待下一次开锁状态。三、使用环境winXP或Win7Quartusii编程环境四、核心代码及调试过程数字锁分频模块占空比1:10000方波,用于消除抖动Iibraryieee;useieee.std_Iogic_1164.aII;useieee.std_Iogic_u
3、nsigned.a11;useieee.std_Iogic_arith.aII;entityfenisport(e1k:instd_1ogic;cIk1:outstd_1ogic);endfen;architecturebhvoffenisbeginprocess(cIk)variabIeent:integerrange0to9999;beginifcIk,eventandcIk=thenifent=9999thenent:=0;c1k1=,;eIseent:=cnt+1;c1k1=,0,;endif;endif;endprocess;endbhv;消抖同步模块Iibraryieee;usei
4、eee.std_Iogic_1164.aII;useieee.std_Iogic_unsigned.a11;useieee.std_Iogic_arith.aII;entityxiaoproisport(a,cIk1:instd_1ogic;b:outstd_1ogic);endxiaopro;architecturebhv1ofxiaoproissignaItmp1:std_1ogic;beginprocess(cIk1,a)variabIetmp2,tmp3:std_1ogic;beginifcIk1,eventandcIk1=0,thentmp1=a;tmp2:=tmp1;tmp3:=n
5、ottmp2;endif;b=tmp1andtmp3andcIk1;endprocess;endbhv1;逻辑功能模块程序核心Iibraryieee;useieee.std_Iogic_1164.aII;useieee.std_Iogic_unsigned.a11;useieee.std_1ogic_arith.aII;entityCORNAAisport(e1k,c1r,k,k1,1oad:instd_1ogic;c1r用于清除报警信号和关锁,k1,k代表1和O的按键开关,1oad为设置密码的开关11:inoutstd_1ogic;Iamp:outStC11OgiJVeGtor(7downt
6、o0);1amp接发光二极管,用于显示已经输入密码的个数If,a1m:outstd_1ogic);endCORNAA;architecturebhv2ofCORNAAissignaIshift,Iock:std_Iogic_vector(7downto0);signaIIam:std_Iogic_vector(7downto0);signaI1a:std_1ogic;beginprocess(cIk,cIr)beginifcIr=0,then1a=,0,;eIsifcIk,eventandcIk=1,thenifIoad=0,then1a=,;endif;endif;endprocess;pr
7、ocess(cIk,cIr)variabIea:integerrange0to8;beginifcIr=0,then1am=,00000000;shift=,OOOOOOOO;a:=0;1t=,0;1f=,0;a1m=,0,;eIsifcIk,eventandcIk=1,thenif1t=O,thenifa=8thenifk1=,0,thenshift=1,&shift(7downto1);输入一位密码“1Iam=,&Iam(7downto1);显示输入了一位密码a:=a+1;eIsifk=0thenshift=0,&shift(7downto1);输入一位密码“0Iam=,&Iam(7downto1);a:=a+1;endif;eIsea:=0;ifShift=IOCkthent=,;密码正确eIsef=,;一密码错误a1m=,;endif;endif;eIsifIa=thenifk1=10,then1ock=1,1ock(7downto1);Iam=,0,1am(7downto1);eIsifk=0,then1ock=,0,1ock(7downto1);Iam=0,&Iam(7downto1);endif;endif;endif;endprocess;1amp=1am;endbhv2;总体框图:五、总结