四位电子密码锁设计剖析

合集下载

4位数字密码锁的设计

4位数字密码锁的设计

4位数字密码锁的设计
4位数字密码锁是一种比较常见的安全锁,可以应用于日常生活,如保险箱、抽屉等
物品,用以保护一些隐私物品,也有可以用在某些重要管理场所中。

由于比较简单,通常
被广泛使用。

1、首先,4位数字密码锁的外壳表面一般是由硬质金属或硬质塑料制成,采用了单重质量设计,保证更加坚固可靠,用于避免被他人拆卸改装和刮伤等情况。

2、其次,4位数字密码锁设有锁体按钮,按钮可以设置为永久锁死,也可以设置一次锁死。

只有输入正确的4位数字密码才可以解锁,这样就可以避免不安全因素,提高安全性。

3、此外,锁体中装有一个电路板,用于防止锁被轻易开锁,增加锁的安全性。

例如,当用户输入了三次错误的密码之后,电路板就会被自动锁死,直到指定的时间才能解锁。

4、最后,4位数字密码锁一般具有双向加锁功能,可以锁住保险箱或抽屉内部的两侧,增强财产安全。

总体而言,4位数字密码锁设计的功能丰富,安全性高,不需要复杂的技术才可以快
速操作,所以受到了很多消费者的青睐。

四位数字密码锁

四位数字密码锁

数字电路基础实验设计报告班级:521姓名:李世龙学号:2010052106设计题目:四位数字密码锁指导老师:张光普四位密码锁一设计任务:通过组合逻辑电路来实现四位密码锁功能。

当输入正确的密码时LED灯亮但蜂鸣器不响,输入错误密码时LED灯不亮但蜂鸣器响。

当关闭密码锁开关时无论输入什么样的密码LED灯都亮蜂鸣器都响。

密码的输入由开关的闭合与断开控制高低电平进行密码的输入。

二设计原理:开关J1,J2, J3,J4通过接低电平或者接入高电平进行密码的输入,J5为密码锁的开关当它接入高低电平来控制密码锁是否工作。

其他的门电路来实现密码锁转换功能。

真值表J5 J1 J2 J3 J4 LEDBUZZER0 ×××× 1 11 0 0 0 0 0 11 0 0 0 1 0 11 0 0 1 0 0 11 0 0 1 1 011 0 1 0 0 0 11 0 1 0 1 0 11 0 1 1 0 0 11 0 1 1 1 0 11 1 0 0 0 0 11 1 0 0 1 0 11 1 0 1 0 0 11 1 0 1 1 0 11 1 1 0 0 101 1 1 0 1 0 11 1 1 1 0 0 11 1 1 1 1 0 1三测量和调试结果:当J5接入电平密码锁处于非工作状态无论输入密码是什么LED灯都会亮起,蜂鸣器会一直响。

当J5接入高电平时密码锁处于正常工作状态,当输入正确的密码1100时即J1,J2接入高电平J3,J4接入低电平时LED灯会亮但蜂鸣器不会响,当输入其他密码时均为错误密码LED灯不亮蜂鸣器会响。

按照设计原理图接好电路后发现输入正确的密码LED灯会亮,但输入错误的密码和密码锁处于非工作状态时蜂鸣器不响。

通过对电路的检查发现蜂鸣器的正负接反了重新改正电路,电路正常工作设计任务完成四参考文献【1】阎石.数字电子技术基础.第五版.北京:高等教育出版社。

四位密码锁电路课程设计报告

四位密码锁电路课程设计报告

四位密码锁电路课程设计报告一、设计要求设计一种四位密码锁电路,需要具备以下功能:1. 开关控制:设有一个开关,可以开启或关闭密码锁电路。

2. 设置密码:密码为四位数字,可以自由设置。

3. 输入密码:密码通过数码管实时显示,可以输入四位数字的密码。

4. 锁定/解锁:输入正确的密码后,可以解锁,否则锁定密码锁。

5. 报警提示:在输入错误密码超过三次的情况下,会有报警提示。

二、电路设计1. 功能分析要实现以上要求的四位密码锁设计,可以将电路分为以下部分:1.1 时钟信号控制器:使用定时器生成一个,50ms的定时器中断来产生时钟信号,控制键盘扫描和密码输送。

1.2 数码管驱动:使用74LS47电路进行数码管动态扫描驱动。

