ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:777.96KB ,
资源ID:6136049      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6136049.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(微波炉可编程逻辑控制系统设计.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

微波炉可编程逻辑控制系统设计.docx

1、目录 第1章 概述 3 1.1 VHDL介绍 3 1.2 Quartus Ⅱ开发平台 3 1.3选题背景 4 1.4选题的技术现状 4 第2章 微波炉控制器的设计要求 5 2.1基本要求 5 2.2发挥部分 5 2.3方案设想 5 第3章 系统硬件的设计 7 3.1系统硬件的组成原理图 7 3.2 电源电路 7 3.3 有源晶体 8 3.4数码管 8 3.5LED 9 3.6按键使用 9 3.7报警电路 10 3.8 8X8 点阵 10 3.9 8路拨码开关输入 11 第4章 系统软件设计 11 4.1 分频程序设计 11 4.2数码管显示设计程

2、序设计 12 4.3报警提示设计程序设计 16 4.4门是否关紧程序设计 16 4.5 开关按键处理程序设计 17 第5章管脚分配及显示结果 18 5.1管脚分配图 18 5.2 管脚分配表 19 5.3硬件显示结果 19 5.4用户使用方法 20 第6章 总结 21 参考文献 22 附录一 电路原理图 23 附录二 微波炉控制器系统程序清单 26 摘要 随着社会的发展与科学的进步微波炉在人们的生活中使用非常普遍。微波炉内部的电子元件有不多,本设计只设计其中的核心部分控制器,该控制器具有系统复位、状态控制、时间设定、火力档位、烹饪计时、温度控制、显示译码和音响

3、效应等功能,基于CPLD 芯片实现。 本设计完成微波炉控制器的设计与分析。以VHDL语言为开发工具,QuartusⅡ作为程序运行平台。通过设计和实验,对开发的程序进行调试运行和波形仿真测试验证,初步实现了设计目标。运用硬件描述语言VHDL,大大降低了硬件数字系统设计,使得程序设计直观简洁,设计效率高。    关键词 微波炉、控制器、VHDL QuartusⅡ 仿真 第1章 概述 本文所设计的电子钟系统是运行在QuartusⅡ环境下的一个小型的数字系统。我采用了自顶向下的设

4、计方法,应用功能强大的硬件描述语言VHDL完成系统的设计仿真。下面就本设计所用到的技术作一下简单的介绍。 1.1 VHDL介绍 VHDL是Very High Speed Integrated Circuit Hardware Description Language的缩写,是在ADA语言的基础上发展起来的硬件描述语言。 VHDL诞生于1983年,1987年12月,VHDL被接纳为标准硬件描述语言,即IEEE1076标准。经过不断更改和改善,1993年,VHDL重新修订并增加了一些功能,即IEEE 1076-93标准。目前在电子工程领域,作为IEEE的工业标准硬件描述语言,VHDL已成为事

5、实上的通用硬件描述语言。 电路设计的描述层次可分为系统级、算法级、寄存器传输级、门级和晶体管级,VHDL的建模范围可以从最抽象的系统级一直到门级,从多个层次对电路进行模拟仿真。它除了具有硬件特征的语句外,其语言形式和描述风格以及句法和一般的计算机高级语言相当类似,然而它又有同软件语言完全不同的性质。 以下是一个VHDL的实例: 这个程序是一个简单的2选1多路选择器的VHDL完整描述。它体现出了VHDL程序的一般结构:使用库(Use)定义区——实体(Entity)定义区——结构(Architecture)定义区。其中Use定义区描述的是这个程序使用的定义库,类似于C语言的头文件包括; E

6、ntity 定义区描述的电子的外部结构,就是指元件的输入和输出接口,它用以定义一个芯片的管脚状态;Architecture定义区里面是这个程序的关键部分,包括算法,功能,硬件的行为等都是在Architecture区里面描述的。 一个完整的VHDL程序是对一个功能元件从外部和内部两个方面来进行描述,由于元件本身具有层次性,因此它既可以作为完成某一功能的逻辑电路单元而独立存在,也可以作为一个部件,和其他功能元件一起构成更复杂的功能元件或数字系统,因此其单元的概念很清晰,可以灵活地应用于自顶向下的数字系统设计流程。 1.2 Quartus Ⅱ开发平台 Quartus II是Altera公司的第

7、四代可编程逻辑器件集成开发环境,提供从设计输入到器件编程的全部功能。Quartus II可以产生并识别EDIF网表文件、VHDL网表文件,为其他 EDA 工具提供了方便的接口;可以在Quartus II集成环境中自动运行其他 EDA 工具。Quartus II 软件的开发流程可概括为以下几步:设计输入、设计编译、设计时序分析、设计仿真和器件编程,具有FPGA和CPLD芯片设计的所有阶段的解决方案。 (1)设计输入 Quartus II软件在File菜单中提供“New Project Wizard...”向导,引导设计者完成项目的创建。当设计者需要向项目中添加新的VHDL文件时,可以通过“N

8、ew”选项选择添加。 (2)设计编译 Quartus II编译器完成的功能有:检查设计错误、对逻辑进行综合、提取定时信息、在指定的Altera系列器件中进行适配分割,产生的输出文件将用于设计仿真、定时分析及器件编程。 (3)设计定时分析 单击Project菜单下的“Timing Settings...”选项,可以方便地完成时间参数的设定。Quartus II软件的时序分析功能在编译过程结束之后自动运行,并在编译报告的Timing Analyses文件夹中显示。 (4)设计仿真 Quartus II软件允许设计者使用基于文本的向量文件(.vec)作为仿真器的激励,也可以在Quart

9、us II软件的波形编辑器中产生向量波形文件(.vwf)作为仿真器的激励。 (5)器件编程 设计者可以将配置数据通过MasterBlaster或ByteBlasterMV通信电缆下载到器件当中,通过被动串行(Passive Serial)配置模式或JTAG模式对器件进行配置编程,还可以在JTAG模式下给多个器件进行编程。 1.3选题背景 随着生活水平的不断提高, 人们对家用电器的功能和质量的要求越来越高。而现有市售的微波炉其主要弊端为: 不能按既有程序进行烹调, 需要使用者根据食物的类型、数量、温度等因素去设定微波炉的工作时间, 若设定的工作时间过长, 含水分较多的食物可能会产生过热

10、碳化的现象, 若时间过短则达不到预期的烹调效果。 不仅在节能方面未做过多考虑,使用者还需要经常翻看使用说明书才能完成操作过程。针对这些问题, 笔者认为有必要研制一种操作简单且烹调效果好的微波炉,根据一些家常菜按固定程序烹调的现象,可采取分时、分档火力加热,节时又节能。 1.4选题的技术现状 应用CPLD 芯片和硬件描述语言(VHDL)设计该微波炉控制器系统,该系统用VHDL 编程实现各底层模块的功能,顶层设计用图形输入完成。 设计依据如下: 1)技术可行性:采用EDA作为开发方法,VHDL语言为开发工具,通过设计和实验,对开发的程序进行调试运行和波形仿真测试验证,实现设计目标; 2)

