键盘及接口显示电路EDA_第1页
键盘及接口显示电路EDA_第2页
键盘及接口显示电路EDA_第3页
键盘及接口显示电路EDA_第4页
键盘及接口显示电路EDA_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、车辆与动力工程学院课程设计说明书河南科技大学河南科技大学课课 程程 设设 计计 说说 明明 书书课程名称课程名称 EDA 技术 题题 目目 键盘及接口显示电路 学学 院院 车辆与动力工程学院 班班 级级 农业电气化与自动化 091 学生姓名学生姓名 卢浩冉 指导教师指导教师 罗四倍 日日 期期 2012 年 7 月 12 号 车辆与动力工程学院课程设计说明书2键盘及接口显示电路摘 要本文通过对 44 矩形键盘的信息采集,并能够在数码显示管上显示所按下的信息。通过循环输出行信号,检测列信号输入,将行列信号相并,来达到采集信号的目地,并通过译码在 7 段数码管上显示出来。此次设计,为了防止抖动引起

2、的混乱,加入了一个防抖动环节。在译完一个键值后,加了一个计算环节,一旦检测到列信号后,译码,紧跟着进入计数环节,此时键抖动不会进入其他环节,这样可以防止抖动。给精度较高的场合应用提供了良好的条件,为以后高精度的应用创造良好空间。设计中通过按键控制可以显示字符串,例如“HELLO”,较小的改动可以任意显示 5 个字符,这在广告中的用处随处可见,给现代生活带来了方便。关键词:键盘扫描 译码显示 字符串车辆与动力工程学院课程设计说明书3目 录第一章 绪论 .41.1 设计目的和意义 .41.2 设计任务及要求 .4第二章 总体设计 .52.1 工作原理 .52.2 设计思路 .52.3 数码管显示译

3、码模块设计 .62.4 字符串“HELLO”的模块实现 .72.4.1 七段数码管译码扫描显示.72.4.2 原理图.8第三章 仿真 .93.1 键盘扫描功能的仿真.93.2 字符串的仿真.10第四章 程序 .114.1 键盘扫描程序.114.2 字符串显示程序.16第五章 结论 .18参考文献 .19 车辆与动力工程学院课程设计说明书4第一章 绪论1.1 设计目的和意义 本次设计的目的就是通过实践深入理解计算机组成原理,了解 EDA 技术并掌握 VHDL 硬件描述语言的设计方法和思想。以计算机组成原理为指导,通过学习的 VHDL 语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识和基

4、本单元电路的综合设计应用。通过对掌握 44 键盘的扫描的巧妙实现和对字符串的显示过程.巩固和综合运用所学知识,提高 IC 设计能力,提高分析、解决计算机技术实际问题的独立工作能力。1.2 设计任务及要求 1. 键盘扫描功能:能够对矩形键盘信息采集;2. 显示功能:能够显示相应的按键信息,并能够在按键控制下切换为字符串显示“HELLO”!3. 掌握数码管工作的原理,并能够对设计的程序进行仿真和测试,以实现相应的功能。车辆与动力工程学院课程设计说明书5第二章 总体设计2.1 工作原理可编程器件的 KEY_HANG3.0行信号输出端不停循环输出“1110”“1101”“1011”“0111”。当没有

5、键按下时可编程器件的 KEY_LIE3.0列信号输入端检测到的是“1111”。当有按键按下时,如按下 1,此时 KEY_HANG3.0行信号输出为“0111”,即 KEY_HANG3.0的 3 管脚为“0”,可由电路看出,此时输入端KEY_LIE3.0检测到的将是“0111”。KEY_LIE3.0的 3 管脚为 0,可以在编写程序时,将输出信号 KEY_HANG3.0与输入信号 KEY_LIE3.0同时判断,比如可以认为当数据“KEY_HANG&KEY_LIE”为“01110111”时,可译码成数据 1,。同理可得其他按键的编码。根据不同数据的编码译成不同的数据。2.2 设计思路1.循

