| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

基于FPGA的键盘扫描程序的设计毕业设计

知***享

贡献于2020-08-25

字数:21692

X X 学 院

CHANGSHA UNIVERSITY

科生毕业设计


设计(文)题目:

基FPGA键盘扫描程序设计
系    部:

专 业:

学 生 姓 名:

班 级:

学号
指导教师姓名:

职称 讲师


XX学院教务处
二○年二月制





  (20 13 届)
  科生毕业设计说明书
基FPGA键盘扫描程序设计
系    部:
电子通信工程系
专 业:

学 生 姓 名:

班 级:

学号
指导教师姓名:

职称
终评定成绩




2013 年 6 月





现代电子工业控制电路中键盘扫描显示电路系统调试设置着重作着EDA技术发展基FPGA扫描键盘结构简单效防止机械键盘键抖动带数错误等优点许电子设备中广泛应
文设计基FPGA键盘扫描程序该设计EDA工具Quarutus II90开发完成CreatSOPC2000实验箱4*4矩阵键盘硬件实体设计键盘扫描程序程序划分时序产生模块键盘扫描模块弹跳消模块键值译码模块四模块时序产生模块键盘扫描弹跳消模块产生时钟信号键盘扫描模块采行扫描法4*4矩阵键盘进行扫描键值译码模块键值译码阳极8位7段数码显示码模块组合起实现键盘扫描设计求程序进行仿真分析硬件验证仿真结果表明该系统具集成度高稳定性设计灵活设计效率高等优点

关键词: FPGAQuartus IIVHDL键盘扫描














ABSTRACT

In the modern electronics industry controllingcircuit the keyboard scanning and display circuit plays an important role in debugging and setting the system With the development of EDA technology FPGAbased scanning keyboard have been widely used in many electronic devices because of its simple structure and it also can effectively prevent mechanical keyboard jitter caused by data errors
This article primarily designed an FPGAbased keyboard scan procedures this design is developed on the EDA tools—— Quarutus II90 and designed the keyboard scan program using the CreatSOPC2000 experimental box 4 * 4 matrix keyboard as the hardware entity the program is divided into four modules as the timing generation module a keyboard scanning module bounce cancellation module and the decoding module The timing generation module generates the clock signal for the keyboard scanning and bounce elimination module the keyboard scanning module using the line scanning method to sweep the 4* 4 matrix keyboard key decoder module decodes the key value for the common anode eight 7segment display code Several modules assembles together to meet the keyboard scanning design requirements Finally conducting simulation analysis by the program and verifying the hardwareSimulation results show that the system has many advantages such as high integration good stability high efficiency flexible design and high design efficiency

Keywords FPGAQuartus IIVHDLkeyboard scanning

目 录

摘 I
ABSTRACT II
第1章 绪  1
11 课题研究背景 1
12 课题研究意义 2
13 文工作 2
第2章 FPGA开发工具简介 3
21 FPGA概述 3
22 VHDL语言Quartus II应 3
23 章结 4
第3章 基FPGA键盘扫描程序设计 3
31 键盘扫描程序总体电路设计 5
311 矩阵式键盘扫描工作原理 6
312 数码显示原理 7
32 键盘扫描电路功模块设计 8
321 时序产生模块 8
322 键盘扫描模块 9
323 弹跳消模块 11
324 键盘译码电路 13
325 键盘扫描程序顶层文件设计 15
33章结 16
第4章 键盘扫描程序波形仿真硬件验证 17
41 系统仿真 17
411 消抖电路仿真 17
412 键盘时钟信号仿真 18
413 键盘扫描信号仿真 18
414 键盘译码电路仿真 19
415 键盘扫描总体电路仿真 21
42引脚锁定 22
43硬件验证 23
44章结 25
结   26
参考文献 27
附  录 28
致  谢 32

第1章 绪 

11 课题研究背景
现代计算机电子系统中般采通式标准键盘需数指令等信息通键盘输入计算机电子系统实现机间接口交互种嵌入式系统(微波炉手机电风扇等)中键盘键数限般十左右标准键盘般百左右键功含义针种电子设备键盘进行扫描程序设计时必须结合工程实际情况设备身种资源设计键盘够融合系统中成重组成部分
数字电路中果键输出信号连接编码器应输入端通编码逻辑编码器输出端键应键值利编码器实现键键值直接编码种键盘早期称编码键盘类键盘许缺点键数量较时编码逻辑成会相变高.直接编码方法具局限性编码逻辑旦固定难改变现代数字电路中般键数量较时采扫描方式产生键值矩阵形式连接键键位行列相交点通输入扫描信号确定键行值列值位置码称扫描码通查表译码方式位置码转换键码值采类方式扫描惯称非编码键盘执行键盘扫描程中数键盘采机械开关键闭合时会出现难避免机械性抖动输出信号发生跳变跳变宽度般10 ms20 ms间进行处理系统会误认次键系统中须设置硬件延时电路键输入定时间延迟方读取键值键盘系统中常出现抖电路种情况前面键键值没输出已新键时键值会覆盖前面键值造成数丢失时系统中设置控制信号确保前键键值输出允许键值产生设置组寄存器保存键键值然系统序进行处理类扫描键盘优点需机担负扫描务软件程序完成次通更改程序改变键功定义
基FPGA键盘扫描程序芯片中键盘扫描程序键盘进行扫描键时系统通时钟模块启动扫描程序次行键值赋值扫描行通键盘列输出确定键位置种扫描方法称逐行扫描法键时首先获键列值然逐行扫描判断键行值行列值出键键值外需键盘扫描程序中加入延时程序消机械键盘键抖动带影响果键盘扫描频率设置低扫描显示程中会出现键显示迟缓甚乱码等现象实际设计中需根设计求系统硬件规格选择合适扫描率现代数字设备中键盘采样键盘扫描方法

