密码器的控制与设计.docx

上传人:b****5 文档编号:3790584 上传时间:2022-11-25 格式:DOCX 页数:15 大小:312.70KB
下载 相关 举报
密码器的控制与设计.docx_第1页
第1页 / 共15页
密码器的控制与设计.docx_第2页
第2页 / 共15页
密码器的控制与设计.docx_第3页
第3页 / 共15页
密码器的控制与设计.docx_第4页
第4页 / 共15页
密码器的控制与设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

密码器的控制与设计.docx

《密码器的控制与设计.docx》由会员分享,可在线阅读,更多相关《密码器的控制与设计.docx(15页珍藏版)》请在冰豆网上搜索。

密码器的控制与设计.docx

密码器的控制与设计

目录

一概述

二方案设计与论证

三总原理图及元器件清单

四安装与调试

(一般分静态调试与动态调试两大内容)

五性能测试与分析

(要围绕设计要求中的各项指标进行)

六结论

七参考文献

 

一、概述

电子密码锁在生活中十分常见,在这我将设计一个具有较低成本的电子密码锁,本文讲述了我整个设计过程及收获。

讲述了电子密码锁的的工作原理以及各个模块的功能,并讲述了所有部分的设计思路,对各部分电路方案的选择、元器件的筛选、以及对它们的调试、对波形图的分析,到最后的总体图的分析。

二、方案设计与论证

(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技术解决一些简单的电子设计问题。

设计任务:

设计一个由四位数字构成的电子密码锁

 

指导教师评语

 

建议成绩:

指导教师:

 

课程小组评定

 

评定成绩:

课程负责人:

年月日

.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1