同时,用4094低频同步移位寄存器输出数码管所显示的数字。

1.3 锁控制电路:使用继电器电路来实现锁的控制。

1.4 按键输入电路:使用74LS74 D触发器和IP3386A电位器来实现按键的输入。

1.5 密码比较电路:使用四路与非门来进行密码的比较操作。

1.6 报警提示:使用蜂鸣器进行声音提示。

2. 详细设计2.1 时钟信号控制器时钟信号控制器由XTAL时钟电路、定时器电路和键盘扫描电路组成。

2.1.1XTAL时钟电路XTAL时钟电路的工作原理是在石英晶体的两端加了一对金属片,当晶体被振动时,金属片之间产生的压电效应会生成一个稳定的频率和幅度的交变电压信号,这个信号的频率稳定高,精度高。

因此本电路选用4MHZ的外接石英晶体。

2.1.2 定时器电路定时器电路主要由1个555定时器芯片构成。

555定时器芯片是一种多功能集成电路,主要有两种工作方式:单稳态和多稳态。

本电路采用555定时器来实现一个50ms定时器。

2.1.3 键盘扫描电路键盘采用4×3的矩阵键盘,采用行列扫描方式进行扫描。

用74LS74 D触发器将键盘的行信号和处理器的时钟信号连接,通过对D触发器读写的方式来实现行信号的输入和输出。

基于单片机的四位电子密码锁的设计

基于单片机的四位电子密码锁的设计
//#define Busy 0x80//用于检测LCM状态字中的Busy标识
#define w 4//定义密码位数
sbit lcd1602_rs=P2^7;
sbit lcd1602_rw=P2^6;
sbห้องสมุดไป่ตู้t lcd1602_en=P2^5;
sbit wxbz=P3^6;
sbit Scl=P3^4;//24C02串行时钟
(1)密码输入、显示及开锁功能;
(2)密码重置(两次输入旧密码正确后,再两次输入新密码无误则修改成功);
(3)上锁功能;
(4)声光提示(蜂鸣器和发光二极管);
(5)错误报警、输入次数任意更改(0-9次);
(6)液晶屏省电/正常模式任意切换;
(7)产生随机密码并可一键保存;
(8)输入密码的显示/隐藏任意切换;
第2章 硬件电路设计
图2-1-1 AT89S52最小工作系统
1、时钟电路:
单片机工作的时间基准,决定单片机工作速度。时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。AT89S51单片机时钟频率范围:0—33MHz。本设计晶振选择频率为12MHZ,电容选择30pF如图(3-4)。经计算得单片机工作胡机器周期为:
电子密码锁的设计与总结报告
摘要:
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。
本次设计使用ATMEL公司的AT89S51单片机为芯片主体,采用AT24C02为掉电存储器的芯片。这种芯片稳定性高,成本低,还能扩展很多功能。如红外探测技术,指纹识别技术,语音识别技术,图像识别技术等。这些扩展的技术国外发展的比较迅速,有些已经投入使用。本设计没有采用这些扩展。其主要具有如下功能:

四位数字密码锁设计

四位数字密码锁设计

电子科技大学数字电路课程设计报告题目:保险箱用四位数字代码锁院系:专业:学号:学生姓名:指导教师:保险箱用四位数字代码锁一.设计要求:设计一个保险箱用的4位数字代码锁,该锁有规定的地址代码A、B、C、D4个输入端和一个开箱钥匙孔信号E的输入端,锁的代码由实验者自编。

当用钥匙开箱时,如果输入的4个代码正确,保险箱被打开;否则,电路将发出警报(可用发光二极管亮表示)。

具体要求:1)写出改组合逻辑电路的分析和设计方法;2)参考有关资料画出原理图,找出要使用的芯片;3)画出真值表以验证是否真确;4)使用Verilog HDL语言进行仿真。

二.设计方案:1.该组合逻辑电路的分析和设计方法:本设计方案中我采用多路复用器,2-4译码器,LED灯和或门等器件来完成设计。

用2个74x151多路复用器扩展为16-2多路复用器,题目中的地址代码A、B、C、D4个输入端作为扩展的多路复用器的地址端,D0-D8作为数据端。

开箱钥匙孔信号E作为2-4decoder的使能端。