12 课题研究意义
计算机时代开始数字系统设计存两分类系统硬件设计系统软件设计早期数字系统设计员分两族群:硬件设计员软件设计员事工作领域少涉足方领域尤软件设计员着数字技术硬件系统发展两领域开始互相合作硬件描述语言HDL(Hardware Description Language)出现数字系统设计已软硬件分设计员HDL语言描述系统硬件构成行通仿真确定运系统硬件时否行设计出符合求硬件系统仅利HDL语言设计系统硬件传统硬件设计方法相具独特优势系统硬件设计带深远影响硬件设计领域次重变革
传统键盘扫描硬件电路确定键盘变化特定硬件电路应特定键盘存样缺点:根实际应改变变化形式固定文采技术方案克服述讲技术缺点该键盘扫描程序软件控制完成需改变硬件电路适种类型键盘整系统设计动化程减少工作量精力放创造性方案概念构思提高工作效率缩短产品研制周期
13 文工作
设计计算机设计台综合运EDA软件工具开发环境硬件描述语言VHDL采顶设计方法系统分成模块设计达系统求然Quartus II90通编程调试编译仿真实现键盘扫描设计第二章介绍键盘扫描基特点工作原理查找关编程逻辑器件VHDL语言相关资料掌握定理知识熟悉Quartus II软件第三章先键盘扫描做出总体设计方案然键盘扫描进行分模块设计模块做出详细分析第四章根第三章做工作程序编译然进行仿真仿真出结果进行详细分析仿真完程序载实验箱进行测试设计做出总结
第2章 FPGA开发工具简介

21 FPGA概述
FPGA现已取代ASIC实现功通常ASIC包含三种:全定制半定制(包括标准单元阵列)编程器件前面两种您需支付费项目重复NRE芯片流片分析工程开销成般10000美元数万计果成功返工甚次返工成成升高成高风险通常需求种ASIC成NRE费分配产品价格太高户通常接受然编程逻辑器件PLD解决述问题编程逻辑器件种新型ASIC着操作灵活易投资风险开发迅速突出优势非常适合产品前期开发研究样开发批量产品FPGA种新型PLD着PLD具优点规模般PLD规模
FPGA特点:户需投片生产合芯片FPGA做全定制半定制ASIC电路中试样片部丰富触发器IO引脚ASIC电路中设计周期短开发费低风险器件 FPGA采高速CMOS工艺功耗低CMOSTTL电兼容说FPGA芯片批量系统提高系统集成度性佳选择FPGA存放片RAM中程序设置工作状态工作时需片RAM进行编程户根配置模式采编程方式加电时FPGA芯片EPROM中数读入片编程RAM中配置完成FPGA进入工作状态掉电FPGA恢复成白片部逻辑关系消失FPGA够反复FPGA编程须专FPGA编程器须通EPROMPROM编程器需修改FPGA功时需换片EPROM样片FPGA编程数产生电路功FPGA非常灵活

22 VHDL语言Quartus II应
VHDL英文全名VeryHighSpeed Integrated Circuit Hardware Description Language诞生1982 年1987年底VHDLIEEE美国国防部确认标准硬件描述语言
VHDL描述数字系统结构行功接口含许具硬件特征语句外VHDL语言形式描述风格句法十分类似般计算机高级语言VHDL程序结构特点项工程设计称设计实体(元件电路模块系统)分成外部(称视部分端口)部(称视部分)涉实体部功算法完成部分设计实体定义外部界面旦部开发完成设计直接调实体种设计实体分成外部分概念VHDL系统设计基点完整VHDL程序通常包括实体(Entity)结构体(Architecture)配置 (Configuration)程序包集合(Package)库(Library)5部分前4部分分编译源设计单元库存放已编译实体结构体配置程序包集合

Quartus II支持种设计输入形式:原理图VHDLVerilogHDLAHDL(Altera Hardware Description Language)等种综合性PLD开发软件嵌带仿真器综合器够完成输入设计配置硬件整PLD设计流程支持AlteraIP核编程系统(SOPC)Altera片开发具LPM宏功模块库户成熟功模块FPGA设计工作变更简单时Quartus II支持第三方EDA工具户熟悉第三方EDA工具进行设计工作外Quartus II 集合MatlabSimulinkDSP Builder等优秀EDA工具种DSP应系统台够快实现Quartus II综合性开发台集嵌入式软件开发系统级设计编程逻辑设计体

23 章结
章介绍基FPGA键盘扫描程序开发工具简单概述FPGA讲述FPGA原理FPGA设计流程外概述VHDL语言基知识简单介绍Quartus II软件
第3章 基FPGA键盘扫描程序设计

