智能微波炉控制系统及设计

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

B2
b
OUTPUT
b[1]
B[0]
B1
c
OUTPUT
c[1]
B0
d
OUTPUT
d[1]
e
OUTPUT
e[1]
f
OUTPUT
f [1]
g
OUTPUT
g[1]
inst10
B[7]
B3 B2 B1 B0
十三、RTL图 Decoder0
IN [3..0]
OU T[15..0]
D EC OD ER
Wi d e Or6 a


state4 state6
State6 至state8
注释:(食物两次加热的过程)
Start2:设定时间
state3:大火档
state6:加热 state8:停止
十五、演示照片
十六、设计结论及评价
• 优点:可以设定倒计时间,火力选择。
• 不足:每次设定的时间最多99秒,还 需要改进,不具备检查功能。
• 结论:基本可以解决微波炉的控制问 题,但仍需改进。
谢谢大家!
人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。
S6
00100000 Unsigned Binary
S7
01000000 Unsigned Binary
S8
10000000 Unsigned Binary
Q[7..0] B[7..0]
OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT
Q[0] Q[1] Q[2] Q[3] Q[4] Q[5] Q[6] Q[7]
inst1
BCDto7SEG
B[6]
B3
a
OUTPUT
a[0]
B[5]
B2
b
OUTPUT
b[0]
B[4]
B1
c
OUTPUT
c[0]
B0
d
OUTPUT
d[0]
e
OUTPUT
e[0]
f
OUTPUT
f [0]
g
OUTPUT
g[0]
inst
BCDto7SEG
B[3]
B[2]
B3
a
OUTPUT
a[1]
B[1]
4=8'b00001000,S5=8'b00010000,S6=8'b00100000,S7=8'b01000000,S8=8'b1
0000000;
• always@(posedge clk ,negedge nRST) begin • if(!nRST) CS<=START; • else CS<=NS; • end • always@(CS,i1,i2,i3) begin • case(CS) • START:begin • if(i1) NS=S2; • if(i2) NS=S1; • end • S1 :begin • if(i3) NS=S2; • if(~i2&~i3) NS=S8; • end
• 1 ,该微波炉控制器能在任意时刻取消当前工作,复位为 初始状态。
• 2, 可以根据需要设定火力及每种火力的加热时间,可供 火力选择的档位有大火档,中火档,小伙档,三种档位。
• 3, 定时器需要与BCDto7SEG译码器连接,再通过数码 管显示倒计时过程。
四、确定输入和输出变量
输入变量8个: nRST:清零 i1,i2,i3:输入信号 Clk:时钟 DIN:定时器输入 Load:同步加载控制信号 Count:计数控制端 输出变量2个: Q:状态输出 B:计数器输出端
题目:智能微波炉控制系统及设计
一、大作业摘要
– 我设计的是微波炉的控制系统,主要解决的是微 波炉的定时功能,各种功能转换,比如说,加热 食物都需要哪些步骤。首先要启动开始状态,其 次设定时间,然后是火力档位的选择,最后是烹 饪的方式选择。
– 我设计的微波炉可以对食物进行不同火力档位的 加热,每种档位加热的时间可以不同。
• S2: begin if(count&!nRST)B1<=8'b00000000;
• else begin

if(load)B1<=DIN;

else