设计开锁的正确代码为0101,当用钥匙开锁(即2-4decoder的使能端有效)时,如果正确输入开锁密码:0101,则输出Y为逻辑高电平,Y’为逻辑低电平,锁被打开,而LED灯不会亮(即不会报警);如果输入的密码错误或者钥匙孔信号无效,则输出Y为逻辑低电平,Y’为逻辑高电平,锁无法打开,逻辑高电平Y’驱动LED灯亮,产生报警效果。

2.设计原理图:(以下电路图为用Quartus II综合后截屏所得)总体逻辑电路图2-4译码器逻辑电路图151多路复用器逻辑电路图D C B A LATCH LED0 0 0 0 0 10 0 0 1 0 10 0 1 0 0 10 0 1 1 0 10 1 0 0 0 10 1 0 1 1 00 1 1 0 0 10 1 1 1 0 11 0 0 0 0 11 0 0 1 0 11 0 1 0 0 11 0 1 1 0 11 1 0 0 0 11 1 0 1 0 11 1 1 0 0 11 1 1 1 0 1假设用钥匙开锁(即钥匙孔信号E有效)时的真值表4.Verilog HDL语言仿真:程序代码:module e2_4decoder(i,en,y);input en;input [1:0] i;output [3:0] y;reg [3:0] y;always @(i or en)beginif(en)case(i)0:y=4'b0001;1:y=4'b0010;2:y=4'b0100;3:y=4'b1000;endcaseelse y=4'b0000;endendmodulemodule mutiplexer16_1(a,b,c,en,d,y,y_l);input a,b,c,en;input [7:0] d;output y,y_l;reg y,y_l;always @(a,b,c,en)beginif(en==0)if(c==0&b==0&a==0) y=d[0];else if(c==0&b==0&a==1) y=d[1];else if(c==0&b==1&a==0) y=d[2];else if(c==0&b==1&a==1) y=d[3];else if(c==1&b==0&a==0) y=d[4];else if(c==1&b==0&a==1) y=d[5];else if(c==1&b==1&a==0) y=d[6];else y=d[7];else y=0;y_l=!y;endendmodulemodule liuyong(A,B,C,D,set,LED,LATCH);wire [3:0] y;wire [1:0] i;input A,B,C,D;input [15:0] set;output LED,LATCH;assign i[1]=0;assign i[0]=D;e2_4decoder u1(i,1,y);mutiplexer16_1 m1(A,B,C,!y[0],set[7:0],y1,y1_l);mutiplexer16_1 m2(A,B,C,!y[1],set[15:8],y2,y2_l); or (LATCH,y1,y2);not (LED,LATCH);endmodule以下为仿真得到的时序图:。

四位数字密码锁的设计

四位数字密码锁的设计

EDA 课程设计报告书课题名称 四位数字密码锁的设计 姓 名学 号 院 系 专 业 指导教师年 月 日※※※※※※※※※ ※※※※ ※※※※※※※※※※※级学生EDA 课程设计设计任务及要求:(1)设计任务:本课程设计要求设计的数字密码锁密码为4位,由密码锁输入电路、码锁控制电路、密码锁处理电路、显示电路四大部分组成,将各电路组合起来,构成了一个完整的电子密码锁。

(2)设计要求:①、密码输入:每按一个数字键,就输入一个数值,且将在显示器上的最右上方显示出该数字,并将先前已经输入的数据依序左移一位。

②、数码清除:按下此键可以清除前面所有的输入值,清除成为“0000”。

③、密码修改:按下此键时将目前的数字设定成新的密码。

④、激活电锁:按下此键可将密码锁上锁,红色LED灯将闪烁一次。

⑤、解除电锁:按下此键会检查输入的密码是否正确,若绿色LED亮则表示密码正确,密码锁将解锁。

指导教师签名:年月日二、指导教师评语:指导教师签名:年月日三、成绩验收盖章年月日四位数字密码锁的设计1 设计目的随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱,电子密码锁的使用也体现了人们消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的麻烦。

2 设计的主要内容和要求设计一个简单的数字电子密码锁,密码为 4 位。

要求具备如下功能:(1)如果输入数字键,第一个数字会从数码管的最右端开始显示,此后每按下一个数字键,数码管上的数字必须往左移动一格,以便将新的数字显示出来。