11、经济可行性:合理利用实验室已有软件、实验箱、开发板,对该微波炉控制器设计进行开发、调试运行、仿真测试,以及结果验证等; 3)以现有网络资源为依据,以辅导老师的指导为参考,根据已学知识,综合该控制器设计要求,具体细化设计; 第2章 微波炉控制器的设计要求 2.1基本要求 (1) 制定一个在不同功能时火力的控制时序表。具有三档微波加热功能,分别表示微波炉工作状态为烹调、烘烤、解冻,试验使用LED模拟。 (2) 实现工作步骤:复位待机——〉检测显示电路——〉设置输出功能和定时器初值——〉启动定时和工作开始——〉结束烹调、音响提示。 (3) 在上电或手动按复位键时,控制器输出的微波功率控

12、制信号为0,微波加热处于待机状态,时间显示电路显示为00.00。 (4) 具有4位时间预置电路,按键启动时间设置,最大预设数为99分99秒。 (5) 设定初值后,按开启键,一方面按选择的挡位启动相应的微波加热;另一方面使计时电路以秒为单位作倒计时。当计时到时间为0则断开微波加热器,并给出声音提示,即扬声器输出2~3s的双音频提示音。 (6) 若在待机状态时按测试键,则4位数码管交替显示全亮和全灭两种状态,以检测数码管各发光段的好坏。 2.2发挥部分 (7) 微波炉火力档位的增加。 (8) 输出显示方面的扩展。 (9) 实现智能控制、信息控制。 2.3方案设想 根据该微波炉的功

