文档介绍:20112111数字电路与逻辑设计实验报告
32
2013-2014年第1学期
数字电路与逻辑设计实验
实验报告
实验名称:简易电磁炉的设计和实现
是
是
是
是
否
否
20112111数字电路与逻辑设计实验报告
4
(三)分块设计
1、火力设置控制模块
本部分要求,用两个按键(BTN6和BTN5)实现火力的增加或减少,用数码管DISP3-DISP0显示当前的火力,火力5档可调: 1900W-1500W-1100W-600W-100W,用数码管DISP3-DISP0显示当前的火力。
首先判断关机键是否按下和倒计时是否到时间,如果都没有再进行如下的状态机转换过程。火力设置控制模块可以看做一个状态机,按下按键改变状态,控制显示控制变量改变,同时按键BTN6和BTN5控制状态机朝不同的方向转移。例如,开机后默认1900W加热,按下BTN6时火力上升,由于循环,显示100W,按下BTN5时,显示1500W。按下BTN6时控制变量设置如下:
DIGITAL_0<='1';DIGITAL_100<='0';DIGITAL_600<='0';DIGITAL_1100<='0';
DIGITAL_1500<='0';DIGITAL_1900<='1';BEFORESTATE<=5;
状态转移图如下:
0
100
1900
600
1500
1100
BTN6
BTN6
BTN6
BTN6
BTN6
BTN6
BTN5
BTN5
BTN5
BTN5
BTN5
2、功能设置控制模块
本部分要求,按键(BTN7)实现烹饪档位的选择,按下此按键,点阵依次显示H、J、B、T、Z,表示火锅、煎炒、爆炒、煲汤和蒸炖五档,同时点亮的发光二极管LD4表示开机加热。
同样首先判断关机键是否按下和倒计时是否到时间,如果都没有再进行如下的状态机转换过程。功能设置模块可以看做一个状态机,按下按键状态改变,控制点阵显示的控制变量改变,同时设置LD4的亮和灭。例如,开机后首次按下BTN7时,控制显示H的变量置一,状态加一。控制变量设置如下:
20112111数字电路与逻辑设计实验报告
5
SHOW_H<='1';SHOW_J<='0';SHOW_B<='0';SHOW_T<='0';SHOW_Z<='0';NEXTSTATE<=2 状态转移图如下:
Z
H
J
T
B
BTN7
BTN7
BTN7
BTN7
BTN7
3、定时器控制模块
本部分要求,自动定时和手动定时两种模式,自动定时指(蒸炖模式的默认时间为20秒钟,爆炒模式的默认时间是3秒钟,其他模式的默认时间为90秒);手动定时指按键(BTN4)实现定时设置,按下定时键,蜂鸣器响一声,每按一次定时键,定时时间以5-10-30-60秒钟的顺序依次递增,并能够进行倒计时。
完成自动定时部分只需要在功能选择模块部分加入设置自动定时控制变量即可。至于手动定时部分,同样可以看做一个状态机,按下BTN4后停止自动定时,设置手动定时变量。本部分状态机和框图如下:
20112111数字电路与逻辑设计实验报告
6
60
0
5
30
10
BTN4
BTN4
BTN4
BTN4
BTN4
开始
BTN7按下?
自动计时
BTN4按下?
停止自动计时
开始手动计时
结束
倒计时部分,在控制信号的控制下,设定倒计时的初始值,在1Hz的时钟的控制下,每1s待显示数字减一,再进行十位数和个位数分离,分别送显。个位数和十位数分离的算法如下:
PROCESS(TIME_TO_SHOW)
BEGIN
TIME_HIGH<=TIME_TO_SHOW/10; --除10,获得十位数
TIME_LOW<=TIME_TO_SHOW REM 10; --对10取余,获得个位数
END PROCESS;
20112111数字电路与逻辑设计实验报告
7
4、点阵显示模块
本部分要求在点阵依次显示H、J、B、T、Z,表示火锅、煎炒、爆炒、煲汤和蒸炖五档,点阵显示可以单独做一个模块,根据控制功