4乘以4键盘扫描电路设计.doc_第1页
4乘以4键盘扫描电路设计.doc_第2页
4乘以4键盘扫描电路设计.doc_第3页
4乘以4键盘扫描电路设计.doc_第4页
4乘以4键盘扫描电路设计.doc_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

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

文档简介

4*4键盘扫描电路设计南京师范大学泰州学院信息工程学院电子信息工程专业FPGA实训报告课程名称: 4*4键盘扫描电路设计 班 级: 09(3)班 学 号: 09090315 姓 名: 周蓓蓓 指导老师: 周爱军、黄金凤 2012年6月21日目录一、 前言 2二、 4*4键盘扫描电路设计要求 3三、 4*4键盘扫描电路设计原理图 3四、 实验内容及步骤 4五、 部分程序说明 4六、 引脚分配 8七、 波形仿真 7八、 部分效果图 8九、 实训总结 8十、 参考文献 11一、前言电子设计自动化(Electronics Design AutomationEDA)技术是现代电子工程领域的一门新技术。它提供了基于计算机和信息技术的电路系统设计方法。EDA技术就是依赖功能强大的计算机,对用电路描述语言描述的设计文件,自动地完成编译、化简、分割、综合、布线、优化、仿真等,直至实现既定的电子电路系统的功能。EDA技术打破了软件设计和硬件设计间的壁垒,是一门综合性学科,一种新的技能技术。它将设计效率和产品性能合二为一,代表了电子设计技术和电子应用技术的发展方向。VHDL的全名是Very High Speed Integrated Circuit Hardware Description Language,于83年由美国国防部发起创建,由IEEE(The Institute of Electrical and Electronics Engineers 电气与电子工程师学会)进一步发展,在87年作为“IEEE标准1076”发布,93年被升级为“IEEE1164”。硬件描述语言是EDA技术的重要组成部分,VHDL作为电子设计的主流硬件描述语言,被多个EDA公司所引用。 VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,具有良好的移植性和适应性,从而大大简化了硬件设计任务,提高了电子系统设计的效率和可靠性。用VHDL进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。此次课程设计我们组的项目是“出租车计价器”。我们小组通过老师一个星期的知识讲解并自学了FPGA设计基础,应用Quartus 软件进行了设计和编辑。二、 4*4键盘扫描电路设计要求用Verilog hdl语言设计一个4*4键盘扫描控制器。当用户按某一个键时,获取相应的键值,然后显示出来。电路符号:其中:CLK_1K对应键盘扫描时钟,COL3.0为列线扫描输入,ROWSCAN3.0为行线扫描输出,BUTCODE7.0为键值输出,送给数码管显示。编写以上的程序模块,用仿真器检测模块设计得正确与否,并给出仿真波形。配置下载后观察所设计电路的功能.三、4*4键盘扫描电路设计原理图行信号接到高电平,当没有键按时,行线与列线是断开的,且行线都是高电平(1111),行信号作为FPGA的输入端、列信号作为FPGA的输出端。可以设置列线初始状态为低电平(0000)。信号为从上到下的顺序,当有键按下时,假如是K1按下,行信号与列信号接通,这时相应的行线(KEY0)变为低电平(01111),可以肯定第一行(K1,5,9,13)有键按下。下面就要运用扫描的原理了: 1、因为只知道第一行有键按下,不知道是那个,可以设置列信号为0111, 这时行信号变为(1111)(注:假设时钟周期很短,手还没松开,即键还在按下的状态) 2、设置列信号为1011,行信号也变成(1111) 3、设置列信号为1101,行信号也变成(1111) 4、设置列信号为1110,行信号也变成(0111),这时就可以肯定是第一个键 按下。 本实验主要完成的实验是完成44键盘扫描的,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。键盘扫描的实现过程如下:对于44键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。获取到行值和列值以后,组合成一个8位的数据,根据实现不同的编码在对每个按键进行匹配,找到键值后在7段码管显示。 四、实验内容及步骤本实验内容是完成44键盘的扫描,然后将正确的键值进行显示,实验步骤如下:1、编写键盘扫描和显示的VHDL代码。2、用QuartusII对其进行编译仿真。3、在仿真确定无误后,选择芯片EPF10K10LC843。4、给芯片进行管脚绑定,在此进行编译。5、根据自己绑定的管脚,在实验箱上对键盘接口、显示接口和FPGA之间进行正确连线。6、给目标板下载代码,在44键盘输入键值,观看实验结果。五、程序说明module code_tran (scan_cnt, clk, key_valid, butt_code);input3:0 scan_cnt; input clk; input key_valid; output3:0 butt_code; reg3:0 butt_code;always (clk) begin : code_tran if (clk = 1b1) begin if (key_valid = 1b1) begin case (scan_cnt) 4b0000 : begin butt_code = 4b0001 ; end 4b0001 : begin butt_code = 4b0010 ; end 4b0010 : begin butt_code = 4b0011 ; end 4b0011 : begin butt_code = 4b0100 ; end 4b0100 : begin butt_code = 4b0101 ; end 4b0101 : begin butt_code = 4b0110 ; end 4b0110 : begin butt_code = 4b0111 ; end 4b0111 : begin butt_code = 4b1000 ; end 4b1000 : begin butt_code = 4b1001 ; end 4b1001 : begin butt_code = 4b1010 ; end 4b1010 : begin butt_code = 4b1011 ; end 4b1011 : begin butt_code = 4b1100 ; end 4b1100 : begin butt_code = 4b1101 ; end 4b1101 : begin butt_code = 4b1110 ; end 4b1110 : begin butt_code = 4b1111 ; end default : begin butt_code = 4b0000 ; end endcase end end end endmodulemodule debounce (key_pressed, clk, key_valid);input key_pressed; input clk; output key_valid; reg key_valid;always (clk or key_pressed) begin : debounce reg5:0 dbnq; if (key_pressed = 1b1) begin dbnq = 6b111111; end else if (clk = 1b1) begin if (dbnq != 1) begin dbnq = dbnq - 1; end end if (dbnq = 2) begin key_valid = 1b1 ; end else begin key_valid = 1b0 ; end end endmodule六、引脚分配七、波形仿真八、部分效果图九、实训总结 本次关于FPGA的实训是一笔珍贵的财富,虽然只是短短的3天,但它给我带来了许多快乐和乐趣。一是为了让我们更好的掌握我们的专业技能,为今后的工作打下良好的基础。 在老师的指导下,在同学们的帮助和自己的努力下,我把老师交给我们的实训任务圆满完成了。在实训的过程中,我对FPGA一些基本的知识有了更深刻的了解和很强的动手能力,同时也学到了很多东西。4X4扫描键盘只用8位数据线,可以提供16个不同的按键信号。这样做的好处是:1、节省FPGA管脚资源;2、系统简单化减小电路规模;特别是在资源比较紧张,对成本要求严格的系统中这是一种非常流行的设计方法。在上面的实验中我们已经见到了扫描数码显示器的实用性,4X4扫描键盘是输入设备,控制器来要稍微复杂一些。掌握这种程序设计方法在以后的学习工作中还是很有用武之地的。当自己真正把课堂上的所学运用到实际业务中去的时候,会把平时听课过程中遇到的疑点和问题逐个消除,使书本上的文字真正成为自己的知识。作为一名即将面临步入社会的大学生,工作是我们面向社会的第一步,我们唯有诚心务实,精技立业,才是我们适应社会的标准,我们能学到很多技能这不紧是自己的功劳,还应该感谢不厌其烦为我们解答每一个疑难问题的周爱军及黄金凤老师,感谢老师对我们每一位学生的热心帮助。老师在这次实训中起到了指导者的作用,让我们实实在在的学到了很多知识,更有些是让我们受益终身的东西。这次实训,我不论是从个人动手能力上还是专业知识上都有了很大的提高,团结合作能力也大大提升了。我想我还会珍惜以后的每一次的学习,而这样的实训学习更是值得我去珍惜!相信,有了这一次实训经历,无论是今后的学习还是日后的工作,甚至是未来的生活,我都会更加清楚,自己想要做什么,该做什

温馨提示

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

评论

0/150

提交评论