




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要 本论文介绍了应用 FPGA 芯片和硬件描述语言 (VHDL)设计微波炉控制器系统的方法。 系统使用 VHDL 编程实现各底层模块的功能,顶层的设计采用图形输入完成。论文 主要阐述 模块化设计 的 思想和状态图 的 描述方法 ,以及他们 在硬件描述语言中的应用,并展示了其在 Quartus II 开发系统下的仿真结果 。 微波炉控制器系统是一个实用型的系统,系统不仅 具有 操作简单 的功能, 而且烹调效果好, 你 可以按 照 固定程序 烹调 一些家常菜, 可以 采取分时、分 不同级别 火力加热, 既能节约时间又能节约能源 。 主要有 以下几个模块:输入模块、控制模块 和 显示模块。输入模块 实现 按键扫描和键盘译码 、 控制模块包括状态转换控制、数据装载、烹饪计时、温度控制、音效提示 等 等 、 显示模块涉及到显示译码和指示灯的闪烁。 经过 对系统做 需求分析, 详细功能 设计 、编码 , 模块连接 ,并利用 FPGA 实现相应的功能,经过波形仿真、下载调试,验证了设计方案的可行性及实现方法的有效性,基本实现了系统的要求。 关键词: FPGA; VHDL;微波炉;状态图;定时器 Abstract This paper introduces the method that applying FPGA chip and VHDL to design the control system of microwave ovens. The system uses VHDL to fulfill the function of each bottom module and the design of the top layer is completed via graphic entering. This paper mainly illustrates the idea of module design and description method of state chart and that their application in VHDL and simulation results in the develop system of Quartus II. Microwave controller system is a utility-type system that includes not only the function of simple operation, but also good effect of cook. According to fixed routine, you can cook some homely dish via taking different time and different level firepower to heat, and this can not only save time, but also save energy. It mainly includes a couple of modules as follows: input module, control module and display module. Input module fulfills key-press scanning and keyboard decoding, control module includes status switching control, data loading, cook time, temperature control, sound effect tip and so on, display module comes down to display coding decipher and the flashing of indicator light. Through the analysis of requirement, detailed function design, coding, module connection, using FPGA to fulfill relevant function. Through waveform simulation, download debugging, it verifies the feasibility of the design and the effectiveness of realization method and basically fulfill the requirement of the system. Keywords: FPGA, VHDL, Microwave oven, Status chart, 目 录 1. 绪论 . 1 1.1. 任务的提出 . 1 1.2. 课题的内容和要求 . 1 1.3. 设计的目的和意义 . 2 2. 关键技术简介 . 3 2.1. FPGA 简介 . 3 2.2. VHDL 语言概述 . 3 2.3. Quartus II 开发系统简介 . 5 3. 系统总体设计 . 7 3.1. 系统总体设计方案 . 7 3.2. 系统功能模块描述 . 9 3.2.1. 输入模块 . 10 3.2.2. 控制模块 . 10 3.2.3. 显示模块 . 11 3.3. 系统的工作流程 . 11 4. 系统详细设计 . 13 4.1. 输入模块设计 . 13 4.1.1. 键盘扫描 . 13 4.1.2. 键盘译码 . 16 4.1.3. 输入模块的实现 . 17 4.2. 控制模块设计 . 18 4.2.1. 状态转换控制 . 18 4.2.2. 数据装载 . 21 4.2.3. 烹饪计时 . 22 4.2.4. 温度控制 . 25 4.2.5. 控 制模块的实现 . 28 4.3. 显示模块设计 . 30 5. 系统仿真 . 34 5.1. 输入模块仿真 . 34 5.2. 状态转换控制器仿真 . 34 5.3. 数据装载器仿真 . 35 5.4. 烹饪计时器仿真 . 36 5.5. 显示译码器仿真 . 38 6. 结论 . 40 致 谢 . 41 参考文献 . 42 附 录 . 43 基于 FPGA 的微波炉控制器设计 1. 绪论 随着人民生活水平的提高,微波炉开始进人越来越多的家庭,它给人们的生活带来了极大的方便。微波炉由 2450MHz 的超高频来加热食物。它省时、省电、方便和卫生。作为现代的烹饪工具,微波炉的控制器体现着它的重要性能指标。目前大部分微波炉控制器采用单片机进行设计,电路比较复杂,性能 不够灵活。本文采用先进的 EDA 技术 , 利用 Quartus II 工作平台和 VHDL 设计语言,设计了一种新型的微波炉控制器系统。该系统具有系统复位、时间设定、烹饪计时、温度控制和音效提示等功能, 在 FPGA 上 实现。 1.1. 任务的提出 在现代人快节奏生活中,微波炉已成为便捷生活的一部分。随着控制技术和智能技术的发展,微波炉也向着智能化、信息化发展。而现有市售的微波炉其主要弊端为:不能按既有程序进行烹调,需要使用者根据食物的类型、数量、温度等因素去设定微波炉的工作时间,若设定的工作时间过长,含水分较多的食物可能会产生过热碳化 的现象,若时间过短则达不到预期的烹调效果。不仅在节能方面未做过多考虑,使用者还需要经常翻看使用说明书才能完成操作过程。针对这些问题,笔者认为有必要研制一种操作简单且烹调效果好的微波炉,根据一些家常菜按固定程序烹调的现象,可采取分时、分档火力加热,节时又节能。 1.2. 课 题的内容和要求 本课题是 基于 FPGA 的微波炉控制器设计 ,即 设计一个具备定时、温控、信息显示和音响效应提示功能的微波炉控制器 , 实现一些功能: 该微波炉控制器能够在任意时刻取消当前工作,复位为初始状态。 可以根据需要设置烹调时间的长短,系统最长的烹调时间 为 59 分 59 秒;开始烹调后,能够显示剩余时间的多少。 可以根据需要设置烹调最高温度值,系统最高的烹调温度为 999;开始烹调后,能够显示系统当前温度值。 可以控制火力大小,供选择的火力档位有高、中、低三个火力档位。 音响效应提示 直接外接一个蜂鸣器,同时用一个指示灯提示。 显示微波炉控制器的烹调状态。 西南石油大学本科毕业设计(论文) 1.3. 设计的目的和意义 目前大部分微波炉控制器采用单片机进行设计,电路比较复杂,性能不够灵活。本设计采用先进的 EDA 技术,利用 VHDL 设计语言,设计一种新型的微波炉控制器。该控制器具有系统复位、状态控制、时间设定 、火力档位选择、烹饪计时、温度控制、显示译码和音效提示等功能,基于 FPGA 芯片实现。 该微波炉控制系统,除实现常规的解冻、烹调、烘烤的基本功能外,还进行了创新设计,实现了微波炉的自定义设置。 本系统控制部分以 FPGA 芯片为核心,通过功能按键设置和手动数据输入,完成不同功能时自动以预置方案或者自定义方案加热。其中,预制方案提供烹调、烘烤、解冻等系统烹调流程,仅供用户选择,无需设置;而自定义方案,用户根据食物含量、重量等手动设置时间、温度和选择火力等操作。在烹饪过程中,能通过数码管显示或者指示灯提示知道食物的 成熟度,可以智能控制。 该系统在功能执行时,能实现门开关检测、键盘输入扫描、温度控制、 LED 显示、工作状态指示、蜂鸣等。 基于 FPGA 的微波炉控制器设计 2. 关键技术简介 2.1. FPGA 简介 FPGA( Field Programmable Gate Array),即现场可编程门阵列,它是在 PAL、GAL、 CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路( ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 目前以硬件描述语言( Verilog 或 VHDL)所完成的电路设计, 可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如 AND、 OR、 XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的 FPGA 里面,这些可编辑的元件里也包含记忆元件例如触发器( Flip flop)或者其他更加完整的记忆块。 系统设计师可以根据需要通过可编辑的连接把 FPGA 内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品 FPGA 的逻辑块和连接可以按照设计者而改变 ,所以 FPGA 可以完成所需要的逻辑功能。 FPGA 一般来说比 ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的 FPGA上完成的,然后将设计转移到一个类似于 ASIC 的芯片上。 2.2. VHDL 语言概述 VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,诞生于 1982 年。 1987 年底, VHDL 被 IEEE 和美国国防部确认为标准硬件描述语言。 VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外, VHDL 的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。 VHDL 的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分 ,及端口 )和内部(或称不可西南石油大学本科毕业设计(论文) 视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体 定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是 VHDL 系统设计的基本点。 VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来, VHDL 语言主要具有以下优点: (1) VHDL 语言功能强大,设计方式多样 VHDL 语言具有强大的语言结构 , 只需采用简单明确的 VHDL 语言程序就可以述十分复杂的硬件电路。同时 , 它还具有多层次的电路设计描述功能。此外, VHDL 语言能够同时支持同 步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。 VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。 (2) VHDL 语言具有强大的硬件描述能力 VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时, VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。 VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。 VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。 (3) VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在:对于同一个硬件电路的 VHDL 语言描述,它可以从一个模拟器移植到另一个模拟器上,从一个综合器移植到另一个综合器上,或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL 语言的设计描述与器件无关 采用 VHDL 语言描述硬件电路时,设计人员并不需要首 先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后, VHDL 语言允许采用多种不同的器件结构来实现。 (5) VHDL 语言程序易于共享和复用 VHDL 语言采用基于库 ( library) 的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的基于 FPGA 的微波炉控制器设计 存档模块,将这些模块存放在库中,就可以在以 后的设计中进行复用。 由于 VHDL 语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。 2.3. Quartus II 开发系统简介 Altera 公司的 Quartus II 开发系统以其独特的设计理念,为用户提供了一种全新的可编程逻辑器件开发系统。它集合了 Altera 的全部 CPLD/FPGA 器件的硬件开发功能,同时也可以实现系统级设计、综合、仿真、约束等功能,还具有在线测试功能。 Quartus II 7.0 软件具有以下特性: 1、提供的集成物理综合技术 Quartus II 软件包括唯一的 FPGA 供应商提供的集成物理综合优化技术。 Quartus II 物理综合选项应用在编译的布局布线阶段,而与采用何种综合工具无关。 2、更快的时序逼近 Quartus II 软件用户能够利用强大的时序逼近流程特性来优化设计,使其超过按键式编译结果的性能。 Quartus II 软件的时序逼近流程由于其包含了内置物理综合工具以及丰富的图形分析和编辑工具,提供了强大的交互探测能力,具有极大的吸引力。 3、最易使用的设计优化技术 Quartus II 软件采用按键式设计流程,满足了大部分设计的时序要求。当设计人员进一步需要更好的编译结果时, Quartus II 软件提供了一些高级工具,可以轻松地实现优化设计。用户可以使用设计空间搜索器( DSE)采用自动技术,是寄存器到寄存器设计性能平均提高 21%。时序优化顾问工具在 Quartus II 软件内给设计人员提供了一个虚拟的现场应用工程师。这个工具基于当前设计工程设置和约束,提供详细的优化设计时序性能的建议。 4、实现后期设计更改的同时保持性能 可编程逻辑设计软件的一个传统困难是;当引入后期设计更改的时候 ,如何保持设计的性能。然而, Quartus II 软件能够轻松地实现后期设计更改。最新的增量式设计编辑器和编译技术给设计人员提供了布局布线后设计更改的最佳支持。这些技术包括: Quartus II 芯片编辑器; 在 LogicLock(tm)区域中实现布局布线锁定的能力; 西南石油大学本科毕业设计(论文) 使用渐进式编译,仅实现对部分改动的设计进行修改。 5、提供并行开发 FPGA 和结构化 ASIC Quartus II软件能够提供 FPGA设计和结构化 ASIC设计之间的无缝移植。 Quartus II 软件能够编译 HardCopy Stratix 器件,从 而提供了高性能低成本器件的解决方法。HardCopy Stratix 结构化 ASIC 提供了比 Stratix FPGA 平均高 50%的性能,进步一步加强了 Stratix III 器件系列 65nm 性能的领先性。 Altera 公司的 Quartus II 设计软件提供完整的多平台设计环境,能够直接满足特定设计需要,为可编程芯片系统( SOPC)提供全面的设计环境。 Quartus II 软件含有FPGA 核 CPLD 设计所有阶段的解决方案,其设计流程包含设计输入、综合、布局布线、时序分析、仿真、编程和配置等步骤,其中的布局布线还包 括功耗分析、调试、工程更改管理几个部分。这些操作都可以利用 Quartus II 软件实现。 此外, Quartus II 软件为设计流程的每个阶段提供了 Quartus II 图形用户界面、EDA 工具界面以及命令行界面。可以在整个流程中只使用这些界面中的一个,也可以在设计流程的不同阶段使用不同的界面。 基于 FPGA 的微波炉控制器设计 3. 系统 总体 设计 3.1. 系统总体设计方案 根据题目要求,该系统控制部分以 FPGA 芯片为核心,实现时间设置、温度设定、火力选择、音效响应提示、 LED 数码管显示等,在硬件组成上,涉及到电源供电、按键输入、 LED 数码管显示、指示灯提 示等。 以下是该系统总体框图,如图 3.1 所示: 图 3.1 微波炉控制器系统总体框图 该控制器系统在 EDA 实验箱上实现的 外观布局如图 3.2 所示。 采用 Cyclone II芯片 EP2C35F672C8 作为 控制芯片, 16 个按键 组成 的 4*4 矩阵键盘, 每个按键代表的功能如图 3.2 所示, 8 个 LED 作为 8 个状态提示指示灯 , 4 位 LED 数码管显示加热倒计时, 3 位 LED 数码管显示当前温度值, 1 位 LED 数码管显示当前火力档位。 在图 3.2 中,各按键功能如下: 复位 :按下此键, 系统进入初始状态 , 8 个数码管上会显示 “88888888”的信息,所有 LED 指示灯亮。 测试 :在待机状态下按下此键,则数码管和发光二极管全亮、全灭交替闪烁。 10Min 1Min/100 /High 10Sec/10 /Middle 1Sec/1 /Low: 四个键用于设定加热时间、最高温度或者选择火力档位。当按下 时间设置 按键时,四个按键分别表示设置定时时间的分、秒的十位和个位的数字;当按下 温度设定 按键时,后面三个按键分别表示设定最高温度的百位、十位、个位;当按下 火力设定 按键时,后面三个西南石油大学本科毕业设计(论文) 按键分别表示火力档位的高、中、低三个档位。由于在时间设置和温 度设定时,四个按键初始值均为 0,因此需要借助 /+1 /-1 两个按键共同实现时间、温度的设定操作。比如设定烹饪时间为 12 分 59 秒,只需要选择 10Min 键,然后按 /+1 键 “1”次;选择 1Min/100 /High 键,然后按 /+1 键 “2”次;选择 10Sec/10 /Middle 键,然后按/+1 键 “5”次;选择 1Sec/1 /Low 键,然后按 /+1 键 “9”次。同理,温度设定操作如上。 1 0 M i n1 M i n/ 1 0 0 / H i g h1 0 S e c/ 1 0 / M i d d l e1 S e c/ 1 / L o w/ + 1/ - 1烹 调复 位R E S E T暂 停 取 消C a n c e l测 试T E S T火 力 设 定P o w e r温 度 设 定T e m p e r at u r e时 间 设 置S E T _ T烘 烤 解 冻开 始 确 认S T A R TF P G A控 制芯 片工作状态暂停测试烹调烘烤解冻意外报警完成提示显 示 时 间 显 示 温 度火 力指 示3.2 系统 外观布局 暂停 /取消 : 用于暂停食物烹饪过 程或者取消食物烹饪前的参数设置过程。在食物烹饪过程中,若按下该键,则停止食物烹饪,进入待机状态;在参数设置时,若按下此键,可取消设置的参数。 火力设定 :用于设定系统火力档位。按下该键,进入选择 1Min/100 /High 10Sec/10 /Middle 1Sec/1 /Low 按键状态。 温度设定 :设置加热的温度最高值。当按下该键时,进入调整 1Min/100 /High 基于 FPGA 的微波炉控制器设计 10Sec/10 /Middle 1Sec/1 /Low 按键状态。 时间设置 :设置系统工作时间。按下该键,进入调整 10Min 1Min/100 /High 10Sec/10 /Middle 1Sec/1 /Low /+1 /-1 按键状态。 烹调 :快速设定当前烹饪时间和火力到适合烹调的值。 烘烤 :快速设定当前烹饪时间和火力到适合烘烤的值。 解冻 :快速设定当前烹饪时间和火力到适合解冻的值。 开始 /确认 :在选择烹调、烘烤、解冻或者设置时间、设定温度、选择火力等烹饪参数后,按下此键,开始进行烹饪。 指示灯功能 如下 : 完成提示:提示微波炉工作完成。该灯亮时,表示烹饪完成; 意外报警:提示意外情况发生。该灯亮时,表示 出现意外,微波炉暂停工作; 解冻:该灯亮时,表示工作在解冻模式下; 烘烤:该灯亮时,表示工作在烘烤模式下; 烹调:该灯亮时,表示工作在烹调模式下; 测试:该灯亮时,表示微波炉处于测试状态; 开门指示:指示微波炉的门的状态,门开时灯亮,门关时灯灭; 工作状态:指示微波炉处于工作状态,工作时灯亮,不工作时灯灭; 3.2. 系统 功能模块描述 本系统主要由输入、控制和显示部分组成。输入部分主要完成用户对控制功能的设置,采用按键作为输入设备。控制部分是本系统的核心,它接收用户的输入,完成相应的控制逻辑功能,并将当前的工作状态等 信息送到显示部分。显示部分主要监视系统工作状态并提示用户进行控制操作。 以下是该系统功能模块图,如图 3.3 所示 西南石油大学本科毕业设计(论文) 图 3.3 系统功能模块图 3.2.1. 输入模块 输入部分一般采用键盘或旋钮作为输入,由于实验室已有设备限制,本系统采用键盘进行输入设置,即由一个 4*4 矩阵键盘实现数据输入控制。该矩阵键盘上 16个 按 键分 别是 : 10Min 1Min/100 /High 10Sec/10 /Middle 1Sec/1 /Low /+1 复位 暂停 /取消 测试 /-1 火力设定 温度设定 时间设置 烹调 烘烤 解冻 开始 /确认 。输入模块 包括 时钟脉冲电路、键盘扫描电路、消枓同步电路和键盘译码电路 , 通过 该模块将扫描得到的按键值送到控制模块。 3.2.2. 控制模块 控制部分作为整个微波炉控制器系统的核心,它采用 FPGA 芯片作为主控核心,完成许多复杂的控制和数据处理任务。它通过输入模块提供的按键输入实现数据信息装载处理, 并将处理结果通过 显示模块显示 出来 。其涉及到数据的装载、状态转换控制、烹饪计时、温度控制、火力控制、音响效应提示等。 基于 FPGA 的微波炉控制器设计 3.2.3. 显示模块 显示部分采用七段数码管和发光二极管来实现。由于数码管显示信息较少,一些 信息用数码管显示不够直观,因此本系统在采用数码管显示的同时,还用发光二极管作为辅助显示。其中,用七段数码管作为时间、温度、火力大小显示,用发光二极管作为状态提示显示。具体设计时,采用 4 位 LED 数码管显示加热倒计时, 3 位 LED数码管显示当前温度值, 1 位 LED 数码管显示当前火力档位。 8 个状态提示指示灯分别表示:工作状态、开门指示、测试、烹调、烘烤、解冻、意外报警、完成提示。 3.3. 系统的 工作流程 微波炉控制器系统的工作流程 为 :上电后,系统首先处于一种复位状态,其各电路模块均处于初始状态。此时, 8 个数码管上会显示 “88888888”的信息, 所有 指示灯亮。按 TEST 键 , 数码管和发光二极管全亮、全灭交替闪烁 , 可以测试数码管 和指示灯 工作是否正常。系统工作时,首先通过键盘输入数据,比如,按 烹调 、 烘烤 、解冻 键选择系统预置方案,或者按时间设置键设置时间,按温度设定键设置温度,按火力选择键选择火力,结合 10Min 、 1Min/100 /High 、 10Sec/10 /Middle 、1Sec/1 /Low 按键进行自定义方案设置,设置结束以后,表示数据装载完成,按START 键后系统进入烹调状态。在烹饪过程中,可以按 暂停 /取消 键暂停烹饪,或者重 新设置时间、温度、火力。烹饪结束后,系统会发出音效提示,同时,系统自动进入复位状态。 根据系统 工作流程 ,绘制主程序流程图, 如图 3.4 所示: 西南石油大学本科毕业设计(论文) 图 3.4 系统工作 流程 图 基于 FPGA 的微波炉控制器设计 4. 系统详细设计 4.1. 输入模块设计 输入模块采用 4*4 矩阵键盘作为输入设备,实现数据输入控制。矩阵键盘是一种常见的输入装置,在日常生活中,矩阵键盘在计算机、电话、手机、微波炉等格式电子产品上已经被广泛应用,计算机键盘通常采用行列扫描法来确定所按下键的行列位置。由于键盘按键是一种机械开关,所以设计其控制电路时,需要涉及到键盘扫描、键盘译码,光靠矩 阵键盘是无法完成按键输入工作的。其中键盘扫描又涉及到时序产生、按键扫描和消除抖动。 4.1.1. 键盘扫描 键盘处理的重要环节是时序产生、键盘扫描和按键消抖,以下分别针对所涉及到的电路进行描述。 1、时序产生电路 本时序产生电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲、扫描键盘时钟、键盘消抖动时钟。 分别定义 如下: CLK: IN STD_LOGIC; -系统时钟脉冲 CLK_SCAN : OUT STD_LOGIC; -扫描键盘时钟 CLK_DEB : OUT STD_LOGIC -键盘消抖 动时钟 一般消抖动信号时钟 频率必须比其它的电路使用的脉冲信号频率更高 ,一般消抖动频率是键盘扫描或 LED 频率的 4 倍或更高。 这里 系统时钟 频率取 50MHZ,扫描时钟 频率取 100KHZ,消抖 时钟 频率取 200KHZ。 生成的电路符号如下,图 4.1 所示 : C LK C LK_ SC ANC LK_ D EBclk _genins t 图 4.1 时序产生电路符号 2、按键扫描电路 所谓行列式键盘扫描,即用带有 I/O 口的线组成行列式结构,按键设置在行列的西南石油大学本科毕业设计(论文) 交点上。行列式矩阵键盘原理:按键设置在行列线的交叉点,行列 线 分别连接到按键的两端。列线通过上拉电阻截止 +5V 电压,即列线的输出被定位到高电平状态 ;判断有无按键按下时通过行线送出扫描信号,然后列线读取状态得到。其方法是依次给行线送低电平,检查列线的输入。若列线全为高电平,则代表所在行无按键按下,若列线出现低电平,则低电平所在的行和出现低电平的列的交叉点处有按键 按下。行扫描信号为 KEY_DRV3.0,列输入信号为 KEY_IN3.0,与按键的对应关系如表 4.1所示。 表 4.1 nm 行列矩阵对应关系表 KEY_DRV3 KEY_DRV0 KEY_IN3 KEY_IN0 对应的按键 1110 1110 1 1101 2 1011 3 0111 4 1101 1110 5 1101 6 1011 7 0111 8 1011 1110 9 1101 0 1011 A 0111 B 0111 1110 C 1101 D 1011 E 0111 F 键盘扫描电路是用来产生扫描信号 KEY_DRV3.0,其变化为周期性的有规律的变化 (1110 1101 1011 0111),停留在每个状态的时间由按键的机械物理特性决定,按键在闭合和断开的瞬太短的按键扫描时间容易采集到按键抖动,太长 的扫描时间容易丢失某些较快的按键信息。 完成程序设计, 生成相应的电路符号,如图 4.2 所示: 基于 FPGA 的微波炉控制器设计 S C A N _ C L K K E Y _ D R V 3 .0 k e y _ s c a nins t5 图 4.2 键盘扫描电路符号 3、按键消抖电路 当一个按键按下和释放时,对应信号线电平的变化有一个不稳定期,即所谓 “抖动 ”,这是因为多数开关的闭合和断开都有一个过程,并不是即刻实现的。在读取键盘状态时必须避开这个不稳定期,以免造成误判,这样一个做法叫做 “去抖 ”。 如果当在一段时间内都连续多次读到同一个非空(即有键按下)的扫描码,可以认为这时按键已处于稳定状态,这时得到的扫描码就代表了一个键盘动作,抖动的影响已经被 剔除。按照这个想法,只需设置一个倒数计数器,当每次读到的非空扫描码与上一次的相同,就将计数器加 1;而当一旦读到不同的扫描码或空码则立即将计数器清 0。如果计数器的值达到某预定值 N 时,则表示连续 N 次读到同一扫描码,于是可认为已经读到了有效的按键。设键盘扫描的间隔是 T,则去抖的时间就是 N * T。在实际中 , 因为一般人的按键速度至多是 10 次 /秒,亦即一次按键时间是 100ms,所以按下的时间可估算为 50ms。 因此,键盘扫描的频率取 100KHz,消抖时钟频率取200KHz。 综合上述分析,该键盘扫描子模块关键代码如下: COUNTER: BLOCK IS BEGIN PROCESS(CLK)IS BEGIN IF(CLKEVENT AND CLK=1)THEN Q K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE K_VALUE LD_TEST LD_CLK LD_DONE IF(TEST=1) THEN NEXT_STATE IF DONE=1 THEN NEXT_STATE DATA2 DATA2 DATA2 NULL; END CASE; END PROCESS; 完成 VHDL 源程序的输入,编译、运行,生成相应的电路符号,如下图 4.11 所示: D AT A1 15. .0LD _T ES TLD _C LKLD _D ON ED AT A2 15. .0LOADALA R MZZQins t5 图 4.11 ZZQ 电路符号 4.2.3. 烹饪计时 烹饪计时器 JSQ 为减计数计数器,其最大计时时间为 59:59,因此可用两个减计数十进制计数器 DCNT10 和两个减计数六进制计数器 DCNT6 级联构成。其中,两个十进制的减法计数器用于分、秒的个位减法计数,两个六进制的减法计数器用于分、秒的十位减法计数。 由所学知识可知,计数的功能是累计输入脉冲的个数,实现计数功能的数字电基于 FPGA 的微波炉控制器设计 路即计数器,被计数的脉冲可以是周期性脉冲,也可以是非周期性脉冲,通常加在计数器的时钟脉冲输入端,作为计数器的时钟脉冲。 因此,根据减法计数器随计数脉冲的不断输入而递减计数,在具体设计该十进制减法计数器和六进制减法计数器过程中,可以当计数值减到 0 时,其计 数器的数值自动转为定时设定时间,在十进制计数器的设计过程中,可表达为: IF CQI=0000 THEN CQI=(cout-6) AND touthourin) THEN ALARMDOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=0000000; END CASE; END PROCESS; 生成电路符号,如图 4.22 所示: AI N 4 3. .0 D OU T7 6. .0Y M Qins t4 图 4.22 YMQ 电路符号 西南石油大学本科毕业设计(论文) www.yanziedu.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中音乐课堂多声部合唱教学策略与音乐教育改革研究论文
- 校本课程开发中的课程内容设计论文
- 绘画课程对学生视觉思维的影响论文
- 基于虚拟现实技术的初中地理教学情境创设与教学效果评价论文
- 艾伯森财务管理制度
- 苗圃地员工管理制度
- 茶牌坊人员管理制度
- 融资合同:流动资金贷款合同
- 评估指标体系和评估机制构建支撑工作竞争性磋商文件
- 财政学 期末考试复习重点总结
- (2025)入党积极分子培训考试试题及答案
- 2025年计算机网络技术考试试卷及答案
- 2025年天津市河西区中考二模语文试题
- 教育事业十五五(2026-2030)发展规划
- 2025年中医基础理论考试试题及答案
- 2025中国铁路济南局集团限公司招聘116人(七)易考易错模拟试题(共500题)试卷后附参考答案-1
- 酒店入股合同协议书范本
- 河南省南阳市2025年七年级英语第二学期期末学业水平测试模拟试题含答案
- T/CNESA 1003-2020电力储能系统用电池连接电缆
- 2025年高考军队院校征集和招录人员政治考核表(原表)
- TCCEAS001-2022建设项目工程总承包计价规范
评论
0/150
提交评论