次设计根键盘扫描程序设计思路提出系统整体电路框图硬件实体部分设计中4*4矩阵键盘扫描原理8位7段数码显示方式进行简单概述根整体电路构架硬件实现原理编写键盘扫描程序系统进行模块化设计分时序产生模块设计键盘扫描模块设计弹跳消模块设计键盘译码模块设计VHDL硬件描述语言分编写模块程序QuartusII中VHDL语言程序分建立项目编译仿真通证实逻辑功正确File菜单选择CreateUpdate项中Create Symbol Files for Current File实体生成缀bsf组件符号文件图形编辑器中调组件Quartus II图形编辑器模块联系起形成顶层文件次设计体模块化设计方法明确设计思路便调试修改
31 键盘扫描程序总体电路设计
根设计思路提出键盘扫描程序总体电路设计图图31示4*4矩阵键盘键盘扫描电路时序产生电路(分频电路)弹跳消电路键盘译码电路8位7段数码显示电路构成整体工作原理通系统时钟提供频率进行分频分键盘扫描电路弹跳消电路提供时钟信号键盘扫描电路通键盘扫描时钟信号控制断产生键盘扫描信号键盘进行行扫描时弹跳消电路实时键盘键列信号进行采集采集键列信号传送键盘译码电路进行译码译出应键码译出键码通数码显示电路相应8段7位数码显示出终键结果完成次设计电路设计部分

图31 键盘扫描电路框图
311 矩阵式键盘扫描工作原理

图32 4*4矩阵式键盘面板配置
矩阵式键盘种常电子输入装置常生活中矩阵式键盘通信设备手机信息终端计算机家电器油烟机等式电子产品具重作图324*4矩阵式键盘面板配置图
键盘键机械开关键时该键电路便会输出低电赋值0反果没键输出高电赋值1键盘扫描行信号KY0—KY3控制开始进行行扫描变化序次1110—1101—1011—0111—1110次扫描行次进行循环例现行扫描信号1011表示目前正扫描90AB行键果行中没键话KX3—KX0输出1111反果9键KX3—KX0输出0111
根面述原理键位置码值关系表3132示

表31 键位置数码关系
KY3KY0
1110
1110
1110
1110
1101
1101
1101
1101
KX3KX0
0111
1011
1101
1110
0111
1011
1101
1110
键号
1
2
3
4
5
6
7
8

表32 键位置数码关系
KY3KY0
1011
1011
1011
1011
0111
0111
0111
0111
KX3KX0
0111
1011
1101
1110
0111
1011
1101
1110
键号
9
0
A
B
C
D
E
F
KX3—KX0读出值皆1时代表该列没键进行键译码动作反果键时应KX3—KX0读出值送译码电路进行译码
312 数码显示原理
数码显示数方式静态显示动态显示分谓静态显示显示数BCD码通4—78显示译码器译码分接显示译码器显示驱动端a—g(p)公端COM根数码类型(阴阳)分接GNDVCC谓动态显示显示数BCD码定变化频率时刻周期性分送数总线通公4—78显示译码器译码接显示译码公显示驱动端口a—g(p)时时刻周期性选通应数码公端口COM
设计采阳极数码采显示方式静态显示电路中数码键时数码显示出应键码值VHDL程序:
数码显示程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
entity smgxs is
port(ym_in in std_logic_vector(4 downto 0)
com0 out std_logic
qout8 out std_logic_vector(7 downto 0))
end entity smgxs
architecture art of smgxs is
signal qout8_s std_logic_vector(7 downto 0)
begin
process(ym_in)is
begin
case ym_in is
when 00000>qout8_s<110000000
when 00001>qout8_s<111110011
when 00010>qout8_s<101001002
when 00011>qout8_s<101100003
when 00100>qout8_s<100110014
when 00101>qout8_s<100100105
when 00110>qout8_s<100000106
when 00111>qout8_s<111110007
when 01000>qout8_s<100000008
when 01001>qout8_s<100100009
when 01010>qout8_s<10001000A
when 01011>qout8_s<10000000B
when 01100>qout8_s<11000110C
when 01101>qout8_s<11000000D
when 01110>qout8_s<10000110E
when 01111>qout8_s<10001110F
when others>qout8_s<11111111
end case
end process
qout8 com0<'1'
end architecture art
32 键盘扫描电路功模块设计
321 时序产生模块
时序产生模块中二种频率工作脉波形通系统时钟脉进行分频键盘扫描模块键盘抖模块时钟信号
系统需种操作频率时钟脉时较直接简便方法计数器累加需种频率建立N位计数器N根电路需求决定N值越电路分频次数越样获更频率变化便提供种频率时钟信号输入时钟CLKN位计数器输出Q[N10]Q(0)CLK2分频脉信号Q(1)CLK4分频脉信号Q(2)CLK8分频脉信号……Q(N1)CLK2N 分频脉信号利规律需频率信号信号序列时序产生模块模块电路图图34示xd_clk输出信号ym_clk输出信号分系统时钟clk8分频2分频中xd_clk信号作弹跳消取样电路时钟信号ym_out信号作键盘扫描电路时钟信号时序产生模块原理图图33示

图33 时序产生模块