13、能设计要求,和慎重的思考后,我的方案确定为以EPM240芯片为核心的基础上结合外围电路,再加上软件上的设计,从而实现可编程逻辑微波炉控制设计。 在EPM240的学习板上,我运用了板上的时钟电路、数码管显示电路、按键控制电路、电源电路、点阵显示电路、报警提示电路。 在程序编程方面采用了分频器、计数器、点阵显示、调节控制、显示译码器、彩灯控制、门是否关紧。 系统预计操作流程如下 图2.3 系统流程图 其相应的键盘控制布局如下所示: 图2.4 系统控制键布局图 第3章 系统硬件的设计 3.1系统硬件的组成原理图 数码管显示电路 键盘控制电路 Max Ⅱ EMP240T1

14、00C5 电源电路 下载电路 50M时钟 振荡电路 LED电路 提示报警电路 点阵显示电路 3.2 电源电路 电源可以采用 USB 上电,也可以外接5V DC 电源。外接5V DC电源时请注意正负极性.内正外负。 3.3 有源晶体 采用有源晶体频率为 50M Hz 给 CPLD 的 I/O12(CLKIN)提供时钟。 我们在使用时钟的时候要分配对应的脚。 3.4数码管 本设计采用共阴极动态显示驱动。因为CPLD的I/O驱动能力比较强,所以可以直接驱动数码管,但为了保护I/O口在一个回路之中串接100欧姆

15、的限流电阻。为了灵活使用I/O口,采用了插针方式,硬件上并没有直接连接上去。 3.5LED 注意:在 LED 发光二极管的时候,要把二极管的 J10 用跳冒短接起来,J10 是 LED 发光二极管的电源跳线设置.如果你不用 LED 发光二极管也可以把 J10 的跳冒取下来,当然 也可以不用取。 3.6按键使用 注意:板子上面的几个独立按键都可以作为程序的复位脚,CPLD 和其他的 51 单片机或者 ARM 或者 DSP 不一样的。可编程 CPLD 器件每一个可编程的 I/O 口都可以作为复位 脚。而其他的 MPU 就是一个固定的脚,这个大家要分清楚。

16、3.7报警电路 BELL当 I/O15 为低电平时 BELL发出嘟嘟的声音。 3.8 8X8 点阵 为了让用户在选择档位调节火候大小的时候能更加明显显示,我也设计一个8*8 共阴极的点阵显示,通过程序不断进行扫描,使得行高列低。从而实现要显示的符号。具体电路如图3-9-1。 3.9 8路拨码开关输入 通过拨码开关可做相应的输入等实验,拨码开关和按键的用途差不多,只不过拨码开关可以固定电平,而按键一松手又回到以前的状态了。 第4章 系统软件设计 4.1 分频程序设计 在接口电路中,时钟信号的作用至关重要,一般CPLD的外部时钟信号可达到几十MHZ,但是由于一