(2)本密码锁为四位密码锁,当输入的数字超过四个时,不会显示第四个以后的数字。

(3)按下密码清零键,清除所有输入的数字,清除成为“0000”,即做归零动作。

(4)按下解锁键,检查输入的密码是否正确,若解锁指示灯(绿色LED灯)闪烁一次,即表示密码正确(开锁)。

基于VHDL4位电子密码锁的设计

基于VHDL4位电子密码锁的设计

理工大学本科实验报告题目:基于VHDL 4位电子密码锁的设计课程名称:数字电路课程设计学院(系):电子信息与电气工程专业:电子英强班级:学生:学号:完成日期:2013.7.8成绩:2013 年7 月08 日题目:基于VHDL 4位电子密码锁的设计1 设计要求○1电子密码锁为4位8421BCD码,多于4位,密码只取前4位。

○2在输入密码错误,给出一个错误信号,有三次输入机会,若三次密码都输入错误,则给出一个报警信号,此后只能由密码管理员取消报警信号。

○3在输入密码正确的情况下,可以再次设定密码。

○4每次输入一个密码,将显示在7段数码管上,并依次左移。

○5每次输入密码的时候,按取消(cancel)键可以取消这次密码的输入,课重新输入4位密码。

2 设计分析及系统方案设计在实验室DE2开发板的条件下,考虑到key键只有4个,可以用switch开关来实现密码输入模块,用switch[9]~switch[0] 来实现数字9~0的输入,并通过译码模块将其转化为8421BCD码,由8421BCD码来驱动7段数码管作为密码锁的显示模块。

每按一个键,产生一个上升沿,给4个数码管做时钟,实现没输入一个数左移一位的效果。

为了实现密码输入多于4位,可以构造一个模为4的计数器来控制只取前4位密码。

共有三次输入密码的机会,可以构造一个模为3的计数器来控制。

密码比较模块:当按下确定键(yes)键,则将输入的密码和置密码进行比较。

密码输入模块:当输入密码正确时,再输入密码,利用重置密码键(set_psw)直接将其赋值给置的密码psw即可实现。

LED 显示模块,用来显示密码输入的正确与否。

若输入密码与置密码一致,则锁打开,输出一个高电平给LEDG ,绿灯亮,密码错误则输出一个高电平给LEDR ,红灯亮。

综合上述分析,本系统的硬件部分主要由密码锁输入译码模块、密码锁显示模块、密码锁控制模块、密码比较和重置模块和LED 显示模块五个部分组成。

4位数字密码锁的设计

4位数字密码锁的设计

1技术指标用与非门设计一个4位或多位代码的数字锁,要求如下:A: 设计一个保险箱用的多位代码数字锁,比如4位代码ABCD四个输入端和一个开锁用的钥匙插孔输入端E,当开箱时(E=1),如果输入代码(例如ABCD=1010)与设定的代码相同,则保险箱被打开,即输出端Z=1,否则电路发出报警信号:B: 进行电路仿真,并说明其工作原理。

2方案比较方案一:由4个单刀双掷开关构成密码开关,用户可以通过控制开关来控制A、B、C、D3 Proteus软件介绍Proteus软件是来自英国Labcenter electronics公司的EDA工具软件。

Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,您不需要别的,Proteus为您建立了完备的电子设计开发环境!尤其重要的是Proteus Lite可以完全免费,也可以花微不足道的费用注册达到更好的效果;功能最强的Proteus专业版也非常便宜,人人用得起,对高校还有更多优惠。

Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。

此系统受益于15年来的持续开发,被《电子世界》在其对PCB设计系统的比较文章中评为最好产品—“The Route to PCB CAD”。

Proteus 产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。

用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。

其功能模块:—个易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE 仿真;ARES PCB设计。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高级电子线路实验报告题目:基于FPGA的四位电子密码锁设计院(系):信息与通信学院专业:学生姓名:学号:2015 年 6 月18 日基于FPGA的的四位电子密码锁设计摘要本文主要介绍了一种运用可编程逻辑器件(FPGA)技术来编程实现电子密码锁的设计方法。

在整个系统设计实现中采用FPGA器件作为控制器,继而了解密码锁系统的总体流程、各个模块的功能与接口的分配。

基于FPGA,使用VHDL语言编写模块程序,再通过Quartus II 集成开发环境下进行设计、综合与仿真。