时序产生模块VHDL描述:
扫描时钟产生程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
use ieeestd_logic_arithall
entity smsz is
port(clk in std_logic
ym_clk out std_logic
xd_clk out std_logic)
end entity smsz
architecture art of smsz is
signal clk_s std_logic_vector(3 downto 0)
begin
process(clk)is
begin
if(clk'event and clk'1')then 升
if(clk_s1111)then
clk_s<0000
else
clk_s end if
end if
end process
ym_clk xd_clkend architecture art
322 键盘扫描模块
键盘扫描模块功键盘提供扫描信号(表31中行扫描信号KY0—KY3)行扫描信号时钟控制序次赋值1110—1101—1011—0111扫描时KY0KY3分扫描四行键行扫描信号赋值0111时KY0行键进行扫描扫描信号赋值1011时扫描KY1行键扫描信号赋值1101时扫描KY2行键扫描信号赋值1110时检测KY3行键情况通行扫描信号循环次检查行否键果行键立刻进行键编码进行译码译码结果传送数码键盘扫描模块模块图图34示

图34 键盘扫描模块
键盘扫描模块VHDL描述:
扫描信号产生程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_arithall
use ieeestd_logic_unsignedall
entity smxh is
port(clk in std_logic
q_out out std_logic_vector(1 downto 0)
sm_out out std_logic_vector(3 downto 0))
end entity smxh
architecture art of smxh is
signal sm_s std_logic_vector(3 downto 0)
signal q_s std_logic_vector(1 downto 0)
begin
process(clk)is
begin
if(clk'event and clk'1')then
if(q_s11)then
q_s<00
else
q_s end if
end if
end process
process(q_s)is
begin
case q_s is
when 00>sm_s<1110 输出扫描信号1110
when 01>sm_s<1101 输出扫描信号1101
when 10>sm_s<1011 输出扫描信号1011
when 11>sm_s<0111 输出扫描信号0111
when others>sm_s<1111
end case
end process
sm_out q_outend architecture art
323 弹跳消模块
设计中4*4矩阵键盘机械开关键时刻会触片出现信号回弹跳现象种弹跳现象会造成乱码现象影响键结果正确显示
图35弹跳现象造成错误抽样结果中出然键次然马松开然实际键信号已跃变次通取样信号检查输出错误编码

图35 弹跳现象产生错误抽样结果
果调整抽样频率(图36示)发现弹跳现象获改善

图36 调整抽样频率抽样结果
系统加模块效避免乱码现象发生外系统中弹跳消模块脉信号频率必须高模块中脉信号频率般情况扫描模块工作频率24Hz左右弹跳消模块工作频率必须128Hz左右者工作频率高前者

图37 弹跳消电路部实现原理图
弹跳消电路实现原理图37示键时键盘输入信号D_INCLK模块时钟信号抽样信号D_IN通两D触发器延时RS触发器处理
RS触发器前端连接非门原理:
(1)通常键速度维持10次秒左右说次键时间100ms左右时间估算50ms取样信号CLK周期8ms计取样6次
(2)稳定噪声4ms抽样次
(3)触发器前接ANDNOTSR组态表33示
表33 RS触发器真值表
S
R
D_OUT
0
0

1
0
1
0
1
0
(1)D01D11时结果S1R0D_OUT会输出1代表取样D_IN信号连续取样两次1时认定已稳定钮
(2)D00D10时结果S0R1D_OUT会输出0代表取样D_IN信号连续取样两次0时认定已稳定放掉钮
(3)D01D10时结果S0R0D_OUT维持先前输出信号变D00D11
总必须取样两次1会输出1两次0会输出0D_OUT信号输出时间宽度长输出必须接级微分电路接译码电路
弹跳消模块VHDL描述:
D触发器程序
library ieee
use ieeestd_logic_1164all
entity dcfq is
port(clkd in std_logic
q out std_logic)
end entity dcfq
architecture art of dcfq is
begin
process(clk)
begin
if clk'event and clk'1' then 升
q end if
end process
end architecture art
SR触发器
library ieee
use ieeestd_logic_1164all
entity srcfq is
port(rs in std_logic
qqb out std_logic)
end entity srcfq
architecture art of srcfq is
signal q_sqb_s std_logic
begin
process(rs)is
begin
if(r'0' and s'1')then RS触发器输出置1’
q_s<'1'
qb_s<'0'
elsif(r'1' and s'0')then RS触发器输出置0’
q_s<'0'
qb_s<'1'
elsif(r'0' and s'0')then RS触发器输出保存变
q_s qb_s end if
q qb end process
end architecture art
324 键盘译码电路
键盘译码电路工作原理:首先根输入键盘信号判断否键盘果键盘根输入键盘信号扫描信号进行查表根查表直接出相应键盘译码值
矩阵式键盘中键键值参表(表34键盘参数表)
表34 键盘参数表
扫描位置
KY3KY0
键盘输出
KX3KX0
相应
键盘键
键盘译码
电路输出
1110
0111
1
0001
1011
2
0010
1101
3
0011
1110
4
0100
1101
0111
5
0101
1011
6
0110
1101
7
0111
1110
8
1000
1011
0111
9
1001
1011
0
0000
1101
A
1010
1110
B
1011
0111
0111
C
1100
1011
D
1101
1101
E
1110
1110
F
1111

键盘译码模块模块原理图图38示

图38 键盘译码模块
键盘译码模块VHDL描述:
译码电路程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
use ieeestd_logic_arithall
entity ymdl is
port(clk in std_logic
sm_in in std_logic_vector(1 downto 0)
jm_in in std_logic_vector(3 downto 0)
ym_out out std_logic_vector(3 downto 0))
end entity ymdl
architecture art of ymdl is
signal jm_s std_logic_vector(5 downto 0)
signal ym_s std_logic_vector(3 downto 0)
begin
process(clk)is
begin
jm_s if(clk'event and clk'1')then
case jm_s is
when 000111>ym_s<0001 译码值1
when 001011>ym_s<0010 译码值2
when 001101>ym_s<0011 译码值3
when 001110>ym_s<0100 译码值4
when 010111>ym_s<0101 译码值5
when 011011>ym_s<0110 译码值6
when 011101>ym_s<0111 译码值7
when 011110>ym_s<1000 译码值8
when 100111>ym_s<1001 译码值9
when 101011>ym_s<0000 译码值0
when 101101>ym_s<1010 译码值A
when 101110>ym_s<1011 译码值B
when 110111>ym_s<1100 译码值C
when 111011>ym_s<1101 译码值D
when 111101>ym_s<1110 译码值E
when 111110>ym_s<1111 译码值F
when others>ym_s end case
end if
end process
ym_outend architecture art
325 键盘扫描程序顶层文件设计
设计模块相互联系起通QUARTUS II图形编辑器模块定关系建立顶层文件jpsmbdf通连线模块整合整体电路VHDL实现总体模块电路图图39示:

图39 键盘扫描程序顶层文件图

33章结
章首先根课题务书查找资料出次设计整体电路设计方案然硬件部分4*4矩阵键盘8段7位数码原理进行阐述键盘扫描程序模块(时序产生模块键盘扫描模块弹跳消模块键盘译码模块)分进行设计模块进行编程生成电路元件进行详细分析根设计思路模块电路元件进行整合生成键盘扫描程序顶层文件

第4章 键盘扫描程序波形仿真硬件验证

系统采ALTERA公司软件Quartus II90软件进行编译仿真硬件部分利CreatSOPC2000实验箱时钟频率源4*4矩阵键盘8位7段数码EP1C20F324C8芯片模块搭建电路进行硬件验证Quartus II支持种设计输入形式:原理图VHDLVerilogHDLAHDL(Altera Hardware Description Language)等种综合性PLD开发软件嵌带仿真器综合器够完成输入设计配置硬件整PLD设计流程支持AlteraIP核编程系统(SOPC)Altera片开发具LPM宏功模块库户成熟功模块FPGA设计工作变更简单时Quartus II支持第三方EDA工具户熟悉第三方EDA工具进行设计工作外Quartus II 集合MatlabSimulinkDSP Builder等优秀EDA工具种DSP应系统台够快实现Quartus II综合性开发台集嵌入式软件开发系统级设计编程逻辑设计体
41 系统仿真
软件Quartus II90程序进行编译编译进行波形仿真方便观察显示结果里调节仿真时间1s 脉频率clk周期10ms保存模块VWF文件执行Quartus软件中processing> start simulation选项生产模块波形仿真图观察分析结果否设计方案中设计思路致
411 消抖电路仿真
键盘键闭合释放瞬间输入信号会键抖动问题出现果进行消抖处理系统会键抖动误户次输入导致系统误操作出现乱码
图41键盘输入抖电路仿真结果图图中输出信号Q_OUTQB_OUT图出输出信号Q_OUT信号跃变输入信号D_IN拖两时钟周期必须连续两次采样检测信号变化系统会做出反应否电路视噪声予理会原弹跳现象键盘输入抖电路处理已解决

图41 键盘输入抖电路仿真图
412 键盘时钟信号仿真
键盘时钟信号系统时钟提供频率进行分频图41键盘电路提供时钟信号仿真结果图图中输出信号clk_out[30]图出clk_out(0)clk时钟信号2分频信号clk_out(1)clk时钟信号4分频信号clk_out(2)clk时钟信号8分频信号clk_out(3)clk时钟信号16分频信号中clk_out(0)分译码电路扫描信号产生电路提供时钟中clk_out(2)抖电路提供时钟


图42 键盘时钟信号仿真图
413 键盘扫描信号仿真
图43键盘扫描信号产生电路仿真结果图中输入clk输出sm_out[30]q_out[10]图出q_out值sm_out值图32扫描信号标示完全致中sm_out键盘扫描信号q_out译码电路提供相应扫描值观察仿真结果知q_out值sm_out值图32标示键盘行信号应译码值完全致


图43 键盘扫描信号仿真图
414 键盘译码电路仿真
图44图45图46图47键盘译码电路仿真结果图中输入信号clkjm_in[30]sm_in[10]输出ym_out[30]图出扫描信号分0111101111011110时输出译码值ym_out输入sm_in值表34中完全符合

图44 扫描信号0111时键盘译码电路仿真图

图45 扫描信号1011时键盘译码电路仿真图
图46 扫描信号1101时键盘译码电路仿真图

图47 扫描信号1110时键盘译码电路仿真图
415 键盘扫描总体电路仿真
图48图49图410图411键盘扫描总体电路仿真结果图中输入信号clkjm0jm1jm2jm3输出信号smxh[30]ymxh[30]图出键盘输出键码分1110110110110111时扫描信号smxh译码结果ymxh表34完全符合

图48 键盘输出1110时键盘扫描总体电路仿真图

图49 键盘输出1101时键盘扫描总体电路仿真图

图410 键盘输出1011时键盘扫描总体电路仿真图

图411 键盘输出0111时键盘扫描总体电路仿真图
42引脚锁定
次设计CreatSOPC2000 实验箱实现Cyclone系列EP1C20F324C8芯片完成实验箱电路原理图元件符号实验室芯片引进列表查出系统设计中信号应引脚仿真选择Assignments -> Assignments EditorAssignments Editor窗口中选择 Pin 标签页芯片EP1C20F324C8引脚列表原理图中元件符号进行引脚锁定终引脚锁定图412示:

图412 引脚锁定列表
43硬件验证
VHDL语言编写源程序QuartusⅡ软件完成编译测试波形仿真芯片EP1C20F324C8进行引脚锁定需进行载验证重新编译完成形成配置FPGA jpsmsof 文件载CreateSOPC2000实验系统SOPC 开发板次设计实验箱时钟产生模块芯片模块数码显示模块4*4矩阵键盘跳线时钟模块连接芯片模块载完成键进行测试观察否解决键抖动问题数码否正常显示键键值
键观察实验箱数码显示结果数码显示图(图413图414图415)图中出数码正常显示4*4键盘16键(09AF)结果采合适扫描频率键结果显示迅速延迟采键消抖模块会出现乱码问题符合设计求完成次毕业设计务
设计采8位7段数码键盘AF字母键进行数字显示程序载试验箱键盘A键F键5键实验箱显示结果图413图414图415示

图413 A键显示结果图


图414 F键显示结果图

图415 5键显示结果图

44章结
章系统组成部分抖电路键盘时钟信号键盘扫描电路键盘译码电路进行波形仿真通波形仿真图分析检测次设计模块逻辑功否已实现进行引脚锁定源程序载实验箱进行硬件验证



设计计算机工作台综合运EDA软件工具开发环境硬件描述语言VHDL采顶设计方法系统分成模块设计达系统预期求然Quartus II90通编程调试编译仿真实现键盘扫描程序设计
文键盘扫描程序原理系统结构设计方法进行研究取成果:
(1) 概述课题研究背景课题研究意义文工作
(2) 概述FPGA设计流程VHDL语言Quartus II软件应进行简单介绍
(3) 根次设计课题务书查找资料出键盘扫描程序总体设计方案设计出四模块(时序产生模块键盘扫描模块弹跳消模块键盘译码模块)
(4) Quartus软件编译程序进行仿真然CreateSOPC2000实验系统SOPC 开发板键盘扫描系统进行硬件测试验证
该系统具集成度高稳定性设计灵活设计效率高等优点然次设计实现键盘扫描显示功时间水限方改进例位数扫描显示键盘扫描LED点阵显示等






参考文献
[1] 李君胡胜种新型键盘扫描方式[J]控制工程 2004(S1):125148
[2] 杜道山白荣华伺服控制系统键盘扫描程序处理[J]机床液压 2005(01)
[3] 吴淑芸定时中断扫描键盘显示器程序设计[J]动化仪表 1994(01)
[4] 李亮蒋华勤董雪峰基FPGA键盘控制计数电路设计实现[J]电子设计工程2011(8)154156
[5] 王美丽FPGA设计制造键盘扫描[J]仪表技术2008(10)4749
[6] 张玲基FPGA4*4键盘扫描电路设计[J]计算机软件光盘应2012(13)181182
[7] 袁文波FPGA应开发实践提高[M]中国电力出版社2007:78
[8] 褚振勇FPGA设计应[M]西安电子科技学出版社2002:6168
[9] 周润景基QuartusIIFPGACPLD数字系统设计实例[M]电子工业出版社2007:98104
[10] 胡振华VHDLFPGA设计[M]中国铁道出版社2003:5153
[11] 樊国梁张晓燕基VHDL键盘扫描显示电路设计[J]电子世界2005(02)
[12] 包明EDA技术编程逻辑器件应[M]北京邮电学出版社2006
[13] 尹唱唱卫阿盈基QuartusⅡ数字电路设计研究[J]中国科技信息2009(21):75
[14] 王艳玲QuartusⅡ应数字电路教学研究[J]中国科技信息2009(02):4147
[15] 程继航黄飞石静苑QuartusⅡEDA技术中应[J]电脑编程技巧维护2009(S1)

附 录
程序:
D触发器程序
library ieee
use ieeestd_logic_1164all
entity dcfq is
port(clkd in std_logic
q out std_logic)
end entity dcfq
architecture art of dcfq is
begin
process(clk)
begin
if clk'event and clk'1' then 升
q end if
end process
end architecture art

SR触发器
library ieee
use ieeestd_logic_1164all
entity srcfq is
port(rs in std_logic
qqb out std_logic)
end entity srcfq
architecture art of srcfq is
signal q_sqb_s std_logic
begin
process(rs)is
begin
if(r'0' and s'1')then RS触发器输出置1’
q_s<'1'
qb_s<'0'
elsif(r'1' and s'0')then RS触发器输出置0’
q_s<'0'
qb_s<'1'
elsif(r'0' and s'0')then RS触发器输出保存变
q_s qb_s end if
q qb end process
end architecture art

译码电路程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
use ieeestd_logic_arithall
entity ymdl is
port(clk in std_logic
sm_in in std_logic_vector(1 downto 0)
jm_in in std_logic_vector(3 downto 0)
ym_out out std_logic_vector(3 downto 0))
end entity ymdl
architecture art of ymdl is
signal jm_s std_logic_vector(5 downto 0)
signal ym_s std_logic_vector(3 downto 0)
begin
process(clk)is
begin
jm_s if(clk'event and clk'1')then
case jm_s is
when 000111>ym_s<0001 译码值1
when 001011>ym_s<0010 译码值2
when 001101>ym_s<0011 译码值3
when 001110>ym_s<0100 译码值4
when 010111>ym_s<0101 译码值5
when 011011>ym_s<0110 译码值6
when 011101>ym_s<0111 译码值7
when 011110>ym_s<1000 译码值8
when 100111>ym_s<1001 译码值9
when 101011>ym_s<0000 译码值0
when 101101>ym_s<1010 译码值A
when 101110>ym_s<1011 译码值B
when 110111>ym_s<1100 译码值C
when 111011>ym_s<1101 译码值D
when 111101>ym_s<1110 译码值E
when 111110>ym_s<1111 译码值F
when others>ym_s end case
end if
end process
ym_outend architecture art

扫描信号产生程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_arithall
use ieeestd_logic_unsignedall
entity smxh is
port(clk in std_logic
q_out out std_logic_vector(1 downto 0)
sm_out out std_logic_vector(3 downto 0))
end entity smxh
architecture art of smxh is
signal sm_s std_logic_vector(3 downto 0)
signal q_s std_logic_vector(1 downto 0)
begin
process(clk)is
begin
if(clk'event and clk'1')then
if(q_s11)then
q_s<00
else
q_s end if
end if
end process
process(q_s)is
begin
case q_s is
when 00>sm_s<1110 输出扫描信号1110
when 01>sm_s<1101 输出扫描信号1101
when 10>sm_s<1011 输出扫描信号1011
when 11>sm_s<0111 输出扫描信号0111
when others>sm_s<1111
end case
end process
sm_out q_outend architecture art

扫描时钟产生程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
use ieeestd_logic_arithall
entity smsz is
port(clk in std_logic
clk_out out std_logic_vector(3 downto 0))
end entity smsz
architecture art of smsz is
signal clk_s std_logic_vector(3 downto 0)
begin
process(clk)is
begin
if(clk'event and clk'1')then
if(clk_s1111)then
clk_s<0000
else
clk_s end if
end if
end process
clk_outend architecture art

















致 谢











学生签名:
日 期:




文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

非编码键盘的扫描程序设计课程设计

摘 要 11设计方案 21.1 设计任务 21.2 设计方案 22系统硬件设计 32.1最小应用系统 32.2 8155扩展电路 42.3 矩阵键盘接口电路 62.4 LCD1602接口电路 62.5 主电路设计 83系统软件设计 83.1主程序设计 93.2 延时程序设计 93.3 键盘扫描子程序设计 103.4 显示子程序设计 114 系统调试与结

文***享 2年前 上传354   0

基于FPGA的电梯控制系统设计毕业设计论文

毕 业 设 计 [论 文]题 目: 基于FPGA的电梯控制系统设计 学 院: 电气与信息工程学院 专 业: 电 子 信 息 工 程 姓 名:

文***享 3年前 上传1279   0

基于arm键盘课程设计

基ARM课程设计 专 业:自动化学 号:姓 名: 在ARM嵌入式应用中,人机交互对话最通用的方法就是通过键盘和LCD显示进行的,本设计是通过键盘向系统发送各种指令或置入必要的数据信息。键盘模块设计的好坏,直接关系到系统的可靠性和稳定性。1 实例说明在ARM应用系统中,键盘扫描只是ARM的工作之一,ARM在忙于各项工作任务时,如何兼顾键盘的输入,则取决

文***品 2年前 上传474   0

基于FPGA的温度检测系统设计

XX学院信息工程学院数字系统与Verilog设计报告题 目: 基于FPGA的温度检测系统设计 姓 名: 学 号: 指导老师: 2014摘 要 本文利用数字温度传感器DS18B20的数据接口和特点,阐述了一种基于现场可编程门阵列( FPG

文***享 3年前 上传610   0

基于FPGA的IIR滤波器设计

 基于FPGA的IIR滤波器设计摘 要:数字信号处理在科学和工程技术许多领域中得到广泛的应用,与FIR数字滤波器相比,IIR数字滤波器可以用较低的阶数获得较高的选择性,故本课题采用一种基于FPGA的IIR数字滤波器的设计方案,首先分析了IIR数字滤波器的原理及设计方法,然后通过MAX+PLUSⅡ的设计平台,

文***品 3年前 上传543   0

基于FPGA的数字跑表

基于FPGA的数字跑表学院:物电学院姓名: 学号:班级:班日期:2011年X月X日目录一、实例的主要内容 3二、实验目标: 41初步掌握Verilog HDL语言的设计方法 42、完成一个数字跑表的设计。 4三、实验原理: 4四、程序代码及分析 5五、实验步骤 95.1新建一个文件夹, 95.2创建工程 105.3 编译、运行程

文***品 3年前 上传632   0

基于FPGA的多路彩灯控制器的设计课程设计

 FPGA课程设计报告 学院: 信息工程学院班 级: 信息级班姓 名: 学 号: 完成时间: 2015年X月X日 评阅意见: 题目基于FPGA多路彩灯控制器的设计一、引言 21世纪,电子技术迅猛发展,高薪技术日新月异。传统的设计方法正逐步退出历史的舞台,取而代之的

文***品 3年前 上传533   0

PARWANCPU状态机设计基于FPGA的数字系统设计

 基于FPGA的数字系统设计 大作业 学号: 姓名: 班级: 题目一:设计Parwan 的control section 内部状态机s1\s2\..\s9\,并给出功能仿真? 题目二:利用分层结构设计ParwanCPU,并给出功能仿真

文***品 11个月前 上传306   0

基于FPGA的计数器设计电子技术课程设计

XX学院电子技术课程设计 题 目 _基于FPGA的计数器设计___ _________________________ 学生姓名 _ XXX_________________ 专业班级 电子信息工程班__ __

z***u 1年前 上传325   0

基于Android的中国象棋毕业设计

基于Android的中国象棋毕业设计 摘 要 现在智能操作系统迅速发展,使得智能手机和其他的智能移动设备得到广泛普及,因此,智能操作系统的应用软件开发及其需要的服务将有广阔的发展前景。而Android是开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,Android平台具有无限

文***享 5年前 上传1221   0

基于安卓系统的点餐系统毕业设计

 本科毕业论文(设计) 题 目: 基于安卓系统的点餐系统 专 业: 姓 名: 指导教师: 职 称: 答辩日期: 基于安卓系统的点餐系统 摘 要 现如今我们生活在一个信息化的时代,信息数据随处可见。特别是无线数据传输

z***u 5年前 上传1692   0

基于单片机智能小车毕业设计

毕 业 设 计(论 文)设计(论文)题目: 基于单片机的智能小车 学 院 名 称: 电子与信息工程学院 专 业: 电子与信息工程

文***品 6个月前 上传202   0

FPGA课程设计基于RAM的十口8位计数器

FPGA课程设计报告题 目: 基于RAM的十口8位计数器 院 系: 通信与信息工程学院 专业班级: 电科班 学生姓名: 导师姓名:

文***品 3年前 上传455   0

基于FPGA的FSK数字调制解调器设计

等级:课 程 设 计课程名称专业课程设计课题名称基于FPGA的FSK数字调制解调器设计专 业电子信息工程班 级学 号姓 名指导老师2016年X月X日电气信息学院专业设计任务书课题名称基于FPGA的FSK数字调制器或解调器设计姓 名专业电子信息工程班级 学号指导老师课程设计时间

文***品 1年前 上传338   0

通信工程基于FPGA的图像数据处理FIFO核设计论文

 基于FPGA的图像数据处理 FIFO核设计 院 系:信息科学与工程学院 专 业 班:通信1201 姓 名: 学 号: 指导教师: 2016年5月 基于FPGA的图像数据处理 FIFO核设计 The Design of FIFO Core Processing Image Dat

文***品 5年前 上传1086   0

2018年毕业设计(论文)的工作程序

毕业设计(论文)的工作程序  毕业设计(论文)一般工作程序如下:  1.下达设计(论文)任务书  毕业设计(论文)题目选定后,应由指导教师向学生下达毕业设计(论文)任务书,明确下达设计(论文)课题的目的、性质、内容和要求。  设计(论文)任务书一般应包括如下主要内容:  (1)毕业设计(论文)的任务和具体要求;  (2)毕业设计说明书或论文应包含的内容;  (3)毕业

t***5 6年前 上传321   0

基于FPGA的语音录制与回放系统

本语音录制与回放系统的基本工作原理是将模拟语音信号通过模数转换器(A/D)转换成数字信号,再通过FPGA(控制器)将数字信号存储到存储器中; 回放时, 由 FPGA控制将数据从存储器中读出, 然后通过数模转换器(D/A)转换成模拟信号, 经放大后由扬声器输出。

国***锅 5年前 上传1188   0

基于VHDL的电子琴设计(含完整程序)

 课程设计报告 题 目 专业、学号 授课班号 学生姓名 指导教师 完成时间 课程设计(报告)任务书 (理 工 科 类) Ⅰ、课程设计(报告)题目: 电子琴

文***享 5年前 上传878   0

基于微信小程序的测试设计与分析

基于微信小程序的测试设计与分析Testing Design and Analysis Based on WeChat Mini Program日成绩评定 成绩项论文成绩(百分制)折合比例实得成绩(折合分)指导教师成绩30%评阅教师成绩20%答辩成绩50%总评成绩注:毕业设计(论文)成绩按百分制评定。答辩成绩不及格的(评分低于6

平***苏 3年前 上传966   0

基于PLC的电子皮带秤设计毕业设计

 本科毕业论文(设计) 论文题目 : 基于PLC的电子皮带秤设计 姓名 : 学号 : 班级 : 年级 : 专业 : 学院 : 指导教师 : 完成时间 : 20XX年X月X日 基于PLC的电子皮带秤设计 X The Design of Electronic Belt Scale Based on PLC X, X

文***品 5年前 上传1433   0

毕业设计(论文)基于PLC的停车场车位控制系统设计

基于PLC的停车场车位控制 系统设计 系 别:机电与自动化学院 专 业 班:电气工程及其自动化xx班 姓 名: 学 号:20xx113xx 指导教师: 201x年6月 基于PLC的停车场车位控制 系统设计 Design of Control System for Parking Spaces Based on PLC 随着汽车工业的迅猛发展,我国汽车拥有量急剧增加,很

l***金 5年前 上传3091   0

基于AT89S51单片机无线传输系统设计毕业设计

毕业论文(设计) 题 目: 单片机无线传输系统设计 完 成 人: 班 级: 学 制: 专

文***享 4年前 上传879   0

基于单片机的空调温度控制系统设计毕业设计

 毕业设计  题 目 基于单片机的空调温度控制系统设计 学生姓名 学 号 学 院 计算机与信息工程系 专业班级 指导教师 职 称   年 月 内容摘要 空调是一种能够改善室内温度、湿度、洁净度和空气流速等参数的电器装置。它在生产生活中用途非常广泛。空调

z***u 5年前 上传2580   0

基于51单片机的智能窗户设计毕业设计

基于51单片机的智能窗户设计【摘 要】 随着电子技术的发展和人民生活水平的不断提高,智能窗已经越来越多地被用到了现代智能化建筑中,提供住户一个安全、方便的环境。据统计,在未来的几年内,安装智能窗的用户将不断增加。本次设计的智能窗户系统能通过其数据检测传感电路不断循环检测室外湿度及温度,当室外湿度达到一定时(下雨时)窗户自动关闭,防止潮湿空气或雨水进入房间;另外可设置自动关闭窗户或开启窗户时

文***品 5个月前 上传126   0

基于单片机的智能鱼缸的设计与实现毕业设计

近年来嵌入式发展迅速,智能家居也进入了人们的生活。智能鱼缸却没有快速发展。我根据市场上相关设备现状的分析和研究,从系统集成角度进行设计和开发,提出了一套多功能的智能观赏鱼缸控制系统的设计方案。

z***u 5年前 上传4303   0