17、些接口电路的特性所致,这样高频率的时钟不适合电路工作,所以应该引入时钟分频电路产生适合接口的工作频率。时钟发生器的输入是全局时钟clk,是从50MHZ的晶振得到的信号。为了产生合适的扫描时钟、计数时钟和闪烁时钟,所以要让50MHZ信号变成clk1为50000hz和 clk2为1hz。 具体程序如下: --***********50000hz分频信号***********---------- process(clk) variable cntt : integer range 1 to 500; begin if(clk'event and clk='1')then

18、 if cntt=500 then cntt:=1; clk1<= not clk1; else cntt:=cntt+1; end if; end if; end process; ---***************1hz钟信号 ****************------ process(clk1) variable cnt : integer range 1 to 25000; begin if(clk1'event and clk1='1')then if cnt =25

19、000 then cnt:=1;clk2<= not CLK2; else cnt:=cnt+1; end if; end if; end process; 在产生1HZ信号的进程中之所以用了上一个进程中产生的5000hz的clk1,这样用的目的是为让系统剩下资源,因为EPM240的系统资源本来就是很少的,为了更好的实现更加智能化,所以要尽量节约系统资料。所以用clk1来产生clk2。 4.2数码管显示设计程序设计 根据要求,通过数码管的显示来显示倒计时的其实时间,客户调节时间的显示,调节火候的显示,所以程序必

20、须设计一个可以进行倒计时的计数器,一个调节时间功能的进程。让用户通过调节时间来制定要进行倒计时的开始时间。 一开始时我原本打算通过设计一个4*4矩阵键盘来实现更加智能化设计,让用户可以很轻松通过键盘上的数字按键来控制显示数字来设置全自动时间以及其他功能。程序及硬件电路图都设计好了,但是由于EPM240的系统资源极其有限,矩形键盘所需的系统资源大。所以让我不得不放弃用矩形键盘来控制。所以最终选择用6个独立按键来控制。再说EPM240的端口又多,6个端口对它也只是小菜一碟。 整个程序中需要一个倒计时进程来控制数码管到显示计时,原理很简单就是相当计时秒表一样,只是把条件的当0就变为9,变成当9变

21、为0就好了,这样就能实现数码管倒计时功能了。 为了控制指示灯和防止用户忘记关门就直接开始工作导致微波伤害人体健康,所以在进行倒计时工作时我加上了一个条件判断是否要进行计时工作。 为了实现假如用户调节时间的时候不用一定要调节四位,就直接可以按开始按钮,数码管就不会不停止那里闪烁。所以又要在工作计时时加上一个判断条件。 具体程序如下 ELSIF(CLK2'EVENT AND CLK2='1') THEN if (L='0' and kaimeng='0')then ----------为了控制指示灯和防止用户忘记关门就直接开始工作导致微波伤害人体健康----------

22、 cnt1<=0; ---------------为了实现假如用户调节时间的时候不用一定要调节四位,就直接可以按开始按钮,数码管就不会不停止那里闪烁。 case led3 is when"0000"=>led3<="1001"; case led4 is when"0000"=>led4<="0101"; case led5 is when"0000"=>led5<="1001"; case led6 is when"0000"=>led6<="

23、0000"; led5<="0000"; led4<="0000"; led3<="0000"; when others=>led6<=led6-1; end case; when others=> led5<=led5-1; end case; when others=>led4<=led4-1; end case; when others=>led3<=led3-1; end case; end

24、if; 在写这段程序是要对全局思路要很清晰,特别是这里用到信号量最多,每个信号要知道它的具体作用。 调节时间进程我的主要思路是利用一个移位和两个分别为递增和递减的按键来控制,利用case 语句来控制数码管的位置,利用case语句也有一个好处就是能够节约系统资源。 例如实现递增功能的程序如下: elsif (dizeng='0') THEN -----dizeng=0时递增调时 case cnt1 is when 4=>case led3 is when"1001"=> led3<="0000

25、"; when others=> led3<=led3+1; end case; when 3=>case led4 is when"0101"=> led4<="0000"; when others=> led4<=led4+1; end case; when 2=>case led5 is when"1001"=>

26、 led5<="0000"; when others=> led5<=led5+1; end case; when 1=>case led6 is when"1001"=> led6<="0000"; when others=> led6<=led6+1; end case; when others => null; end case; 同

27、理就可以编写实现递减功能的程序。 因为我的数码管到管脚是统一连在一起的,目的是为了节约IO口,所以要用不断扫描数码管才能让数码管显示你想要的数字,扫描数码管到方法有很多种,为了让用户知道他调节时间时所控制数码管到位置,所以我加上了当那个数码管受到控制时,还会不断闪烁,加以显示。这因为加上了这个功能,所以要打破传统的扫描方法。顺便节约系统资源。编写程序如下: --********-调整闪烁时间*******************---- process(cnt,en_xhdl,data4) begin if(clk1'event and clk1='1')then

28、 if cnt=4 then cnt<=0; else cnt<=cnt+1; end if; end if; case cnt is when 0 => en_xhdl<="111110";dian<='0'; when 1 => case cnt1 is when 4=> en_xhdl<=(2=>clk2,others=>'1');dian

29、<='1'; when others=> en_xhdl<="111011";dian<='0'; ---为0时数码管的小数点就不显示------ end case; when 2 => case cnt1 is when 3=> en_xhdl<=(3=>clk2,others=>'1');dian<='1';

30、 when others=> en_xhdl<="110111";dian<='0'; end case; when 3 => case cnt1 is when 2=> en_xhdl<=(4=>clk2,others=>'1');dian<='0'; when others=

31、> en_xhdl<="101111";dian<='1'; end case; when 4 => case cnt1 is when 1=> en_xhdl<=(5=>clk2,others=>'1');dian<='1'; when others=> en_xhdl<=

32、"011111";dian<='0'; end case; when others => null; end case; case en_xhdl is when "111110"=> data4<=led1; when "111011"=> case dingshi is when '1'=>DATA4<=led31 ;

33、 when others=>data4<=led3; end case; when "110111"=> case dingshi is when '1'=>DATA4<=led41 ; when others=>data4<=led4; end case; when "10111

34、1"=> case dingshi is when '1'=>DATA4<=led51 ; when others=>data4<=led5; end case; when "011111"=> case dingshi is when '1'=>DATA4<=led61 ; when others=>data4<=le

35、d6; end case; when others => null; end case; END PROCESS; 前面完成编码后肯定要完成译码显示,所以一定要一个译码进程来通过对数码管管脚的输出进行编码。我选择的数码管是8段共阴极。当为“1”时该管对应的段显示变亮。 具体程序 --*******************---译码----******************----- process(data4) begin case data4 is WHEN "0000"

36、>dataout_xhdl1 <= "0111111";--0 WHEN "0001" =>dataout_xhdl1 <= "0000110";--1 WHEN "0010" =>dataout_xhdl1 <= "1011011";--2 WHEN "0011" =>dataout_xhdl1 <= "1001111";--3 WHEN "0100" =>dataout_xhdl1 <= "1100110";--4 WHEN "0101" =>dataout_xhdl1 <= "1101101";--5 WH

37、EN "0110" =>dataout_xhdl1 <= "1111101";--6 WHEN "0111" =>dataout_xhdl1 <= "0000111";--7 WHEN "1000" =>dataout_xhdl1 <= "1111111";--8 WHEN "1001" =>dataout_xhdl1 <= "1101111";--9 WHEN OTHERS =>null; END CASE; END PROCESS; 4.3报警提示设计程序设计 根据要求,当用户设置微波炉加热时间到时要产生报警提示,所以我就设计一个当倒计

38、时到最后两秒钟的时间就开始提示加热时间以到的报警信号,通过蜂鸣器来提示。 具体程序的原理就是当数码管显示到最后两秒的时间就激活一个信号让蜂鸣器产生鸣叫报警,用绿色的LED点亮来让用户知道加热结束了,红灯灭。 软件设计的提示报警程序应该是在数码管正常倒计时的程序进程里面的,原因是为了控制绿灯显示。所以这里不能单独作为一个进程处理。 具体程序如下: -------------提示语音----------- if (led6="0000" and led5="0000" and led4="0000" and (led3="0001" or led3="0010"))

39、then bell<='1';------------提示时间到了,响声2s---------- green<='1'; led1<="0000"; else bell<='0'; end if; 4.4门是否关紧程序设计 炉门是食品的进出口,也是微波炉炉腔的重要组成部分。对它要求很高,绝对不能让微波泄漏出来。炉门由金属框架和玻璃观察窗组成。

40、观察窗的玻璃夹层中有一层金属微孔网,既可透过它看到食品,又可防止微波泄漏。由于玻璃夹层中的金属网的网孔大小是经过精密计算的,所以完全可以阻挡微波的穿透。钛膜也多作为微波炉炉门的材料。    为了防止微波的泄漏,微波炉的开关系统由多重安全联锁微动开关装置组成。炉门没有关好,就不能使微波炉工作,微波炉不工作,也就谈不上有微波泄漏的问题 。 所以为了让用户使用的更加放心舒心和符合现代家用电器的制作理念。我也设置一个开门按钮,当用户不小心或者忘记关门的时候能够及时让微波炉不工作,以致对用户的安全负责。 当用户不小心或者忘记时,微波炉的倒计时进程就不能实现,这个在上面的数码管显示那里就已经设置了

41、加上了一句检测是否开门,如果开门,它就不能进行倒计时工作。为了更加明显告诉用户门是否关紧,我还设计了一个进程负责处理,关不紧的时候,黄色的LED就会以1s钟不停闪烁来更加明显告诉用户。 具体程序如下: ------***************检查门有没有关好**************-------------- process(kaimeng,CLK2) begin IF(CLK2='1' and kaimeng='1' ) then ---当kaishi为1时 为危险使用----黄灯1s不停闪烁------- yellow<='1'; else

42、 yellow<='0'; end if; end process; 4.5 开关按键处理程序设计 开关按钮就是当用户将时间设置和档位选择好了之后就可以按下按钮就可以让微波炉正常启动工作 具体程序如下: ---******************开关按键处理***********-- process(start,P) variable n:integer range 0 to 1:=0;-----用于锁存---- begin IF(CLK2'EVENT AND CLK2='1') THEN if (start='0' and n=0) th

43、en L<='0';--------是为了让倒计时能是否正常工作的信号指示---------- n:=n+1; red<='1'; elsif (start='0' and n=1)OR (led6="0000" and led5="0000" and led4="0000" and led3="0000") then ------当倒计时结束时,红灯能自动灭。 n:=n+1; L<='1'; red<='0'; end if; end

44、 if; END PROCESS; 第5章管脚分配及显示结果 5.1管脚分配图 图 5-3-1 管脚分配图 5.2 管脚分配表 表5-3-2 管脚分布表 5.3硬件显示结果 这里所用到的硬件是天祥电子CPLD/FPGA系列TX-2A的开发板,所用的芯片是EPM240T100C5。 先测试一下数码管,看看闪烁时数码管显示是否正常,测试好之后复位,测试和复位都是用按键开关,之后调档位,用按钮开关控制火力档位,火力显示为一个数码管,和点阵显示,火力为0时不能工作(不能倒计时),档位调好之后就是设置时间,设置时间只用一个按键调节按键来控制位置,按递加或递减按

45、键进行自加,自减。自加或者自减的频率是一秒加或着减一次,加或减到想要的时间后按下开始按钮,红灯变亮。检测关门键(拨码开关)如果门关和开始按键按下则就可以开始工作,即可以进行倒数。如果工作中突然关门按键开着则就不能进行工作,并且黄灯以1s一下闪烁提醒用户,关门键其实是对微波炉系统的扩展,这里只能简单的用一个拨码开关进行描述,设想关门键是装在微波炉的门那边,用来感应微波炉的门是否关紧,如没关紧,则不能工作。倒计时进行时,红灯亮,说明正处于工作状态,当倒计时完毕时,亮绿灯,说明工作已完毕,最后二秒蜂鸣器还会进行报警。 5.4用户使用方法 1、把需放入微波炉的食物放入,关好微波炉的门

46、 2、.上电按下复位按钮(数码管显示00.00 0,前四位表示时间,最后一位表示当前选择档位)。 3、.选择火力(有三个档位,每按一下选档按钮,数码管就会改变数字0-3,点阵就会产生不同的图案形象告诉用户你选择的火候大小) 4、.按下移位按键(先按下调节按键,看对应是那个数码管在闪烁,那个闪烁就表示对应控制那位数码管显示,通过按下递增或者递减来控制闪烁那位数码管对应的数字显示。调节范围为00∶00到99∶59)。 5、按下开始按键(当按下开始按键时,对应的红灯会亮,表示在加热中,当加热到最后两秒时红灯就会灭,绿灯亮,蜂鸣器会产生两秒钟报警提示,从而提示用户加热结束可以安全打开。当然假如

47、用户操作不当,中途打开门,那么黄灯亮,红灯也亮。微波炉暂停工作)。 第6章 总结 会选择可编程微波炉这个课题是因为我对可编程这门课还是比较喜欢的,为了完成这个设计,我由查阅资料编辑设计总体框架,再完成代码编辑,到最后的程序仿真成功。用了两周的时间完成,在完成的过程中经历了一次又一次的挫折,从开始只有计时功能到慢慢的能够调时,报警,彩灯,点阵,看着最后全部功能都实现的那一下,我真的是觉得很有成就感。下面是我对实现每个功能的一些设计技巧 a) 在产生1HZ信号的进程中之所以用了上一个进程中产生的5000hz的clk1,这样用的目的是为让系统剩下资源,为了更

48、好的实现更加智能化,所以要尽量节约系统资料。所以用clk1来产生clk2。 b) 在数码管显示调时反面,最大的定时是59.59.而调时我是采用了按键,同时有递增递减功能,能够让用户更快捷方便的进行定时。 c) 具体程序的原理就是当数码管显示到最后两秒的时间就激活一个信号让蜂鸣器产生鸣叫报警,用绿色的LED点亮来让用户知道加热结束了,红灯灭。 d) 开关按钮就是当用户将时间设置和档位选择好了之后就可以按下按钮就可以让微波炉正常启动工作 e) 在微波炉工作状态的选档方面,除了数码管会显示选当的号码,在点阵反面也会给予提示 通过这次的毕业设计,让我在可编程这门课程有了更深的了解,而且