6、环输出行信号,检测列信号输入,将行列信号相并。2.译键值。3.去抖动。在译没一个键值后,为了防止抖动,加了一个计算环节,一旦检测到列信号后,译码,紧跟着进入计数环节,此时键抖动不会进入其他环节,这样可以防止抖动。4.数码管译码、循环显示。电路的具体功能罗列如下: 1) 采用44矩阵键盘作为操作数和操作符的输入设备。 2) 采用2位8段数码管作为输出显示设备,显示按下的数字及简单的功能。 3) 由于所有键盘在按下或者弹起的时候均有按键抖动,所以应该采用去抖电路,当检测到有按键按下去的时候,应该延时20ms后,再进行检测,如果仍有键盘按键被按下去的话,则进行键盘读值。 车辆与动力工程学院课程设计说

7、明书6当CLK_1K上升沿到来时状态转为state0,然后判断列与非后的值,看是否有按键按下,如果有输入数据,则自动启动20ms的计数器,当计满数后,产生一个指示信号,此信号为1bit,高电平有效。当读到此指示信号后,便再次将row信号锁存至寄存器,便得到键盘的一个返回值。如果row没有变化,则state转换为state2,对第二行进行按键扫描。依此类推,扫描第三行与第四行。因为普通的按键都是接触式的,当按键闭合或释放时,上下接触面都会产生一个很短暂的抖动,如图2.2所示,这个抖动时间一般都会持续5-10ms,虽然这个抖动时间很短,但对于FPGA工作在50M的高频率上的器件来说,还是可以捕捉的

8、到的。为了使CPU对于一次按键操作只处理一次,在软件中必须加入去除抖动处理。如图2.1所示图 2.1 按键闭合时产生的抖动由图中可以看出,最简单的去抖方法就是每隔一段时间读一次键盘,时间间隔大于10ms 即可。如果连续两次检测都有按键被按下,则可以肯定有按键被按下,而且也进入闭合稳定期。2.3 数码管显示译码模块设计 数码管显示译码电路主要用来对实际的二进制数据装换为8段数码管的实际显示控制码,采用两个2位的8段共阴极数码管,数码管的显示方式有两种:静态显示和动态显示。具体如下: 静态显示方式:所谓静态显示就是指无论是多少位数码管,同时处于显示状态需要的硬件电路较多(每一个数码管都需要一个锁存

9、器) ,将造成很大的不便,同时由于所有数码管都处于被点亮状态,所以需要的电流很大,当数码管的数量增多车辆与动力工程学院课程设计说明书7时,对电源的要求也就随之增高。所以,在大部分的硬件电路设计中,很少采用静态显示方式。 动态显示方式:所谓动态显示,是指无论在任何时刻只有一个数码管处于显示状态,每个数码管轮流显示。动态显示的优点是:硬件电路简单(数码管越多,这个优势越明显) ,由于每个时刻只有一个数码管被点亮,所以所有数码管消耗的电流较小;缺点是:数码管亮度不如静态显示时的亮度高,例如有8个数码管,以1秒为单位,每个数码管点亮的时间只有1/8秒,所以亮度较低;如果刷新率较低,会出现闪烁现象;如果

10、数码管直接与单片机连接,软件控制上会比较麻烦等。 显示译码方式如下: 1) 时钟上升沿到来时分别对位选和段选进行译码。 2) 将输入的2bite位选数据译码成4比特数据控制数码管的2位,由于是共阴极数码管要选定相应的数码管则使该位位低电平,其它位为高电平即可,如:0000译码为0111_1111,对应于实验板上的左边第一位数码管。 3) 将输入的4bite段选数据译码为8比特数据控制8个LED的亮灭,最高位接A,最低位接小数点位DP。若要显示0则对应的译码为 8b1111_1100。 2.4 字符串“HELLO”的模块实现2.4.1 七段数码管译码扫描显示clk:时钟输入端,此信号是串行扫描的

