




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4.1.1 实验目的 1.学习复杂数字系统的设计方法; 2.掌握矩阵式键盘输入列阵的设计方法。4.1.2 实验设备 PC微机一台,TD-EDA试验箱一台,SOPC开发板一块。4.103 实验内容在电子,控制,信息处理等各种系统中,操作人员经常需要想系统输入数据和命令,以实现人机通信。实现人机通信最常用的输入设备是键盘。在EDA技术的综合应用设计中,常用的键盘输入电路独立式键盘输入电路、矩阵式键盘输入电路和“虚拟式”键盘输入电路。所谓矩阵是键盘输入电路,就是将水平键盘扫描线和垂直输入译码线信号的不同组合编码转换成一个特定的输入信号值或输入信号编码,利用这种行列矩阵结构的键盘,只需N个行线和M个列
2、线即可组成NXM按键,矩阵式键盘输入电路的优点是需要键数太多时,可以节省I/O口线;缺点是编程相对困难。本实验使用TD-EDA实验系统的键盘单元设计一个4x4的矩阵键盘的扫描译码电路。此设计包括键盘扫描模块和扫描码锁存模块,原理如图4-1-1。每按下键盘列阵的一个按键立即在七段数码管上显示相应的数据。4.1.1 实验步骤 1. 运行Quartus II 软件,分别建立新工程,选择File->New菜单,创建VHDL描述语言设计文件,分别编写、REG.VHD. 2.扫描码锁存模块REG的VHDL源程序如下;-输入锁存器VHDL源程序:REGVHDL LIBRARY IEEE;USB IEE
3、E.STD-LOGIC-1164.ALL; ENTITY REG ISPORT ( RCLK : IN STD-LOGIC; -扫描时钟YXD : IN STD-LOGIC-VECTOR(3 DOWNTO 0); -Y 列消抖输入 DATA : IN STD-LOGIC-VECTOR(7 DOWNTO 0); -输入数据 LED : OUT STD-LOGIC-VECTOR(7 DOWNTO 0); -锁存数据输出END ENTITY REG;ARCHITECTURE BEHV OF REG IS SIGNAL RST : STD-LOGIC; -锁存器复位清零 SIGNAL OLDDATA
4、:STD-LOGIC-VECTOR(7 DOWNTO 0); -锁存器旧数据 SIGNAL NEWDATA :STD-LOGIC-VECTOR(7 DOWNTO 0); -锁存器新数据 BEGIN PROCESS(RCLK) BEGIN IF RCLKEVENT AND RCLK=1THEN RST<=YXD(3)AND YXD(2)AND YXD(1)AND YXD(0); -判断是否有按键 END IF; END PROCESS; PROCESS(RST) IS BEGIN IF(RST=1)THEN -RST=1没有按键按下 NEWDATA<=OLDDATA; ELSE OL
5、DDATA<=DATA; -RST=0有按键按下打入新据 END IF; LED<=NEWDATA; END PORCESS; END ARCHIECTUBE BEHV;3. 键盘扫描模块JPSCAN的VHDL源程序如下; -键盘扫描电路的VHDL源程序;LIBRARY IEEE;USB IEEE-STD-LOGIC-1164-ALL;USB IEEE-STD-LOGIC-ARITH-ALL;USB IEEE-STD-LOGIC-UNSIGNED-ALL;ENTITY JPSCAN ISPORT(SCLK : IN STD-LOGIC -系统时钟:1KHZ YLINE : IN S
6、TD-LOGIC-VECTOR(4 DOWN 1); -Y列按键输入 RCLK : OUT STD-LOGIC; -X行键盘扫描时钟 YXD : OUT STD-LOGIC-VECTOR(3 DOWN 0); -Y列消抖输出 DATA : OUT STD-LOGIC-VECTOR(7 DOWN 0); -数字输出 XROW : OUT STD-LOGIC-VECTOR(4 DOWN 1); -X行键盘扫描END ENTITY JPSCAN;ARCHITECTURE BEHV OF JPSCAN IS COMPONENT JPXD IS -控制电路工作时钟:512Hz SIGNAL KEY-SC
7、AN:STD-LOGIC-VECTOR(1 DOWNTO 0); -键盘扫描时钟信号 -“00-01-10-11” SIGNAL CLK-JPXD : STD-LOGIC; -去抖电路工作时钟 SIGNAL Y-XD : STD-LOGIC-VECTOR(3 DOWNTO 0); -键盘列输入去抖后的寄存器 SIGNAL X-SCAN : STD-LOGIC-VECTOR(3 DOWNTO 0) -键盘行扫描输出寄存器 -1110-1101-1011-0111 SIGNAL VALUE : STD-LOGIC-VECTOR(7 DOWNTO 0); -按键译码数值寄存器 BEGIN DATA&
8、lt;=VALUE; COUNTER:BLOCK IS -信息扫描发生器 SIGNAL Q :STD-LOGIC-VECTOR(6 DOWNTO 0); -计数器实现分频 BEGIN PROCESS(SCLK)IS BEGIN IF SCLKEVENT AND SCLK=THEN Q<=Q+1; END IF; CLK<=Q(0);-控制电路工作时钟:512Hz,系统时钟的二分频 CLK-JPXD<=Q(2); -去抖时钟信号,大约128Hz KEY-SCAN<=Q(6 DOWNTO 5); -产生键盘扫描信号00-01-10-11,大约16Hz END PROCESS
9、; X-SCAN<=”1110”WHEN KEY-SCAN=”00”ELSE”1101”WHEN KEY-SCAN=”01”ELSE”1011”WHEN KEY-SCAN=”10”ELSE”0111”WHEN KEY-SCAN=”11”ELSE“1111” XROW(4 DOWNTO 1)<=X-SCAN(3 DOWNTO 0); -X行扫描 END BLOCK COUNTER; JPXDMK:BLOCK IS -键盘去抖模块 BEGIN U1:JPXD PORT MAP(D-IN=>YLINE(1),D-OUT=>Y-XD(0),CLK=>CLK-JPXD);U
10、2:JPXD PORT MAP(D-IN=>YLINE(2),D-OUT=>Y-XD(1),CLK=>CLK-JPXD);U3:JPXD PORT MAP(D-IN=>YLINE(3),D-OUT=>Y-XD(2),CLK=>CLK-JPXD);U4:JPXD PORT MAP(D-IN=>YLINE(4),D-OUT=>Y-XD(3),CLK=>CLK-JPXD); YXD(3 DOWNTO 0)<=Y-XD(3 DOWNTO 0); RCLK<=CLK; -键盘扫描时钟等于控制电路工作时钟:512Hz END BLOCK J
11、PXDMK; KEY-DECODER : BLOCK IS -键盘译码模块 SIGNAL Z:STD-LOGIC-VECTOR(5 DOWNTO 0); BEGIN PORCESS(CLK) BEGIN Z<=KEY-SCAN&Y-XD; IF CLKEVENT AND CLK=1THEN CASE Z IS WHEN”001110”=>VALUE<=”00111111”; -0 WHEN”011110”=>VALUE<=”00000110”; -1 WHEN”101110”=>VALUE<=”01011011”; -2 WHEN”111110
12、”=>VALUE<=”01001111”; -3 WHEN”001101”=>VALUE<=”01100110”; -4 WHEN”011101”=>VALUE<=”01101101”; -5 WHEN”101101”=>VALUE<=”01111101”; -6 WHEN”111101”=>VALUE<=”00000111”; -7 WHEN”001001”=>VALUE<=”01111111”; -8 WHEN”011011”=>VALUE<=”01101111”; -9 WHEN”101011”=>
13、VALUE<=”01110111”; -A WHEN”111011”=>VALUE<=”01111100”; -B WHEN”000111”=>VALUE<=”00111001”; -C WHEN”010111”=>VALUE<=”01011110”; -D WHEN”100111”=>VALUE<=”01111001”; -E WHEN”110111”=>VALUE<=”01110001”; -F WHEN OTHERS => VALUS<=”00000000”; -OTHER END CASE; END IF;
14、END PROCESS; END BLOCK KEY-DECODER;END ARCHITECTURE BEHV;4. 上述程序中键盘消抖模块JPXD的VHDL源程序如下: -键盘输入消抖电路的VHDL源程序。JPXD,VHDLIBRARY IEEE; USB IEEESTD-LOGIC-1164ALL; ENTITY JPXD IS PORT(D-IN : IN STD-LOGIC; CLK :IN STD-LOGIC; D-OUT:OUT STD-LOGIC); END ENTITY JPXD;ARCHITECTURE BEHV OF JPXD ISCOMPONENT DCFQ IS PO
15、RT(CLK: IN STD-LOGIC; -时钟信号 CLRN: IN STD-LOGIC: -清零信号 PRN: IN STD-LOGIC; -预置信号 D: IN STD-LOGIC; Q: OUT STD-LOGIC);END COMPONENT DCFQ; SIGNAL VCC,INV-D:STD-LOGIC; SIGNAL Q0,Q1:STD-LOGIC; SIGNAL D1,D0:STD-LOGIC; BEGIN VCC<=1; INV-D<=NOT D-IN;UMN1:DCFQ PORT MAP(CLK=>CLK,CLRN=>INV-DVCRN=>
16、VCC,D=>VCC,Q=>Q0);UMN2:DCFQ PORT MAP(CLK=>CLK,CLRN=>Q0,PRN=>VCC,D=>VCC,Q=>Q1); PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=THEN D0<=NOT Q1; D1<=D0; END IF;END PROCESS; D-OUT<=NOT(D1 AND NOT D0);END ARCHITECTURE BEHV;5. 编译源文件,编译无误后分别对上述VHDL文件进行仿真,验证其逻辑功能正确后,选择File->Create/Update ->Create Symbol File for Current File菜单,分别生成符号文件.BSF。6. 建立新工程,工程名称及顶层文件名称为JIAPAN,选择File->New菜单,创建图形设计文件。如图4-1-1所示,完成键盘扫描输入电路的设计。将创建的图形设计文件保留存为作为整个设计的顶层文件。7. 选择Tools->Compiler Tool菜单,编译文件。8. 选择Assignments->Assignment Editor菜
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2020年全国生物学联赛加试答案
- 河南省许平汝名校2025届高三下学期二模试题 物理 含解析
- 品牌代理运营合同协议
- 榆次二手房买卖合同协议
- 2025借款合同优于租赁合同
- 2025中型建筑承包合同范本
- 哈密供热合同协议
- 品牌规划咨询合同协议
- 四川省南充市2025届高三下学期4月三诊试题 政治 含解析
- 2025版全面单价合同范本
- 监理实施细则模板(信息化、软件工程)
- 2025年春季学期形势与政策第二讲-中国经济行稳致远讲稿
- 人教PEP版英语五年级下册Recycle 1单元教学设计(2课时教案)
- 2025年中共凉山州委办公室面向全州考调所属事业单位工作人员高频重点模拟试卷提升(共500题附带答案详解)
- 夏季货车行车安全教育
- 【基础卷】同步分层练习:五年级下册语文第14课《刷子李》(含答案)
- 2025年山西焦煤集团有限责任公司招聘笔试参考题库含答案解析
- 产后疼痛管理指南
- 环境生物学复习-段昌群-参考重点
- 第六届“四川工匠杯”职业技能大赛(健康照护赛项)理论参考试题库(含答案)
- DB2306-T 179-2023 林场森林火灾隐患调查评估技术规程
评论
0/150
提交评论