49、也提高了我的专业知识,总的来说这样的课程设计比上课有意思多了,在实际中还是有很多不是在课本上能学的到的东西,这个需要自己去理解,去总结的。 参考文献 【1】. 谭会生,瞿遂春. EDA技术综合应用实例与分析 西安电子科技大学出版社,2004 【2】. 廖日坤 CPLD/FPGA应用开发技术白金手册. 中国电力出版社,2005 【3】. 张友汉. 数字电子技术基础[M]. 北京:高等教育出版社,2004 【4】. 顾斌. 数字电路EDA设计[M]. 西安:西安电子科技大学出版社,2004 【5】.

50、 徐志军. CPLD/FPGA的开发与应用[M]. 北京:北京电子工业出版社,2002 【6】. 李国丽. EDA与数字系统设计[M]. 北京:北京机械工业出版社,2004 【7】. 罗朝霞. CPLD/FPGA设计及应用[M]. 北京:人民邮电出版社,2007 【8】. 辛春燕. VHDL硬件描述语言. 北京:国防工业出版社,2002 【9】. 龚兰芳. EDA技术课程设计及实训指导书. 广东水利电力职业技术学院, 2007 【10】. 龚兰芳. EDA技术实验指导书. 广东:广东水利电力职业技术学院,2007 【11】. 尹常永. EDA技术与数字系统设计. 西

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服