begin if(B1[3:0]==4'b0000)

begin

if(B1[7:4]>4'b0000||B1[7:4]<4'b0000)

begin
• end
• end
S3 :begin if(i1&i2) NS=S6; if(i1&i3) NS=S7; end S4 :begin if(i2&i3) NS=S6; if(~i1&i2) NS=S7; end S5 :begin if(~i1&i3) NS=S6; if(~i2&i3) NS=S7; end S6 :begin if(i1&~i2) NS=S2; if(i1&~i3) NS=S8; end S7 :begin if(~i1&~i2) NS=S2; if(~i1&~i3) NS=S8; end default:begin NS=START; end endcase end assign B=B1;
always@(posedge clk,negedge nRST)begin if(!nRST)Q<=8'b00000000; else begin case(NS) START: Q<=8'b10000000; S1 : Q<=8'b01000000; S2 : Q<=8'b00100000; S3 : Q<=8'b00010000; S4 : Q<=8'b00001000; S5 : Q<=8'b00000100; S6 : Q<=8'b00000010; S7 : Q<=8'b00000001; S8 : Q<=8'b11111111; default:Q<=8'b00000000; endcase end end endmodule
– 我的设计存在的问题是,每次加热的时间最多99 秒,没有检查功能。
二、设计的背景、目的和意义
• 随着控制技术和智能技术的发展,微波炉也向着智能化、 信息化发展。而现有市售的微波炉其主要弊端:不能按既 有程序进行烹调,需要使用者根据食物的类型、数量、温 度等因素去设定微波炉的工作时间,若设定的工作时间过 长,含水分较多的食物可能会产生过热碳化的现象,若时 间过短则达不到预期的烹调效果。针对这些问题,我认为 有必要研制一种操作简单且烹调效果好的微波炉,根据一 些家常菜按固定程序烹调的现象,可采取分时、分档火力 加热,节时又节能。
Wi d e Or5 b
Wi d e Or4 c
Wi d e Or3 d
Wi d e Or2 e
Wi d e Or1 f
Wi d e Or0 g
十四、仿真时序图
Start转移至 State2 State3 State6
state2,并设 至


定时间
state3 state6 state2
State2 State4
input nRST,clk,load,count;
input i1,i2,i3;
input [7:0]DIN;
output [7:0]B;
output Q;
wire [7:0]B ;
reg [7:0]B1;
reg [7:0] Q;
reg [7:0]
CS,NS;
parameter[7:0]
START=8'b00000000,S1=8'b00000001,S2=8'b00000010,S3=8'b00000100,S

4'b0100: {g,f,e,d,c,b,a}= 7'b0011001;

4'b0101: {g,f,e,d,c,b,a}= 7'b0010010;

4'b0110: {g,f,e,d,c,b,a}= 7'b0000010;

4'b0111: {g,f,e,d,c,b,a}= 7'b1111000;
• BCD = {B3,B2,B1,B0};
• case (BCD)

4'b0000: {g,f,e,d,c,b,a}= 7'b1000000;

4'b0001: {g,f,e,d,c,b,a}= 7'b1111001;

4'b0010: {g,f,e,d,c,b,a}= 7'b0100100;

4'b0011: {g,f,e,d,c,b,a}= 7'b0110000;
五、确定输入状态(9个)
START:开始 S2:定时 S4: 中火档 S6 :加热 S8 : 停止
S1:解冻 S3:大火档 S5:小火档 S7:烘烤
六、整体设计框图
开始
时间设定
火力档选择 (大,中,小)
停止
烹饪功能选择 (加热,烘烤)
十、状态机设计(状态转换图)
十一、状态机设计(状态编码)
module Microwave(nRST,clk,i1,i2,i3,Q,B,load,DIN,count);
• 本设计采用 EDA 技术用 VHDL设计语言,设计一种微波 炉控制器该控制器具有系统复位、状态控制、时间设定、 火力档位选择、等功能,基于 FPGA 芯片实现

三、设计任务及要求
• 本课题是基于FPGA的微波炉控制器设计,即设 一个具备 定时,温控,烘烤,计时显示功能的微波炉控制器,实现 一些功能:
• module BCDto7SEG (B3,B2,B1,B0,a,b,c,d,e,f,g);
• input B3,B2,B1,B0;
• output a,b,c,d,e,f,g;
• reg[3:0] BCD;
• reg a,b,c,d,e,f,g;
• always @( B3,B2,B1,B0) begin
INPUT VCC INPUT VCC INPUT VCC INPUT VCC INPUT VCC INPUT VCC INPUT VCC INPUT VCC
Microwav e
nRST clk i1 i2 i3 load DIN[7..0] count
Q[7..0] B[7..0]
Param eter Value

B1[3:0]<=9;

B1[7:4]<=B1[7:4]-1;

end

else

begin

B1<=0;

end

end

else

begin

B1[3:0]<=B1[3:0]-1;

end

end

end
• else begin
• if(~i1源自文库 NS=S3;
• if(~i2) NS=S4;
• if(~i3) NS=S5;

4'b1000: {g,f,e,d,c,b,a}= 7'b0000000;

4'b1001: {g,f,e,d,c,b,a}= 7'b0010000;

default: {g,f,e,d,c,b,a}= 7'b1111111;
• endcase
• end
• endmodule
十二、状态机设计
nRST clk i1 i2 i3 load DIN[7..0] count
Type
START 00000000 Unsigned Binary
S1
00000001 Unsigned Binary
S2
00000010 Unsigned Binary
S3
00000100 Unsigned Binary
S4
00001000 Unsigned Binary
S5
00010000 Unsigned Binary
相关文档
最新文档