密码器的控制与设计.docx
- 文档编号:3790584
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:15
- 大小:312.70KB
密码器的控制与设计.docx
《密码器的控制与设计.docx》由会员分享,可在线阅读,更多相关《密码器的控制与设计.docx(15页珍藏版)》请在冰豆网上搜索。
密码器的控制与设计
目录
一概述
二方案设计与论证
三总原理图及元器件清单
四安装与调试
(一般分静态调试与动态调试两大内容)
五性能测试与分析
(要围绕设计要求中的各项指标进行)
六结论
七参考文献
一、概述
电子密码锁在生活中十分常见,在这我将设计一个具有较低成本的电子密码锁,本文讲述了我整个设计过程及收获。
讲述了电子密码锁的的工作原理以及各个模块的功能,并讲述了所有部分的设计思路,对各部分电路方案的选择、元器件的筛选、以及对它们的调试、对波形图的分析,到最后的总体图的分析。
二、方案设计与论证
(1)具有密码输入功能,密码最多为6位;
(2)设置退格键,以便删除输入错误的密码;
(3)在输入密码时数码管上只显示8,并根据输入位数依次横移;
(4)设置确认键,当确认键按下后,判断输入密码是否正确;
(5)当输入密码正确时,点亮发光二极管;当输入密码不正确时,发光二极管不亮并且蜂鸣器报警,重新输入,当三次密码输入不正确时,系统应锁定键盘10s
三、总原理图及元器件清单
1.总原理图
四安装与调试
五、性能测试与分析
程序包括六个逻辑元件,分别为:
数字按键输入、控制功能按键输入、时钟分频器、处理核心、输出处理和七段译码器。
3.1数字功能输入
3.1.1功能介绍
读取数字键0~9。
高电平表示按键未按下,低电平表示按键按下。
按照0~9顺序读取,只能输出1位数字。
输出4位二进制代码,“0000”~“1001”表示0~9,用“1010”表示无输入。
3.1.2数字输入
1.建立项目文件
2.建立设计文件
在管理窗口中选择File\New命令,建立文本编辑区,并在FileName文本框中输入shuzishuru.vhd,存盘。
3.编辑程序
在文本编辑区内,输入程序,程序如下:
libraryieee;
useieee.std_logic_1164.all;
entityshuzishuruis
port(numin:
INstd_logic_vector(9downto0);
numstate,clk:
INstd_logic;
numout:
OUTstd_logic_vector(3downto0));
endshuzishuru;
architectureEDAofshuzishuruis
signalstate:
std_logic;
signalmem:
std_logic_vector(9downto0);
begin
process(clk)
begin
ifclk'eventandclk='1'then
ifstate/=numstatethen
ifmem/=numinthen
casenuminis
when"1111111110"=>numout<="0000";
when"1111111101"=>numout<="0001";
when"1111111011"=>numout<="0010";
when"1111110111"=>numout<="0011";
when"1111101111"=>numout<="0100";
when"1111011111"=>numout<="0101";
when"1110111111"=>numout<="0110";
when"1101111111"=>numout<="0111";
when"1011111111"=>numout<="1000";
when"0111111111"=>numout<="1001";
whenothers=>numout<="1010";
endcase;
state<=numstate;
elsenumout<="1010";
endif;
mem<=numin;
endif;
endif;
endprocess;
endEDA;
4.保存文件并检查语法错误
在管理窗口中选择File/Project/Save&Check命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。
5.建立默认符号
在管理窗口中选择File/CreateDefaultSymbol命令,建立一个符号文件供顶层图形设计文件调用。
3.2控制功能输入
3.2.1功能介绍
读取控制功能按键-清除按键,修改密码,锁定,解锁。
高电平表示按键未按下,低电平表示按键按下。
按照“清除按键,修改密码,锁定,解锁”顺序读取,只能输出一位控制信号。
输出3位二进制代码,“001”~“100”表示“清除按键,修改密码,锁定,解锁”,用“000”表示无输入。
3.2.2程序输入
1.建立项目文件
2.建立设计文件
在管理窗口中选择File\New命令,建立文本编辑区,并在FileName文本框中输入gongnengshuru.vhd,存盘。
3.编辑程序
在文本编辑区内,输入程序,程序如下:
libraryieee;
useieee.std_logic_1164.all;
entitygongnengshuruis
port(conin:
INstd_logic_vector(3downto0);
constate,clk:
INstd_logic;
conout:
OUTstd_logic_vector(2downto0));
endgongnengshuru;
architectureEDAofgongnengshuruis
signalstate:
std_logic;
signalmem:
std_logic_vector(3downto0);
begin
process(clk)
begin
ifclk'eventandclk='1'then
ifconstate/=statethen
state<=constate;
ifmem/=coninthen
caseconinis
when"1110"=>conout<="001";--numberclear
when"1101"=>conout<="010";--changecode
when"1011"=>conout<="011";--lockstart
when"0111"=>conout<="100";--unlock
whenothers=>conout<="000";
endcase;
mem<=conin;
elseconout<="000";
endif;
endif;
endif;
endprocess;
endEDA;
4.保存文件并检查语法错误
在管理窗口中选择File/Project/Save&Check命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。
5.建立默认符号
在管理窗口中选择File/CreateDefaultSymbol命令,建立一个符号文件供顶层图形设计文件调用。
3.3时钟分频器
3.3.1功能介绍
十分频器,将频率将低以利用。
3.3.2程序输入
1.建立项目文件
2.建立设计文件
在管理窗口中选择File\New命令,建立文本编辑区,并在FileName文本框中输入fenpinqi.vhd,存盘。
3.编辑程序
在文本编辑区内,输入程序,程序如下:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityfenpinqiis
port(clkin:
instd_logic;
clkout:
outstd_logic);
endfenpinqi;
architectureEDAoffenpinqiis
signalfenp:
integerrange0to9;
signalclk:
std_logic;
begin
process(clkin)
begin
ifclkin'eventandclkin='1'then
fenp<=fenp+1;
iffenp=9then
ifclk='1'thenclk<='0';
elseclk<='1';
endif;
endif;
clkout<=clk;
endif;
endprocess;
endEDA;
4.保存文件并检查语法错误
在管理窗口中选择File/Project/Save&Check命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。
5.建立默认符号
在管理窗口中选择File/CreateDefaultSymbol命令,建立一个符号文件供顶层图形设计文件调用。
3.4处理核心
3.4.1功能介绍
处理核心,根据输入(数字输入以及控制功能输入)改变存储器状态、数码管显示以及LED灯显示。
3.4.2程序输入
1.建立项目文件
2.建立设计文件
在管理窗口中选择File\New命令,建立文本编辑区,并在FileName文本框中输入mimachuli.vhd,存盘。
3.编辑程序
在文本编辑区内,输入程序,程序如下:
libraryieee;
useieee.std_logic_1164.all;
entitymimachuliis
port(numin:
instd_logic_vector(3downto0);
conin:
instd_logic_vector(2downto0);
clk:
instd_logic;
dataa,datab,datac,datad:
outstd_logic_vector(3downto0);
ledr,ledg,alm,numout,conout:
outstd_logic);
endmimachuli;
architectureEDAofmimachuliis
typelockstateis(unlock,locked);
signalnuma,numb,numc,numd,codea,codeb,codec,coded:
std_logic_vector(3downto0);
signalnumstate,constate:
std_logic;
signallocksta:
lockstate;
begin
process(clk,numin,conin)
begin
ifclk'eventandclk='1'then
ifnumin/="1010"then
numd<=numc;
numc<=numb;
numb<=numa;
numa<=numin;
endif;
ifconin/="000"then
ifconin="001"then
numa<="0000";
numb<="0000";
numc<="0000";
numd<="0000";
elsifconin="010"then
iflocksta/=lockedthen
codea<=numa;
codeb<=numb;
codec<=numc;
coded<=numd;
endif;
elsifconin="011"then
iflocksta/=lockedthen
numa<="0000";
numb<="0000";
numc<="0000";
numd<="0000";
locksta<=locked;
endif;
elsifconin="100"then
iflocksta=lockedthen
if(numa=codeaandnumb=codebandnumc=codecandnumd=coded)
thenlocksta<=unlock;alm<='0';
elsealm<='1';
endif;
endif;
endif;
endif;
iflocksta=lockedthen
ledr<='1';
ledg<='0';
else
ledr<='0';
ledg<='1';
endif;
dataa<=numa;
datab<=numb;
datac<=numc;
datad<=numd;
ifnumstate='1'thennumstate<='0';
elsenumstate<='1';
endif;
ifconstate='1'thenconstate<='0';
elseconstate<='1';
endif;
numout<=numstate;
conout<=constate;
endif;
endprocess;
endEDA;
4.保存文件并检查语法错误
在管理窗口中选择File/Project/Save&Check命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。
5.建立默认符
在管理窗口中选择File/CreateDefaultSymbol命令,建立一个符号文件供顶层图形设计文件调用。
3.5报警处理
3.5.1功能介绍
当密码输入错误时,红灯亮,并且蜂鸣器发生响动。
3.5.2程序输入
1.建立项目文件
2.建立设计文件
在管理窗口中选择File\New命令,建立文本编辑区,并在FileName文本框中输入baojing.vhd,存盘。
3.编辑程序
在文本编辑区内,输入程序,程序如下:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitybaojingis
port(
clk:
instd_logic;
alm,clr:
instd_logic;
speak:
outstd_logic;
lamp:
outstd_logic
);
endbaojing;
architectureEDAofbaojingis
signalcount1:
std_logic_vector(1downto0);
begin
speaker:
process(clk,alm,clr)
begin
if(clr='0')then
speak<='0';
lamp<='0';
elsif(alm='1')then
speak<=count1
(1);
lamp<=count1
(1);
ifclk'eventandclk='1'then
if(count1>="10")then
count1<="00";
else
count1<=count1+1;
endif;
endif;
endif;
endprocess;
endEDA;
4.保存文件并检查语法错误
在管理窗口中选择File/Project/Save&Check命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。
5.建立默认符号
在管理窗口中选择File/CreateDefaultSymbol命令,建立一个符号文件供顶层图形设计文件调用。
3.6输出处理
3.6.1功能介绍
根据密码处理提供的数码管数据刷新显示数字,需要配合七段译器。
3.6.2程序输入
1.建立项目文件
2.建立设计文件
在管理窗口中选择File\New命令,建立文本编辑区,并在FileName文本框中输入shuchu.vhd,存盘。
3.编辑程序
在文本编辑区内,输入程序,程序如下:
libraryieee;
useieee.std_logic_1164.all;
entityshuchuis
port(dataa,datab,datac,datad:
instd_logic_vector(3downto0);
clk:
instd_logic;
dataout:
outstd_logic_vector(3downto0);
outsel:
outstd_logic_vector(1downto0));
endshuchu;
architectureEDAofshuchuis
signaltimer:
std_logic_vector(1downto0);
begin
process(clk)
begin
ifclk'eventandclk='1'then
iftimer="00"then
dataout<=dataa;
outsel<="00";
timer<="01";
elsiftimer="01"then
dataout<=datab;
outsel<="01";
timer<="10";
elsiftimer="10"then
dataout<=datac;
outsel<="10";
timer<="11";
else
dataout<=datad;
outsel<="11";
timer<="00";
endif;
endif;
endprocess;
endEDA;
4.保存文件并检查语法错误
在管理窗口中选择File/Project/Save&Check命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。
5.建立默认符号
在管理窗口中选择File/CreateDefaultSymbol命令,建立一个符号文件供顶层图形设计文件调用。
3.7七段译码器
3.7.1功能介绍
把位2进制数翻译成数码管代码。
3.7.2程序输入
1.建立项目文件
2.建立设计文件
在管理窗口中选择File\New命令,建立文本编辑区,并在FileName文本框中输入LED7.vhd,存盘。
3.编辑程序
在文本编辑区内,输入程序,程序如下:
libraryieee;
useieee.std_logic_1164.all;
entityLED7is
port(datain:
INstd_logic_vector(3downto0);
dataout:
OUTstd_logic_vector(6downto0));
endLED7;
architectureEDAofLED7is
begin
process(datain)
begin
casedatainis
when"0000"=>dataout<="1111110";
when"0001"=>dataout<="0110000";
when"0010"=>dataout<="1101101";
when"0011"=>dataout<="1111001";
when"0100"=>dataout<="0110011";
when"0101"=>dataout<="1011011";
when"0110"=>dataout<="1011111";
when"0111"=>dataout<="1110000";
when"1000"=>dataout<="1111111";
when"1001"=>dataout<="1111011";
whenothers=>dataout<="0000000";
endcase;
endprocess;
endEDA;
4.保存文件并检查语法错误
在管理窗口中选择File/Project/Save&Check命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。
5.建立默认符号
在管理窗口中选择File/CreateDefaultSymbol命令,建立一个符号文件供顶层图形设计文件调用。
六、结论
可以实现密码的锁存于密码的重置,若输入错误密码,则蜂鸣器报警
七、心得体会
通过此次课设更加理解了vhdl语言的使用,最重要的是会使用内部的虚拟信号,使之更加灵活的利用vhdl语言的使用,vhdl的灵活使用更加扩展了它的使用.
八、参考文献
《数字电子技术基础》(第五版)
《EDA技术与实验》
电子工程系EDA技术设计与实验课程设计成绩评定表
专业:
电子信息工程班级:
学号:
姓名:
课题名称
密码锁的设计与控制
设计任务与要求
总体设计要求:
通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA技术解决一些简单的电子设计问题。
设计任务:
设计一个由四位数字构成的电子密码锁
指导教师评语
建议成绩:
指导教师:
课程小组评定
评定成绩:
课程负责人:
年月日
.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码 控制 设计