1、密码器的控制与设计 目 录一 概 述 二 方案设计与论证三 总原理图及元器件清单四 安装与调试(一般分静态调试与动态调试两大内容)五 性能测试与分析(要围绕设计要求中的各项指标进行)六 结论七 参考文献 一、概述 电子密码锁在生活中十分常见,在这我将设计一个具有较低成本的电子密码锁,本文讲述了我整个设计过程及收获。讲述了电子密码锁的的工作原理以及各个模块的功能,并讲述了所有部分的设计思路,对各部分电路方案的选择、元器件的筛选、以及对它们的调试、对波形图的分析,到最后的总体图的分析。二、方案设计与论证(1)具有密码输入功能,密码最多为6位;(2)设置退格键,以便删除输入错误的密码;(3)在输入密
2、码时数码管上只显示8,并根据输入位数依次横移;(4)设置确认键,当确认键按下后,判断输入密码是否正确;(5)当输入密码正确时,点亮发光二极管;当输入密码不正确时,发光二极管不亮并且蜂鸣器报警,重新输入,当三次密码输入不正确时,系统应锁定键盘10s三、总原理图及元器件清单1总原理图 四安装与调试五、性能测试与分析 程序包括六个逻辑元件,分别为:数字按键输入、控制功能按键输入、时钟分频器、处理核心、输出处理和七段译码器。3.1 数字功能输入3.1.1 功能介绍读取数字键09。高电平表示按键未按下,低电平表示按键按下。按照09顺序读取,只能输出1位数字。输出4位二进制代码,“0000”“1001”表
3、示09,用“1010”表示无输入。3.1.2 数字输入1.建立项目文件2.建立设计文件在管理窗口中选择FileNew命令,建立文本编辑区,并在File Name文本框中输入shuzishuru.vhd,存盘。3.编辑程序在文本编辑区内,输入程序,程序如下:library ieee; use ieee.std_logic_1164.all; entity shuzishuru is port( numin:IN std_logic_vector(9 downto 0); numstate,clk:IN std_logic; numout:OUT std_logic_vector(3 downto
4、 0); end shuzishuru; architecture EDA of shuzishuru is signal state:std_logic; signal mem:std_logic_vector(9 downto 0); begin process(clk) begin if clkevent and clk=1 then if state/=numstate then if mem/=numin then case numin is when 1111111110 = numout numout numout numout numout numout numout numo
5、ut numout numout numout=1010; end case; state=numstate; else numout=1010; end if; mem=numin; end if; end if; end process; end EDA;4.保存文件并检查语法错误在管理窗口中选择File/Project/Save&Check命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。5.建立默认符号在管理窗口中选择File/Create Default Symbol命令,建立一个符号文件供顶层图形设计文件调用。3.2 控制功能输入3.2.1 功能介绍读取控制功能
6、按键清除按键,修改密码,锁定,解锁。高电平表示按键未按下,低电平表示按键按下。按照“清除按键,修改密码,锁定,解锁”顺序读取,只能输出一位控制信号。输出3位二进制代码,“001”“100”表示“清除按键,修改密码,锁定,解锁”,用“000”表示无输入。3.2.2 程序输入1.建立项目文件2.建立设计文件在管理窗口中选择FileNew命令,建立文本编辑区,并在File Name文本框中输入gongnengshuru.vhd,存盘。3.编辑程序在文本编辑区内,输入程序,程序如下:library ieee; use ieee.std_logic_1164.all; entity gongnengsh
7、uru is port( conin:IN std_logic_vector(3 downto 0); constate,clk:IN std_logic; conout:OUT std_logic_vector(2 downto 0); end gongnengshuru; architecture EDA of gongnengshuru is signal state:std_logic; signal mem:std_logic_vector(3 downto 0); begin process(clk) begin if clkevent and clk=1 then if cons
8、tate/=state then state conout conout conout conout conout=000; end case; mem=conin; else conout=000; end if; end if; end if; end process; end EDA;4.保存文件并检查语法错误在管理窗口中选择File/Project/Save&Check命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。5.建立默认符号在管理窗口中选择File/Create Default Symbol命令,建立一个符号文件供顶层图形设计文件调用。3.3 时钟分频器3
9、.3.1 功能介绍十分频器,将频率将低以利用。3.3.2 程序输入1.建立项目文件2.建立设计文件在管理窗口中选择FileNew命令,建立文本编辑区,并在File Name文本框中输入fenpinqi.vhd,存盘。3.编辑程序在文本编辑区内,输入程序,程序如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fenpinqi is port( clkin:in std_logic; clkout:out std_logic); end fenpinqi; architectu
10、re EDA of fenpinqi is signal fenp:integer range 0 to 9; signal clk:std_logic; begin process(clkin) begin if clkinevent and clkin=1 then fenp=fenp+1; if fenp=9 then if clk=1 then clk=0; else clk=1; end if; end if; clkout=clk; end if; end process; end EDA;4.保存文件并检查语法错误在管理窗口中选择File/Project/Save&Check命令
11、,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。5.建立默认符号在管理窗口中选择File/Create Default Symbol命令,建立一个符号文件供顶层图形设计文件调用。3.4 处理核心3.4.1 功能介绍处理核心,根据输入(数字输入以及控制功能输入)改变存储器状态、数码管显示以及LED灯显示。3.4.2 程序输入1.建立项目文件2.建立设计文件在管理窗口中选择FileNew命令,建立文本编辑区,并在File Name文本框中输入mimachuli.vhd,存盘。3.编辑程序在文本编辑区内,输入程序,程序如下:library ieee; use ieee.std_lo
12、gic_1164.all; entity mimachuli is port( numin:in std_logic_vector(3 downto 0); conin:in std_logic_vector(2 downto 0); clk:in std_logic; dataa,datab,datac,datad:out std_logic_vector(3 downto 0); ledr,ledg,alm,numout,conout:out std_logic); end mimachuli; architecture EDA of mimachuli is type lockstate
13、 is (unlock,locked); signal numa,numb,numc,numd,codea,codeb,codec,coded:std_logic_vector(3 downto 0); signal numstate,constate:std_logic; signal locksta:lockstate; begin process(clk,numin,conin) begin if clkevent and clk=1 then if numin/=1010 then numd=numc; numc=numb; numb=numa; numa=numin; end if;
14、 if conin/=000 then if conin=001 then numa=0000; numb=0000; numc=0000; numd=0000; elsif conin=010 then if locksta/=locked then codea=numa; codeb=numb; codec=numc; coded=numd; end if; elsif conin=011 then if locksta/=locked then numa=0000; numb=0000; numc=0000; numd=0000; locksta=locked; end if; elsi
15、f conin=100 then if locksta=locked then if (numa=codea and numb=codeb and numc=codec and numd=coded) then locksta=unlock; alm=0; else alm=1; end if; end if; end if; end if; if locksta=locked then ledr=1; ledg=0; else ledr=0; ledg=1; end if; dataa=numa; datab=numb; datac=numc; datad=numd; if numstate
16、=1 then numstate=0; else numstate=1; end if; if constate=1 then constate=0; else constate=1; end if; numout=numstate; conout=constate; end if; end process; end EDA;4.保存文件并检查语法错误在管理窗口中选择File/Project/Save&Check命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。5.建立默认符在管理窗口中选择File/Create Default Symbol命令,建立一个符号文件供顶层图形
17、设计文件调用。3.5 报警处理3.5.1 功能介绍当密码输入错误时,红灯亮,并且蜂鸣器发生响动。3.5.2 程序输入1.建立项目文件2.建立设计文件在管理窗口中选择FileNew命令,建立文本编辑区,并在File Name文本框中输入baojing.vhd,存盘。3.编辑程序在文本编辑区内,输入程序,程序如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity baojing is port( clk:in std_logic; alm,clr:in std_logic; spea
18、k:out std_logic; lamp:out std_logic ); end baojing; architecture EDA of baojing is signal count1:std_logic_vector(1 downto 0); begin speaker:process(clk,alm,clr) begin if (clr=0) then speak=0; lamp=0; elsif (alm=1) then speak=count1(1); lamp=10) then count1=00; else count1=count1+1; end if; end if;e
19、nd if;end process; end EDA;4.保存文件并检查语法错误在管理窗口中选择File/Project/Save&Check命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。5.建立默认符号在管理窗口中选择File/Create Default Symbol命令,建立一个符号文件供顶层图形设计文件调用。 3.6 输出处理3.6.1 功能介绍根据密码处理提供的数码管数据刷新显示数字,需要配合七段译器。3.6.2 程序输入1.建立项目文件2.建立设计文件在管理窗口中选择FileNew命令,建立文本编辑区,并在File Name文本框中输入shuchu.vhd,
20、存盘。3.编辑程序在文本编辑区内,输入程序,程序如下:library ieee; use ieee.std_logic_1164.all; entity shuchu is port( dataa,datab,datac,datad:in std_logic_vector(3 downto 0); clk:in std_logic; dataout:out std_logic_vector(3 downto 0); outsel:out std_logic_vector(1 downto 0); end shuchu; architecture EDA of shuchu is signal
21、timer:std_logic_vector(1 downto 0); begin process(clk) begin if clkevent and clk=1 then if timer=00 then dataout=dataa; outsel=00; timer=01; elsif timer=01 then dataout=datab; outsel=01; timer=10; elsif timer=10 then dataout=datac; outsel=10; timer=11; else dataout=datad; outsel=11; timer dataout da
22、taout dataout dataout dataout dataout dataout dataout dataout dataout dataout=0000000; end case; end process; end EDA;4.保存文件并检查语法错误在管理窗口中选择File/Project/Save&Check命令,可将变异的文件存盘并检查语法错误,如果有错误则返回编辑区内修改。5.建立默认符号在管理窗口中选择File/Create Default Symbol命令,建立一个符号文件供顶层图形设计文件调用。六、结论可以实现密码的锁存于密码的重置,若输入错误密码,则蜂鸣器报警七、 心
23、得体会通过此次课设更加理解了vhdl语言的使用,最重要的是会使用内部的虚拟信号,使之更加灵活的利用vhdl语言的使用,vhdl的灵活使用更加扩展了它的使用.八、参考文献数字电子技术基础(第五版)EDA技术与实验 电子工程系EDA技术设计与实验课程设计成绩评定表专业:电子信息工程 班级: 学号: 姓名: 课题名称密码锁的设计与控制设计任务与要求总体设计要求: 通过本课程的学习使学生掌握可编程器件、EDA开发系统软件、硬件描述语言和电子线路设计与技能训练等各方面知识;提高工程实践能力;学会应用EDA技术解决一些简单的电子设计问题。设计任务:设计一个由四位数字构成的电子密码锁指导教师评语 建议成绩: 指导教师:课程小组评定评定成绩: 课程负责人: 年 月 日 .
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1