首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 一种多功能电子密码锁的VHDL设计(2)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
一种多功能电子密码锁的VHDL设计(2)
发短消息
加为好友
yuyang911220
当前离线
UID
1029342
帖子
9914
精华
0
积分
4959
阅读权限
90
在线时间
286 小时
注册时间
2014-5-22
最后登录
2017-7-24
论坛元老
UID
1029342
性别
男
1
#
打印
字体大小:
t
T
yuyang911220
发表于 2016-11-23 16:50
|
只看该作者
一种多功能电子密码锁的VHDL设计(2)
输入密码
,
密码锁
,
交叉点
,
电子
,
键盘
硬件电路设计
3.1输入电路
本设计采用的是4×3矩阵式键盘,如图1所示,它是由4根I/O线作为行线,3根I/O线作为列线,在行列线的每一个交叉点上都设置一个按键,一共有12个按键,分别代表数字0~9、确认键和设置键,如图1所示。用户如需设置密码位数,可以长按设置键达到3s,听到提示音后再输入密码位数(本设计暂时只支持4、6、8位);如需设置新密码,可以短按设置键,提示音后再输入新的密码即可。输入电路应具备矩阵键盘扫描功能、键盘消抖功能以及译码等功能。其中,键盘扫描采用是行扫描方式,4根I/O线KEYR3~KEYR0为行扫描信号,其中KEYR3对应第一行,KEYR2对应第二行,依此类推。
很显然,扫描信号的变化顺序为:0111、1011、1101、1110,周而复始。在扫描的过程中,当某键被按下时,从KEYC2~KEYC0中读出的相应列信号为“0”,再将此时的4位行信号和3位列信号值送至键盘译码电路进行译码,即可得出准确的按键值。相反,若从KEYC2~KEYC0读出的值全为“1”,则表示没有键被按下,即不做任何操作。如表1所示。
在键盘扫描过程中,扫描信号在不断变化,以判断按键的按下和抬起。快速变化的扫描信号不仅使增加了系统功耗,而且还会对其他敏感电路造成干扰。因此必须进行以下改进:将扫描模式改为键按下触发扫描方式,即当某键被按下后,才触发键盘扫描电路产生扫描时序,键被放开后,停止对键盘的扫描,使电路处于相对静止状态,以减少干扰信号。
另外,在按键按下时刻与开始扫描时刻之间加入一段较小的延时,延时结束后才允许电路开始扫描工作,可以最大限度地避免因键盘抖动带来的错误输入。
主要VHDL代码描述如下:
3.2控制电路
控制电路是整个系统的核心电路,能根据用户输入的密码位数进行子电路的选择。由于系统允许用户输入4位、6位或8位密码,因此子电路有三个,由三选一选择器决定其中哪个电路为用户服务,见图2。
图2中,en是三选一选择器的工作使能端,它由输入电路的有效重置信号启动。当用户按下矩阵键盘上的重置按键长达3s后,输入电路将产生en信号为“1”,从而使选择器Mux31开始工作。如用户要设置为6位密码,则在提示音后按下键盘上的“6”按键,其按键信号会传递给X6,由选择器决定后续控制电路为kong6.
主要VHDL代码描述如下:
收藏
分享
评分
继承事业,薪火相传
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议