11、同步信号。data_control7.0:8 个分别控制数码管显示的输入信号; led_addr7.0:对 8 个数码管进行串行扫描的输出控制信号; seg7_data6.0:驱动 7 段数码管各显示段的输出信号;车辆与动力工程学院课程设计说明书82.4.2 原理图图 2.2 字符串显示原理图车辆与动力工程学院课程设计说明书9第三章 仿真3.1 键盘扫描功能的仿真没有键按下时行循环输出“”“”“”“”图 3.1 无按键时波形当随机按下时行保持所按下的状态不变 图 3.2 随机按键时波形车辆与动力工程学院课程设计说明书103.2 字符串的仿真图 3.3 字符串显示车辆与动力工程学院课程设计说明书

12、11第四章 程序4.1 键盘扫描程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jp isport(clk,start:in std_logic;kbcol:in std_logic_vector(3 downto 0); -行扫描信号kbrow:out std_logic_vector(3 downto 0); -列扫描信号seg7_out:out std_logic_vector(6 downto 0);-显示控制信号scan:out std_logic_vector(7 d

13、ownto 0) -数码管地址选择控制信号);end jp;architecture one of jp issignal count,sta:std_logic_vector(1 downto 0);signal seg7:std_logic_vector(6 downto 0);signal dat:std_logic_vector(4 downto 0);signal fn:std_logic; -按键标志位,判断是否有键被按下beginscan=00000001; -只使用一个数码管显示-循环扫描计数器process(clk) beginif clkevent and clk=1the

14、ncountkbrow=0001;stakbrow=0010;stakbrow=0100;stakbrow=1000;stakbrow=1111;end case;end if;end process;-行扫描译码process(clk,start)beginif start=0thenseg7case kbcol iswhen 0001=seg7=1111001;datseg7=1101101;datseg7=0110000;datseg7=1111110;datseg7=0000000;datcase kbcol iswhen 0001=seg7=1111000;datseg7=10111

15、11;datseg7=1011011;datseg7=0110011;datseg7=0000000;datcase kbcol iswhen 0001=seg7=0011111;datseg7=1110111;datseg7=1111011;datseg7=1111111;datseg7=0000000;datcase kbcol iswhen 0001=seg7=1000111;datseg7=1001111;datseg7=0111101;datseg7=1001110;datseg7=0000000;datseg7=0000000;end case;end if;end process

16、;-产生按键标志位,用于存储按键信息fn=not (dat(0) and dat(1) and dat(2) and dat(3) and dat(4);process(fn)beginif fnevent and fn=1then -按键信息存储车辆与动力工程学院课程设计说明书16seg7_out =seg7;end if;end process;end one;4.2 字符串显示程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Scan8led isport(clk:in st

17、d_logic;data_control:in std_logic_vector(4 downto 0); led_addr:out std_logic_vector(4 downto 0); seg7_data:out std_logic_vector(6 downto 0);end entity scan8led;architecture one of scan8led istype aaaa is array (0 to 3)of integer;constant a:aaaa:=(0,1,2,3);type seg7_data_type is array(natural range)o

18、f std_logic_vector(6 downto 0);constant seg7_data_table:seg7_data_type(0 to 5):=(-gfedcba 1110110, 1111001, 0111000, 0111000, 0011111, 0000000);type led_addr_type is array(natural range)of std_logic_vector(7 downto 0);constant led_addr_table:led_addr_type(0 to 4):=(-dizhibiao车辆与动力工程学院课程设计说明书17000000

19、01,00000010,00000100,00001000,00010000);begin process(clk)variable count:integer range 0 to 4:=0;beginif(clkevent and clk=1)thencount:=count+1;led_addr=led_addr_table(count);if(data_control(count)=1)thenseg7_data=seg7_data_table(count);elseseg7_data=seg7_data_table(5);end if;end if;end process;end architecture one;车辆与动力工程学院课程设计说明书18第五章 结论这次EDA课程设计历时十天,学到很多很多的东西。同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,都会很高兴。在编写顶层文件的程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论