要求用Verilog HDL语言实现系统中的各个模块功能,并且能够仿真,验证本次设计四位密码锁的功能。

每按下一个数字键,就输入一个数值,并显示该数值,当按下密码更改键时会将目前的数字设定成新的密码。

当按下激活电锁键的时候可以将密码锁上锁。

当按下解除电锁键时会检查输入的密码是否正确,密码正确即开锁。

电子密码锁由键盘扫描模块、分频模块、密码计数模块、比较器模块、存储模块、显示模块和控制模块七大部分组成。

通过硬件描述,验证了整个设计的正确性以及系统的完整性。

关键词:可编程逻辑器件;电子密码锁;硬件描述;时序仿真引言本设计利用QuartusⅡ工作平台硬件描述语言,设计一种电子密码锁,并通过用FPGA 芯片实现。

用VHDL语言使用自顶向下的方法对系统进行了描述,并在FPGA芯片上实现。

设计充分利用了FPGA的资源可编程特性,可高效率的对系统进行升级与改进。

设计的密码锁可设置任意密码,比一般的四位密码锁具有更高的安全可靠性,因此,采用FPGA 开发的数字系统,不仅具有很高的工作可靠性,其升级与改进也极其的方便,应用前景十分宽广。

随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高,因此导致了电子行业的蓬勃发展。

随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都获得了大大的提高。

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

1 总体方案设计1.1 方案论证方案一:采用数字电路控制。

利用数字逻辑电路,实现对锁的电子控制,突破了传统的机械锁的单一性、保密性低、易撬性的缺点,数字电子密码锁具有保密性高、使用灵活性好、安全系数高的优点。

虽然采用数字密码锁电路的好处是设计简单,但是由于其实纯电路实际,在系统运行时,延时会比较严重。

方案二:通过单片机实现。

现在一种新的方案就是采用一种以AT89S51为核心的单片机控制方案。

虽然有灵活的设计和丰富的IO端口,但是单片机运行的缺点是程序运行时容易出现跑飞现象。

通过以上比较显然单片机方案有较大的活动空间,不但能实现所要求的功能,而且能在很大程度上扩大功能,并可以方便的对系统进行升级。

但是由于所学知识不能将其有效运用,现有环境不能满足,而且以单片机为核心的密码锁有一定的不足之处,在运行时会产生PC指针错误,因此提出了第三种方案。

方案三:利用FPGA设计数字密码锁。

FPGA即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物,是一种超大规模集成电路,具有对电路可重配置能力。

通常FPGA都有着上万次的重写次数,也就是说现在的硬件设计和软件设计一样灵活、方便。

相对于基于单片机技术的电子密码锁,用FPGA器件来构成系统,可靠性提高,并且由于FPGA具有的现场可编程功能,使得电子密码锁的更改与升级更为方便简单。

通过以上比较描述,本设计采用基于FPGA的数字密码设计方案。

1.2 基于FPGA的数字密码锁系统流程图根据所要实现的数字密码锁的功能,设计出所要完成的的系统流程,系统设计的流程图如3.1所示。

图3.1详细的描述了一个数字密码锁所要完成的功能,开始时,首先要对密码锁系统进行复位初始化,将所要设置的密码首先存入到存储模块当中。

然后进行键盘输入,键盘输入分为密码输入和功能输入,如果是密码输入就要把输入的密码与预置的密码进行比较,如果相同则开锁,不相同则报警,而其中密码的个数由计数器限制;如果是功能输入,则看是什么功能,本设计主要设计了四个功能:设置密码键、退出键、清零键和关锁键,密码锁会根据所要求的功能进行相应的操作。

如果是其他的不与功能相对应的键输入,密码锁将进行系统复位初始化阶段,重新开始操作。

图3.1系统流程图3.3 基于FPGA的数字密码锁总体框图通过数字密码锁系统结构的分析,我们知道通用的数字密码锁主要由八个部模块组成:分频模块、键盘扫描模块、比较模块、计数模块、寄存模块、存储模块、显示模块和控制模块。

根据系统流程图的设计以及各个模块之间的逻辑关系将得到系统总体框图,如图3.2所示。

