资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
课程设计报告书 题目:矩阵键盘识别电路的设计题目:矩阵键盘识别电路的设计 学学 院院 自动化学院自动化学院 专专 业业 自动化控制自动化控制 学生姓名学生姓名 学生学号学生学号 201330581089201330581089 班内序号班内序号 9 9 指导教师指导教师 马楚仪马楚仪 课程编号课程编号 135070135070 课程学分课程学分 1 1 学分学分 起止日期起止日期 2015.052015.05 19192015.07.032015.07.03 教师签名: 日期: 目录目录 第 1 章、选题背景.1 第 2 章、方案论证(设计理念)1 1 设计任务1 2 方案论证; 2 第 3 章、过程论述.2 1 总电路2 2 分频模块3 3 扫描模块:4 4 译码模块5 第 4 章、结果分析.6 1 分频模块6 2 译码模块6 3 扫描模块7 4 总电路7 第 5 章、课程设计总结.8 1 收获与心得8 2 致谢9 附录 1:参考文献 10 参考文献.10 附录 2:部分采用 VERILOG 语言编写的模块的原程序 10 扫描模块程序.10 译码模块程序:.15 1 课题名称:数字电子技术基础课题名称:数字电子技术基础 第第 1 章、选题背景章、选题背景 在现代电子工业的控制电路中,键盘扫描和显示电路对系统的调 试和设置有着重要的作用。随着 EDA 技术的发展,基于 FPGA 的扫 描键盘因其结构简单能有效防止机械键盘按键抖动带来的数据错误等 优点在许多电子设备中都得到了广泛的应用。本课题的内容是设计一 个电路来识别 4x4 矩阵键盘,单独按某个键,数码管显示该键的数字, 如 J0,显示 00,J1,显示 01,J15 显示 15,同时发出发出一音 “嘀”同时按两个或以上按键,数码管显示 ER,发出一音“嘀”, 连续发出“嘟嘟嘟”,直到松开按键,声音关闭。所主要解决的 问题是设计电路,通过运用 Quartus软件平台生成电路符号,并仿 真分析,消除各种存在的问题,直到下载到芯片中通过硬件实现上述 所要求的功能。对该系统要求:应具有集成度高、稳定性好、设计灵 活和设计效率高等优点。 设计指导思想:矩阵键盘识别电路从原理上讲就是一个典型的数 字电路,包括组合逻辑电路和时序逻辑电路。设计键盘扫描程序,将 程序划分为时序产生模块、键盘扫描模块、键值译码模块,蜂鸣器模 块四个模块,时序产生模块为键盘扫描和蜂鸣器模块产生时钟信号, 键盘扫描模块采用行扫描法对 4*4 矩阵键盘进行扫描,键值译码模块 将所按键值译码为共阴极 8 位 7 段数码管的显示码几个模块组合起来 实现键盘扫描的设计要求。 第第 2 章、方案论证章、方案论证(设计理念设计理念) 1 设计任务 设计任务的设计功能包括: 1 单独按某个键,数码管显示该键的数字,如 J0,显示 00,J1, 显示 01,J15 显示 15。 2 同时按两个或以上按键,显示 ER。 2 3 单独按某个键,发出一音“嘀”, 同时按两个或以上按键,发 出一音“嘀”,连续发出“嘟嘟嘟”,直到松开按键,声音关闭。 (1)设计理念:将矩阵键盘识别电路各个功能分成模块来实现, 包括分频模块描模块、键值译码模块,蜂鸣器模块四个模块, 在主 电路中通过连线实现识别功能。分模块能使电路看起来更有条理,接 线更清晰,功能更加可靠,排查错误更简单和更有针对性。 2 方案论证; 一:识别方式:判断键盘上哪个键被按下,可以采用静态译码法 或扫描法,静态译码法原理简单,容易理解,但电路复杂,扫描法比 较抽象,电路相对简单,通常采用,扫描法又称为逐行或列扫描查询 法,它是一种最常用的多按键识别方法。综上,选取扫描方法 二:实现方式 方案 1:采用用门电路和各种寄存器等搭建组合时序电路的方式 来实现,可以采用移位寄存器循环扫描信号,并通过数据选择器来判 断各种情况,这种方法实现原理简单,但搭电路的时候复杂,接线繁 多,尤其是识别两个以上的按键时不灵活,容易漏接错接,且检查错 误比较麻烦。 方案 2:采用用硬件描述语言 Verilog hdl 来实现,Verilog hdl 语 言和 c 语言比较类似,所以上手比较快,因此,虽然之前没接触过该 语言,但在做课程设计的这段时间里,用它来实现课程设计所要实现 的功能还是可以的。用这种方法的话,程序简单易懂,而且比较简洁, 思路比较清晰,尤其在识别两个按键以上的时候优越性特别明显。 方案 3:采用用硬件描述语言 vhdl 来实现,与 Verilog hdl 相似, 但是 vhdl 的语法比 Verilog hdl 复杂一点,由于没有学过,对该语言一 窍不通。所以该方案不考虑。 综上所述,选取方案二。 第第 3 章、过程论述章、过程论述 1 总电路 作用:将各个模块串连起来以实现识别电路的功能。 3 图 1 总电路图 输入 1kHZ 的频率,首先经过分频器成 1HZ ,100HZ,250HZ, 500HZ 的脉冲,用于驱动蜂鸣器,1kHZ 的脉冲进入扫描模块,扫描 模块将扫描结果分别送给显示译码器模块和蜂鸣器模块,从而驱动两 个 led 数码管显示结果,只有一个键按下时,蜂鸣器发出一音“嘀”, 当同时按两个或以上按键,发出一音“嘀”,连续发出“嘟嘟 嘟”。 2 分频模块 作用:在输入脉冲只有 11kHZ 的情况下,将 1kHZ 的脉冲分频 成 1HZ ,100HZ,250HZ, 500HZ 的脉冲,用于驱动蜂鸣器,不同的频率 使蜂鸣器发出不同的声音。 4 图 2 分频模块电路图 图中各成分的作用,和成分之间的交互:输入 1kHZ 的脉冲,运 用 7490 芯片构成分频电路,当 7490 的 SET9A,SET9B,CLRA.CLRB 管脚接低电平 CLKA 接 QD 输出管脚,CLKB 接输入脉冲,QA 输出脉 冲,构成十分频电路。依据这样的原理,经过三个十分频即可输出 100,1HZ 的脉冲信号。 分频模块的下部分是用 D 触发器构成的二分频电路,因此可以分 频出 500HZ,250HZ 的脉冲信号。 3 扫描模块: 作用:判断按键的状态,即识别按键,按照识别结果输出一个按 键标志位 flag,错误按键标志位 flag2,和按键值 key_value。 图 3.扫描模块电路逻辑符号图 图 4 矩阵键盘结构图 5 程序见附录,各成分的作用,和成分之间的交互: 扫描流程 1、 判断键盘中有无键按下 将全部列线 KR0-KR3 置低电平然后检测行线 KL0-KL3 的状态, 只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位 于低电平线与 4 根行线相交叉的 4 个按键之中,若所有行线均为高电 平则表示键盘中无键按下。 2、 判断按键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程,其方法是 依次将列线置为低电平,即在置某根列线为低电平时,其它线为高电 平,例如: KR0 KR1 KR2 KR3 置 0111,之后扫描 KL 端,当 J0 键按下,则 KL0 输出为 0,其余则为 1,即 KL3 KL2 KL1 KL0 输出为 1110,此时就可以判断为 J0 键被按下,数码管显示 01, 依此类推,判断其他键。而在一次扫描过程中,当扫描到某列有键按 下,即将该列的按键标志置 1,在扫描结束后,如果有多列置 1,就 判断有多个键按下,从而 key_value=16,即报错,而在一行之中的最 后判断之中,例如 KR0-KR3 置 1110 时,当 KL3 KL2 KL1 KL0 输出至少两个管脚为低电平时,也判断为多个按键按下,即就报错。 即识别思想是在一次轮回中,依次将 KR0 KR1 KR2 KR3 分别 置为 00000,0111,1011,1101,1101,此次扫描结束才判断扫描结果, 判断按键错误的顺序是先列后行。 表 1 按键位置与数码的关系 KRKL J0 J1J2J3J4J5 1110_11101101_11101011_11100111_11101110_11011101_1101 J6J7J8J9J10J11 1011_11010111_11011110_10111101_10111011_101 1 0111_1011 J12J3J14J15 J16(即报错标志) 6 1110_01111101_01111011_01110111_0111defualt 4 译码模块 作用:将输进来的 key_value 译码出相应的码给 led1,led2 显示。 程序见附录。 图 5.译码模块逻辑符号图 第第 4 章、结果分析章、结果分析 1 分频模块 Clk 输入 1KHZ 的脉冲信号,分频出 500HZ,250HZ,100HZ,1HZ 的信号,分析波形结果正确。 图 6 分频模块仿真波形 2 译码模块 当电路输入 key_value 分别为: 00000,00001,00010,00011,00100,00101,00110,00111,01000, 01001,01010,01011,01100,01101,01110,01111,10000 led1 输出:00111111,00111111,00111111,00111111,00111111 00111111,00111111,00111111,00111111,00111111,00110000 7 00110000,00110000,00110000,00110000,00110000,01111001 led2 输出:00111111,00110000,01011011,01001111,01100110 01101101,01111100,00000111,01111111,01101111,00111111 00110000,01011011,01001111,01100110,01101101, 01110111 图 7.译码模块的仿真波形图 3 扫描模块 扫描程序依次将 KR0 KR1 KR2 KR3 置 0111,1011,1101,1110,进行扫描。 图 8.扫描模块的仿真波形图 8 4 总电路 在时钟的控制下,扫描程序依次将 KR0 KR1 KR2 KR3 置 0111,1011,1101,1110,进行扫描,如果第一个键按下时,此时 flag 置一,数码管中 led1,led2 都置00111111。其他的同理。 图 9.总电路仿真波形图 第第 5 章、课程设计总结章、课程设计总结 1 收获与心得 通过本次课程设计,我收获到在课堂上所不能给予我的知识和处 理问题的能力,也深刻体会到,正如老师在任务书中说的一样,做设 计是一件很辛苦的事情,千万不能够浮躁,想走捷径,只有静下心来, 根据本课程的知识、查找资料、学习前人经验,才能有自己的作品。 在设计过程中,感觉自己收获到了很多比仅仅做题,上课更丰富的知 识,同时也加深了对数电知识的理解,并且这个过程现在回想起来真 的很奇妙自己能够独立地运用自己学的知识来设计电路,真的很 有成就感。 让我感受最深的是在这次设计之中出现的那些问题,真的,做设 计如同人生,并不是一帆风顺的,也不能一蹴而就。从选择矩阵键盘 的这道题开始,就意味着我要开始接受一个新的挑战。说实话,一开 始选择这道题目是因为之前有接触过矩阵键盘,后来才发现用数电知 识来实现和我之前接触的有特别大的区别,真的可以说天壤之别。在 选择方案的时候,一开始挺纠结,是要用描述语言还是用搭电路的方 法,因为我之前没接触过硬件描述语言。后来通过论证,果断选了硬 件语言,硬件语言对我来说真的是一个新的东西,所以这不得不说是 9 一个新的挑战。也正因为此次设计,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号