数字电路与逻辑设计实验报告简易电磁炉控制器的设计与实现

上传人:今*** 文档编号:106026094 上传时间:2019-10-14 格式:DOC 页数:26 大小:2.12MB
返回 下载 相关 举报
数字电路与逻辑设计实验报告简易电磁炉控制器的设计与实现_第1页
第1页 / 共26页
数字电路与逻辑设计实验报告简易电磁炉控制器的设计与实现_第2页
第2页 / 共26页
数字电路与逻辑设计实验报告简易电磁炉控制器的设计与实现_第3页
第3页 / 共26页
数字电路与逻辑设计实验报告简易电磁炉控制器的设计与实现_第4页
第4页 / 共26页
数字电路与逻辑设计实验报告简易电磁炉控制器的设计与实现_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《数字电路与逻辑设计实验报告简易电磁炉控制器的设计与实现》由会员分享,可在线阅读,更多相关《数字电路与逻辑设计实验报告简易电磁炉控制器的设计与实现(26页珍藏版)》请在金锄头文库上搜索。

1、北京邮电大学 数字电路实验北京邮电大学数字电路与逻辑设计实验报告实验名称:简易电磁炉控制器的设计与实现 班级:2011211122学号:班内序号:姓名:指导老师: 目录一、报告概要 1、课题名称2、报告摘要3、关键字二、设计任务和要求三、系统设计 1、设计思路2、总体框图(1) 系统结构框图(2) 模块划分方框图(3) ASM图(4) MDS图3、分块设计(1)分频模块(2)烹饪模式模块(3)火力调节模块(4)时间控制模块(5)数码管模块(6)关机模块 (7)防抖模块4、总体设计四、实现功能说明 1、已完成功能 2、器件的资源占用情况 3、关键波形仿真图及波形分析 4、必要的测试方法 五、故障

2、及问题分析六、实验总结与结论七、所用元器件及测试仪表清单八、完整源程序九、参考文献一、报告概要 1、课题名称 简易电磁炉控制器的设计与实现2、 报告摘要本次实验通过VHDL语言编程,Quartus II仿真及开发板上调试,模仿电磁炉的各种基本功能,包括烹饪模式选择,火力调节,定时及不定时选择,数码管、点阵显示、蜂鸣器提示等功能。充分运用模块编程的思想,利用状态机及自顶向下的设计方法,实现任务所要求的全部基本功能,并且在原有功能上实现了部分拓展。3、关键字 电磁炉控制器,VHDL,自顶向下2、 设计任务和要求 基本要求:1、烹饪模式选择:电磁炉的烹饪模式有火锅、煎炒、爆炒、煲汤和蒸炖五档可选。用

3、一个按键(BTN7)实现烹饪档位的选择(按下此键,依上述顺序依次变化),用点阵显示当前的烹调档位(火锅显示H、煎炒显示J、爆炒显示B、煲汤显示T、蒸炖显示Z),烹调档位的选择按键同时也是加热的开始按键,即烹调档位选定的同时电磁炉就以最大功率开始加热,没有选择时电磁炉处于停止状态,点阵不显示。 2、火力调节:电磁炉的火力分5档可调: 1900W-1500W-1100W-600W-100W,用数码管DISP3-DISP0显示当前的火力,用两个按键(BTN6和BTN5)实现火力的增加或减少,烹调过程中,除爆炒模式外,其它模式均可以随时可以调节火力,爆炒模式只能以最高功率加热。 3、定时功能:用一个按

4、键(BTN4)实现定时设置,按下定时键,蜂鸣器响一声,每按一次定时键,定时时间以5-10-30-60秒钟的顺序依次递增,定时设定完毕后,电磁炉开始倒计时。用数码管DISP5和DISP4显示定时档位和倒计时的过程,倒计时时间到后,电磁炉自动停止加热并关机。 4、不进行定时操作时,电磁炉以默认加热时间进行加热。蒸炖模式的默认时间为20秒钟;爆炒模式的默认时间是3秒钟,爆炒3秒钟后自动返回煎炒模式;其他模式的默认时间为90秒。 5、用点亮的发光二极管LD4表示开机加热,熄灭表示关机。 6、设置关闭键,任何时候按下关闭键即可将电磁炉关机。扩展功能:1、倒计时过程中通过8个发光二级管显示倒计时进度。2、

