[毕业设计精品]毕业设计论文_基于fpga_的微波炉控制器设计_第1页
[毕业设计精品]毕业设计论文_基于fpga_的微波炉控制器设计_第2页
[毕业设计精品]毕业设计论文_基于fpga_的微波炉控制器设计_第3页
[毕业设计精品]毕业设计论文_基于fpga_的微波炉控制器设计_第4页
[毕业设计精品]毕业设计论文_基于fpga_的微波炉控制器设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

摘要本论文介绍了应用FPGA芯片和硬件描述语言VHDL设计微波炉控制器系统的方法。系统使用VHDL编程实现各底层模块的功能,顶层的设计采用图形输入完成。论文主要阐述模块化设计的思想和状态图的描述方法,以及他们在硬件描述语言中的应用,并展示了其在QUARTUSI开发系统下的仿真结果。微波炉控制器系统是一个实用型的系统,系统不仅具有操作简单的功能,而且烹调效果好,你可以按照固定程序烹调一些家常菜,可以采取分时、分不同级别火力加热,既能节约时间又能节约能源。主要有以下几个模块输入模块、控制模块和显示模块。输入模块实现按键扫描和键盘译码、控制模块包括状态转换控制、数据装载、烹饪计时、温度控制、音效提示等等、显示模块涉及到显示译码和指示灯的闪烁。经过对系统做需求分析,详细功能设计、编码,模块连接,并利用FPGA实现相应的功能,经过波形仿真、下载调试,验证了设计方案的可行性及实现方法的有效性,基本实现了系统的要求。关键词FPGA;VHDL;微波炉;状态图;定时器ABSTRACTTHISPAPERINTRODUCESTHEMETHODTHATAPPLYINGFPGACHIPANDVHDLTODESIGNTHECONTROLSYTEMOFMICROWAVEOVENSTHESYTEMUSESVHDLTOFULFILTHEFUNCTIONOFEACHBOTTOMMODULEANDTHEDESIGNOFTHETOPLAYERISCOMPLETDVIAGRAPHICENTRINGTHISPAPERMAINLYILUSTRATESTHEIDEAOFMODULEDESIGNANDDESCRIPTIONMETHODOFSTAECHARTANDTHATHEIRAPPLICATIONINVHDLANDSIMULATIONRESULTSINTHEDEVELOPSYTEMOFQUARTUSIMICROWAVECONTROLLERSYTEMISAUTILTYTPESYTEMTHATINCLUDESNOTONLYTHEFUNCTIONOFSIMPLEOPERATION,BUTALSOGOODEFCTOFCOOKACORDINGTOFIXEDROUTINE,YOUCANCOOKSOMEHOMELYDISHVIATKINGDIFERNTTIMEANDDIFERNTLEVELFIREPOWERTOHEAT,ANDTHISCANNOTONLYSAVETIME,BUTALSOSAVEENERGYITMAINLYINCLUDESACOUPLEOFMODULESASFOLLOWSINPUTMODULE,CONTROLMODULEANDDISPLAYMODULEINPUTMODULEFULFILSKEYPRESSCANNINGANDKEYBOARDDECODING,CONTROLMODULEINCLUDESTAUSSWITCHINGCONTROL,DATALOADING,COOKTIME,TEMPERATURECONTROL,SOUNDEFCTIPANDSOON,DISPLAYMODULECOMESDOWNTODISPLAYCODINGDECIPHERANDTHEFLASHINGOFINDICATORLIGHTTHROUGHTHEANALYSIOFREQUIREMNT,DETAILEDFUNCTIONDESIGN,CODING,MODULECONNECTION,USINGFPGATOFULFILRELVANTFUNCTIONTHROUGHWAVEFORMSIMULATION,DOWNLOADDEBUGGING,ITVERIFESTHEFEASIBILITYOFTHEDESIGNANDTHEEFCTIVENESOFREALIZATIONMETHODANDBASICALYFULFILTHEREQUIREMNTOFTHESYTEMKEYWORDSKKKFPGA,VHDL,MICROWAVEOVEN,STAUSCHART,TIMERI目录1绪论111任务的提出112课题的内容和要求113设计的目的和意义22关键技术简介321FPGA简介322VHDL语言概述323QUARTUSI开发系统简介53系统总体设计731系统总体设计方案732系统功能模块描述9321输入模块10322控制模块10323显示模块133系统的工作流程14系统详细设计1341输入模块设计13411键盘扫描13412键盘译码16413输入模块的实现1742控制模块设计18421状态转换控制19422数据装载22423烹饪计时23424温度控制26425控制模块的实现2943显示模块设计315系统仿真3551输入模块仿真35I52状态转换控制器仿真3553数据装载器仿真3654烹饪计时器仿真3755显示译码器仿真396结论41致谢42参考文献43附录44基于FPGA的微波炉控制器设计11绪论随着人民生活水平的提高,微波炉开始进人越来越多的家庭,它给人们的生活带来了极大的方便。微波炉由2450MHZ的超高频来加热食物。它省时、省电、方便和卫生。作为现代的烹饪工具,微波炉的控制器体现着它的重要性能指标。目前大部分微波炉控制器采用单片机进行设计,电路比较复杂,性能不够灵活。本文采用先进的EDA技术,利用QUARTUSI工作平台和VHDL设计语言,设计了一种新型的微波炉控制器系统。该系统具有系统复位、时间设定、烹饪计时、温度控制和音效提示等功能,在FPGA上实现。1任务的提出在现代人快节奏生活中,微波炉已成为便捷生活的一部分。随着控制技术和智能技术的发展,微波炉也向着智能化、信息化发展。而现有市售的微波炉其主要弊端为不能按既有程序进行烹调,需要使用者根据食物的类型、数量、温度等因素去设定微波炉的工作时间,若设定的工作时间过长,含水分较多的食物可能会产生过热碳化的现象,若时间过短则达不到预期的烹调效果。不仅在节能方面未做过多考虑,使用者还需要经常翻看使用说明书才能完成操作过程。针对这些问题,笔者认为有必要研制一种操作简单且烹调效果好的微波炉,根据一些家常菜按固定程序烹调的现象,可采取分时、分档火力加热,节时又节能。12课题的内容和要求本课题是基于FPGA的微波炉控制器设计,即设计一个具备定时、温控、信息显示和音响效应提示功能的微波炉控制器,实现一些功能该微波炉控制器能够在任意时刻取消当前工作,复位为初始状态。可以根据需要设置烹调时间的长短,系统最长的烹调时间为59分59秒;开始烹调后,能够显示剩余时间的多少。可以根据需要设置烹调最高温度值,系统最高的烹调温度为999;开始烹调后,能够显示系统当前温度值。可以控制火力大小,供选择的火力档位有高、中、低三个火力档位。音响效应提示直接外接一个蜂鸣器,同时用一个指示灯提示。显示微波炉控制器的烹调状态。西南石油大学本科毕业设计(论文)213设计的目的和意义目前大部分微波炉控制器采用单片机进行设计,电路比较复杂,性能不够灵活。本设计采用先进的EDA技术,利用VHDL设计语言,设计一种新型的微波炉控制器。该控制器具有系统复位、状态控制、时间设定、火力档位选择、烹饪计时、温度控制、显示译码和音效提示等功能,基于FPGA芯片实现。该微波炉控制系统,除实现常规的解冻、烹调、烘烤的基本功能外,还进行了创新设计,实现了微波炉的自定义设置。本系统控制部分以FPGA芯片为核心,通过功能按键设置和手动数据输入,完成不同功能时自动以预置方案或者自定义方案加热。其中,预制方案提供烹调、烘烤、解冻等系统烹调流程,仅供用户选择,无需设置;而自定义方案,用户根据食物含量、重量等手动设置时间、温度和选择火力等操作。在烹饪过程中,能通过数码管显示或者指示灯提示知道食物的成熟度,可以智能控制。该系统在功能执行时,能实现门开关检测、键盘输入扫描、温度控制、LED显示、工作状态指示、蜂鸣等。基于FPGA的微波炉控制器设计32关键技术简介21FPGAGGG简介FPGA(FIELDPROGRAMMBLEGATEARAY),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(SI)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。目前以硬件描述语言(VERILOG或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(FLIPFLOP)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。2VHDLHHH语言概述VHDL的英文全名是VERYHIGHSPEEDINTEGRATEDCIRCUITHARDWAREDESCRIPTIONLANGUAGE,诞生于1982年。1987年底,VHDL被IE和美国国防部确认为标准硬件描述语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口和内部(或称不可西南石油大学本科毕业设计(论文)4视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL语言主要具有以下优点1VHDL语言功能强大,设计方式多样L语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。2VHDL语言具有强大的硬件描述能力L语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。L语言的强大描述能力还体现在它具有丰富的数据类型。VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。3VHDL语言具有很强的移植能力L语言很强的移植能力主要体现在对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上,从一个综合器移植到另一个综合器上,或者从一个工作平台移植到另一个工作平台上去执行。4VHDL语言的设计描述与器件无关采用L语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。5VHDL语言程序易于共享和复用L语言采用基于库LIBRARY的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的基于FPGA的微波炉控制器设计5存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。23QUARTUSQQQI开发系统简介ALTERA公司的QUARTUSI开发系统以其独特的设计理念,为用户提供了一种全新的可编程逻辑器件开发系统。它集合了ALTERA的全部CPLD/FPGA器件的硬件开发功能,同时也可以实现系统级设计、综合、仿真、约束等功能,还具有在线测试功能。QUARTUSI70软件具有以下特性1、提供的集成物理综合技术QUARTUSI软件包括唯一的FPGA供应商提供的集成物理综合优化技术。QUARTUSI物理综合选项应用在编译的布局布线阶段,而与采用何种综合工具无关。2、更快的时序逼近QUARTUSI软件用户能够利用强大的时序逼近流程特性来优化设计,使其超过按键式编译结果的性能。QUARTUSI软件的时序逼近流程由于其包含了内置物理综合工具以及丰富的图形分析和编辑工具,提供了强大的交互探测能力,具有极大的吸引力。3、最易使用的设计优化技术QUARTUSI软件采用按键式设计流程,满足了大部分设计的时序要求。当设计人员进一步需要更好的编译结果时,QUARTUSI软件提供了一些高级工具,可以轻松地实现优化设计。用户可以使用设计空间搜索器(DSE)采用自动技术,是寄存器到寄存器设计性能平均提高21。时序优化顾问工具在QUARTUSI软件内给设计人员提供了一个虚拟的现场应用工程师。这个工具基于当前设计工程设置和约束,提供详细的优化设计时序性能的建议。4、实现后期设计更改的同时保持性能可编程逻辑设计软件的一个传统困难是;当引入后期设计更改的时候,如何保持设计的性能。然而,QUARTUSI软件能够轻松地实现后期设计更改。最新的增量式设计编辑器和编译技术给设计人员提供了布局布线后设计更改的最佳支持。这些技术包括QUARTUSI芯片编辑器;在LOGICLOCKTM区域中实现布局布线锁定的能力;西南石油大学本科毕业设计(论文)6使用渐进式编译,仅实现对部分改动的设计进行修改。5、提供并行开发FPGA和结构化ASICQUARTUSI软件能够提供FPGA设计和结构化ASIC设计之间的无缝移植。QUARTUSI软件能够编译HARDCOPYSTRATIX器件,从而提供了高性能低成本器件的解决方法。HARDCOPYSTRATIX结构化ASIC提供了比STRATIXFPGA平均高50的性能,进步一步加强了STRATIXI器件系列65NM性能的领先性。ALTERA公司的QUARTUSI设计软件提供完整的多平台设计环境,能够直接满足特定设计需要,为可编程芯片系统(SOPC)提供全面的设计环境。QUARTUSI软件含有FPGA核CPLD设计所有阶段的解决方案,其设计流程包含设计输入、综合、布局布线、时序分析、仿真、编程和配置等步骤,其中的布局布线还包括功耗分析、调试、工程更改管理几个部分。这些操作都可以利用QUARTUSI软件实现。此外,QUARTUSI软件为设计流程的每个阶段提供了QUARTUSI图形用户界面、EDA工具界面以及命令行界面。可以在整个流程中只使用这些界面中的一个,也可以在设计流程的不同阶段使用不同的界面。基于FPGA的微波炉控制器设计73系统总体设计31系统总体设计方案根据题目要求,该系统控制部分以FPGA芯片为核心,实现时间设置、温度设定、火力选择、音效响应提示、LED数码管显示等,在硬件组成上,涉及到电源供电、按键输入、LED数码管显示、指示灯提示等。以下是该系统总体框图,如图31所示图31微波炉控制器系统总体框图该控制器系统在EDA实验箱上实现的外观布局如图32所示。采用CYCLONEI芯片EP2C35F672C8作为控制芯片,16个按键组成的44矩阵键盘,每个按键代表的功能如图32所示,8个LED作为8个状态提示指示灯,4位LED数码管显示加热倒计时,3位LED数码管显示当前温度值,1位LED数码管显示当前火力档位。在图32中,各按键功能如下复位按下此键,系统进入初始状态,8个数码管上会显示“88888888”的信息,所有LED指示灯亮。测试在待机状态下按下此键,则数码管和发光二极管全亮、全灭交替闪烁。10MIN1MIN/100/HIGH10SEC/10/MIDDLE1SEC/1/LOW四个键用于设定加热时间、最高温度或者选择火力档位。当按下时间设置按键时,四个按键分别表示设置定时时间的分、秒的十位和个位的数字;当按下温度设定按键时,后面三个按键分别表示设定最高温度的百位、十位、个位;当按下火力设定按键时,后面三个西南石油大学本科毕业设计(论文)8按键分别表示火力档位的高、中、低三个档位。由于在时间设置和温度设定时,四个按键初始值均为0,因此需要借助/1/1两个按键共同实现时间、温度的设定操作。比如设定烹饪时间为12分59秒,只需要选择10MIN键,然后按/1键“1”次;选择1MIN/100/HIGH键,然后按/1键“2”次;选择10SEC/10/MIDDLE键,然后按/1键“5”次;选择1SEC/1/LOW键,然后按/1键“9”次。同理,温度设定操作如上。10MIN1MIN/10/HIGHHHH10SEC/10/MIDLE1SEC/LOW/1/1烹调复位REST暂停取消CANCEL测试TEST火力设定POWER温度设定TEMPERATURE时间设置SET_烘烤解冻开始确认开始确认开始确认开始确认STARTFPGA控制芯片工作状态暂停测试烹调烘烤解冻意外报警完成提示显示时间显示温度火力指示32系统外观布局暂停/取消用于暂停食物烹饪过程或者取消食物烹饪前的参数设置过程。在食物烹饪过程中,若按下该键,则停止食物烹饪,进入待机状态;在参数设置时,若按下此键,可取消设置的参数。火力设定用于设定系统火力档位。按下该键,进入选择1MIN/100/HIGH10SEC/10/MIDDLE1SEC/1/LOW按键状态。温度设定设置加热的温度最高值。当按下该键时,进入调整1MIN/100/HIGH基于FPGA的微波炉控制器设计910SEC/10/MIDDLE1SEC/1/LOW按键状态。时间设置设置系统工作时间。按下该键,进入调整10MIN1MIN/100/HIGH10SEC/10/MIDDLE1SEC/1/LOW/1/1按键状态。烹调快速设定当前烹饪时间和火力到适合烹调的值。烘烤快速设定当前烹饪时间和火力到适合烘烤的值。解冻快速设定当前烹饪时间和火力到适合解冻的值。开始/确认在选择烹调、烘烤、解冻或者设置时间、设定温度、选择火力等烹饪参数后,按下此键,开始进行烹饪。指示灯功能如下完成提示提示微波炉工作完成。该灯亮时,表示烹饪完成;意外报警提示意外情况发生。该灯亮时,表示出现意外,微波炉暂停工作;解冻该灯亮时,表示工作在解冻模式下;烘烤该灯亮时,表示工作在烘烤模式下;烹调该灯亮时,表示工作在烹调模式下;测试该灯亮时,表示微波炉处于测试状态;开门指示指示微波炉的门的状态,门开时灯亮,门关时灯灭;工作状态指示微波炉处于工作状态,工作时灯亮,不工作时灯灭;32系统功能模块描述本系统主要由输入、控制和显示部分组成。输入部分主要完成用户对控制功能的设置,采用按键作为输入设备。控制部分是本系统的核心,它接收用户的输入,完成相应的控制逻辑功能,并将当前的工作状态等信息送到显示部分。显示部分主要监视系统工作状态并提示用户进行控制操作。以下是该系统功能模块图,如图33所示西南石油大学本科毕业设计(论文)10图3系统功能模块图321输入模块输入部分一般采用键盘或旋钮作为输入,由于实验室已有设备限制,本系统采用键盘进行输入设置,即由一个44矩阵键盘实现数据输入控制。该矩阵键盘上16个按键分别是10MIN1MIN/100/HIGH10SEC/10/MIDDLE1SEC/1/LOW/1复位暂停/取消测试/1火力设定温度设定时间设置烹调烘烤解冻开始/确认。输入模块包括时钟脉冲电路、键盘扫描电路、消枓同步电路和键盘译码电路,通过该模块将扫描得到的按键值送到控制模块。32控制模块控制部分作为整个微波炉控制器系统的核心,它采用FPGA芯片作为主控核心,完成许多复杂的控制和数据处理任务。它通过输入模块提供的按键输入实现数据信息装载处理,并将处理结果通过显示模块显示出来。其涉及到数据的装载、状态转换控制、烹饪计时、温度控制、火力控制、音响效应提示等。基于FPGA的微波炉控制器设计1323显示模块显示部分采用七段数码管和发光二极管来实现。由于数码管显示信息较少,一些信息用数码管显示不够直观,因此本系统在采用数码管显示的同时,还用发光二极管作为辅助显示。其中,用七段数码管作为时间、温度、火力大小显示,用发光二极管作为状态提示显示。具体设计时,采用4位LED数码管显示加热倒计时,3位LED数码管显示当前温度值,1位LED数码管显示当前火力档位。8个状态提示指示灯分别表示工作状态、开门指示、测试、烹调、烘烤、解冻、意外报警、完成提示。3系统的工作流程微波炉控制器系统的工作流程为上电后,系统首先处于一种复位状态,其各电路模块均处于初始状态。此时,8个数码管上会显示“88888888”的信息,所有指示灯亮。按TEST键,数码管和发光二极管全亮、全灭交替闪烁,可以测试数码管和指示灯工作是否正常。系统工作时,首先通过键盘输入数据,比如,按烹调、烘烤、解冻键选择系统预置方案,或者按时间设置键设置时间,按温度设定键设置温度,按火力选择键选择火力,结合10MIN、1MIN/100/HIGH、10SEC/10/MIDDLE、1SEC/1/LOW按键进行自定义方案设置,设置结束以后,表示数据装载完成,按START键后系统进入烹调状态。在烹饪过程中,可以按暂停/取消键暂停烹饪,或者重新设置时间、温度、火力。烹饪结束后,系统会发出音效提示,同时,系统自动进入复位状态。根据系统工作流程,绘制主程序流程图,如图34所示西南石油大学本科毕业设计(论文)12图34系统工作流程图基于FPGA的微波炉控制器设计134系统详细设计41输入模块设计输入模块采用44矩阵键盘作为输入设备,实现数据输入控制。矩阵键盘是一种常见的输入装置,在日常生活中,矩阵键盘在计算机、电话、手机、微波炉等格式电子产品上已经被广泛应用,计算机键盘通常采用行列扫描法来确定所按下键的行列位置。由于键盘按键是一种机械开关,所以设计其控制电路时,需要涉及到键盘扫描、键盘译码,光靠矩阵键盘是无法完成按键输入工作的。其中键盘扫描又涉及到时序产生、按键扫描和消除抖动。41键盘扫描键盘处理的重要环节是时序产生、键盘扫描和按键消抖,以下分别针对所涉及到的电路进行描述。1、时序产生电路本时序产生电路中使用了三种不同频率的工作脉冲波形系统时钟脉冲、扫描键盘时钟、键盘消抖动时钟。分别定义如下CLKINSTD_LOGIC系统时钟脉冲L_SCAUTSD_LOGIC扫描键盘时钟CLK_DEBOTS_LI键盘消抖动时钟一般消抖动信号时钟频率必须比其它的电路使用的脉冲信号频率更高,一般消抖动频率是键盘扫描或LED频率的4倍或更高。这里系统时钟频率取50MHZ,扫描时钟频率取100KHZ,消抖时钟频率取200KHZ。生成的电路符号如下,图41所示CLKCLK_SCANL_DEBCLK_GENINST图41时序产生电路符号2、按键扫描电路所谓行列式键盘扫描,即用带有I/O口的线组成行列式结构,按键设置在行列的西南石油大学本科毕业设计(论文)14交点上。行列式矩阵键盘原理按键设置在行列线的交叉点,行列线分别连接到按键的两端。列线通过上拉电阻截止5V电压,即列线的输出被定位到高电平状态;判断有无按键按下时通过行线送出扫描信号,然后列线读取状态得到。其方法是依次给行线送低电平,检查列线的输入。若列线全为高电平,则代表所在行无按键按下,若列线出现低电平,则低电平所在的行和出现低电平的列的交叉点处有按键按下。行扫描信号为KEY_DRV30,列输入信号为KEY_IN30,与按键的对应关系如表41所示。表41NM行列矩阵对应关系表KEY_DRV3KEY_DRV0KEY_IN3KEY_IN0对应的按键1010110121013014101105101610170181011091010101A01B0110C101D101E01F键盘扫描电路是用来产生扫描信号KEY_DRV30,其变化为周期性的有规律的变化101011011011,停留在每个状态的时间由按键的机械物理特性决定,按键在闭合和断开的瞬太短的按键扫描时间容易采集到按键抖动,太长的扫描时间容易丢失某些较快的按键信息。完成程序设计,生成相应的电路符号,如图42所示基于FPGA的微波炉控制器设计15SCAN_CLKKEY_DRV30KEY_SCANINST5图42键盘扫描电路符号3、按键消抖电路当一个按键按下和释放时,对应信号线电平的变化有一个不稳定期,即所谓“抖动”,这是因为多数开关的闭合和断开都有一个过程,并不是即刻实现的。在读取键盘状态时必须避开这个不稳定期,以免造成误判,这样一个做法叫做“去抖”。如果当在一段时间内都连续多次读到同一个非空(即有键按下)的扫描码,可以认为这时按键已处于稳定状态,这时得到的扫描码就代表了一个键盘动作,抖动的影响已经被剔除。按照这个想法,只需设置一个倒数计数器,当每次读到的非空扫描码与上一次的相同,就将计数器加1;而当一旦读到不同的扫描码或空码则立即将计数器清0。如果计数器的值达到某预定值N时,则表示连续N次读到同一扫描码,于是可认为已经读到了有效的按键。设键盘扫描的间隔是T,则去抖的时间就是NT。在实际中,因为一般人的按键速度至多是10次/秒,亦即一次按键时间是100MS,所以按下的时间可估算为50MS。因此,键盘扫描的频率取100KHZ,消抖时钟频率取200KHZ。综合上述分析,该键盘扫描子模块关键代码如下COUNTERBLOCKISBEGIPROCESCLKISBEGINIFCLKEVENTANDCLK1THENQK_VALUE_VLEK_VALUE_VLEK_VALUE_VLEK_VALUE_VLEK_VALUE_VLEK_VALUE_VLEK_VALUE_VLEK_VALUE_VLEK_VALUELD_TESTLD_CLKLD_DONEIFTEST1THENNEXT_SATEIFDOE1THENNEXT_SATEDAT2T2DAT2NULENDCASEEPROES完成VHDL源程序的输入,编译、运行,生成相应的电路符号,如下图41所示DAT150L_TESTLD_CLKL_ONEDAT2150LOADALRMZQINST5图41ZQQQQ电路符号423烹饪计时烹饪计时器JSQ为减计数计数器,其最大计时时间为5959,因此可用两个减计数十进制计数器DCNT10和两个减计数六进制计数器DCNT6级联构成。其中,两个十进制的减法计数器用于分、秒的个位减法计数,两个六进制的减法计数器用于分、秒的十位减法计数。由所学知识可知,计数的功能是累计输入脉冲的个数,实现计数功能的数字电基于FPGA的微波炉控制器设计23路即计数器,被计数的脉冲可以是周期性脉冲,也可以是非周期性脉冲,通常加在计数器的时钟脉冲输入端,作为计数器的时钟脉冲。因此,根据减法计数器随计数脉冲的不断输入而递减计数,在具体设计该十进制减法计数器和六进制减法计数器过程中,可以当计数值减到0时,其计数器的数值自动转为定时设定时间,在十进制计数器的设计过程中,可表达为IFCQI“0000“THENCQICOUT6ANDTOUTHOURINTHENALRMDOUT7T7DOUT7T7DOUT7T7DOUT7T7DOUT7T7DOUT7DOUT7T7DOUT7T7“0000000“ENDCASEEPROES生成电路符号,如图422所示AIN430DOUT760YMQINST4图42YMQQQQ电路符号西南石油大学本科毕业设计(论文)345系统仿真51输入模块仿真完成该键盘输入模块VHDL源程序文件输入后,保存文件,对文件进行编译,生成该输入模块部分的原理框图,如图51所示CLKEY_IN30OUT_CLKOUT_DAT150KEYBOARDINSTVCCLKINPUTVEY_IN30IPTDAT150OUTPTCLKTPT图51输入模块原理框图其中,CLK为系统时钟脉冲,KEY_IN30为按键输入,KEY_OUT30为按键输入译码后的输出值。添加引脚,对该原理图进行编译、仿真。52状态转换控制器仿真完成状态转换控制器KZQ子模块VHDL源程序文件输入后,保存文件,对文件进行编译,然后生成其模块原理图,如图52所示RESTT_STARTTETCLKDONECOKLD_TESTL_CLKLD_ONEALRMKZQINSTVCRESTINPUTVT_IPTVCSTARTINPUTVTETIPTVCCLKINPUTVDONEIPTCOKOUTPTLD_TESTTPTL_CLKOUTPTLD_ONETPTALRMOUTPT图52状态转换控制器KZQKQKQKQ原理图其中,输入信号为REST、SET_T、START、EST、CLK、DONE,输出信号为COK、LD_TEST、LD_CLK、LD_DONE、LARM。ZQ根据输入信号和自身当时所处的状态完成状态的转换和输出相应的控制信号。LD_CLK指示ZQ装入设置的烹调时间数据;LD_DONE指示ZQ装入烹调完毕的状态信息“DONE”的显示驱动信息数据;LD_TEST指示ZQ装入用于测试的数据“8888”以显示驱动信息数据;COK指示烹调正在进行之中,并提示计时器进行减计基于FPGA的微波炉控制器设计35数;ALRM为外接音响效应扬声器。添加引脚,对该原理图进行编译、仿真,其仿真结果,如图53所示图53状态转换控制器KZQKQKQKQ仿真图分析该仿真文件,可以看到,当测试信号TEST为高电平有效时,测试输出信号LD_TEST为高电平;否则,当时间设置信号SET_T为高电平时,对应的指示信号L_CLK输出高电平;当烹饪开始信号START信号为高电平时,对应输出COK为高电平;当复位信号REST为高电平时,系统复位清零,恢复初始状态。仿真结果符合模块设计的要求。53数据装载器仿真完成数据装载器ZQ子模块VHDL源程序文件输入后,保存文件,对文件进行编译,生成该数据装载器子模块原理图,如图54所示DAT150L_TESTLD_CLKL_ONEDAT2150LOADALRMZQINSTVCLD_TESTINPUTVL_CLKIPTVCLD_ONEINPUTDAT2150OUTPTVAT150IPTLOTPTALRMOUTPT图54数据装载器ZQQQQ原理图其中,输入信号LD_DONE为高电平时,输出烹调完毕的状态信息数据;LD_CLK为高电平时,输出设置的烹调时间数据;LD_TEST为高电平时,输出测试数据。输出信号LOAD用于指示电路正处于上述三路信号模式中的哪一种,同时提示JSQ将西南石油大学本科毕业设计(论文)36处于数据装入状态。添加引脚,对该原理图进行编译、仿真,其仿真结果如图55所示图5数据装载器ZQQQQ仿真图分析该模块仿真结果,由于数据装载器本质上即多了选择译码电路。可知,当LD_CLK、LD_TEST、LD_DONE三路信号中有且仅有一路信号电平有效时,选择器相应的值作为输出。54烹饪计时器仿真对烹饪计时器模块顶层文件进行编译,生成对应的元件,添加引脚,得到该烹饪计时器子模块原理图。如图56所示CLKLOADCKDAT510SEC_L30_H30MIN_L30I_H30DONEALRMJSQINSTVCCLKINPUTVLOADIPTVCCKINPUTVDAT150IPTSEC_L30OUTPT_H30TPTMIN_L30OUTPTI_H30TPTDONEOUTPTALRMTPT图56烹饪计时器JSQQQQ原理图其中,输入信号LOAD为高电平时完成信号的载入;COK信号为高电平时,在每个时钟周期的上升沿进行减法计数。输出信号DONE表示烹调时间到;ALRM表示音响效应;SEC_L30、SEC_H30、MIN_L30、MIN_H30显示所剩时间,和测试状态信息、烹调完毕状态信息等。由于烹调计时器是由两个减计数十进制计数器DCNT10和两个减计数六进制计数器DCNT6级联构成,因此,先完成两个减计数十进制和六进制计数器的VHDL源程序文件输入,保存文件并对文件进行编译、仿真。以下分别是两减计数器的功能仿基于FPGA的微波炉控制器设计37真图。如图57、58所示图57十进制计数器DCNT10仿真图图58六进制计数器DCNT6仿真图分析以上计数器仿真结果,当LOAD高电平有效时,对应的输出数据CQ为输入数据DATIN的数值;否则,在时钟脉冲上升沿,当ENA高电平有效时,计数器进行减计数,当计数值减到0时,其计数器的数值自动转为最大计时时间,在这个过程中,当每次计数值减到0时,输出信号CART_OUT记一次数,即实现烹调过程定时计数。由以上分析可知,仿真结果正确,即实现了减法计数功能。在前面仿真正确的基础上,生成相应的元件,对两计数器进行级联,构成烹调计时器内部原理框图,对该原理图进行编译、仿真,得到其仿真结果图。为了直观有效的观察该烹调计时器的实现结果,这里分别设置不同的定时时间进行仿真,其对应的仿真结果如图59、510所示图59为定时时间(4分57秒)的仿真结果图。西南石油大学本科毕业设计(论文)38图59烹调计时器JSQQQQ仿真图(4分57秒)图510为定时时间(59分59秒)的仿真结果图。图510烹调计时器JSQQQQ仿真图(59分59秒)由以上仿真结果可以看到,该JSQ模块实现了烹调计时的定时作用。5显示译码器仿真完成显示译码器YMQ模块VHDL源程序文件输入后,保存文件,对文件进行编译,生成该译码器模块框图,如图51所示AIN430DOUT760YMQINSTVCAIN4INPUTDOUT7OUTPT图51显示译码器YMQQQQ框图其中,AIN4为信号输入端,DOUT7输出显示,外接秒个位、秒十位、分个位、基于FPGA的微波炉控制器设计39分十位的按键。添加引脚,对该原理图进行编译、仿真,其仿真结果如图512所示图512显示译码器YMQQQQ仿真图分析仿真结果,可知,该译码器实现了显示译码功能。西南石油大学本科毕业设计(论文)406结论该课题是利用ALTERA公司的QUARTUS开发环境和软件,进行VHDL程序设计,然后进行仿真,调

温馨提示

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

评论

0/150

提交评论