版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上目录第一章 概要 1.1 背景简介1.2设计要求:第二章 设计思路2.1端口定义2.2总体结构2.3 设计方案第三章 单元电路设计 3.1 简述 3.2 密码锁输入电路的设计3.3 密码控制电路的设计3.3.1VHDL源程序3.3.2仿真波形3.4密码显示电路的设计 3.4.1 密码锁显示电路设计简介3.4.2 VHDL程序第四章 整体组装4.1 VHDL源程序或原理图4.2 整体仿真波形第五章 设计体会第一章 概要1.1 背景简介:数字密码锁随着电子工业的发展,数字电子技术已经深入到了人们生活的各个层面, 而且各种各样的电子产品也正在日新月异地向着高精尖技术发展。由
2、于电子产品 的功能不断增加,使用也越来越方便,有些产品已经成为了人们日常生活中不可 缺少的必备物品。发展历史悠久的机械式门锁,因其功能单一,安全性能较差等 缺点,必将被新一代的电子门锁所代替。新颖的多功能电子门锁,集电子门锁、 防盗报警器,门铃等功能于一身,而且还具有定时器呼唤,断电自动报知,显示 屋内有无人和自动留言等诸多附加功能。在未来的生活中,数字密码锁必将在学 领域再创新的成绩,将给我们的生活带来更大的便利,前景不可估量。1.2 设计要求(1).具有密码输入功能;(2). 设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作, 用红灯亮、绿灯熄灭表示关锁,用绿灯亮
3、、红灯熄灭表示开锁;(3). 从第一个按钮触动后的 5 秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无 法再打开,并由扬声器发出持续 20 秒的报警信号。第二章 设计思路2.1 端口定义:输入:采样时钟 clk;译码输入 data3.0; 输出:七段数码管驱动 q6.0;数值译码 q13.0.按键指示key.2.2 总体结构:(1) 显示器(2) VHDL 程序输入(3) FPGA 芯片 扬声器2.3 设计方案密码锁控制器是硬件测试密码锁控制器是硬件与软件的结合。根据设计要求,决定以FPGA芯片和VHDL语言设计此电子密码锁。用一片FPGA芯片实现,从而大大简化了系统结构,降低了成本,
4、提高了系统的保密性和可靠性。这种设计不仅简化了系统结构,降低了成本,更提高了系统的可靠性和保密性。另外,采用可编程逻辑器件开发的数字系统,方便地升级和改进。根据系统的设计要求,系统设计采用自顶向下的设计方法。顶层设计采用原理图的设计方式和系统的整体组装,分别由密码锁输入模块、密码锁控制模块和密码锁显示译码模块等部分组成。即按照这三个组成模块定义相应的芯片引脚和输入输出的参数。第三章 单元电路设计3.1简述:密码锁的内部结构及主要功能密码锁的内部结构即密码锁控制器由密码锁主体部分和外部指示电路组成。其中密码锁主要作用是接收输入的密码并进行密码的验证操作;外部指示电路的主要作用是用LED数码管显示
5、输入的密码以及根据密码验证的结果给出不同的LED指示灯和数码管显示;当连续输入三次次错误密码时,启动报警装置,报警装置则采用扬声器。密码锁控制器的主要功能有: (1)密码输入:每按下一个键,要求在数码管上显示,并依次左移。 (2)密码校验:如果有按键按下,LED1亮起,直到松开该按键;用LED2指示门的状 态,也就是密码校验结果,如果密码校验正确,LED2亮起,否则如果密码校验 错误LED2闪烁4次,然后熄灭,表明密码错误。 (3)错误报警:密码输入连续三次错误开始报警。 (4)密码修改:输入密码正确后5秒内按*号键输入要设置和更改的密码,按#号键确 认密码设置与更改,连续输入两次,则密码设置
6、成功。3.2 密码锁输入电路的设计 密码锁输入模块由时序产生电路、键盘扫描电路、键盘译码电路和按键存储电路组成。通过这几个部分的组成可以将键盘输入的信号有时序的扫描存储而后传入控制模块来控制密码锁的动作。因此,定义键盘按键的位置和数码的关系如下表所示:扫描000000010101101010111111输出信号001101010110001101010110001101010110001101010110按键号123456789*0#备注:扫描位置是CSR1.0,键盘输出信号SEL3.2.1.0,按键号即为键盘的位置密码锁输入电路仿真图如下:3.3 密码锁控制器设计密码锁控制电路软键盘的实现,
7、通常在一个键盘中使用了一个瞬时接触开关,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的 I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的 I/O 口的输入将被拉低得到逻辑0。3.3.1 VHDL 源程序library ieee;use ieee.std_logic_1164.all;entity decoder is port(clk: in std_logic;
8、 -译码器元件声明 data: in std_logic_vector(3 downto 0); q: out std_logic_vector(6 downto 0); q1: out std_logic_vector(3 downto 0) );
9、end decoder; architecture rt1 of decoder is begin process(clk,data) begin if rising_edge(clk) then case data is when "0000"=>q<=""q1<="0000" when &q
10、uot;0001"=>q<=""q1<="0001" when "0010"=>q<=""q1<="0010" when "0011"=>q<=""q1<="0011" when others=>NULL; end case;end if;en
11、d process;end rt1; 3.3.2 密码锁控制模块仿真图:3.4 密码显示电路的设计 3.4.1 密码锁显示电路设计简介七段数码管是电子开发过程中常用的输出显示设备。在本设计中使用的是 8 个四位一 体、共阴极型七段数码管。 由于七段数码管公共端连接到 GND (共阴极型) 当数码管的中的一个段被输入高电平, 则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相反。四位一体的七段数码 管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管 的 a、b、c、d、e、f、g、h、dp 都连在了一起,8 个数码管分别由各自的位选信号来控制
12、, 被选通的数码管显示数据,其余关闭。 在键盘获取到行值和列值以后,组合成一个 8 位的数据,根据实现不同的编码在对每 个按键进行匹配,找到键值后由 7 段码管显示即可。3.4.2 显示电路的VHDL程序如下:library ieee;use ieee.std_logic_1164.all;entity led_disp isport( datain:in std_logic_vector(3 downto 0); dataout:out std_logic_vector(7 downto 0) );end led_disp;architecture rtl of led_disp isbeg
13、in process(datain) begin case datain is when "1010"=>dataout<="" -0 when "0001"=>dataout<="" -1 when "0010"=>dataout<="" -2 when "0011"=>dataout<="" -3 when "0100"=>dataout<="
14、" -4 when "0101"=>dataout<="" -5 when "0110"=>dataout<="" -6 when "0111"=>dataout<="" -7 when "1000"=>dataout<="" -8 when "1001"=>dataout<="" -9 when others=>null
15、; end case; end process;end rtl;第四章 整体组装 4.1密码锁整体原理图VHDL源程序:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity exp19 is port( Clk : in std_logic; -时钟信号 Rst : in std_logic; -复位信号 Kr : in std_logic_vector(3 downto 0); -键盘行 Kc : buffer std_l
16、ogic_vector(3 downto 0); -键盘列 SPK : out std_logic; -扬声器输出 KEY_State : out std_logic; -按键指示 Display : out std_logic_vector(7 downto 0); -七段码管显示 SEG_SEL : buffer std_logic_vector(2 downto 0); -七段码管片选 end exp19; architecture behave of exp19 is signal keyr,keyc : std_logic_vector(3 downto 0); signal kco
17、unt : std_logic_vector(2 downto 0); signal kflag1,kflag2 : std_logic; signal buff1,buff2,buff3,buff4,buff5,buff6 : integer range 0 to 15; signal push_num : integer range 0 to 15; -按键次数 signal Disp_Temp : integer range 0 to 15; signal Disp_Decode : std_logic_vector(7 downto 0); signal SEC1,SEC10 : in
18、teger range 0 to 9; signal Clk_Count1 : std_logic_vector(3 downto 0); -1KHz时钟分频计数器 signal Clk_Count2 : std_logic_vector(9 downto 0); -2Hz时钟分频计数器 signal Clk1KHz : std_logic; signal Clk2Hz : std_logic; signal Clk1Hz : std_logic; signal Error_Num : integer range 0 to 3; signal Error_Flag : std_logic; s
19、ignal Error_Count : std_logic_vector(2 downto 0); signal Music_Count : std_logic_vector(2 downto 0); begin process(Clk) begin if(Clk'event and Clk='1') then if(Clk_Count1<10) then Clk_Count1<=Clk_Count1+1; else Clk_Count1<="0001" end if; end if; end process; Clk1KHz<
20、;=Clk_Count1(2); process(Clk1KHz) begin if(Clk1KHz'event and Clk1KHz='1') then if(Clk_Count2<1000) then Clk_Count2<=Clk_Count2+1; else Clk_Count2<="" end if; end if; end process; Clk2Hz<=Clk_Count2(9); process(Clk2Hz) begin if(Clk2Hz'event and Clk2Hz='1'
21、) then Clk1Hz<=not Clk1Hz; end if; end process; process(Clk1KHz) -扫描键盘 begin if(Clk1KHz'event and Clk1KHz='1') then if(Kr="1111") then kflag1<='0' kcount<=kcount+1; if(kcount=0) then kc<="1110" elsif(kcount=1) then kc<="1101" elsif(kco
22、unt=2) then kc<="1011" else kc<="0111" end if; else kflag1<='1' keyr<=Kr; keyc<=Kc; end if; kflag2<=kflag1; end if; end process; KEY_State<=kflag1; process(Clk1KHz,Rst) -扫描键盘 begin if(Rst='0') then push_num<=0; elsif(Clk1KHz'event and C
23、lk1KHz='1') then if(push_num=6) then push_num<=0; elsif(kflag1='0' and kflag2='1') then push_num<=push_num+1; end if; end if; end process; process(Clk2Hz,Rst) begin if(Rst='0' or Error_Flag<='0') then Error_Count<="000" elsif(Clk2Hz'e
24、vent and Clk2Hz='1' and Error_Flag<='1') then Error_Count<=Error_Count+1; end if; end process; process(Clk) -报警声音分频 begin if(Clk'event and Clk='1') then Music_Count<=Music_Count+1; end if; end process; process(Clk) -超出错误次数,开始报警 begin if(Error_Num>=3) then if(C
25、lk1Hz='1') then SPK<=Music_Count(2); else SPK<=Music_Count(1); end if; end if; end process; process(Clk1KHz,Rst) -显示右移 begin if(Rst='0' or push_num=0) then -复位时,全灭 buff1<=15; buff2<=15; buff3<=15; buff4<=15; buff5<=15; elsif(Clk1KHz'event and Clk1KHz='1
26、39;) then if(kflag1='1' and kflag2='0' and (keyr="1110" or keyr="1011")and keyc/="0111")or keyr="1101") then buff1<=buff2; buff2<=buff3; buff3<=buff4; buff4<=buff5; buff5<=buff6; end if; end if; end process; process(clk,data) beg
27、in if rising_edge(clk) then case data is when "0000"=>q<=""q1<="0000" when"0001"=>q<=""q1<="0001" when "0010" =>q<=""q1<="0010" when "0011"=> q<=""q1<=&qu
28、ot;0011" when "0100"=> q<=""q1<="0100" when "0101"=> q<=""q1<="0101" when "0110"=> q<=""q1<="0110"end if;end case; end process; process(Clk) begin if(Clk'event and Clk='1') then -扫描累加 SEG_SEL<=SEG_SEL+1; Display<=Disp_Decode;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山东爱普电气设备有限公司招聘10人笔试参考题库及答案解析
- 2026楚雄天立学校招聘笔试模拟试题及答案解析
- 南京市2025江苏省环境监测中心招聘编外专业技术人员1人(第六批)笔试历年参考题库典型考点附带答案详解
- 北京市2025商务部外贸发展事务局招聘23人笔试历年参考题库典型考点附带答案详解
- 北京市2025北京市公园管理中心所属事业单位招聘111人笔试历年参考题库典型考点附带答案详解
- 北京市2025中国工艺美术馆招聘2人笔试历年参考题库典型考点附带答案详解
- 凉山州2025四川凉山州盐源县考核招聘硕士研究生为事业单位人员10人笔试历年参考题库典型考点附带答案详解
- 六安市2025安徽六安市裕安区引进事业单位高层次和急需紧缺人才32人笔试历年参考题库典型考点附带答案详解
- 保靖县2025湖南湘西保靖县事业单位招聘87人笔试历年参考题库典型考点附带答案详解
- 2026西安市未央区大明宫颐和郡幼儿园招聘(2人)笔试备考题库及答案解析
- (四调)武汉市2026届高三毕业生四月调研考试语文试卷(含答案及解析)
- 2025年西藏初二学业水平地理生物会考试卷题库及答案
- 2026年消毒技术副高能力检测试卷含答案详解(培优A卷)
- 一次函数的概念课件2025-2026学年人教版八年级数学下册
- 2026年福建建工集团有限责任公司校园招聘笔试参考题库及答案解析
- 2026年能源集成托管运营协议
- 《女性盆底重建手术植入物并发症诊疗中国专家共识》
- 第10课养成遵纪守法好习惯 第一框(课件)-【中职专用】2025-2026学年中职思政《职业道德与法治》(高教版2023·基础模块)
- 2025-2030中国蓄能器市场竞争策略及发展前景态势剖析研究报告
- 小贷公司业务培训课件
- (正式版)DB51∕T 3336-2025 《零散天然气橇装回收安全规范》
评论
0/150
提交评论