图3.2数字电子密码锁系统总体框图键盘扫描模块:设定数字键0—9,以及功能键;分频模块:设定系统时钟CLK的频率,对其分频,分别作为按键检测时钟和LED控制器扫描时钟;密码计数模块:统计所输密码位数;比较器模块:比较所输两数是否相等;比较结果寄存器模块:存储比较器模块的结果;存储模块:存储所设置的密码;显示模块:显示所输数字;控制模块:根据分析的数字密码结果,控制单元的算法。

2 系统详细设计2.1 分频模块设计分频模块的主要功能是所给频率转化成系统所需频率。

通常数字电路中的分频操作是采用计数来进行。

就是利用一个自由计数器来产生各种需要的频率,也就是先建立一个N 位计数器,N的大小根据电路的需求来决定,N的值越大,电路可以分频的次数就越多,这样就可以获得更大的频率变化,以便提供多种不同频率的时钟信号。

本密码系统所设计的分频模块是执行十分频功能的模块,其目的是为了得到频率为时钟频率十分之一的clk_scan。

主要程序如下所示。

if(clk'event and clk='1') thenif(cnt=cnt'high)thencnt <= 0;elsecnt <= cnt+1;end if;end if;process(cnt,clk)beginif(clk'event and clk='1')thenif(cnt>cnt'high/2)thenclk_scan<='1';elseclk_scan<='0';end if;end if;end process;分频模块源代码编译后所生成的示意图如图4.1所示。

图4.1分频模块示意图分频模块的输入输出管脚及代表的意义如下表所示。

表4.1 分频模块输入输出变量定义输入端子 clk 输入时钟信号 输出端子clk_scan输出时钟信号源程序编译以后,建立仿真波形,所得功能仿真波形如图4.2所示。

图4.2 分频模块功能仿真波形图图中输入的时钟频率clk 是1亿赫兹(1/10ns),经过程序编译以后,输出的波形是clk_scan 为1千万赫兹(1/10ns),符合十分频的要求。

2.2 键盘扫描模块设计行列式键盘又叫做矩阵式键盘【4】。

用带有I/O 口的线组成行列结构,按键设置在行列的交点上。

本次试验用到的是4×4的行列结构键盘,可以构成16个按键。

这样,当按键数量平方增长是,I/O 口只是线性增长,这样就可以节省I/O 口。

行列式键盘的原理如图4.3所示。

key_col{0..3} 上拉电阻key_row{3…0}图 4.3 行列式键盘的原理按键设置在行列线交叉点,行、列线分别连接到按键开关的两端。

列线通过上拉电阻接+5V 的电压,即列线的输出被嵌位在高电平状态。

判断按键中有无键按下时通过行线输入扫描信号,然后从列线读取到状态实现的。

其CDEF8 9 A B 4 5 6 7 012 3方法是依次给行线送低电平,检查列线的输入。

如果列线信号全为高电平,则代表低电平所在的行中无按键按下;如果列线有输入为低电平,则低电平信号所在的行和出现低电平的列的交点处有按键按下。

部分程序如下所示。

process(temp,scan_en)begin if scan_en = '0' thencase temp iswhen "11101110" => key_code_reg<="00000";key_out_reg <="0000000000000001" ;temp_num <='1'; temp_function<='0';when "11101101" => key_code_reg<="00001";key_out_reg <="0000000000000010" ;temp_num <='1';temp_function<='0';when "11101011" => key_code_reg<="00010";key_out_reg <="0000000000000100" ;temp_num <='1';temp_function<='0';…设行扫描信号为key_row{3…0},列线按键输入信号key_col{0..3}与按键位置的关系如表4.2所示。

表4.2 行扫描信号、列线按键输入信号与按键位置的关系键盘扫描模块源代码编译后所生成的示意图如图4.4所示。

clk_scan key_col[3..0]key_row[3..0] key_code[3..0] key_out[15..0]key_presskey_numkey_f uncKey PadScaninst图4.4键盘扫描模块示意图键盘扫描模块的输入输出管脚及代表的意义如下图所示。

表4.3键盘扫描模块输入输出变量定义输入端子clk_scan 时钟扫描信号key_col[3..0] 键盘列扫描输出端子key_row[3..0] 键盘行扫描key_code[3..0] 键值输出key_out[15..0]键盘按键one-hot码输出key_press 有键按下key_num 数字键key_func 功能键源程序编译以后,建立仿真波形,所得功能仿真波形如图4.5所示。

相关文档
最新文档