5、模式显示部分将点阵分为左右两半,采用不同的颜色显示。3、倒计时结束后放一段乐曲提示。(未实现)三、系统设计 1、设计思路简易电磁炉的设计过程采用自顶向下设计方法,从目的,即整个系统功能出发,按一定规则将系统划分为若干个子系统和功能模块,并且继续划分成更小的模块,直到每部分都能较为简单的实现。在实验中,先根据要实现的功能,将整个程序设计成了烹饪模式选择、火力调节、时间调节(倒计时与否)、微波炉状态切换这4个主要的子系统,同时设计适合不同模块工作的分频部分和与之相对应的显示部分。在这些子系统的设计中,最常用到的是利用状态机的原理实现电磁炉各个状态之间的转换。如状态选择部分通过按键BTN4实现火锅、

6、煎炒、爆炒、蒸炖和煲汤的切换;火力选择部分通过按键实现1900W到100W的切换。 2、总体框图 (1)系统结构图 (2) 系统逻辑划分方框图(3)ASM图(4)MDS图 3、分块设计 (1)分频模块 这部分按照教学网站上所给的50M分频器的实例设计了三个分频器,利用输入的50MHz时钟,分频后为1Hz、100Hz、1000Hz时钟。代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MDCL ISPORT(CLK: IN STD_LOGIC;-时钟);END MDCL;ARC

7、HITECTURE WY OF MDCL ISSIGNAL CNT1: INTEGER RANGE 0 TO 24999999; -频率1Hz计数SIGNAL CNT100: INTEGER RANGE 0 TO 249999; -频率100Hz计数SIGNAL CNT1000: INTEGER RANGE 0 TO 24999; -频率1000Hz计数SIGNAL CLK_FP: STD_LOGIC_VECTOR (2 DOWNTO 0); -分频后的时钟信号BEGINP1:PROCESS(CLK)BEGINIF CLKEVENT AND CLK = 1 THENIF CNT1 = 2499

8、9999 THENCNT1=0;CLK_FP(0)= NOT CLK_FP(0);END IF;CNT1 = CNT1 + 1;END IF;END PROCESS P1;P2:PROCESS(CLK)BEGINIF CLKEVENT AND CLK = 1 THENIF CNT100 = 249999 THENCNT100=0;CLK_FP(1)= NOT CLK_FP(1);END IF;CNT100 = CNT100 + 1;END IF;END PROCESS P2;P3:PROCESS(CLK)BEGINIF CLKEVENT AND CLK = 1 THENIF CNT1000 =

9、 24999 THENCNT1000=0;CLK_FP(2)= NOT CLK_FP(2);END IF;CNT1000 IF( BTN7 = 1) THEN MOSHI= HG ;MSXZ= 001;CURRENT_STATE IF( BTN7 = 1) THEN MOSHI= JC ; MSXZ= 010;CURRENT_STATE IF( BTN7 = 1) THEN MOSHI= BC ; MSXZ= 011;CURRENT_STATE IF( BTN7 = 1) THEN MOSHI= BT ; MSXZ= 100;CURRENT_STATE IF( BTN7 = 1) THEN M

10、OSHI= ZD ; MSXZ= 101;CURRENT_STATE IF( BTN7 = 1) THEN MOSHI= HG ; MSXZ= 001;CURRENT_STATE = 1; END IF ;END CASE;END IF;END IF;END PROCESS; END WY点阵扫描与数码管原理类似,数码管为位选每时刻选通一位,推送八位序列控制显示;而点阵扫描为对每一行进行选通,即对行扫描,列信息即为控制显示。需要特别注意的是,点阵(0,0)的位置在左下角。点阵显示代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD

11、_LOGIC_UNSIGNED.ALL;ENTITY MDCL ISPORT(CLK: IN STD_LOGIC;-时钟ROW: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);COL: OUT STD_LOGIC_VECTOR(7 DOWNTO 0););END MDCL;ARCHITECTURE WY OF MDCL ISSIGNAL CLK_FP: STD_LOGIC_VECTOR (2 DOWNTO 0); -分频后的时钟信号SIGNAL MSXZ: STD_LOGIC_VECTOR(2 DOWNTO 0); -加热模式的状态组合SIGNAL DZSM: STD_LOGIC_VECTOR(2 DOWNTO 0); -点阵辅助扫描显示SIGNAL CURRENT_STATE: STD_LOGIC; -当前状态,是否为等待P1:PROCESS(CLK_FP(2),MSXZ)BEGINIF (CLK_FP(2)EVENT AND CLK_FP(2)=1) THENIF CURRENT_STATE =1 THENCASE MSXZ ISWH

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号